diff --git a/.vscode/pack-zip.js b/.vscode/pack-zip.js index 0ddc605..9a03946 100644 --- a/.vscode/pack-zip.js +++ b/.vscode/pack-zip.js @@ -23,7 +23,7 @@ loadFile('', distFolder); zip .generateNodeStream({ type: 'nodebuffer', streamFiles: true }) - .pipe(fs.createWriteStream(path.join(__dirname, '../AcodeX.zip'))) + .pipe(fs.createWriteStream(path.join(distFolder, '/AcodeX.zip'))) .on('finish', () => { console.log('dist.zip written.'); }); @@ -31,17 +31,22 @@ zip function loadFile(root, folder) { const distFiles = fs.readdirSync(folder); distFiles.forEach((file) => { + const filePath = path.join(folder, file); + const stat = fs.statSync(filePath); - const stat = fs.statSync(path.join(folder, file)); + // Skip AcodeX.zip + if (file === 'AcodeX.zip') { + return; + } if (stat.isDirectory()) { zip.folder(file); - loadFile(path.join(root, file), path.join(folder, file)); + loadFile(path.join(root, file), filePath); return; } if (!/LICENSE.txt/.test(file)) { - zip.file(path.join(root, file), fs.readFileSync(path.join(folder, file))); + zip.file(path.join(root, file), fs.readFileSync(filePath)); } }); -} \ No newline at end of file +} diff --git a/ChangeLog.md b/ChangeLog.md index 9107780..e7972d3 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,5 +1,47 @@ # Change Logs +## `Update v3.1.7` + +- Fixed settings not saving issue (First backup your settings before updating) +- Added a new settings to control `letterSpacing` +- Some improvement to fallback font + +## `Update v3.1.6` +- Image rendering support +- Option to hide maximise terminal button +- Added Key binding for maximising terminal - `Ctrl-Shift-T` + +## `Update v3.1.5` +- Now it will handle automatically closing of server +- 🆕 key-bindings `Ctrl+Shift+I` to clear the terminal +- updated xterm and its styling + +## `Update v3.1.3 & v3.1.4` +- Enhanced AcodeX by integrating AI into the terminal, making it a standout option in the modern era. (Check `How to use AI section` for refrence) +- Updated the default font family for the Terminal to `Meslo NF Regular`. +- Resolved the issue with the `exit` command; now, typing `exit` in the terminal will promptly close the current session. +- fixed settings issue (v3.1.4) + +## `Update v3.1.2` +- added new api and there are some api changes , check Api section + +## `Update v3.1.1` +- Fixed Font issue +- Fized the acodex not opening bug + +## `Update v3.1.0` +- Fixed panel issue when changing the file tab position [#44](https://github.com/bajrangCoder/acode-plugin-acodex/pull/44) +- fixed plugin api problem of `acodex.openTerminal()` which was using deprecated method +- Added option to modify server host name from settings +- Added new keybindings such as Ctrl-+, Ctrl--, Ctrl-Shift-C +- Modified paste shortcut to Ctrl+Shift+V +- And in shortcuts you can use either capital letter or small for eg: Ctrl-Shift-c and Ctrl-Shift-C both will work fine +- redesigned the panel ui and chnaged icons +- lots of inner improvement, to improve overall performance and stability +- Added a Search functionality to search inside terminal +- fixed ui bug (of transparent mode) +- Fixed all known issues + ## `Update v3.0.1` - fixed [#38](https://github.com/bajrangCoder/acode-plugin-acodex/issues/38) in `v3.0.1` diff --git a/build.mjs b/build.mjs index 1933801..be9236d 100644 --- a/build.mjs +++ b/build.mjs @@ -1,21 +1,46 @@ import * as esbuild from "esbuild"; -import {sassPlugin} from 'esbuild-sass-plugin'; +import { sassPlugin } from 'esbuild-sass-plugin'; import { exec } from 'child_process'; -let result = await esbuild.build({ - entryPoints: ["src/main.js"], - bundle: true, - minify: true, - logLevel: 'info', - color: true, - outdir: "dist", - plugins: [sassPlugin()] -}); +const isServe = process.argv.includes("--serve"); -exec("node .vscode/pack-zip.js", (err, stdout, stderr) => { +let buildConfig = { + entryPoints: ["src/main.js"], + bundle: true, + minify: true, + logLevel: 'info', + color: true, + outdir: "dist", + plugins: [sassPlugin()] +}; + +// to pack the zip file +function packZip() { + exec("node .vscode/pack-zip.js", (err, stdout, stderr) => { if (err) { - console.error(err); - return; + console.error("Error packing zip:", err); + return; + } + console.log("Packed zip:", stdout); + }); +} + +if (!isServe) { + // Production build + let result = await esbuild.build(buildConfig); + + // Pack zip after building + packZip(); + +} else { + // Serve mode with watch and zip packing on rebuild + let ctx = await esbuild.context(buildConfig); + + await ctx.watch(); + let { host, port } = await ctx.serve({ + servedir: "dist", + onRequest: async (args) => { + packZip(); } - console.log(stdout); -}); \ No newline at end of file + }); +} diff --git a/dist/main.css b/dist/main.css index efab79f..e676480 100644 --- a/dist/main.css +++ b/dist/main.css @@ -1 +1 @@ -.terminal-panel{position:absolute;bottom:0;left:0;display:flex;flex-direction:column;background-color:var(--popup-background-color);width:100%;border-top:1px solid var(--popup-border-color);border-bottom:1px solid var(--popup-border-color);border-radius:2px;overflow:hidden;z-index:107;box-shadow:0 -10px 15px -6px var(--box-shadow-color);box-sizing:border-box;transition:opacity .5s ease-in-out}.terminal-panel .terminal-title-bar{display:flex;justify-content:space-between;align-items:center;padding:10px;background-color:var(--primary-color);cursor:row-resize;touch-action:none;border-bottom:1px solid var(--popup-border-color);height:28px}.terminal-panel .terminal-title-bar .session-info{display:flex;align-items:center}.terminal-panel .terminal-title-bar .session-info .pointer-indicator{width:10px;height:10px;background-color:var(--button-background-color);margin-right:8px;border-radius:50%;box-shadow:0 0 8px var(--button-background-color)}.terminal-panel .terminal-title-bar .session-info .session-name{font-size:16px;font-weight:700}.terminal-panel .terminal-title-bar .action-buttons{display:flex;gap:10px;transition:opacity .3s ease}.terminal-panel .terminal-title-bar .action-buttons .search-input-container{position:relative;align-items:center;display:none}.terminal-panel .terminal-title-bar .action-buttons .search-input-container input{max-width:0;padding:8px;margin-bottom:8px;border:none;border-bottom:1px solid var(--button-background-color);transition:max-width .3s ease,display .3s ease}.terminal-panel .terminal-title-bar .action-buttons .search-input-container.show{display:flex}.terminal-panel .terminal-title-bar .action-buttons .action-button{background-color:transparent;color:var(--primary-text-color);border:none;cursor:pointer;font-size:18px;padding:5px;border-radius:4px;transition:background-color .3s ease,color .3s ease,transform .2s ease}.terminal-panel .terminal-title-bar .action-buttons .action-button:active{background-color:var(--active-icon-color)}.terminal-panel .terminal-content{flex-grow:1;overflow-y:auto;box-sizing:border-box;background:inherit;width:100%}.show-terminal-btn{height:35px;width:35px;background:var(--button-background-color);border:none;outline:none;color:var(--primary-text-color);position:fixed;bottom:70px;left:29px;z-index:115;border-radius:50%;place-items:center;touch-action:none;box-shadow:#0006 0 2px 4px,#0000004d 0 7px 13px -3px,#0003 0 -3px inset}.hide{display:none;opacity:0}@font-face{font-family:Fira Code Bold Nerd Font;src:url("https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/Fira Code Bold Nerd Font.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:Fira Code Medium Nerd Font;src:url("https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/Fira Code Medium Nerd Font Complete Mono.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:JetBrains Mono Bold Nerd Font;src:url("https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/JetBrains Mono Bold Nerd Font Complete.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:JetBrains Mono Medium Nerd Font;src:url("https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/JetBrains Mono Medium Nerd Font Complete.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:VictorMonoNerdFont Bold;src:url(https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/VictorMonoNerdFont-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:VictorMonoNerdFont BoldItalic;src:url(https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/VictorMonoNerdFont-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:VictorMonoNerdFont Medium;src:url(https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/VictorMonoNerdFont-Medium.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:VictorMonoNerdFont Italic;src:url(https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/VictorMonoNerdFont-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:SauceCodeProNerdFont Bold;src:url(https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/SauceCodeProNerdFont-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:SauceCodeProNerdFont Medium;src:url(https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/SauceCodeProNerdFont-Medium.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:MesloLGS NF Bold Italic;src:url("https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/MesloLGS NF Bold Italic.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:MesloLGS NF Bold;src:url("https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/MesloLGS NF Bold.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:MesloLGS NF Italic;src:url("https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/MesloLGS NF Italic.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:MesloLGS NF Regular;src:url("https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/MesloLGS NF Regular.ttf") format("truetype");font-weight:400;font-style:normal} +.terminal-panel{position:absolute;bottom:0;left:0;display:flex;flex-direction:column;background-color:var(--popup-background-color);width:100%;border-top:1px solid var(--popup-border-color);border-bottom:1px solid var(--popup-border-color);border-radius:2px;overflow:hidden;z-index:107;box-shadow:0 -10px 15px -6px var(--box-shadow-color);transition:opacity .5s ease-in-out}.terminal-panel .terminal-title-bar{display:flex;justify-content:space-between;align-items:center;padding:2px 16px;background-color:var(--primary-color);cursor:row-resize;touch-action:none;border-bottom:1px solid var(--popup-border-color);height:48px}.terminal-panel .terminal-title-bar .left-section,.terminal-panel .terminal-title-bar .btn-section{display:flex;align-items:center}.terminal-panel .terminal-title-bar .session-info{display:flex;align-items:center;gap:12px}.terminal-panel .terminal-title-bar .session-info .pointer-indicator{width:8px;height:8px;background-color:var(--button-background-color);border-radius:50%;box-shadow:0 0 8px var(--button-background-color)}.terminal-panel .terminal-title-bar .session-info .session-name{font-size:14px;font-weight:600;color:var(--primary-text-color)}.terminal-panel .terminal-title-bar .action-button{background:none;border:none;color:var(--primary-text-color);cursor:pointer;padding:5px;margin:0 2px;font-size:20px;border-radius:4px;transition:background-color .2s ease}.terminal-panel .terminal-title-bar .action-button:active{background-color:var(--active-icon-color)}.terminal-panel .terminal-title-bar .action-button svg{width:18px;height:18px}.terminal-panel .terminal-title-bar .search-input-container{display:none;align-items:center;border-radius:4px;margin-left:8px;background:var(--popup-background-color)}.terminal-panel .terminal-title-bar .search-input-container input{background:none;border:none;color:var(--primary-text-color);padding:4px 8px!important;font-size:12px;width:150px;height:100%!important}.terminal-panel .terminal-title-bar .search-input-container input::placeholder{color:var(--active-color)}.terminal-panel .terminal-title-bar .search-input-container input:focus{outline:none}.terminal-panel .terminal-title-bar .search-input-container.show{display:flex}.terminal-panel .terminal-title-bar .search-input-container .action-button{padding:6px}.terminal-panel .terminal-content{flex-grow:1;overflow-y:auto;box-sizing:border-box;background:inherit;width:100%}.show-terminal-btn{height:35px;width:35px;background:var(--button-background-color);border:none;outline:none;color:var(--primary-text-color);position:fixed;bottom:70px;left:29px;z-index:115;border-radius:50%;place-items:center;touch-action:none;box-shadow:#0006 0 2px 4px,#0000004d 0 7px 13px -3px,#0003 0 -3px inset}.hide{display:none;opacity:0}#acodeXAiPromptBox{background:inherit;width:100%;outline:none;padding:5px;border-radius:8px;color:var(--popup-text-color);font-size:.8em;resize:none;border:1px solid var(--box-shadow-color)}.ai-loader-container{padding:0;margin:0;box-sizing:border-box;display:none;justify-content:center;align-items:center}.ai-loader-container .wave{width:5px;height:50px;background:linear-gradient(45deg,#0ff,#fff);margin:10px;animation:wave 1s linear infinite;border-radius:20px}.ai-loader-container .wave:nth-child(2){animation-delay:.1s}.ai-loader-container .wave:nth-child(3){animation-delay:.2s}.ai-loader-container .wave:nth-child(4){animation-delay:.3s}.ai-loader-container .wave:nth-child(5){animation-delay:.4s}.ai-loader-container .wave:nth-child(6){animation-delay:.5s}@keyframes wave{0%{transform:scale(0)}50%{transform:scale(1)}to{transform:scale(0)}}.selection-handle{position:absolute;width:25px;height:25px;background-color:#0000ffb3;border-radius:50% 50% 50% 0;transform:rotate(135deg);z-index:999;display:none}#acodex-gui-viewer .gui-viewer-canvas{width:100%;height:100%;box-sizing:border-box;overflow:auto} diff --git a/dist/main.js b/dist/main.js index 7c33c09..cbeea06 100644 --- a/dist/main.js +++ b/dist/main.js @@ -1,12 +1,21 @@ -(()=>{var Ct=Object.create;var Ge=Object.defineProperty;var bt=Object.getOwnPropertyDescriptor;var wt=Object.getOwnPropertyNames;var yt=Object.getPrototypeOf,Lt=Object.prototype.hasOwnProperty;var me=(V,T)=>()=>(T||V((T={exports:{}}).exports,T),T.exports);var Et=(V,T,I,H)=>{if(T&&typeof T=="object"||typeof T=="function")for(let R of wt(T))!Lt.call(V,R)&&R!==I&&Ge(V,R,{get:()=>T[R],enumerable:!(H=bt(T,R))||H.enumerable});return V};var Se=(V,T,I)=>(I=V!=null?Ct(yt(V)):{},Et(T||!V||!V.__esModule?Ge(I,"default",{value:V,enumerable:!0}):I,V));var st=me((Re,Fe)=>{(function(V,T){if(typeof Re=="object"&&typeof Fe=="object")Fe.exports=T();else if(typeof define=="function"&&define.amd)define([],T);else{var I=T();for(var H in I)(typeof Re=="object"?Re:V)[H]=I[H]}})(self,()=>(()=>{"use strict";var V={4567:function(R,t,a){var l=this&&this.__decorate||function(n,f,v,p){var S,c=arguments.length,g=c<3?f:p===null?p=Object.getOwnPropertyDescriptor(f,v):p;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")g=Reflect.decorate(n,f,v,p);else for(var w=n.length-1;w>=0;w--)(S=n[w])&&(g=(c<3?S(g):c>3?S(f,v,g):S(f,v))||g);return c>3&&g&&Object.defineProperty(f,v,g),g},u=this&&this.__param||function(n,f){return function(v,p){f(v,p,n)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AccessibilityManager=void 0;let r=a(9042),h=a(6114),d=a(9924),_=a(844),o=a(5596),e=a(4725),i=a(3656),s=t.AccessibilityManager=class extends _.Disposable{constructor(n,f){super(),this._terminal=n,this._renderService=f,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=document.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=document.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let v=0;vthis._handleBoundaryFocus(v,0),this._bottomBoundaryFocusListener=v=>this._handleBoundaryFocus(v,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=document.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new d.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize(v=>this._handleResize(v.rows))),this.register(this._terminal.onRender(v=>this._refreshRows(v.start,v.end))),this.register(this._terminal.onScroll(()=>this._refreshRows())),this.register(this._terminal.onA11yChar(v=>this._handleChar(v))),this.register(this._terminal.onLineFeed(()=>this._handleChar(` -`))),this.register(this._terminal.onA11yTab(v=>this._handleTab(v))),this.register(this._terminal.onKey(v=>this._handleKey(v.key))),this.register(this._terminal.onBlur(()=>this._clearLiveRegion())),this.register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._screenDprMonitor=new o.ScreenDprMonitor(window),this.register(this._screenDprMonitor),this._screenDprMonitor.setListener(()=>this._refreshRowsDimensions()),this.register((0,i.addDisposableDomListener)(window,"resize",()=>this._refreshRowsDimensions())),this._refreshRows(),this.register((0,_.toDisposable)(()=>{this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(n){for(let f=0;f0?this._charsToConsume.shift()!==n&&(this._charsToAnnounce+=n):this._charsToAnnounce+=n,n===` -`&&(this._liveRegionLineCount++,this._liveRegionLineCount===21&&(this._liveRegion.textContent+=r.tooMuchOutput)),h.isMac&&this._liveRegion.textContent&&this._liveRegion.textContent.length>0&&!this._liveRegion.parentNode&&setTimeout(()=>{this._accessibilityContainer.appendChild(this._liveRegion)},0))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0,h.isMac&&this._liveRegion.remove()}_handleKey(n){this._clearLiveRegion(),/\p{Control}/u.test(n)||this._charsToConsume.push(n)}_refreshRows(n,f){this._liveRegionDebouncer.refresh(n,f,this._terminal.rows)}_renderRows(n,f){let v=this._terminal.buffer,p=v.lines.length.toString();for(let S=n;S<=f;S++){let c=v.translateBufferLineToString(v.ydisp+S,!0),g=(v.ydisp+S+1).toString(),w=this._rowElements[S];w&&(c.length===0?w.innerText="\xA0":w.textContent=c,w.setAttribute("aria-posinset",g),w.setAttribute("aria-setsize",p))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(n,f){let v=n.target,p=this._rowElements[f===0?1:this._rowElements.length-2];if(v.getAttribute("aria-posinset")===(f===0?"1":`${this._terminal.buffer.lines.length}`)||n.relatedTarget!==p)return;let S,c;if(f===0?(S=v,c=this._rowElements.pop(),this._rowContainer.removeChild(c)):(S=this._rowElements.shift(),c=v,this._rowContainer.removeChild(S)),S.removeEventListener("focus",this._topBoundaryFocusListener),c.removeEventListener("focus",this._bottomBoundaryFocusListener),f===0){let g=this._createAccessibilityTreeNode();this._rowElements.unshift(g),this._rowContainer.insertAdjacentElement("afterbegin",g)}else{let g=this._createAccessibilityTreeNode();this._rowElements.push(g),this._rowContainer.appendChild(g)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(f===0?-1:1),this._rowElements[f===0?1:this._rowElements.length-2].focus(),n.preventDefault(),n.stopImmediatePropagation()}_handleResize(n){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let f=this._rowContainer.children.length;fn;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let n=document.createElement("div");return n.setAttribute("role","listitem"),n.tabIndex=-1,this._refreshRowDimensions(n),n}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let n=0;n{function a(h){return h.replace(/\r?\n/g,"\r")}function l(h,d){return d?"\x1B[200~"+h+"\x1B[201~":h}function u(h,d,_,o){h=l(h=a(h),_.decPrivateModes.bracketedPasteMode&&o.rawOptions.ignoreBracketedPasteMode!==!0),_.triggerDataEvent(h,!0),d.value=""}function r(h,d,_){let o=_.getBoundingClientRect(),e=h.clientX-o.left-10,i=h.clientY-o.top-10;d.style.width="20px",d.style.height="20px",d.style.left=`${e}px`,d.style.top=`${i}px`,d.style.zIndex="1000",d.focus()}Object.defineProperty(t,"__esModule",{value:!0}),t.rightClickHandler=t.moveTextAreaUnderMouseCursor=t.paste=t.handlePasteEvent=t.copyHandler=t.bracketTextForPaste=t.prepareTextForTerminal=void 0,t.prepareTextForTerminal=a,t.bracketTextForPaste=l,t.copyHandler=function(h,d){h.clipboardData&&h.clipboardData.setData("text/plain",d.selectionText),h.preventDefault()},t.handlePasteEvent=function(h,d,_,o){h.stopPropagation(),h.clipboardData&&u(h.clipboardData.getData("text/plain"),d,_,o)},t.paste=u,t.moveTextAreaUnderMouseCursor=r,t.rightClickHandler=function(h,d,_,o,e){r(h,d,_),e&&o.rightClickSelect(h),d.value=o.selectionText,d.select()}},7239:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorContrastCache=void 0;let l=a(1505);t.ColorContrastCache=class{constructor(){this._color=new l.TwoKeyMap,this._css=new l.TwoKeyMap}setCss(u,r,h){this._css.set(u,r,h)}getCss(u,r){return this._css.get(u,r)}setColor(u,r,h){this._color.set(u,r,h)}getColor(u,r){return this._color.get(u,r)}clear(){this._color.clear(),this._css.clear()}}},3656:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(a,l,u,r){a.addEventListener(l,u,r);let h=!1;return{dispose:()=>{h||(h=!0,a.removeEventListener(l,u,r))}}}},6465:function(R,t,a){var l=this&&this.__decorate||function(e,i,s,n){var f,v=arguments.length,p=v<3?i:n===null?n=Object.getOwnPropertyDescriptor(i,s):n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")p=Reflect.decorate(e,i,s,n);else for(var S=e.length-1;S>=0;S--)(f=e[S])&&(p=(v<3?f(p):v>3?f(i,s,p):f(i,s))||p);return v>3&&p&&Object.defineProperty(i,s,p),p},u=this&&this.__param||function(e,i){return function(s,n){i(s,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Linkifier2=void 0;let r=a(3656),h=a(8460),d=a(844),_=a(2585),o=t.Linkifier2=class extends d.Disposable{get currentLink(){return this._currentLink}constructor(e){super(),this._bufferService=e,this._linkProviders=[],this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new h.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new h.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,d.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,d.toDisposable)(()=>{this._lastMouseEvent=void 0})),this.register(this._bufferService.onResize(()=>{this._clearCurrentLink(),this._wasResized=!0}))}registerLinkProvider(e){return this._linkProviders.push(e),{dispose:()=>{let i=this._linkProviders.indexOf(e);i!==-1&&this._linkProviders.splice(i,1)}}}attachToDom(e,i,s){this._element=e,this._mouseService=i,this._renderService=s,this.register((0,r.addDisposableDomListener)(this._element,"mouseleave",()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this.register((0,r.addDisposableDomListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this.register((0,r.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,r.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(e){if(this._lastMouseEvent=e,!this._element||!this._mouseService)return;let i=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!i)return;this._isMouseOut=!1;let s=e.composedPath();for(let n=0;n{v?.forEach(p=>{p.link.dispose&&p.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=e.y);let f=!1;for(let[v,p]of this._linkProviders.entries())i?!((n=this._activeProviderReplies)===null||n===void 0)&&n.get(v)&&(f=this._checkLinkProviderResult(v,e,f)):p.provideLinks(e.y,S=>{var c,g;if(this._isMouseOut)return;let w=S?.map(C=>({link:C}));(c=this._activeProviderReplies)===null||c===void 0||c.set(v,w),f=this._checkLinkProviderResult(v,e,f),((g=this._activeProviderReplies)===null||g===void 0?void 0:g.size)===this._linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)})}_removeIntersectingLinks(e,i){let s=new Set;for(let n=0;ne?this._bufferService.cols:p.link.range.end.x;for(let g=S;g<=c;g++){if(s.has(g)){f.splice(v--,1);break}s.add(g)}}}}_checkLinkProviderResult(e,i,s){var n;if(!this._activeProviderReplies)return s;let f=this._activeProviderReplies.get(e),v=!1;for(let p=0;pthis._linkAtPosition(S.link,i));p&&(s=!0,this._handleNewLink(p))}if(this._activeProviderReplies.size===this._linkProviders.length&&!s)for(let p=0;pthis._linkAtPosition(c.link,i));if(S){s=!0,this._handleNewLink(S);break}}return s}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._element||!this._mouseService||!this._currentLink)return;let i=this._positionFromMouseEvent(e,this._element,this._mouseService);i&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,i)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,i){this._element&&this._currentLink&&this._lastMouseEvent&&(!e||!i||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=i)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,d.disposeArray)(this._linkCacheDisposables))}_handleNewLink(e){if(!this._element||!this._lastMouseEvent||!this._mouseService)return;let i=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);i&&this._linkAtPosition(e.link,i)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:e.link.decorations===void 0||e.link.decorations.underline,pointerCursor:e.link.decorations===void 0||e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>{var s,n;return(n=(s=this._currentLink)===null||s===void 0?void 0:s.state)===null||n===void 0?void 0:n.decorations.pointerCursor},set:s=>{var n,f;!((n=this._currentLink)===null||n===void 0)&&n.state&&this._currentLink.state.decorations.pointerCursor!==s&&(this._currentLink.state.decorations.pointerCursor=s,this._currentLink.state.isHovered&&((f=this._element)===null||f===void 0||f.classList.toggle("xterm-cursor-pointer",s)))}},underline:{get:()=>{var s,n;return(n=(s=this._currentLink)===null||s===void 0?void 0:s.state)===null||n===void 0?void 0:n.decorations.underline},set:s=>{var n,f,v;!((n=this._currentLink)===null||n===void 0)&&n.state&&((v=(f=this._currentLink)===null||f===void 0?void 0:f.state)===null||v===void 0?void 0:v.decorations.underline)!==s&&(this._currentLink.state.decorations.underline=s,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,s))}}}),this._renderService&&this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(s=>{if(!this._currentLink)return;let n=s.start===0?0:s.start+1+this._bufferService.buffer.ydisp,f=this._bufferService.buffer.ydisp+1+s.end;if(this._currentLink.link.range.start.y>=n&&this._currentLink.link.range.end.y<=f&&(this._clearCurrentLink(n,f),this._lastMouseEvent&&this._element)){let v=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);v&&this._askForLink(v,!1)}})))}_linkHover(e,i,s){var n;!((n=this._currentLink)===null||n===void 0)&&n.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(i,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add("xterm-cursor-pointer")),i.hover&&i.hover(s,i.text)}_fireUnderlineEvent(e,i){let s=e.range,n=this._bufferService.buffer.ydisp,f=this._createLinkUnderlineEvent(s.start.x-1,s.start.y-n-1,s.end.x,s.end.y-n-1,void 0);(i?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(f)}_linkLeave(e,i,s){var n;!((n=this._currentLink)===null||n===void 0)&&n.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(i,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove("xterm-cursor-pointer")),i.leave&&i.leave(s,i.text)}_linkAtPosition(e,i){let s=e.range.start.y*this._bufferService.cols+e.range.start.x,n=e.range.end.y*this._bufferService.cols+e.range.end.x,f=i.y*this._bufferService.cols+i.x;return s<=f&&f<=n}_positionFromMouseEvent(e,i,s){let n=s.getCoords(e,i,this._bufferService.cols,this._bufferService.rows);if(n)return{x:n[0],y:n[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,i,s,n,f){return{x1:e,y1:i,x2:s,y2:n,cols:this._bufferService.cols,fg:f}}};t.Linkifier2=o=l([u(0,_.IBufferService)],o)},9042:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0,t.promptLabel="Terminal input",t.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},3730:function(R,t,a){var l=this&&this.__decorate||function(o,e,i,s){var n,f=arguments.length,v=f<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,i):s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")v=Reflect.decorate(o,e,i,s);else for(var p=o.length-1;p>=0;p--)(n=o[p])&&(v=(f<3?n(v):f>3?n(e,i,v):n(e,i))||v);return f>3&&v&&Object.defineProperty(e,i,v),v},u=this&&this.__param||function(o,e){return function(i,s){e(i,s,o)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkProvider=void 0;let r=a(511),h=a(2585),d=t.OscLinkProvider=class{constructor(o,e,i){this._bufferService=o,this._optionsService=e,this._oscLinkService=i}provideLinks(o,e){var i;let s=this._bufferService.buffer.lines.get(o-1);if(!s)return void e(void 0);let n=[],f=this._optionsService.rawOptions.linkHandler,v=new r.CellData,p=s.getTrimmedLength(),S=-1,c=-1,g=!1;for(let w=0;wf?f.activate(A,D,m):_(0,D),hover:(A,D)=>{var M;return(M=f?.hover)===null||M===void 0?void 0:M.call(f,A,D,m)},leave:(A,D)=>{var M;return(M=f?.leave)===null||M===void 0?void 0:M.call(f,A,D,m)}})}g=!1,v.hasExtendedAttrs()&&v.extended.urlId?(c=w,S=v.extended.urlId):(c=-1,S=-1)}}e(n)}};function _(o,e){if(confirm(`Do you want to navigate to ${e}? +(()=>{var du=Object.create;var So=Object.defineProperty;var fu=Object.getOwnPropertyDescriptor;var _u=Object.getOwnPropertyNames;var gu=Object.getPrototypeOf,pu=Object.prototype.hasOwnProperty;var re=(e,i)=>()=>(i||e((i={exports:{}}).exports,i),i.exports);var vu=(e,i,r,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(let c of _u(i))!pu.call(e,c)&&c!==r&&So(e,c,{get:()=>i[c],enumerable:!(s=fu(i,c))||s.enumerable});return e};var it=(e,i,r)=>(r=e!=null?du(gu(e)):{},vu(i||!e||!e.__esModule?So(r,"default",{value:e,enumerable:!0}):r,e));var js=re(_r=>{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.toSigned32bit=Hu;_r.toUnsigned32bit=Xu;function Xu(e){return e>>>0}function Hu(e){return e|0}});var yt=re(Le=>{"use strict";Object.defineProperty(Le,"__esModule",{value:!0});Le.Warn=Le.Info=Le.Error=Le.Debug=void 0;Le.getLogging=Nu;Le.initLogging=ea;var Gs="warn",Vo=Le.Debug=function(){},Yo=Le.Info=function(){},Jo=Le.Warn=function(){},Zo=Le.Error=function(){};function ea(e){if(typeof e>"u"?e=Gs:Gs=e,Le.Debug=Vo=Le.Info=Yo=Le.Warn=Jo=Le.Error=Zo=function(){},typeof window.console<"u")switch(e){case"debug":Le.Debug=Vo=console.debug.bind(window.console);case"info":Le.Info=Yo=console.info.bind(window.console);case"warn":Le.Warn=Jo=console.warn.bind(window.console);case"error":Le.Error=Zo=console.error.bind(window.console);case"none":break;default:throw new window.Error("invalid logging type '"+e+"'")}}function Nu(){return Gs}ea()});var zs=re(gr=>{"use strict";Object.defineProperty(gr,"__esModule",{value:!0});gr.decodeUTF8=Uu;gr.encodeUTF8=$u;function Uu(e){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;try{return decodeURIComponent(escape(e))}catch(r){if(r instanceof URIError&&i)return e;throw r}}function $u(e){return unescape(encodeURIComponent(e))}});var Ci=re(Ae=>{"use strict";function Ys(e){"@babel/helpers - typeof";return Ys=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Ys(e)}Object.defineProperty(Ae,"__esModule",{value:!0});Ae.hasScrollbarGutter=Ae.dragThreshold=void 0;Ae.isAndroid=Vu;Ae.isBlink=od;Ae.isChrome=ed;Ae.isChromeOS=Yu;Ae.isChromium=td;Ae.isEdge=rd;Ae.isFirefox=Zu;Ae.isGecko=sd;Ae.isIOS=qu;Ae.isMac=Gu;Ae.isOpera=id;Ae.isSafari=Ju;Ae.isTouchDevice=void 0;Ae.isWebKit=nd;Ae.isWindows=zu;Ae.supportsCursorURIs=void 0;var pr=Wu(yt());function ia(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(ia=function(c){return c?r:i})(e)}function Wu(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||Ys(e)!="object"&&typeof e!="function")return{default:e};var r=ia(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}var ju=Ae.isTouchDevice="ontouchstart"in document.documentElement||document.ontouchstart!==void 0||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0;window.addEventListener("touchstart",function e(){Ae.isTouchDevice=ju=!0,window.removeEventListener("touchstart",e,!1)},!1);var Rp=Ae.dragThreshold=10*(window.devicePixelRatio||1),ra=!1;try{qs=document.createElement("canvas"),qs.style.cursor='url("data:image/x-icon;base64,AAACAAEACAgAAAIAAgA4AQAAFgAAACgAAAAIAAAAEAAAAAEAIAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAA==") 2 2, default',qs.style.cursor.indexOf("url")===0?(pr.Info("Data URI scheme cursor supported"),ra=!0):pr.Warn("Data URI scheme cursor not supported")}catch(e){pr.Error("Data URI scheme cursor test exception: "+e)}var qs,Mp=Ae.supportsCursorURIs=ra,sa=!0;try{Et=document.createElement("div"),Et.style.visibility="hidden",Et.style.overflow="scroll",document.body.appendChild(Et),Vs=document.createElement("div"),Et.appendChild(Vs),ta=Et.offsetWidth-Vs.offsetWidth,Et.parentNode.removeChild(Et),sa=ta!=0}catch(e){pr.Error("Scrollbar test exception: "+e)}var Et,Vs,ta,Tp=Ae.hasScrollbarGutter=sa;function Gu(){return!!/mac/i.exec(navigator.platform)}function zu(){return!!/win/i.exec(navigator.platform)}function qu(){return!!/ipad/i.exec(navigator.platform)||!!/iphone/i.exec(navigator.platform)||!!/ipod/i.exec(navigator.platform)}function Vu(){return!!navigator.userAgent.match("Android ")}function Yu(){return!!navigator.userAgent.match(" CrOS ")}function Ju(){return!!navigator.userAgent.match("Safari/...")&&!navigator.userAgent.match("Chrome/...")&&!navigator.userAgent.match("Chromium/...")&&!navigator.userAgent.match("Epiphany/...")}function Zu(){return!!navigator.userAgent.match("Firefox/...")&&!navigator.userAgent.match("Seamonkey/...")}function ed(){return!!navigator.userAgent.match("Chrome/...")&&!navigator.userAgent.match("Chromium/...")&&!navigator.userAgent.match("Edg/...")&&!navigator.userAgent.match("OPR/...")}function td(){return!!navigator.userAgent.match("Chromium/...")}function id(){return!!navigator.userAgent.match("OPR/...")}function rd(){return!!navigator.userAgent.match("Edg/...")}function sd(){return!!navigator.userAgent.match("Gecko/...")}function nd(){return!!navigator.userAgent.match("AppleWebKit/...")&&!navigator.userAgent.match("Chrome/...")}function od(){return!!navigator.userAgent.match("Chrome/...")}});var na=re(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});Js.clientToElement=ad;function ad(e,i,r){var s=r.getBoundingClientRect(),c={x:0,y:0};return e=s.right?c.x=s.width-1:c.x=e-s.left,i=s.bottom?c.y=s.height-1:c.y=i-s.top,c}});var tn=re(si=>{"use strict";Object.defineProperty(si,"__esModule",{value:!0});si.getPointerEvent=hd;si.releaseCapture=en;si.setCapture=cd;si.stopEvent=ld;function hd(e){return e.changedTouches?e.changedTouches[0]:e.touches?e.touches[0]:e}function ld(e){e.stopPropagation(),e.preventDefault()}var Zs=!1,oa=null;document.captureElement=null;function Ut(e){if(!Zs){var i=new e.constructor(e.type,e);Zs=!0,document.captureElement?document.captureElement.dispatchEvent(i):oa.dispatchEvent(i),Zs=!1,e.stopPropagation(),i.defaultPrevented&&e.preventDefault(),e.type==="mouseup"&&en()}}function aa(){var e=document.getElementById("noVNC_mouse_capture_elem");e.style.cursor=window.getComputedStyle(document.captureElement).cursor}var ha=new MutationObserver(aa);function cd(e){if(e.setCapture)e.setCapture(),document.captureElement=e;else{en();var i=document.getElementById("noVNC_mouse_capture_elem");i===null&&(i=document.createElement("div"),i.id="noVNC_mouse_capture_elem",i.style.position="fixed",i.style.top="0px",i.style.left="0px",i.style.width="100%",i.style.height="100%",i.style.zIndex=1e4,i.style.display="none",document.body.appendChild(i),i.addEventListener("contextmenu",Ut),i.addEventListener("mousemove",Ut),i.addEventListener("mouseup",Ut)),document.captureElement=e,ha.observe(e,{attributes:!0}),aa(),i.style.display="",window.addEventListener("mousemove",Ut),window.addEventListener("mouseup",Ut)}}function en(){if(document.releaseCapture)document.releaseCapture(),document.captureElement=null;else{if(!document.captureElement)return;oa=document.captureElement,document.captureElement=null,ha.disconnect();var e=document.getElementById("noVNC_mouse_capture_elem");e.style.display="none",window.removeEventListener("mousemove",Ut),window.removeEventListener("mouseup",Ut)}}});var rn=re(vr=>{"use strict";Object.defineProperty(vr,"__esModule",{value:!0});vr.default=void 0;function xi(e){"@babel/helpers - typeof";return xi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},xi(e)}function ud(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function la(e,i){for(var r=0;r{"use strict";function sn(e){"@babel/helpers - typeof";return sn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},sn(e)}Object.defineProperty(mr,"__esModule",{value:!0});mr.default=void 0;var gd=pd(yt());function ca(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(ca=function(c){return c?r:i})(e)}function pd(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||sn(e)!="object"&&typeof e!="function")return{default:e};var r=ca(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}var Xp=mr.default={toBase64Table:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".split(""),base64Pad:"=",encode:function(i){"use strict";for(var r="",s=i.length,c=s%3,t=0;t>2],r+=this.toBase64Table[((i[t]&3)<<4)+(i[t+1]>>4)],r+=this.toBase64Table[((i[t+1]&15)<<2)+(i[t+2]>>6)],r+=this.toBase64Table[i[t+2]&63];var n=s-c;return c===2?(r+=this.toBase64Table[i[n]>>2],r+=this.toBase64Table[((i[n]&3)<<4)+(i[n+1]>>4)],r+=this.toBase64Table[(i[n+1]&15)<<2],r+=this.toBase64Table[64]):c===1&&(r+=this.toBase64Table[i[n]>>2],r+=this.toBase64Table[(i[n]&3)<<4],r+=this.toBase64Table[64],r+=this.toBase64Table[64]),r},toBinaryTable:[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,0,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1],decode:function(i){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=i.indexOf("=")-r;s<0&&(s=i.length-r);for(var c=(s>>2)*3+Math.floor(s%4/1.5),t=new Array(c),n=0,h=0,g=0,a=r;a=8&&(n-=8,_||(t[g++]=h>>n&255),h&=(1<{"use strict";Object.defineProperty(yr,"__esModule",{value:!0});yr.default=void 0;var ni=yd(yt()),vd=md(nn()),ua=js();function md(e){return e&&e.__esModule?e:{default:e}}function fa(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(fa=function(c){return c?r:i})(e)}function yd(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||oi(e)!="object"&&typeof e!="function")return{default:e};var r=fa(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}function oi(e){"@babel/helpers - typeof";return oi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},oi(e)}function bd(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function da(e,i){for(var r=0;r> Display.constructor"),this._target=i,!this._target)throw new Error("Target must be set");if(typeof this._target=="string")throw new Error("target must be a DOM element");if(!this._target.getContext)throw new Error("no getContext method");this._targetCtx=this._target.getContext("2d"),this._viewportLoc={x:0,y:0,w:this._target.width,h:this._target.height},this._backbuffer=document.createElement("canvas"),this._drawCtx=this._backbuffer.getContext("2d"),this._damageBounds={left:0,top:0,right:this._backbuffer.width,bottom:this._backbuffer.height},ni.Debug("User Agent: "+navigator.userAgent),ni.Debug("<< Display.constructor"),this._scale=1,this._clipViewport=!1}return Ad(e,[{key:"scale",get:function(){return this._scale},set:function(r){this._rescale(r)}},{key:"clipViewport",get:function(){return this._clipViewport},set:function(r){this._clipViewport=r;var s=this._viewportLoc;this.viewportChangeSize(s.w,s.h),this.viewportChangePos(0,0)}},{key:"width",get:function(){return this._fbWidth}},{key:"height",get:function(){return this._fbHeight}},{key:"viewportChangePos",value:function(r,s){var c=this._viewportLoc;r=Math.floor(r),s=Math.floor(s),this._clipViewport||(r=-c.w,s=-c.h);var t=c.x+c.w-1,n=c.y+c.h-1;r<0&&c.x+r<0&&(r=-c.x),t+r>=this._fbWidth&&(r-=t+r-this._fbWidth+1),c.y+s<0&&(s=-c.y),n+s>=this._fbHeight&&(s-=n+s-this._fbHeight+1),!(r===0&&s===0)&&(ni.Debug("viewportChange deltaX: "+r+", deltaY: "+s),c.x+=r,c.y+=s,this._damage(c.x,c.y,c.w,c.h),this.flip())}},{key:"viewportChangeSize",value:function(r,s){(!this._clipViewport||typeof r>"u"||typeof s>"u")&&(ni.Debug("Setting viewport to full display region"),r=this._fbWidth,s=this._fbHeight),r=Math.floor(r),s=Math.floor(s),r>this._fbWidth&&(r=this._fbWidth),s>this._fbHeight&&(s=this._fbHeight);var c=this._viewportLoc;if(c.w!==r||c.h!==s){c.w=r,c.h=s;var t=this._target;t.width=r,t.height=s,this.viewportChangePos(0,0),this._damage(c.x,c.y,c.w,c.h),this.flip(),this._rescale(this._scale)}}},{key:"absX",value:function(r){return this._scale===0?0:(0,ua.toSigned32bit)(r/this._scale+this._viewportLoc.x)}},{key:"absY",value:function(r){return this._scale===0?0:(0,ua.toSigned32bit)(r/this._scale+this._viewportLoc.y)}},{key:"resize",value:function(r,s){this._prevDrawStyle="",this._fbWidth=r,this._fbHeight=s;var c=this._backbuffer;if(c.width!==r||c.height!==s){var t=null;c.width>0&&c.height>0&&(t=this._drawCtx.getImageData(0,0,c.width,c.height)),c.width!==r&&(c.width=r),c.height!==s&&(c.height=s),t&&this._drawCtx.putImageData(t,0,0)}var n=this._viewportLoc;this.viewportChangeSize(n.w,n.h),this.viewportChangePos(0,0)}},{key:"getImageData",value:function(){return this._drawCtx.getImageData(0,0,this.width,this.height)}},{key:"toDataURL",value:function(r,s){return this._backbuffer.toDataURL(r,s)}},{key:"toBlob",value:function(r,s,c){return this._backbuffer.toBlob(r,s,c)}},{key:"_damage",value:function(r,s,c,t){rthis._damageBounds.right&&(this._damageBounds.right=r+c),s+t>this._damageBounds.bottom&&(this._damageBounds.bottom=s+t)}},{key:"flip",value:function(r){if(this._renderQ.length!==0&&!r)this._renderQPush({type:"flip"});else{var s=this._damageBounds.left,c=this._damageBounds.top,t=this._damageBounds.right-s,n=this._damageBounds.bottom-c,h=s-this._viewportLoc.x,g=c-this._viewportLoc.y;h<0&&(t+=h,s-=h,h=0),g<0&&(n+=g,c-=g,g=0),h+t>this._viewportLoc.w&&(t=this._viewportLoc.w-h),g+n>this._viewportLoc.h&&(n=this._viewportLoc.h-g),t>0&&n>0&&this._targetCtx.drawImage(this._backbuffer,s,c,t,n,h,g,t,n),this._damageBounds.left=this._damageBounds.top=65535,this._damageBounds.right=this._damageBounds.bottom=0}}},{key:"pending",value:function(){return this._renderQ.length>0}},{key:"flush",value:function(){var r=this;return this._renderQ.length===0?Promise.resolve():(this._flushPromise===null&&(this._flushPromise=new Promise(function(s){r._flushResolve=s})),this._flushPromise)}},{key:"fillRect",value:function(r,s,c,t,n,h){this._renderQ.length!==0&&!h?this._renderQPush({type:"fill",x:r,y:s,width:c,height:t,color:n}):(this._setFillColor(n),this._drawCtx.fillRect(r,s,c,t),this._damage(r,s,c,t))}},{key:"copyImage",value:function(r,s,c,t,n,h,g){this._renderQ.length!==0&&!g?this._renderQPush({type:"copy",oldX:r,oldY:s,x:c,y:t,width:n,height:h}):(this._drawCtx.mozImageSmoothingEnabled=!1,this._drawCtx.webkitImageSmoothingEnabled=!1,this._drawCtx.msImageSmoothingEnabled=!1,this._drawCtx.imageSmoothingEnabled=!1,this._drawCtx.drawImage(this._backbuffer,r,s,n,h,c,t,n,h),this._damage(c,t,n,h))}},{key:"imageRect",value:function(r,s,c,t,n,h){if(!(c===0||t===0)){var g=new Image;g.src="data: "+n+";base64,"+vd.default.encode(h),this._renderQPush({type:"img",img:g,x:r,y:s,width:c,height:t})}}},{key:"blitImage",value:function(r,s,c,t,n,h,g){if(this._renderQ.length!==0&&!g){var a=new Uint8Array(c*t*4);a.set(new Uint8Array(n.buffer,0,a.length)),this._renderQPush({type:"blit",data:a,x:r,y:s,width:c,height:t})}else{var l=new Uint8ClampedArray(n.buffer,n.byteOffset+h,c*t*4),_=new ImageData(l,c,t);this._drawCtx.putImageData(_,r,s),this._damage(r,s,c,t)}}},{key:"drawImage",value:function(r,s,c){this._drawCtx.drawImage(r,s,c),this._damage(s,c,r.width,r.height)}},{key:"autoscale",value:function(r,s){var c;if(r===0||s===0)c=0;else{var t=this._viewportLoc,n=r/s,h=t.w/t.h;h>=n?c=r/t.w:c=s/t.h}this._rescale(c)}},{key:"_rescale",value:function(r){this._scale=r;var s=this._viewportLoc,c=r*s.w+"px",t=r*s.h+"px";(this._target.style.width!==c||this._target.style.height!==t)&&(this._target.style.width=c,this._target.style.height=t)}},{key:"_setFillColor",value:function(r){var s="rgb("+r[0]+","+r[1]+","+r[2]+")";s!==this._prevDrawStyle&&(this._drawCtx.fillStyle=s,this._prevDrawStyle=s)}},{key:"_renderQPush",value:function(r){this._renderQ.push(r),this._renderQ.length===1&&this._scanRenderQ()}},{key:"_resumeRenderQ",value:function(){this.removeEventListener("load",this._noVNCDisplay._resumeRenderQ),this._noVNCDisplay._scanRenderQ()}},{key:"_scanRenderQ",value:function(){for(var r=!0;r&&this._renderQ.length>0;){var s=this._renderQ[0];switch(s.type){case"flip":this.flip(!0);break;case"copy":this.copyImage(s.oldX,s.oldY,s.x,s.y,s.width,s.height,!0);break;case"fill":this.fillRect(s.x,s.y,s.width,s.height,s.color,!0);break;case"blit":this.blitImage(s.x,s.y,s.width,s.height,s.data,0,!0);break;case"img":if(s.img.complete){if(s.img.width!==s.width||s.img.height!==s.height){ni.Error("Decoded image has incorrect dimensions. Got "+s.img.width+"x"+s.img.height+". Expected "+s.width+"x"+s.height+".");return}this.drawImage(s.img,s.x,s.y)}else s.img._noVNCDisplay=this,s.img.addEventListener("load",this._resumeRenderQ),r=!1;break}r&&this._renderQ.shift()}this._renderQ.length===0&&this._flushPromise!==null&&(this._flushResolve(),this._flushPromise=null,this._flushResolve=null)}}])}()});var Si=re(rt=>{"use strict";Object.defineProperty(rt,"__esModule",{value:!0});rt.Buf8=rt.Buf32=rt.Buf16=void 0;rt.arraySet=Sd;rt.flattenChunks=Ed;rt.shrinkBuf=xd;function xd(e,i){return e.length===i?e:e.subarray?e.subarray(0,i):(e.length=i,e)}function Sd(e,i,r,s,c){if(i.subarray&&e.subarray){e.set(i.subarray(r,r+s),c);return}for(var t=0;t{"use strict";Object.defineProperty(on,"__esModule",{value:!0});on.default=kd;function kd(e,i,r,s){for(var c=e&65535|0,t=e>>>16&65535|0,n=0;r!==0;){n=r>2e3?2e3:r,r-=n;do c=c+i[s++]|0,t=t+c|0;while(--n);c%=65521,t%=65521}return c|t<<16|0}});var ln=re(hn=>{"use strict";Object.defineProperty(hn,"__esModule",{value:!0});hn.default=ga;function ga(){for(var e,i=[],r=0;r<256;r++){e=r;for(var s=0;s<8;s++)e=e&1?3988292384^e>>>1:e>>>1;i[r]=e}return i}var qp=ga()});var pa=re(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.default=Ld;var br=30,Bd=12;function Ld(e,i){var r,s,c,t,n,h,g,a,l,_,v,u,o,d,f,p,y,w,b,S,A,C,D,L,B;r=e.state,s=e.next_in,L=e.input,c=s+(e.avail_in-5),t=e.next_out,B=e.output,n=t-(i-e.avail_out),h=t+(e.avail_out-257),g=r.dmax,a=r.wsize,l=r.whave,_=r.wnext,v=r.window,u=r.hold,o=r.bits,d=r.lencode,f=r.distcode,p=(1<>>24,u>>>=b,o-=b,b=w>>>16&255,b===0)B[t++]=w&65535;else if(b&16){S=w&65535,b&=15,b&&(o>>=b,o-=b),o<15&&(u+=L[s++]<>>24,u>>>=b,o-=b,b=w>>>16&255,b&16){if(A=w&65535,b&=15,og){e.msg="invalid distance too far back",r.mode=br;break e}if(u>>>=b,o-=b,b=t-n,A>b){if(b=A-b,b>l&&r.sane){e.msg="invalid distance too far back",r.mode=br;break e}if(C=0,D=v,_===0){if(C+=a-b,b2;)B[t++]=D[C++],B[t++]=D[C++],B[t++]=D[C++],S-=3;S&&(B[t++]=D[C++],S>1&&(B[t++]=D[C++]))}else{C=t-A;do B[t++]=B[C++],B[t++]=B[C++],B[t++]=B[C++],S-=3;while(S>2);S&&(B[t++]=B[C++],S>1&&(B[t++]=B[C++]))}}else if(b&64){e.msg="invalid distance code",r.mode=br;break e}else{w=f[(w&65535)+(u&(1<>3,s-=S,o-=S<<3,u&=(1<{"use strict";function dn(e){"@babel/helpers - typeof";return dn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},dn(e)}Object.defineProperty(fn,"__esModule",{value:!0});fn.default=Fd;var va=Id(Si());function wa(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(wa=function(c){return c?r:i})(e)}function Id(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||dn(e)!="object"&&typeof e!="function")return{default:e};var r=wa(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}var ai=15,ma=852,ya=592,ba=0,un=1,Aa=2,Dd=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Rd=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],Md=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],Td=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function Fd(e,i,r,s,c,t,n,h){var g=h.bits,a=0,l=0,_=0,v=0,u=0,o=0,d=0,f=0,p=0,y=0,w,b,S,A,C,D=null,L=0,B,R=new va.Buf16(ai+1),F=new va.Buf16(ai+1),Q=null,K=0,N,k,m;for(a=0;a<=ai;a++)R[a]=0;for(l=0;l=1&&R[v]===0;v--);if(u>v&&(u=v),v===0)return c[t++]=1<<24|64<<16|0,c[t++]=1<<24|64<<16|0,h.bits=1,0;for(_=1;_0&&(e===ba||v!==1))return-1;for(F[1]=0,a=1;ama||e===Aa&&p>ya)return 1;for(;;){N=a-d,n[l]B?(k=Q[K+n[l]],m=D[L+n[l]]):(k=96,m=0),w=1<>d)+b]=N<<24|k<<16|m|0;while(b!==0);for(w=1<>=1;if(w!==0?(y&=w-1,y+=w):y=0,l++,--R[a]===0){if(a===v)break;a=i[r+n[l]]}if(a>u&&(y&A)!==S){for(d===0&&(d=u),C+=_,o=a-d,f=1<ma||e===Aa&&p>ya)return 1;S=y&A,c[S]=u<<24|o<<16|C-t|0}}return y!==0&&(c[C+y]=a-d<<24|64<<16|0),h.bits=u,0}});var nh=re(fe=>{"use strict";function yn(e){"@babel/helpers - typeof";return yn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},yn(e)}Object.defineProperty(fe,"__esModule",{value:!0});fe.Z_TREES=fe.Z_STREAM_ERROR=fe.Z_STREAM_END=fe.Z_OK=fe.Z_NEED_DICT=fe.Z_MEM_ERROR=fe.Z_FINISH=fe.Z_DEFLATED=fe.Z_DATA_ERROR=fe.Z_BUF_ERROR=fe.Z_BLOCK=void 0;fe.inflate=Yd;fe.inflateEnd=Jd;fe.inflateGetHeader=Zd;fe.inflateInfo=void 0;fe.inflateInit=qd;fe.inflateInit2=rh;fe.inflateReset=th;fe.inflateReset2=ih;fe.inflateResetKeep=eh;fe.inflateSetDictionary=ef;var Ge=Od(Si()),bn=Sr(an()),ht=Sr(ln()),Pd=Sr(pa()),Ei=Sr(Ca());function Sr(e){return e&&e.__esModule?e:{default:e}}function qa(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(qa=function(c){return c?r:i})(e)}function Od(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||yn(e)!="object"&&typeof e!="function")return{default:e};var r=qa(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}var Qd=0,Va=1,Ya=2,xa=fe.Z_FINISH=4,Kd=fe.Z_BLOCK=5,Ar=fe.Z_TREES=6,$t=fe.Z_OK=0,Xd=fe.Z_STREAM_END=1,Hd=fe.Z_NEED_DICT=2,Ve=fe.Z_STREAM_ERROR=-2,Ja=fe.Z_DATA_ERROR=-3,An=fe.Z_MEM_ERROR=-4,Nd=fe.Z_BUF_ERROR=-5,Sa=fe.Z_DEFLATED=8,Za=1,Ea=2,ka=3,Ba=4,La=5,Ia=6,Da=7,Ra=8,Ma=9,Ta=10,xr=11,bt=12,_n=13,Fa=14,gn=15,Pa=16,Oa=17,Qa=18,Ka=19,wr=20,Cr=21,Xa=22,Ha=23,Na=24,Ua=25,$a=26,pn=27,Wa=28,ja=29,Se=30,wn=31,Ud=32,$d=852,Wd=592,jd=15,Gd=jd;function Ga(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function zd(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Ge.Buf16(320),this.work=new Ge.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function eh(e){var i;return!e||!e.state?Ve:(i=e.state,e.total_in=e.total_out=i.total=0,e.msg="",i.wrap&&(e.adler=i.wrap&1),i.mode=Za,i.last=0,i.havedict=0,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Ge.Buf32($d),i.distcode=i.distdyn=new Ge.Buf32(Wd),i.sane=1,i.back=-1,$t)}function th(e){var i;return!e||!e.state?Ve:(i=e.state,i.wsize=0,i.whave=0,i.wnext=0,eh(e))}function ih(e,i){var r,s;return!e||!e.state||(s=e.state,i<0?(r=0,i=-i):(r=(i>>4)+1,i<48&&(i&=15)),i&&(i<8||i>15))?Ve:(s.window!==null&&s.wbits!==i&&(s.window=null),s.wrap=r,s.wbits=i,th(e))}function rh(e,i){var r,s;return e?(s=new zd,e.state=s,s.window=null,r=ih(e,i),r!==$t&&(e.state=null),r):Ve}function qd(e){return rh(e,Gd)}var za=!0,vn,mn;function Vd(e){if(za){var i;for(vn=new Ge.Buf32(512),mn=new Ge.Buf32(32),i=0;i<144;)e.lens[i++]=8;for(;i<256;)e.lens[i++]=9;for(;i<280;)e.lens[i++]=7;for(;i<288;)e.lens[i++]=8;for((0,Ei.default)(Va,e.lens,0,288,vn,0,e.work,{bits:9}),i=0;i<32;)e.lens[i++]=5;(0,Ei.default)(Ya,e.lens,0,32,mn,0,e.work,{bits:5}),za=!1}e.lencode=vn,e.lenbits=9,e.distcode=mn,e.distbits=5}function sh(e,i,r,s){var c,t=e.state;return t.window===null&&(t.wsize=1<=t.wsize?(Ge.arraySet(t.window,i,r-t.wsize,t.wsize,0),t.wnext=0,t.whave=t.wsize):(c=t.wsize-t.wnext,c>s&&(c=s),Ge.arraySet(t.window,i,r-s,c,t.wnext),s-=c,s?(Ge.arraySet(t.window,i,r-s,s,0),t.wnext=s,t.whave=t.wsize):(t.wnext+=c,t.wnext===t.wsize&&(t.wnext=0),t.whave>>8&255,r.check=(0,ht.default)(r.check,L,2,0),a=0,l=0,r.mode=Ea;break}if(r.flags=0,r.head&&(r.head.done=!1),!(r.wrap&1)||(((a&255)<<8)+(a>>8))%31){e.msg="incorrect header check",r.mode=Se;break}if((a&15)!==Sa){e.msg="unknown compression method",r.mode=Se;break}if(a>>>=4,l-=4,C=(a&15)+8,r.wbits===0)r.wbits=C;else if(C>r.wbits){e.msg="invalid window size",r.mode=Se;break}r.dmax=1<>8&1),r.flags&512&&(L[0]=a&255,L[1]=a>>>8&255,r.check=(0,ht.default)(r.check,L,2,0)),a=0,l=0,r.mode=ka;case ka:for(;l<32;){if(h===0)break e;h--,a+=s[t++]<>>8&255,L[2]=a>>>16&255,L[3]=a>>>24&255,r.check=(0,ht.default)(r.check,L,4,0)),a=0,l=0,r.mode=Ba;case Ba:for(;l<16;){if(h===0)break e;h--,a+=s[t++]<>8),r.flags&512&&(L[0]=a&255,L[1]=a>>>8&255,r.check=(0,ht.default)(r.check,L,2,0)),a=0,l=0,r.mode=La;case La:if(r.flags&1024){for(;l<16;){if(h===0)break e;h--,a+=s[t++]<>>8&255,r.check=(0,ht.default)(r.check,L,2,0)),a=0,l=0}else r.head&&(r.head.extra=null);r.mode=Ia;case Ia:if(r.flags&1024&&(u=r.length,u>h&&(u=h),u&&(r.head&&(C=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),Ge.arraySet(r.head.extra,s,t,u,C)),r.flags&512&&(r.check=(0,ht.default)(r.check,s,u,t)),h-=u,t+=u,r.length-=u),r.length))break e;r.length=0,r.mode=Da;case Da:if(r.flags&2048){if(h===0)break e;u=0;do C=s[t+u++],r.head&&C&&r.length<65536&&(r.head.name+=String.fromCharCode(C));while(C&&u>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=bt;break;case Ta:for(;l<32;){if(h===0)break e;h--,a+=s[t++]<>>=l&7,l-=l&7,r.mode=pn;break}for(;l<3;){if(h===0)break e;h--,a+=s[t++]<>>=1,l-=1,a&3){case 0:r.mode=Fa;break;case 1:if(Vd(r),r.mode=wr,i===Ar){a>>>=2,l-=2;break e}break;case 2:r.mode=Oa;break;case 3:e.msg="invalid block type",r.mode=Se}a>>>=2,l-=2;break;case Fa:for(a>>>=l&7,l-=l&7;l<32;){if(h===0)break e;h--,a+=s[t++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=Se;break}if(r.length=a&65535,a=0,l=0,r.mode=gn,i===Ar)break e;case gn:r.mode=Pa;case Pa:if(u=r.length,u){if(u>h&&(u=h),u>g&&(u=g),u===0)break e;Ge.arraySet(c,s,t,u,n),h-=u,t+=u,g-=u,n+=u,r.length-=u;break}r.mode=bt;break;case Oa:for(;l<14;){if(h===0)break e;h--,a+=s[t++]<>>=5,l-=5,r.ndist=(a&31)+1,a>>>=5,l-=5,r.ncode=(a&15)+4,a>>>=4,l-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=Se;break}r.have=0,r.mode=Qa;case Qa:for(;r.have>>=3,l-=3}for(;r.have<19;)r.lens[F[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,B={bits:r.lenbits},D=(0,Ei.default)(Qd,r.lens,0,19,r.lencode,0,r.work,B),r.lenbits=B.bits,D){e.msg="invalid code lengths set",r.mode=Se;break}r.have=0,r.mode=Ka;case Ka:for(;r.have>>24,y=f>>>16&255,w=f&65535,!(p<=l);){if(h===0)break e;h--,a+=s[t++]<>>=p,l-=p,r.lens[r.have++]=w;else{if(w===16){for(R=p+2;l>>=p,l-=p,r.have===0){e.msg="invalid bit length repeat",r.mode=Se;break}C=r.lens[r.have-1],u=3+(a&3),a>>>=2,l-=2}else if(w===17){for(R=p+3;l>>=p,l-=p,C=0,u=3+(a&7),a>>>=3,l-=3}else{for(R=p+7;l>>=p,l-=p,C=0,u=11+(a&127),a>>>=7,l-=7}if(r.have+u>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=Se;break}for(;u--;)r.lens[r.have++]=C}}if(r.mode===Se)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=Se;break}if(r.lenbits=9,B={bits:r.lenbits},D=(0,Ei.default)(Va,r.lens,0,r.nlen,r.lencode,0,r.work,B),r.lenbits=B.bits,D){e.msg="invalid literal/lengths set",r.mode=Se;break}if(r.distbits=6,r.distcode=r.distdyn,B={bits:r.distbits},D=(0,Ei.default)(Ya,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,B),r.distbits=B.bits,D){e.msg="invalid distances set",r.mode=Se;break}if(r.mode=wr,i===Ar)break e;case wr:r.mode=Cr;case Cr:if(h>=6&&g>=258){e.next_out=n,e.avail_out=g,e.next_in=t,e.avail_in=h,r.hold=a,r.bits=l,(0,Pd.default)(e,v),n=e.next_out,c=e.output,g=e.avail_out,t=e.next_in,s=e.input,h=e.avail_in,a=r.hold,l=r.bits,r.mode===bt&&(r.back=-1);break}for(r.back=0;f=r.lencode[a&(1<>>24,y=f>>>16&255,w=f&65535,!(p<=l);){if(h===0)break e;h--,a+=s[t++]<>b)],p=f>>>24,y=f>>>16&255,w=f&65535,!(b+p<=l);){if(h===0)break e;h--,a+=s[t++]<>>=b,l-=b,r.back+=b}if(a>>>=p,l-=p,r.back+=p,r.length=w,y===0){r.mode=$a;break}if(y&32){r.back=-1,r.mode=bt;break}if(y&64){e.msg="invalid literal/length code",r.mode=Se;break}r.extra=y&15,r.mode=Xa;case Xa:if(r.extra){for(R=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=Ha;case Ha:for(;f=r.distcode[a&(1<>>24,y=f>>>16&255,w=f&65535,!(p<=l);){if(h===0)break e;h--,a+=s[t++]<>b)],p=f>>>24,y=f>>>16&255,w=f&65535,!(b+p<=l);){if(h===0)break e;h--,a+=s[t++]<>>=b,l-=b,r.back+=b}if(a>>>=p,l-=p,r.back+=p,y&64){e.msg="invalid distance code",r.mode=Se;break}r.offset=w,r.extra=y&15,r.mode=Na;case Na:if(r.extra){for(R=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=Se;break}r.mode=Ua;case Ua:if(g===0)break e;if(u=v-g,r.offset>u){if(u=r.offset-u,u>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=Se;break}u>r.wnext?(u-=r.wnext,o=r.wsize-u):o=r.wnext-u,u>r.length&&(u=r.length),d=r.window}else d=c,o=n-r.offset,u=r.length;u>g&&(u=g),g-=u,r.length-=u;do c[n++]=d[o++];while(--u);r.length===0&&(r.mode=Cr);break;case $a:if(g===0)break e;c[n++]=r.length,g--,r.mode=Cr;break;case pn:if(r.wrap){for(;l<32;){if(h===0)break e;h--,a|=s[t++]<{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});Cn.default=tf;function tf(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}});var kr=re(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.default=void 0;var Sn=nh(),rf=sf(xn());function sf(e){return e&&e.__esModule?e:{default:e}}function ki(e){"@babel/helpers - typeof";return ki=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},ki(e)}function nf(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function oh(e,i){for(var r=0;rthis.chunkSize&&(this.chunkSize=r,this.strm.output=new Uint8Array(this.chunkSize)),this.strm.next_out=0,this.strm.avail_out=r;var s=(0,Sn.inflate)(this.strm,0);if(s<0)throw new Error("zlib inflate failed");if(this.strm.next_out!=r)throw new Error("Incomplete zlib block");return new Uint8Array(this.strm.output.buffer,0,this.strm.next_out)}},{key:"reset",value:function(){(0,Sn.inflateReset)(this.strm)}}])}()});var Ih=re(jt=>{"use strict";function In(e){"@babel/helpers - typeof";return In=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},In(e)}Object.defineProperty(jt,"__esModule",{value:!0});jt._tr_align=Bf;jt._tr_flush_block=Lf;jt._tr_init=kf;jt._tr_stored_block=Lh;jt._tr_tally=If;var lf=cf(Si());function _h(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(_h=function(c){return c?r:i})(e)}function cf(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||In(e)!="object"&&typeof e!="function")return{default:e};var r=_h(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}var uf=4,ah=0,hh=1,df=2;function li(e){for(var i=e.length;--i>=0;)e[i]=0}var ff=0,gh=1,_f=2,gf=3,pf=258,Mn=29,Mi=256,Li=Mi+1+Mn,hi=30,Tn=19,ph=2*Li+1,Wt=15,En=16,vf=7,Fn=256,vh=16,mh=17,yh=18,Dn=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],Br=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],mf=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],bh=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],yf=512,At=new Array((Li+2)*2);li(At);var Bi=new Array(hi*2);li(Bi);var Ii=new Array(yf);li(Ii);var Di=new Array(pf-gf+1);li(Di);var Pn=new Array(Mn);li(Pn);var Lr=new Array(hi);li(Lr);function kn(e,i,r,s,c){this.static_tree=e,this.extra_bits=i,this.extra_base=r,this.elems=s,this.max_length=c,this.has_stree=e&&e.length}var Ah,wh,Ch;function Bn(e,i){this.dyn_tree=e,this.max_code=0,this.stat_desc=i}function xh(e){return e<256?Ii[e]:Ii[256+(e>>>7)]}function Ri(e,i){e.pending_buf[e.pending++]=i&255,e.pending_buf[e.pending++]=i>>>8&255}function We(e,i,r){e.bi_valid>En-r?(e.bi_buf|=i<>En-e.bi_valid,e.bi_valid+=r-En):(e.bi_buf|=i<>>=1,r<<=1;while(--i>0);return r>>>1}function bf(e){e.bi_valid===16?(Ri(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function Af(e,i){var r=i.dyn_tree,s=i.max_code,c=i.stat_desc.static_tree,t=i.stat_desc.has_stree,n=i.stat_desc.extra_bits,h=i.stat_desc.extra_base,g=i.stat_desc.max_length,a,l,_,v,u,o,d=0;for(v=0;v<=Wt;v++)e.bl_count[v]=0;for(r[e.heap[e.heap_max]*2+1]=0,a=e.heap_max+1;ag&&(v=g,d++),r[l*2+1]=v,!(l>s)&&(e.bl_count[v]++,u=0,l>=h&&(u=n[l-h]),o=r[l*2],e.opt_len+=o*(v+u),t&&(e.static_len+=o*(c[l*2+1]+u)));if(d!==0){do{for(v=g-1;e.bl_count[v]===0;)v--;e.bl_count[v]--,e.bl_count[v+1]+=2,e.bl_count[g]--,d-=2}while(d>0);for(v=g;v!==0;v--)for(l=e.bl_count[v];l!==0;)_=e.heap[--a],!(_>s)&&(r[_*2+1]!==v&&(e.opt_len+=(v-r[_*2+1])*r[_*2],r[_*2+1]=v),l--)}}function Eh(e,i,r){var s=new Array(Wt+1),c=0,t,n;for(t=1;t<=Wt;t++)s[t]=c=c+r[t-1]<<1;for(n=0;n<=i;n++){var h=e[n*2+1];h!==0&&(e[n*2]=Sh(s[h]++,h))}}function wf(){var e,i,r,s,c,t=new Array(Wt+1);for(r=0,s=0;s>=7;s8?Ri(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function Cf(e,i,r,s){Bh(e),s&&(Ri(e,r),Ri(e,~r)),lf.arraySet(e.pending_buf,e.window,i,r,e.pending),e.pending+=r}function lh(e,i,r,s){var c=i*2,t=r*2;return e[c]>1;n>=1;n--)Ln(e,r,n);a=t;do n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ln(e,r,1),h=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=h,r[a*2]=r[n*2]+r[h*2],e.depth[a]=(e.depth[n]>=e.depth[h]?e.depth[n]:e.depth[h])+1,r[n*2+1]=r[h*2+1]=a,e.heap[1]=a++,Ln(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Af(e,i),Eh(r,g,e.bl_count)}function uh(e,i,r){var s,c=-1,t,n=i[0*2+1],h=0,g=7,a=4;for(n===0&&(g=138,a=3),i[(r+1)*2+1]=65535,s=0;s<=r;s++)t=n,n=i[(s+1)*2+1],!(++h=3&&e.bl_tree[bh[i]*2+1]===0;i--);return e.opt_len+=3*(i+1)+5+5+4,i}function Sf(e,i,r,s){var c;for(We(e,i-257,5),We(e,r-1,5),We(e,s-4,4),c=0;c>>=1)if(i&1&&e.dyn_ltree[r*2]!==0)return ah;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return hh;for(r=32;r0?(e.strm.data_type===df&&(e.strm.data_type=Ef(e)),Rn(e,e.l_desc),Rn(e,e.d_desc),n=xf(e),c=e.opt_len+3+7>>>3,t=e.static_len+3+7>>>3,t<=c&&(c=t)):c=t=r+5,r+4<=c&&i!==-1?Lh(e,i,r,s):e.strategy===uf||t===c?(We(e,(gh<<1)+(s?1:0),3),ch(e,At,Bi)):(We(e,(_f<<1)+(s?1:0),3),Sf(e,e.l_desc.max_code+1,e.d_desc.max_code+1,n+1),ch(e,e.dyn_ltree,e.dyn_dtree)),kh(e),s&&Bh(e)}function If(e,i,r){return e.pending_buf[e.d_buf+e.last_lit*2]=i>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=i&255,e.pending_buf[e.l_buf+e.last_lit]=r&255,e.last_lit++,i===0?e.dyn_ltree[r*2]++:(e.matches++,i--,e.dyn_ltree[(Di[r]+Mi+1)*2]++,e.dyn_dtree[xh(i)*2]++),e.last_lit===e.lit_bufsize-1}});var Dh=re(Ir=>{"use strict";Object.defineProperty(Ir,"__esModule",{value:!0});Ir.default=void 0;var nv=Ir.default={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var Nh=re(oe=>{"use strict";function Kn(e){"@babel/helpers - typeof";return Kn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Kn(e)}Object.defineProperty(oe,"__esModule",{value:!0});oe.Z_UNKNOWN=oe.Z_STREAM_ERROR=oe.Z_STREAM_END=oe.Z_RLE=oe.Z_PARTIAL_FLUSH=oe.Z_OK=oe.Z_NO_FLUSH=oe.Z_HUFFMAN_ONLY=oe.Z_FULL_FLUSH=oe.Z_FIXED=oe.Z_FINISH=oe.Z_FILTERED=oe.Z_DEFLATED=oe.Z_DEFAULT_STRATEGY=oe.Z_DEFAULT_COMPRESSION=oe.Z_DATA_ERROR=oe.Z_BUF_ERROR=oe.Z_BLOCK=void 0;oe.deflate=o_;oe.deflateEnd=a_;oe.deflateInfo=void 0;oe.deflateInit=n_;oe.deflateInit2=Hh;oe.deflateReset=Xh;oe.deflateResetKeep=Kh;oe.deflateSetDictionary=h_;oe.deflateSetHeader=s_;var Ne=Oh(Si()),Ye=Oh(Ih()),Fh=Nn(an()),kt=Nn(ln()),Df=Nn(Dh());function Nn(e){return e&&e.__esModule?e:{default:e}}function Ph(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(Ph=function(c){return c?r:i})(e)}function Oh(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||Kn(e)!="object"&&typeof e!="function")return{default:e};var r=Ph(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}var Vt=oe.Z_NO_FLUSH=0,Rf=oe.Z_PARTIAL_FLUSH=1,Mf=oe.Z_FULL_FLUSH=3,Rt=oe.Z_FINISH=4,Rh=oe.Z_BLOCK=5,ut=oe.Z_OK=0,Mh=oe.Z_STREAM_END=1,Je=oe.Z_STREAM_ERROR=-2,Tf=oe.Z_DATA_ERROR=-3,On=oe.Z_BUF_ERROR=-5,Ff=oe.Z_DEFAULT_COMPRESSION=-1,Pf=oe.Z_FILTERED=1,Dr=oe.Z_HUFFMAN_ONLY=2,Of=oe.Z_RLE=3,Qf=oe.Z_FIXED=4,Kf=oe.Z_DEFAULT_STRATEGY=0,Xf=oe.Z_UNKNOWN=2,Fr=oe.Z_DEFLATED=8,Hf=9,Nf=15,Uf=8,$f=29,Wf=256,Xn=Wf+1+$f,jf=30,Gf=19,zf=2*Xn+1,qf=15,_e=3,It=258,st=It+_e+1,Vf=32,Pr=42,Hn=69,Rr=73,Mr=91,Tr=103,Gt=113,Fi=666,Re=1,Pi=2,zt=3,di=4,Yf=3;function Dt(e,i){return e.msg=Df.default[i],i}function Th(e){return(e<<1)-(e>4?9:0)}function Lt(e){for(var i=e.length;--i>=0;)e[i]=0}function Bt(e){var i=e.state,r=i.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(Ne.arraySet(e.output,i.pending_buf,i.pending_out,r,e.next_out),e.next_out+=r,i.pending_out+=r,e.total_out+=r,e.avail_out-=r,i.pending-=r,i.pending===0&&(i.pending_out=0))}function Fe(e,i){Ye._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,i),e.block_start=e.strstart,Bt(e.strm)}function ve(e,i){e.pending_buf[e.pending++]=i}function Ti(e,i){e.pending_buf[e.pending++]=i>>>8&255,e.pending_buf[e.pending++]=i&255}function Jf(e,i,r,s){var c=e.avail_in;return c>s&&(c=s),c===0?0:(e.avail_in-=c,Ne.arraySet(i,e.input,e.next_in,c,r),e.state.wrap===1?e.adler=(0,Fh.default)(e.adler,i,c,r):e.state.wrap===2&&(e.adler=(0,kt.default)(e.adler,i,c,r)),e.next_in+=c,e.total_in+=c,c)}function Qh(e,i){var r=e.max_chain_length,s=e.strstart,c,t,n=e.prev_length,h=e.nice_match,g=e.strstart>e.w_size-st?e.strstart-(e.w_size-st):0,a=e.window,l=e.w_mask,_=e.prev,v=e.strstart+It,u=a[s+n-1],o=a[s+n];e.prev_length>=e.good_match&&(r>>=2),h>e.lookahead&&(h=e.lookahead);do if(c=i,!(a[c+n]!==o||a[c+n-1]!==u||a[c]!==a[s]||a[++c]!==a[s+1])){s+=2,c++;do;while(a[++s]===a[++c]&&a[++s]===a[++c]&&a[++s]===a[++c]&&a[++s]===a[++c]&&a[++s]===a[++c]&&a[++s]===a[++c]&&a[++s]===a[++c]&&a[++s]===a[++c]&&sn){if(e.match_start=i,n=t,t>=h)break;u=a[s+n-1],o=a[s+n]}}while((i=_[i&l])>g&&--r!==0);return n<=e.lookahead?n:e.lookahead}function qt(e){var i=e.w_size,r,s,c,t,n;do{if(t=e.window_size-e.lookahead-e.strstart,e.strstart>=i+(i-st)){Ne.arraySet(e.window,e.window,i,i,0),e.match_start-=i,e.strstart-=i,e.block_start-=i,s=e.hash_size,r=s;do c=e.head[--r],e.head[r]=c>=i?c-i:0;while(--s);s=i,r=s;do c=e.prev[--r],e.prev[r]=c>=i?c-i:0;while(--s);t+=i}if(e.strm.avail_in===0)break;if(s=Jf(e.strm,e.window,e.strstart+e.lookahead,t),e.lookahead+=s,e.lookahead+e.insert>=_e)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(qt(e),e.lookahead===0&&i===Vt)return Re;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var s=e.block_start+r;if((e.strstart===0||e.strstart>=s)&&(e.lookahead=e.strstart-s,e.strstart=s,Fe(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-st&&(Fe(e,!1),e.strm.avail_out===0))return Re}return e.insert=0,i===Rt?(Fe(e,!0),e.strm.avail_out===0?zt:di):(e.strstart>e.block_start&&(Fe(e,!1),e.strm.avail_out===0),Re)}function Qn(e,i){for(var r,s;;){if(e.lookahead=_e&&(e.ins_h=(e.ins_h<=_e)if(s=Ye._tr_tally(e,e.strstart-e.match_start,e.match_length-_e),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=_e){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<=_e&&(e.ins_h=(e.ins_h<4096)&&(e.match_length=_e-1)),e.prev_length>=_e&&e.match_length<=e.prev_length){c=e.strstart+e.lookahead-_e,s=Ye._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-_e),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=c&&(e.ins_h=(e.ins_h<=_e&&e.strstart>0&&(c=e.strstart-1,s=n[c],s===n[++c]&&s===n[++c]&&s===n[++c])){t=e.strstart+It;do;while(s===n[++c]&&s===n[++c]&&s===n[++c]&&s===n[++c]&&s===n[++c]&&s===n[++c]&&s===n[++c]&&s===n[++c]&&ce.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=_e?(r=Ye._tr_tally(e,1,e.match_length-_e),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=Ye._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(Fe(e,!1),e.strm.avail_out===0))return Re}return e.insert=0,i===Rt?(Fe(e,!0),e.strm.avail_out===0?zt:di):e.last_lit&&(Fe(e,!1),e.strm.avail_out===0)?Re:Pi}function t_(e,i){for(var r;;){if(e.lookahead===0&&(qt(e),e.lookahead===0)){if(i===Vt)return Re;break}if(e.match_length=0,r=Ye._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(Fe(e,!1),e.strm.avail_out===0))return Re}return e.insert=0,i===Rt?(Fe(e,!0),e.strm.avail_out===0?zt:di):e.last_lit&&(Fe(e,!1),e.strm.avail_out===0)?Re:Pi}function ct(e,i,r,s,c){this.good_length=e,this.max_lazy=i,this.nice_length=r,this.max_chain=s,this.func=c}var ui;ui=[new ct(0,0,0,0,Zf),new ct(4,4,8,4,Qn),new ct(4,5,16,8,Qn),new ct(4,6,32,32,Qn),new ct(4,4,16,16,ci),new ct(8,16,32,32,ci),new ct(8,16,128,128,ci),new ct(8,32,128,256,ci),new ct(32,128,258,1024,ci),new ct(32,258,258,4096,ci)];function i_(e){e.window_size=2*e.w_size,Lt(e.head),e.max_lazy_match=ui[e.level].max_lazy,e.good_match=ui[e.level].good_length,e.nice_match=ui[e.level].nice_length,e.max_chain_length=ui[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=_e-1,e.match_available=0,e.ins_h=0}function r_(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Fr,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Ne.Buf16(zf*2),this.dyn_dtree=new Ne.Buf16((2*jf+1)*2),this.bl_tree=new Ne.Buf16((2*Gf+1)*2),Lt(this.dyn_ltree),Lt(this.dyn_dtree),Lt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Ne.Buf16(qf+1),this.heap=new Ne.Buf16(2*Xn+1),Lt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Ne.Buf16(2*Xn+1),Lt(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Kh(e){var i;return!e||!e.state?Dt(e,Je):(e.total_in=e.total_out=0,e.data_type=Xf,i=e.state,i.pending=0,i.pending_out=0,i.wrap<0&&(i.wrap=-i.wrap),i.status=i.wrap?Pr:Gt,e.adler=i.wrap===2?0:1,i.last_flush=Vt,Ye._tr_init(i),ut)}function Xh(e){var i=Kh(e);return i===ut&&i_(e.state),i}function s_(e,i){return!e||!e.state||e.state.wrap!==2?Je:(e.state.gzhead=i,ut)}function Hh(e,i,r,s,c,t){if(!e)return Je;var n=1;if(i===Ff&&(i=6),s<0?(n=0,s=-s):s>15&&(n=2,s-=16),c<1||c>Hf||r!==Fr||s<8||s>15||i<0||i>9||t<0||t>Qf)return Dt(e,Je);s===8&&(s=9);var h=new r_;return e.state=h,h.strm=e,h.wrap=n,h.gzhead=null,h.w_bits=s,h.w_size=1<Rh||i<0)return e?Dt(e,Je):Je;if(s=e.state,!e.output||!e.input&&e.avail_in!==0||s.status===Fi&&i!==Rt)return Dt(e,e.avail_out===0?On:Je);if(s.strm=e,r=s.last_flush,s.last_flush=i,s.status===Pr)if(s.wrap===2)e.adler=0,ve(s,31),ve(s,139),ve(s,8),s.gzhead?(ve(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(s.gzhead.extra?4:0)+(s.gzhead.name?8:0)+(s.gzhead.comment?16:0)),ve(s,s.gzhead.time&255),ve(s,s.gzhead.time>>8&255),ve(s,s.gzhead.time>>16&255),ve(s,s.gzhead.time>>24&255),ve(s,s.level===9?2:s.strategy>=Dr||s.level<2?4:0),ve(s,s.gzhead.os&255),s.gzhead.extra&&s.gzhead.extra.length&&(ve(s,s.gzhead.extra.length&255),ve(s,s.gzhead.extra.length>>8&255)),s.gzhead.hcrc&&(e.adler=(0,kt.default)(e.adler,s.pending_buf,s.pending,0)),s.gzindex=0,s.status=Hn):(ve(s,0),ve(s,0),ve(s,0),ve(s,0),ve(s,0),ve(s,s.level===9?2:s.strategy>=Dr||s.level<2?4:0),ve(s,Yf),s.status=Gt);else{var n=Fr+(s.w_bits-8<<4)<<8,h=-1;s.strategy>=Dr||s.level<2?h=0:s.level<6?h=1:s.level===6?h=2:h=3,n|=h<<6,s.strstart!==0&&(n|=Vf),n+=31-n%31,s.status=Gt,Ti(s,n),s.strstart!==0&&(Ti(s,e.adler>>>16),Ti(s,e.adler&65535)),e.adler=1}if(s.status===Hn)if(s.gzhead.extra){for(c=s.pending;s.gzindex<(s.gzhead.extra.length&65535)&&!(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>c&&(e.adler=(0,kt.default)(e.adler,s.pending_buf,s.pending-c,c)),Bt(e),c=s.pending,s.pending===s.pending_buf_size));)ve(s,s.gzhead.extra[s.gzindex]&255),s.gzindex++;s.gzhead.hcrc&&s.pending>c&&(e.adler=(0,kt.default)(e.adler,s.pending_buf,s.pending-c,c)),s.gzindex===s.gzhead.extra.length&&(s.gzindex=0,s.status=Rr)}else s.status=Rr;if(s.status===Rr)if(s.gzhead.name){c=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>c&&(e.adler=(0,kt.default)(e.adler,s.pending_buf,s.pending-c,c)),Bt(e),c=s.pending,s.pending===s.pending_buf_size)){t=1;break}s.gzindexc&&(e.adler=(0,kt.default)(e.adler,s.pending_buf,s.pending-c,c)),t===0&&(s.gzindex=0,s.status=Mr)}else s.status=Mr;if(s.status===Mr)if(s.gzhead.comment){c=s.pending;do{if(s.pending===s.pending_buf_size&&(s.gzhead.hcrc&&s.pending>c&&(e.adler=(0,kt.default)(e.adler,s.pending_buf,s.pending-c,c)),Bt(e),c=s.pending,s.pending===s.pending_buf_size)){t=1;break}s.gzindexc&&(e.adler=(0,kt.default)(e.adler,s.pending_buf,s.pending-c,c)),t===0&&(s.status=Tr)}else s.status=Tr;if(s.status===Tr&&(s.gzhead.hcrc?(s.pending+2>s.pending_buf_size&&Bt(e),s.pending+2<=s.pending_buf_size&&(ve(s,e.adler&255),ve(s,e.adler>>8&255),e.adler=0,s.status=Gt)):s.status=Gt),s.pending!==0){if(Bt(e),e.avail_out===0)return s.last_flush=-1,ut}else if(e.avail_in===0&&Th(i)<=Th(r)&&i!==Rt)return Dt(e,On);if(s.status===Fi&&e.avail_in!==0)return Dt(e,On);if(e.avail_in!==0||s.lookahead!==0||i!==Vt&&s.status!==Fi){var g=s.strategy===Dr?t_(s,i):s.strategy===Of?e_(s,i):ui[s.level].func(s,i);if((g===zt||g===di)&&(s.status=Fi),g===Re||g===zt)return e.avail_out===0&&(s.last_flush=-1),ut;if(g===Pi&&(i===Rf?Ye._tr_align(s):i!==Rh&&(Ye._tr_stored_block(s,0,0,!1),i===Mf&&(Lt(s.head),s.lookahead===0&&(s.strstart=0,s.block_start=0,s.insert=0))),Bt(e),e.avail_out===0))return s.last_flush=-1,ut}return i!==Rt?ut:s.wrap<=0?Mh:(s.wrap===2?(ve(s,e.adler&255),ve(s,e.adler>>8&255),ve(s,e.adler>>16&255),ve(s,e.adler>>24&255),ve(s,e.total_in&255),ve(s,e.total_in>>8&255),ve(s,e.total_in>>16&255),ve(s,e.total_in>>24&255)):(Ti(s,e.adler>>>16),Ti(s,e.adler&65535)),Bt(e),s.wrap>0&&(s.wrap=-s.wrap),s.pending!==0?ut:Mh)}function a_(e){var i;return!e||!e.state?Je:(i=e.state.status,i!==Pr&&i!==Hn&&i!==Rr&&i!==Mr&&i!==Tr&&i!==Gt&&i!==Fi?Dt(e,Je):(e.state=null,i===Gt?Dt(e,Tf):ut))}function h_(e,i){var r=i.length,s,c,t,n,h,g,a,l;if(!e||!e.state||(s=e.state,n=s.wrap,n===2||n===1&&s.status!==Pr||s.lookahead))return Je;for(n===1&&(e.adler=(0,Fh.default)(e.adler,i,r,0)),s.wrap=0,r>=s.w_size&&(n===0&&(Lt(s.head),s.strstart=0,s.block_start=0,s.insert=0),l=new Ne.Buf8(s.w_size),Ne.arraySet(l,i,r-s.w_size,s.w_size,0),i=l,r=s.w_size),h=e.avail_in,g=e.next_in,a=e.input,e.avail_in=r,e.next_in=0,e.input=i,qt(s);s.lookahead>=_e;){c=s.strstart,t=s.lookahead-(_e-1);do s.ins_h=(s.ins_h<{"use strict";Object.defineProperty(Or,"__esModule",{value:!0});Or.default=void 0;var fi=Nh(),l_=c_(xn());function c_(e){return e&&e.__esModule?e:{default:e}}function Oi(e){"@babel/helpers - typeof";return Oi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Oi(e)}function u_(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function Uh(e,i){for(var r=0;r0){var t=[c],n=c.length;do{if(this.strm.output=new Uint8Array(this.chunkSize),this.strm.next_out=0,this.strm.avail_out=this.chunkSize,s=(0,fi.deflate)(this.strm,fi.Z_FULL_FLUSH),s<0)throw new Error("zlib deflate failed");var h=new Uint8Array(this.strm.output.buffer,0,this.strm.next_out);n+=h.length,t.push(h)}while(this.strm.avail_in>0);for(var g=new Uint8Array(n),a=0,l=0;l{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.default=void 0;var uv=Qr.default={XK_VoidSymbol:16777215,XK_BackSpace:65288,XK_Tab:65289,XK_Linefeed:65290,XK_Clear:65291,XK_Return:65293,XK_Pause:65299,XK_Scroll_Lock:65300,XK_Sys_Req:65301,XK_Escape:65307,XK_Delete:65535,XK_Multi_key:65312,XK_Codeinput:65335,XK_SingleCandidate:65340,XK_MultipleCandidate:65341,XK_PreviousCandidate:65342,XK_Kanji:65313,XK_Muhenkan:65314,XK_Henkan_Mode:65315,XK_Henkan:65315,XK_Romaji:65316,XK_Hiragana:65317,XK_Katakana:65318,XK_Hiragana_Katakana:65319,XK_Zenkaku:65320,XK_Hankaku:65321,XK_Zenkaku_Hankaku:65322,XK_Touroku:65323,XK_Massyo:65324,XK_Kana_Lock:65325,XK_Kana_Shift:65326,XK_Eisu_Shift:65327,XK_Eisu_toggle:65328,XK_Kanji_Bangou:65335,XK_Zen_Koho:65341,XK_Mae_Koho:65342,XK_Home:65360,XK_Left:65361,XK_Up:65362,XK_Right:65363,XK_Down:65364,XK_Prior:65365,XK_Page_Up:65365,XK_Next:65366,XK_Page_Down:65366,XK_End:65367,XK_Begin:65368,XK_Select:65376,XK_Print:65377,XK_Execute:65378,XK_Insert:65379,XK_Undo:65381,XK_Redo:65382,XK_Menu:65383,XK_Find:65384,XK_Cancel:65385,XK_Help:65386,XK_Break:65387,XK_Mode_switch:65406,XK_script_switch:65406,XK_Num_Lock:65407,XK_KP_Space:65408,XK_KP_Tab:65417,XK_KP_Enter:65421,XK_KP_F1:65425,XK_KP_F2:65426,XK_KP_F3:65427,XK_KP_F4:65428,XK_KP_Home:65429,XK_KP_Left:65430,XK_KP_Up:65431,XK_KP_Right:65432,XK_KP_Down:65433,XK_KP_Prior:65434,XK_KP_Page_Up:65434,XK_KP_Next:65435,XK_KP_Page_Down:65435,XK_KP_End:65436,XK_KP_Begin:65437,XK_KP_Insert:65438,XK_KP_Delete:65439,XK_KP_Equal:65469,XK_KP_Multiply:65450,XK_KP_Add:65451,XK_KP_Separator:65452,XK_KP_Subtract:65453,XK_KP_Decimal:65454,XK_KP_Divide:65455,XK_KP_0:65456,XK_KP_1:65457,XK_KP_2:65458,XK_KP_3:65459,XK_KP_4:65460,XK_KP_5:65461,XK_KP_6:65462,XK_KP_7:65463,XK_KP_8:65464,XK_KP_9:65465,XK_F1:65470,XK_F2:65471,XK_F3:65472,XK_F4:65473,XK_F5:65474,XK_F6:65475,XK_F7:65476,XK_F8:65477,XK_F9:65478,XK_F10:65479,XK_F11:65480,XK_L1:65480,XK_F12:65481,XK_L2:65481,XK_F13:65482,XK_L3:65482,XK_F14:65483,XK_L4:65483,XK_F15:65484,XK_L5:65484,XK_F16:65485,XK_L6:65485,XK_F17:65486,XK_L7:65486,XK_F18:65487,XK_L8:65487,XK_F19:65488,XK_L9:65488,XK_F20:65489,XK_L10:65489,XK_F21:65490,XK_R1:65490,XK_F22:65491,XK_R2:65491,XK_F23:65492,XK_R3:65492,XK_F24:65493,XK_R4:65493,XK_F25:65494,XK_R5:65494,XK_F26:65495,XK_R6:65495,XK_F27:65496,XK_R7:65496,XK_F28:65497,XK_R8:65497,XK_F29:65498,XK_R9:65498,XK_F30:65499,XK_R10:65499,XK_F31:65500,XK_R11:65500,XK_F32:65501,XK_R12:65501,XK_F33:65502,XK_R13:65502,XK_F34:65503,XK_R14:65503,XK_F35:65504,XK_R15:65504,XK_Shift_L:65505,XK_Shift_R:65506,XK_Control_L:65507,XK_Control_R:65508,XK_Caps_Lock:65509,XK_Shift_Lock:65510,XK_Meta_L:65511,XK_Meta_R:65512,XK_Alt_L:65513,XK_Alt_R:65514,XK_Super_L:65515,XK_Super_R:65516,XK_Hyper_L:65517,XK_Hyper_R:65518,XK_ISO_Level3_Shift:65027,XK_ISO_Next_Group:65032,XK_ISO_Prev_Group:65034,XK_ISO_First_Group:65036,XK_ISO_Last_Group:65038,XK_space:32,XK_exclam:33,XK_quotedbl:34,XK_numbersign:35,XK_dollar:36,XK_percent:37,XK_ampersand:38,XK_apostrophe:39,XK_quoteright:39,XK_parenleft:40,XK_parenright:41,XK_asterisk:42,XK_plus:43,XK_comma:44,XK_minus:45,XK_period:46,XK_slash:47,XK_0:48,XK_1:49,XK_2:50,XK_3:51,XK_4:52,XK_5:53,XK_6:54,XK_7:55,XK_8:56,XK_9:57,XK_colon:58,XK_semicolon:59,XK_less:60,XK_equal:61,XK_greater:62,XK_question:63,XK_at:64,XK_A:65,XK_B:66,XK_C:67,XK_D:68,XK_E:69,XK_F:70,XK_G:71,XK_H:72,XK_I:73,XK_J:74,XK_K:75,XK_L:76,XK_M:77,XK_N:78,XK_O:79,XK_P:80,XK_Q:81,XK_R:82,XK_S:83,XK_T:84,XK_U:85,XK_V:86,XK_W:87,XK_X:88,XK_Y:89,XK_Z:90,XK_bracketleft:91,XK_backslash:92,XK_bracketright:93,XK_asciicircum:94,XK_underscore:95,XK_grave:96,XK_quoteleft:96,XK_a:97,XK_b:98,XK_c:99,XK_d:100,XK_e:101,XK_f:102,XK_g:103,XK_h:104,XK_i:105,XK_j:106,XK_k:107,XK_l:108,XK_m:109,XK_n:110,XK_o:111,XK_p:112,XK_q:113,XK_r:114,XK_s:115,XK_t:116,XK_u:117,XK_v:118,XK_w:119,XK_x:120,XK_y:121,XK_z:122,XK_braceleft:123,XK_bar:124,XK_braceright:125,XK_asciitilde:126,XK_nobreakspace:160,XK_exclamdown:161,XK_cent:162,XK_sterling:163,XK_currency:164,XK_yen:165,XK_brokenbar:166,XK_section:167,XK_diaeresis:168,XK_copyright:169,XK_ordfeminine:170,XK_guillemotleft:171,XK_notsign:172,XK_hyphen:173,XK_registered:174,XK_macron:175,XK_degree:176,XK_plusminus:177,XK_twosuperior:178,XK_threesuperior:179,XK_acute:180,XK_mu:181,XK_paragraph:182,XK_periodcentered:183,XK_cedilla:184,XK_onesuperior:185,XK_masculine:186,XK_guillemotright:187,XK_onequarter:188,XK_onehalf:189,XK_threequarters:190,XK_questiondown:191,XK_Agrave:192,XK_Aacute:193,XK_Acircumflex:194,XK_Atilde:195,XK_Adiaeresis:196,XK_Aring:197,XK_AE:198,XK_Ccedilla:199,XK_Egrave:200,XK_Eacute:201,XK_Ecircumflex:202,XK_Ediaeresis:203,XK_Igrave:204,XK_Iacute:205,XK_Icircumflex:206,XK_Idiaeresis:207,XK_ETH:208,XK_Eth:208,XK_Ntilde:209,XK_Ograve:210,XK_Oacute:211,XK_Ocircumflex:212,XK_Otilde:213,XK_Odiaeresis:214,XK_multiply:215,XK_Oslash:216,XK_Ooblique:216,XK_Ugrave:217,XK_Uacute:218,XK_Ucircumflex:219,XK_Udiaeresis:220,XK_Yacute:221,XK_THORN:222,XK_Thorn:222,XK_ssharp:223,XK_agrave:224,XK_aacute:225,XK_acircumflex:226,XK_atilde:227,XK_adiaeresis:228,XK_aring:229,XK_ae:230,XK_ccedilla:231,XK_egrave:232,XK_eacute:233,XK_ecircumflex:234,XK_ediaeresis:235,XK_igrave:236,XK_iacute:237,XK_icircumflex:238,XK_idiaeresis:239,XK_eth:240,XK_ntilde:241,XK_ograve:242,XK_oacute:243,XK_ocircumflex:244,XK_otilde:245,XK_odiaeresis:246,XK_division:247,XK_oslash:248,XK_ooblique:248,XK_ugrave:249,XK_uacute:250,XK_ucircumflex:251,XK_udiaeresis:252,XK_yacute:253,XK_thorn:254,XK_ydiaeresis:255,XK_Hangul:65329,XK_Hangul_Hanja:65332,XK_Hangul_Jeonja:65336,XF86XK_ModeLock:269025025,XF86XK_MonBrightnessUp:269025026,XF86XK_MonBrightnessDown:269025027,XF86XK_KbdLightOnOff:269025028,XF86XK_KbdBrightnessUp:269025029,XF86XK_KbdBrightnessDown:269025030,XF86XK_Standby:269025040,XF86XK_AudioLowerVolume:269025041,XF86XK_AudioMute:269025042,XF86XK_AudioRaiseVolume:269025043,XF86XK_AudioPlay:269025044,XF86XK_AudioStop:269025045,XF86XK_AudioPrev:269025046,XF86XK_AudioNext:269025047,XF86XK_HomePage:269025048,XF86XK_Mail:269025049,XF86XK_Start:269025050,XF86XK_Search:269025051,XF86XK_AudioRecord:269025052,XF86XK_Calculator:269025053,XF86XK_Memo:269025054,XF86XK_ToDoList:269025055,XF86XK_Calendar:269025056,XF86XK_PowerDown:269025057,XF86XK_ContrastAdjust:269025058,XF86XK_RockerUp:269025059,XF86XK_RockerDown:269025060,XF86XK_RockerEnter:269025061,XF86XK_Back:269025062,XF86XK_Forward:269025063,XF86XK_Stop:269025064,XF86XK_Refresh:269025065,XF86XK_PowerOff:269025066,XF86XK_WakeUp:269025067,XF86XK_Eject:269025068,XF86XK_ScreenSaver:269025069,XF86XK_WWW:269025070,XF86XK_Sleep:269025071,XF86XK_Favorites:269025072,XF86XK_AudioPause:269025073,XF86XK_AudioMedia:269025074,XF86XK_MyComputer:269025075,XF86XK_VendorHome:269025076,XF86XK_LightBulb:269025077,XF86XK_Shop:269025078,XF86XK_History:269025079,XF86XK_OpenURL:269025080,XF86XK_AddFavorite:269025081,XF86XK_HotLinks:269025082,XF86XK_BrightnessAdjust:269025083,XF86XK_Finance:269025084,XF86XK_Community:269025085,XF86XK_AudioRewind:269025086,XF86XK_BackForward:269025087,XF86XK_Launch0:269025088,XF86XK_Launch1:269025089,XF86XK_Launch2:269025090,XF86XK_Launch3:269025091,XF86XK_Launch4:269025092,XF86XK_Launch5:269025093,XF86XK_Launch6:269025094,XF86XK_Launch7:269025095,XF86XK_Launch8:269025096,XF86XK_Launch9:269025097,XF86XK_LaunchA:269025098,XF86XK_LaunchB:269025099,XF86XK_LaunchC:269025100,XF86XK_LaunchD:269025101,XF86XK_LaunchE:269025102,XF86XK_LaunchF:269025103,XF86XK_ApplicationLeft:269025104,XF86XK_ApplicationRight:269025105,XF86XK_Book:269025106,XF86XK_CD:269025107,XF86XK_Calculater:269025108,XF86XK_Clear:269025109,XF86XK_Close:269025110,XF86XK_Copy:269025111,XF86XK_Cut:269025112,XF86XK_Display:269025113,XF86XK_DOS:269025114,XF86XK_Documents:269025115,XF86XK_Excel:269025116,XF86XK_Explorer:269025117,XF86XK_Game:269025118,XF86XK_Go:269025119,XF86XK_iTouch:269025120,XF86XK_LogOff:269025121,XF86XK_Market:269025122,XF86XK_Meeting:269025123,XF86XK_MenuKB:269025125,XF86XK_MenuPB:269025126,XF86XK_MySites:269025127,XF86XK_New:269025128,XF86XK_News:269025129,XF86XK_OfficeHome:269025130,XF86XK_Open:269025131,XF86XK_Option:269025132,XF86XK_Paste:269025133,XF86XK_Phone:269025134,XF86XK_Q:269025136,XF86XK_Reply:269025138,XF86XK_Reload:269025139,XF86XK_RotateWindows:269025140,XF86XK_RotationPB:269025141,XF86XK_RotationKB:269025142,XF86XK_Save:269025143,XF86XK_ScrollUp:269025144,XF86XK_ScrollDown:269025145,XF86XK_ScrollClick:269025146,XF86XK_Send:269025147,XF86XK_Spell:269025148,XF86XK_SplitScreen:269025149,XF86XK_Support:269025150,XF86XK_TaskPane:269025151,XF86XK_Terminal:269025152,XF86XK_Tools:269025153,XF86XK_Travel:269025154,XF86XK_UserPB:269025156,XF86XK_User1KB:269025157,XF86XK_User2KB:269025158,XF86XK_Video:269025159,XF86XK_WheelButton:269025160,XF86XK_Word:269025161,XF86XK_Xfer:269025162,XF86XK_ZoomIn:269025163,XF86XK_ZoomOut:269025164,XF86XK_Away:269025165,XF86XK_Messenger:269025166,XF86XK_WebCam:269025167,XF86XK_MailForward:269025168,XF86XK_Pictures:269025169,XF86XK_Music:269025170,XF86XK_Battery:269025171,XF86XK_Bluetooth:269025172,XF86XK_WLAN:269025173,XF86XK_UWB:269025174,XF86XK_AudioForward:269025175,XF86XK_AudioRepeat:269025176,XF86XK_AudioRandomPlay:269025177,XF86XK_Subtitle:269025178,XF86XK_AudioCycleTrack:269025179,XF86XK_CycleAngle:269025180,XF86XK_FrameBack:269025181,XF86XK_FrameForward:269025182,XF86XK_Time:269025183,XF86XK_Select:269025184,XF86XK_View:269025185,XF86XK_TopMenu:269025186,XF86XK_Red:269025187,XF86XK_Green:269025188,XF86XK_Yellow:269025189,XF86XK_Blue:269025190,XF86XK_Suspend:269025191,XF86XK_Hibernate:269025192,XF86XK_TouchpadToggle:269025193,XF86XK_TouchpadOn:269025200,XF86XK_TouchpadOff:269025201,XF86XK_AudioMicMute:269025202,XF86XK_Switch_VT_1:269024769,XF86XK_Switch_VT_2:269024770,XF86XK_Switch_VT_3:269024771,XF86XK_Switch_VT_4:269024772,XF86XK_Switch_VT_5:269024773,XF86XK_Switch_VT_6:269024774,XF86XK_Switch_VT_7:269024775,XF86XK_Switch_VT_8:269024776,XF86XK_Switch_VT_9:269024777,XF86XK_Switch_VT_10:269024778,XF86XK_Switch_VT_11:269024779,XF86XK_Switch_VT_12:269024780,XF86XK_Ungrab:269024800,XF86XK_ClearGrab:269024801,XF86XK_Next_VMode:269024802,XF86XK_Prev_VMode:269024803,XF86XK_LogWindowTree:269024804,XF86XK_LogGrabInfo:269024805}});var Un=re(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.default=void 0;var g_={256:960,257:992,258:451,259:483,260:417,261:433,262:454,263:486,264:710,265:742,266:709,267:741,268:456,269:488,270:463,271:495,272:464,273:496,274:938,275:954,278:972,279:1004,280:458,281:490,282:460,283:492,284:728,285:760,286:683,287:699,288:725,289:757,290:939,291:955,292:678,293:694,294:673,295:689,296:933,297:949,298:975,299:1007,302:967,303:999,304:681,305:697,308:684,309:700,310:979,311:1011,312:930,313:453,314:485,315:934,316:950,317:421,318:437,321:419,322:435,323:465,324:497,325:977,326:1009,327:466,328:498,330:957,331:959,332:978,333:1010,336:469,337:501,338:5052,339:5053,340:448,341:480,342:931,343:947,344:472,345:504,346:422,347:438,348:734,349:766,350:426,351:442,352:425,353:441,354:478,355:510,356:427,357:443,358:940,359:956,360:989,361:1021,362:990,363:1022,364:733,365:765,366:473,367:505,368:475,369:507,370:985,371:1017,376:5054,377:428,378:444,379:431,380:447,381:430,382:446,402:2294,466:16777681,711:439,728:418,729:511,731:434,733:445,901:1966,902:1953,904:1954,905:1955,906:1956,908:1959,910:1960,911:1963,912:1974,913:1985,914:1986,915:1987,916:1988,917:1989,918:1990,919:1991,920:1992,921:1993,922:1994,923:1995,924:1996,925:1997,926:1998,927:1999,928:2e3,929:2001,931:2002,932:2004,933:2005,934:2006,935:2007,936:2008,937:2009,938:1957,939:1961,940:1969,941:1970,942:1971,943:1972,944:1978,945:2017,946:2018,947:2019,948:2020,949:2021,950:2022,951:2023,952:2024,953:2025,954:2026,955:2027,956:2028,957:2029,958:2030,959:2031,960:2032,961:2033,962:2035,963:2034,964:2036,965:2037,966:2038,967:2039,968:2040,969:2041,970:1973,971:1977,972:1975,973:1976,974:1979,1025:1715,1026:1713,1027:1714,1028:1716,1029:1717,1030:1718,1031:1719,1032:1720,1033:1721,1034:1722,1035:1723,1036:1724,1038:1726,1039:1727,1040:1761,1041:1762,1042:1783,1043:1767,1044:1764,1045:1765,1046:1782,1047:1786,1048:1769,1049:1770,1050:1771,1051:1772,1052:1773,1053:1774,1054:1775,1055:1776,1056:1778,1057:1779,1058:1780,1059:1781,1060:1766,1061:1768,1062:1763,1063:1790,1064:1787,1065:1789,1066:1791,1067:1785,1068:1784,1069:1788,1070:1760,1071:1777,1072:1729,1073:1730,1074:1751,1075:1735,1076:1732,1077:1733,1078:1750,1079:1754,1080:1737,1081:1738,1082:1739,1083:1740,1084:1741,1085:1742,1086:1743,1087:1744,1088:1746,1089:1747,1090:1748,1091:1749,1092:1734,1093:1736,1094:1731,1095:1758,1096:1755,1097:1757,1098:1759,1099:1753,1100:1752,1101:1756,1102:1728,1103:1745,1105:1699,1106:1697,1107:1698,1108:1700,1109:1701,1110:1702,1111:1703,1112:1704,1113:1705,1114:1706,1115:1707,1116:1708,1118:1710,1119:1711,1168:1725,1169:1709,1488:3296,1489:3297,1490:3298,1491:3299,1492:3300,1493:3301,1494:3302,1495:3303,1496:3304,1497:3305,1498:3306,1499:3307,1500:3308,1501:3309,1502:3310,1503:3311,1504:3312,1505:3313,1506:3314,1507:3315,1508:3316,1509:3317,1510:3318,1511:3319,1512:3320,1513:3321,1514:3322,1548:1452,1563:1467,1567:1471,1569:1473,1570:1474,1571:1475,1572:1476,1573:1477,1574:1478,1575:1479,1576:1480,1577:1481,1578:1482,1579:1483,1580:1484,1581:1485,1582:1486,1583:1487,1584:1488,1585:1489,1586:1490,1587:1491,1588:1492,1589:1493,1590:1494,1591:1495,1592:1496,1593:1497,1594:1498,1600:1504,1601:1505,1602:1506,1603:1507,1604:1508,1605:1509,1606:1510,1607:1511,1608:1512,1609:1513,1610:1514,1611:1515,1612:1516,1613:1517,1614:1518,1615:1519,1616:1520,1617:1521,1618:1522,3585:3489,3586:3490,3587:3491,3588:3492,3589:3493,3590:3494,3591:3495,3592:3496,3593:3497,3594:3498,3595:3499,3596:3500,3597:3501,3598:3502,3599:3503,3600:3504,3601:3505,3602:3506,3603:3507,3604:3508,3605:3509,3606:3510,3607:3511,3608:3512,3609:3513,3610:3514,3611:3515,3612:3516,3613:3517,3614:3518,3615:3519,3616:3520,3617:3521,3618:3522,3619:3523,3620:3524,3621:3525,3622:3526,3623:3527,3624:3528,3625:3529,3626:3530,3627:3531,3628:3532,3629:3533,3630:3534,3631:3535,3632:3536,3633:3537,3634:3538,3635:3539,3636:3540,3637:3541,3638:3542,3639:3543,3640:3544,3641:3545,3642:3546,3647:3551,3648:3552,3649:3553,3650:3554,3651:3555,3652:3556,3653:3557,3654:3558,3655:3559,3656:3560,3657:3561,3658:3562,3659:3563,3660:3564,3661:3565,3664:3568,3665:3569,3666:3570,3667:3571,3668:3572,3669:3573,3670:3574,3671:3575,3672:3576,3673:3577,8194:2722,8195:2721,8196:2723,8197:2724,8199:2725,8200:2726,8201:2727,8202:2728,8210:2747,8211:2730,8212:2729,8213:1967,8215:3295,8216:2768,8217:2769,8218:2813,8220:2770,8221:2771,8222:2814,8224:2801,8225:2802,8226:2790,8229:2735,8230:2734,8240:2773,8242:2774,8243:2775,8248:2812,8254:1150,8361:3839,8364:8364,8453:2744,8470:1712,8471:2811,8478:2772,8482:2761,8531:2736,8532:2737,8533:2738,8534:2739,8535:2740,8536:2741,8537:2742,8538:2743,8539:2755,8540:2756,8541:2757,8542:2758,8592:2299,8593:2300,8594:2301,8595:2302,8658:2254,8660:2253,8706:2287,8711:2245,8728:3018,8730:2262,8733:2241,8734:2242,8743:2270,8744:2271,8745:2268,8746:2269,8747:2239,8756:2240,8764:2248,8771:2249,8773:16785992,8800:2237,8801:2255,8804:2236,8805:2238,8834:2266,8835:2267,8866:3068,8867:3036,8868:3010,8869:3022,8968:3027,8970:3012,8981:2810,8992:2212,8993:2213,9109:3020,9115:2219,9117:2220,9118:2221,9120:2222,9121:2215,9123:2216,9124:2217,9126:2218,9128:2223,9132:2224,9143:2209,9146:2543,9147:2544,9148:2546,9149:2547,9225:2530,9226:2533,9227:2537,9228:2531,9229:2532,9251:2732,9252:2536,9472:2211,9474:2214,9484:2210,9488:2539,9492:2541,9496:2538,9500:2548,9508:2549,9516:2551,9524:2550,9532:2542,9618:2529,9642:2791,9643:2785,9644:2779,9645:2786,9646:2783,9647:2767,9650:2792,9651:2787,9654:2781,9655:2765,9660:2793,9661:2788,9664:2780,9665:2764,9670:2528,9675:2766,9679:2782,9702:2784,9734:2789,9742:2809,9747:2762,9756:2794,9758:2795,9792:2808,9794:2807,9827:2796,9829:2798,9830:2797,9837:2806,9839:2805,10003:2803,10007:2804,10013:2777,10016:2800,10216:2748,10217:2750,12289:1188,12290:1185,12300:1186,12301:1187,12443:1246,12444:1247,12449:1191,12450:1201,12451:1192,12452:1202,12453:1193,12454:1203,12455:1194,12456:1204,12457:1195,12458:1205,12459:1206,12461:1207,12463:1208,12465:1209,12467:1210,12469:1211,12471:1212,12473:1213,12475:1214,12477:1215,12479:1216,12481:1217,12483:1199,12484:1218,12486:1219,12488:1220,12490:1221,12491:1222,12492:1223,12493:1224,12494:1225,12495:1226,12498:1227,12501:1228,12504:1229,12507:1230,12510:1231,12511:1232,12512:1233,12513:1234,12514:1235,12515:1196,12516:1236,12517:1197,12518:1237,12519:1198,12520:1238,12521:1239,12522:1240,12523:1241,12524:1242,12525:1243,12527:1244,12530:1190,12531:1245,12539:1189,12540:1200},fv=Kr.default={lookup:function(i){if(i>=32&&i<=255)return i;var r=g_[i];return r!==void 0?r:16777216|i}}});var Wh=re(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.default=void 0;var gv=Xr.default={8:"Backspace",9:"Tab",10:"NumpadClear",13:"Enter",16:"ShiftLeft",17:"ControlLeft",18:"AltLeft",19:"Pause",20:"CapsLock",21:"Lang1",25:"Lang2",27:"Escape",28:"Convert",29:"NonConvert",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",41:"Select",44:"PrintScreen",45:"Insert",46:"Delete",47:"Help",48:"Digit0",49:"Digit1",50:"Digit2",51:"Digit3",52:"Digit4",53:"Digit5",54:"Digit6",55:"Digit7",56:"Digit8",57:"Digit9",91:"MetaLeft",92:"MetaRight",93:"ContextMenu",95:"Sleep",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",106:"NumpadMultiply",107:"NumpadAdd",108:"NumpadDecimal",109:"NumpadSubtract",110:"NumpadDecimal",111:"NumpadDivide",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",124:"F13",125:"F14",126:"F15",127:"F16",128:"F17",129:"F18",130:"F19",131:"F20",132:"F21",133:"F22",134:"F23",135:"F24",144:"NumLock",145:"ScrollLock",166:"BrowserBack",167:"BrowserForward",168:"BrowserRefresh",169:"BrowserStop",170:"BrowserSearch",171:"BrowserFavorites",172:"BrowserHome",173:"AudioVolumeMute",174:"AudioVolumeDown",175:"AudioVolumeUp",176:"MediaTrackNext",177:"MediaTrackPrevious",178:"MediaStop",179:"MediaPlayPause",180:"LaunchMail",181:"MediaSelect",182:"LaunchApp1",183:"LaunchApp2",225:"AltRight"}});var jh=re(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});Hr.default=void 0;var vv=Hr.default={Backspace:"Backspace",AltLeft:"Alt",AltRight:"Alt",CapsLock:"CapsLock",ContextMenu:"ContextMenu",ControlLeft:"Control",ControlRight:"Control",Enter:"Enter",MetaLeft:"Meta",MetaRight:"Meta",ShiftLeft:"Shift",ShiftRight:"Shift",Tab:"Tab",Delete:"Delete",End:"End",Help:"Help",Home:"Home",Insert:"Insert",PageDown:"PageDown",PageUp:"PageUp",ArrowDown:"ArrowDown",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",ArrowUp:"ArrowUp",NumLock:"NumLock",NumpadBackspace:"Backspace",NumpadClear:"Clear",Escape:"Escape",F1:"F1",F2:"F2",F3:"F3",F4:"F4",F5:"F5",F6:"F6",F7:"F7",F8:"F8",F9:"F9",F10:"F10",F11:"F11",F12:"F12",F13:"F13",F14:"F14",F15:"F15",F16:"F16",F17:"F17",F18:"F18",F19:"F19",F20:"F20",F21:"F21",F22:"F22",F23:"F23",F24:"F24",F25:"F25",F26:"F26",F27:"F27",F28:"F28",F29:"F29",F30:"F30",F31:"F31",F32:"F32",F33:"F33",F34:"F34",F35:"F35",PrintScreen:"PrintScreen",ScrollLock:"ScrollLock",Pause:"Pause",BrowserBack:"BrowserBack",BrowserFavorites:"BrowserFavorites",BrowserForward:"BrowserForward",BrowserHome:"BrowserHome",BrowserRefresh:"BrowserRefresh",BrowserSearch:"BrowserSearch",BrowserStop:"BrowserStop",Eject:"Eject",LaunchApp1:"LaunchMyComputer",LaunchApp2:"LaunchCalendar",LaunchMail:"LaunchMail",MediaPlayPause:"MediaPlay",MediaStop:"MediaStop",MediaTrackNext:"MediaTrackNext",MediaTrackPrevious:"MediaTrackPrevious",Power:"Power",Sleep:"Sleep",AudioVolumeDown:"AudioVolumeDown",AudioVolumeMute:"AudioVolumeMute",AudioVolumeUp:"AudioVolumeUp",WakeUp:"WakeUp"}});var Gh=re(Ur=>{"use strict";Object.defineProperty(Ur,"__esModule",{value:!0});Ur.default=void 0;var H=p_(_i());function p_(e){return e&&e.__esModule?e:{default:e}}var Yt={};function V(e,i){if(i===void 0)throw new Error('Undefined keysym for key "'+e+'"');if(e in Yt)throw new Error('Duplicate entry for key "'+e+'"');Yt[e]=[i,i,i,i]}function Nr(e,i,r){if(i===void 0)throw new Error('Undefined keysym for key "'+e+'"');if(r===void 0)throw new Error('Undefined keysym for key "'+e+'"');if(e in Yt)throw new Error('Duplicate entry for key "'+e+'"');Yt[e]=[i,i,r,i]}function me(e,i,r){if(i===void 0)throw new Error('Undefined keysym for key "'+e+'"');if(r===void 0)throw new Error('Undefined keysym for key "'+e+'"');if(e in Yt)throw new Error('Duplicate entry for key "'+e+'"');Yt[e]=[i,i,i,r]}Nr("Alt",H.default.XK_Alt_L,H.default.XK_Alt_R);V("AltGraph",H.default.XK_ISO_Level3_Shift);V("CapsLock",H.default.XK_Caps_Lock);Nr("Control",H.default.XK_Control_L,H.default.XK_Control_R);Nr("Meta",H.default.XK_Super_L,H.default.XK_Super_R);V("NumLock",H.default.XK_Num_Lock);V("ScrollLock",H.default.XK_Scroll_Lock);Nr("Shift",H.default.XK_Shift_L,H.default.XK_Shift_R);me("Enter",H.default.XK_Return,H.default.XK_KP_Enter);V("Tab",H.default.XK_Tab);me(" ",H.default.XK_space,H.default.XK_KP_Space);me("ArrowDown",H.default.XK_Down,H.default.XK_KP_Down);me("ArrowLeft",H.default.XK_Left,H.default.XK_KP_Left);me("ArrowRight",H.default.XK_Right,H.default.XK_KP_Right);me("ArrowUp",H.default.XK_Up,H.default.XK_KP_Up);me("End",H.default.XK_End,H.default.XK_KP_End);me("Home",H.default.XK_Home,H.default.XK_KP_Home);me("PageDown",H.default.XK_Next,H.default.XK_KP_Next);me("PageUp",H.default.XK_Prior,H.default.XK_KP_Prior);V("Backspace",H.default.XK_BackSpace);me("Clear",H.default.XK_Clear,H.default.XK_KP_Begin);V("Copy",H.default.XF86XK_Copy);V("Cut",H.default.XF86XK_Cut);me("Delete",H.default.XK_Delete,H.default.XK_KP_Delete);me("Insert",H.default.XK_Insert,H.default.XK_KP_Insert);V("Paste",H.default.XF86XK_Paste);V("Redo",H.default.XK_Redo);V("Undo",H.default.XK_Undo);V("Cancel",H.default.XK_Cancel);V("ContextMenu",H.default.XK_Menu);V("Escape",H.default.XK_Escape);V("Execute",H.default.XK_Execute);V("Find",H.default.XK_Find);V("Help",H.default.XK_Help);V("Pause",H.default.XK_Pause);V("Select",H.default.XK_Select);V("ZoomIn",H.default.XF86XK_ZoomIn);V("ZoomOut",H.default.XF86XK_ZoomOut);V("BrightnessDown",H.default.XF86XK_MonBrightnessDown);V("BrightnessUp",H.default.XF86XK_MonBrightnessUp);V("Eject",H.default.XF86XK_Eject);V("LogOff",H.default.XF86XK_LogOff);V("Power",H.default.XF86XK_PowerOff);V("PowerOff",H.default.XF86XK_PowerDown);V("PrintScreen",H.default.XK_Print);V("Hibernate",H.default.XF86XK_Hibernate);V("Standby",H.default.XF86XK_Standby);V("WakeUp",H.default.XF86XK_WakeUp);V("AllCandidates",H.default.XK_MultipleCandidate);V("Alphanumeric",H.default.XK_Eisu_toggle);V("CodeInput",H.default.XK_Codeinput);V("Compose",H.default.XK_Multi_key);V("Convert",H.default.XK_Henkan);V("GroupFirst",H.default.XK_ISO_First_Group);V("GroupLast",H.default.XK_ISO_Last_Group);V("GroupNext",H.default.XK_ISO_Next_Group);V("GroupPrevious",H.default.XK_ISO_Prev_Group);V("NonConvert",H.default.XK_Muhenkan);V("PreviousCandidate",H.default.XK_PreviousCandidate);V("SingleCandidate",H.default.XK_SingleCandidate);V("HangulMode",H.default.XK_Hangul);V("HanjaMode",H.default.XK_Hangul_Hanja);V("JunjaMode",H.default.XK_Hangul_Jeonja);V("Eisu",H.default.XK_Eisu_toggle);V("Hankaku",H.default.XK_Hankaku);V("Hiragana",H.default.XK_Hiragana);V("HiraganaKatakana",H.default.XK_Hiragana_Katakana);V("KanaMode",H.default.XK_Kana_Shift);V("KanjiMode",H.default.XK_Kanji);V("Katakana",H.default.XK_Katakana);V("Romaji",H.default.XK_Romaji);V("Zenkaku",H.default.XK_Zenkaku);V("ZenkakuHankaku",H.default.XK_Zenkaku_Hankaku);V("F1",H.default.XK_F1);V("F2",H.default.XK_F2);V("F3",H.default.XK_F3);V("F4",H.default.XK_F4);V("F5",H.default.XK_F5);V("F6",H.default.XK_F6);V("F7",H.default.XK_F7);V("F8",H.default.XK_F8);V("F9",H.default.XK_F9);V("F10",H.default.XK_F10);V("F11",H.default.XK_F11);V("F12",H.default.XK_F12);V("F13",H.default.XK_F13);V("F14",H.default.XK_F14);V("F15",H.default.XK_F15);V("F16",H.default.XK_F16);V("F17",H.default.XK_F17);V("F18",H.default.XK_F18);V("F19",H.default.XK_F19);V("F20",H.default.XK_F20);V("F21",H.default.XK_F21);V("F22",H.default.XK_F22);V("F23",H.default.XK_F23);V("F24",H.default.XK_F24);V("F25",H.default.XK_F25);V("F26",H.default.XK_F26);V("F27",H.default.XK_F27);V("F28",H.default.XK_F28);V("F29",H.default.XK_F29);V("F30",H.default.XK_F30);V("F31",H.default.XK_F31);V("F32",H.default.XK_F32);V("F33",H.default.XK_F33);V("F34",H.default.XK_F34);V("F35",H.default.XK_F35);V("Close",H.default.XF86XK_Close);V("MailForward",H.default.XF86XK_MailForward);V("MailReply",H.default.XF86XK_Reply);V("MailSend",H.default.XF86XK_Send);V("MediaFastForward",H.default.XF86XK_AudioForward);V("MediaPause",H.default.XF86XK_AudioPause);V("MediaPlay",H.default.XF86XK_AudioPlay);V("MediaRecord",H.default.XF86XK_AudioRecord);V("MediaRewind",H.default.XF86XK_AudioRewind);V("MediaStop",H.default.XF86XK_AudioStop);V("MediaTrackNext",H.default.XF86XK_AudioNext);V("MediaTrackPrevious",H.default.XF86XK_AudioPrev);V("New",H.default.XF86XK_New);V("Open",H.default.XF86XK_Open);V("Print",H.default.XK_Print);V("Save",H.default.XF86XK_Save);V("SpellCheck",H.default.XF86XK_Spell);V("AudioVolumeDown",H.default.XF86XK_AudioLowerVolume);V("AudioVolumeUp",H.default.XF86XK_AudioRaiseVolume);V("AudioVolumeMute",H.default.XF86XK_AudioMute);V("MicrophoneVolumeMute",H.default.XF86XK_AudioMicMute);V("LaunchApplication1",H.default.XF86XK_MyComputer);V("LaunchApplication2",H.default.XF86XK_Calculator);V("LaunchCalendar",H.default.XF86XK_Calendar);V("LaunchMail",H.default.XF86XK_Mail);V("LaunchMediaPlayer",H.default.XF86XK_AudioMedia);V("LaunchMusicPlayer",H.default.XF86XK_Music);V("LaunchPhone",H.default.XF86XK_Phone);V("LaunchScreenSaver",H.default.XF86XK_ScreenSaver);V("LaunchSpreadsheet",H.default.XF86XK_Excel);V("LaunchWebBrowser",H.default.XF86XK_WWW);V("LaunchWebCam",H.default.XF86XK_WebCam);V("LaunchWordProcessor",H.default.XF86XK_Word);V("BrowserBack",H.default.XF86XK_Back);V("BrowserFavorites",H.default.XF86XK_Favorites);V("BrowserForward",H.default.XF86XK_Forward);V("BrowserHome",H.default.XF86XK_HomePage);V("BrowserRefresh",H.default.XF86XK_Refresh);V("BrowserSearch",H.default.XF86XK_Search);V("BrowserStop",H.default.XF86XK_Stop);V("Dimmer",H.default.XF86XK_BrightnessAdjust);V("MediaAudioTrack",H.default.XF86XK_AudioCycleTrack);V("RandomToggle",H.default.XF86XK_AudioRandomPlay);V("SplitScreenToggle",H.default.XF86XK_SplitScreen);V("Subtitle",H.default.XF86XK_Subtitle);V("VideoModeNext",H.default.XF86XK_Next_VMode);me("=",H.default.XK_equal,H.default.XK_KP_Equal);me("+",H.default.XK_plus,H.default.XK_KP_Add);me("-",H.default.XK_minus,H.default.XK_KP_Subtract);me("*",H.default.XK_asterisk,H.default.XK_KP_Multiply);me("/",H.default.XK_slash,H.default.XK_KP_Divide);me(".",H.default.XK_period,H.default.XK_KP_Decimal);me(",",H.default.XK_comma,H.default.XK_KP_Separator);me("0",H.default.XK_0,H.default.XK_KP_0);me("1",H.default.XK_1,H.default.XK_KP_1);me("2",H.default.XK_2,H.default.XK_KP_2);me("3",H.default.XK_3,H.default.XK_KP_3);me("4",H.default.XK_4,H.default.XK_KP_4);me("5",H.default.XK_5,H.default.XK_KP_5);me("6",H.default.XK_6,H.default.XK_KP_6);me("7",H.default.XK_7,H.default.XK_KP_7);me("8",H.default.XK_8,H.default.XK_KP_8);me("9",H.default.XK_9,H.default.XK_KP_9);var yv=Ur.default=Yt});var el=re(Hi=>{"use strict";function $n(e){"@babel/helpers - typeof";return $n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},$n(e)}Object.defineProperty(Hi,"__esModule",{value:!0});Hi.getKey=Zh;Hi.getKeycode=Ki;Hi.getKeysym=y_;var Qi=Xi(_i()),v_=Xi(Un()),zh=Xi(Wh()),qh=Xi(jh()),Vh=Xi(Gh()),Yh=m_(Ci());function Jh(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(Jh=function(c){return c?r:i})(e)}function m_(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||$n(e)!="object"&&typeof e!="function")return{default:e};var r=Jh(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}function Xi(e){return e&&e.__esModule?e:{default:e}}function Ki(e){if(e.code){switch(e.code){case"OSLeft":return"MetaLeft";case"OSRight":return"MetaRight"}return e.code}if(e.keyCode in zh.default){var i=zh.default[e.keyCode];if(Yh.isMac()&&i==="ContextMenu"&&(i="MetaRight"),e.location===2)switch(i){case"ShiftLeft":return"ShiftRight";case"ControlLeft":return"ControlRight";case"AltLeft":return"AltRight"}if(e.location===3)switch(i){case"Delete":return"NumpadDecimal";case"Insert":return"Numpad0";case"End":return"Numpad1";case"ArrowDown":return"Numpad2";case"PageDown":return"Numpad3";case"ArrowLeft":return"Numpad4";case"ArrowRight":return"Numpad6";case"Home":return"Numpad7";case"ArrowUp":return"Numpad8";case"PageUp":return"Numpad9";case"Enter":return"NumpadEnter"}return i}return"Unidentified"}function Zh(e){if(e.key!==void 0&&e.key!=="Unidentified"){switch(e.key){case"OS":return"Meta";case"LaunchMyComputer":return"LaunchApplication1";case"LaunchCalculator":return"LaunchApplication2"}switch(e.key){case"UIKeyInputUpArrow":return"ArrowUp";case"UIKeyInputDownArrow":return"ArrowDown";case"UIKeyInputLeftArrow":return"ArrowLeft";case"UIKeyInputRightArrow":return"ArrowRight";case"UIKeyInputEscape":return"Escape"}return e.key==="\0"&&e.code==="NumpadDecimal"?"Delete":e.key}var i=Ki(e);return i in qh.default?qh.default[i]:e.charCode?String.fromCharCode(e.charCode):"Unidentified"}function y_(e){var i=Zh(e);if(i==="Unidentified")return null;if(i in Vh.default){var r=e.location;if(i==="Meta"&&r===0&&(r=2),i==="Clear"&&r===3){var s=Ki(e);s==="NumLock"&&(r=0)}if((r===void 0||r>3)&&(r=0),i==="Meta"){var c=Ki(e);if(c==="AltLeft")return Qi.default.XK_Meta_L;if(c==="AltRight")return Qi.default.XK_Meta_R}if(i==="Clear"){var t=Ki(e);if(t==="NumLock")return Qi.default.XK_Num_Lock}if(Yh.isWindows())switch(i){case"Zenkaku":case"Hankaku":return Qi.default.XK_Zenkaku_Hankaku;case"Romaji":case"KanaMode":return Qi.default.XK_Romaji}return Vh.default[i][r]}if(i.length!==1)return null;var n=i.charCodeAt();return n?v_.default.lookup(n):null}});var sl=re($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.default=void 0;var Wn=jn(yt()),gi=tn(),tl=jn(el()),Be=b_(_i()),ze=jn(Ci());function b_(e){return e&&e.__esModule?e:{default:e}}function rl(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(rl=function(c){return c?r:i})(e)}function jn(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||pi(e)!="object"&&typeof e!="function")return{default:e};var r=rl(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}function pi(e){"@babel/helpers - typeof";return pi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},pi(e)}function A_(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function il(e,i){for(var r=0;r3&&arguments[3]!==void 0?arguments[3]:null,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null;if(c)this._keyDownList[s]=r;else{if(!(s in this._keyDownList))return;delete this._keyDownList[s]}Wn.Debug("onkeyevent "+(c?"down":"up")+", keysym: "+r,", code: "+s+", numlock: "+t+", capslock: "+n),this.onkeyevent(r,s,c,t,n)}},{key:"_getKeyCode",value:function(r){var s=tl.getKeycode(r);if(s!=="Unidentified")return s;if(r.keyCode&&r.keyCode!==229)return"Platform"+r.keyCode;if(r.keyIdentifier){if(r.keyIdentifier.substr(0,2)!=="U+")return r.keyIdentifier;var c=parseInt(r.keyIdentifier.substr(2),16),t=String.fromCharCode(c).toUpperCase();return"Platform"+t.charCodeAt()}return"Unidentified"}},{key:"_handleKeyDown",value:function(r){var s=this._getKeyCode(r),c=tl.getKeysym(r),t=r.getModifierState("NumLock"),n=r.getModifierState("CapsLock");if((ze.isMac()||ze.isIOS())&&(t=null),this._altGrArmed&&(this._altGrArmed=!1,clearTimeout(this._altGrTimeout),s==="AltRight"&&r.timeStamp-this._altGrCtrlTime<50?c=Be.default.XK_ISO_Level3_Shift:this._sendKeyEvent(Be.default.XK_Control_L,"ControlLeft",!0,t,n)),s==="Unidentified"){c&&(this._sendKeyEvent(c,s,!0,t,n),this._sendKeyEvent(c,s,!1,t,n)),(0,gi.stopEvent)(r);return}if(ze.isMac()||ze.isIOS())switch(c){case Be.default.XK_Super_L:c=Be.default.XK_Alt_L;break;case Be.default.XK_Super_R:c=Be.default.XK_Super_L;break;case Be.default.XK_Alt_L:c=Be.default.XK_Mode_switch;break;case Be.default.XK_Alt_R:c=Be.default.XK_ISO_Level3_Shift;break}if(s in this._keyDownList&&(c=this._keyDownList[s]),(ze.isMac()||ze.isIOS())&&r.metaKey&&s!=="MetaLeft"&&s!=="MetaRight"){this._sendKeyEvent(c,s,!0,t,n),this._sendKeyEvent(c,s,!1,t,n),(0,gi.stopEvent)(r);return}if((ze.isMac()||ze.isIOS())&&s==="CapsLock"){this._sendKeyEvent(Be.default.XK_Caps_Lock,"CapsLock",!0,t,n),this._sendKeyEvent(Be.default.XK_Caps_Lock,"CapsLock",!1,t,n),(0,gi.stopEvent)(r);return}var h=[Be.default.XK_Zenkaku_Hankaku,Be.default.XK_Eisu_toggle,Be.default.XK_Katakana,Be.default.XK_Hiragana,Be.default.XK_Romaji];if(ze.isWindows()&&h.includes(c)){this._sendKeyEvent(c,s,!0,t,n),this._sendKeyEvent(c,s,!1,t,n),(0,gi.stopEvent)(r);return}if((0,gi.stopEvent)(r),s==="ControlLeft"&&ze.isWindows()&&!("ControlLeft"in this._keyDownList)){this._altGrArmed=!0,this._altGrTimeout=setTimeout(this._handleAltGrTimeout.bind(this),100),this._altGrCtrlTime=r.timeStamp;return}this._sendKeyEvent(c,s,!0,t,n)}},{key:"_handleKeyUp",value:function(r){(0,gi.stopEvent)(r);var s=this._getKeyCode(r);if(this._altGrArmed&&(this._altGrArmed=!1,clearTimeout(this._altGrTimeout),this._sendKeyEvent(Be.default.XK_Control_L,"ControlLeft",!0)),(ze.isMac()||ze.isIOS())&&s==="CapsLock"){this._sendKeyEvent(Be.default.XK_Caps_Lock,"CapsLock",!0),this._sendKeyEvent(Be.default.XK_Caps_Lock,"CapsLock",!1);return}this._sendKeyEvent(this._keyDownList[s],s,!1),ze.isWindows()&&(s==="ShiftLeft"||s==="ShiftRight")&&("ShiftRight"in this._keyDownList&&this._sendKeyEvent(this._keyDownList.ShiftRight,"ShiftRight",!1),"ShiftLeft"in this._keyDownList&&this._sendKeyEvent(this._keyDownList.ShiftLeft,"ShiftLeft",!1))}},{key:"_handleAltGrTimeout",value:function(){this._altGrArmed=!1,clearTimeout(this._altGrTimeout),this._sendKeyEvent(Be.default.XK_Control_L,"ControlLeft",!0)}},{key:"_allKeysUp",value:function(){Wn.Debug(">> Keyboard.allKeysUp");for(var r in this._keyDownList)this._sendKeyEvent(this._keyDownList[r],r,!1);Wn.Debug("<< Keyboard.allKeysUp")}},{key:"grab",value:function(){this._target.addEventListener("keydown",this._eventHandlers.keydown),this._target.addEventListener("keyup",this._eventHandlers.keyup),window.addEventListener("blur",this._eventHandlers.blur)}},{key:"ungrab",value:function(){this._target.removeEventListener("keydown",this._eventHandlers.keydown),this._target.removeEventListener("keyup",this._eventHandlers.keyup),window.removeEventListener("blur",this._eventHandlers.blur),this._allKeysUp()}}])}()});var hl=re(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.default=void 0;function ji(e){"@babel/helpers - typeof";return ji=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},ji(e)}function S_(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function nl(e,i){for(var r=0;r0&&Date.now()-this._tracked[0].started>al){this._state=dt,this._ignored.push(r);return}if(this._waitingRelease){this._state=dt,this._ignored.push(r);return}switch(this._tracked.push({id:r,started:Date.now(),active:!0,firstX:s,firstY:c,lastX:s,lastY:c,angle:0}),this._tracked.length){case 1:this._startLongpressTimeout();break;case 2:this._state&=~(Ni|Wr|Wi),this._stopLongpressTimeout();break;case 3:this._state&=~(Ui|Mt|Tt);break;default:this._state=dt}}},{key:"_touchMove",value:function(r,s,c){var t=this._tracked.find(function(_){return _.id===r});if(t!==void 0){t.lastX=s,t.lastY=c;var n=s-t.firstX,h=c-t.firstY;if((t.firstX!==t.lastX||t.firstY!==t.lastY)&&(t.angle=Math.atan2(h,n)*180/Math.PI),!this._hasDetectedGesture()){if(Math.hypot(n,h)ol){var l=Math.abs(t.angle-g.angle);l=Math.abs((l+180)%360-180),l>L_?this._state&=~Mt:this._state&=~Tt,this._isTwoTouchTimeoutRunning()&&this._stopTwoTouchTimeout()}else this._isTwoTouchTimeoutRunning()||this._startTwoTouchTimeout()}if(!this._hasDetectedGesture())return;this._pushEvent("gesturestart")}this._pushEvent("gesturemove")}}},{key:"_touchEnd",value:function(r,s,c){if(this._ignored.indexOf(r)!==-1){this._ignored.splice(this._ignored.indexOf(r),1),this._ignored.length===0&&this._tracked.length===0&&(this._state=Gn,this._waitingRelease=!1);return}if(!this._hasDetectedGesture()&&this._isTwoTouchTimeoutRunning()&&(this._stopTwoTouchTimeout(),this._state=dt),!this._hasDetectedGesture()&&(this._state&=~(Wr|Mt|Tt),this._state&=~Wi,this._stopLongpressTimeout(),!this._waitingRelease))switch(this._releaseStart=Date.now(),this._waitingRelease=!0,this._tracked.length){case 1:this._state&=~(Ui|$i);break;case 2:this._state&=~(Ni|$i);break}if(this._waitingRelease){Date.now()-this._releaseStart>al&&(this._state=dt),this._tracked.some(function(h){return Date.now()-h.started>I_})&&(this._state=dt);var t=this._tracked.find(function(h){return h.id===r});if(t.active=!1,this._hasDetectedGesture())this._pushEvent("gesturestart");else if(this._state!==dt)return}this._hasDetectedGesture()&&this._pushEvent("gestureend");for(var n=0;n{"use strict";Object.defineProperty(Gr,"__esModule",{value:!0});Gr.default=void 0;var ll=Ci();function zi(e){"@babel/helpers - typeof";return zi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},zi(e)}function M_(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function cl(e,i){for(var r=0;r{"use strict";Object.defineProperty(Vr,"__esModule",{value:!0});Vr.default=void 0;var wt=O_(yt());function gl(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(gl=function(c){return c?r:i})(e)}function O_(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||vi(e)!="object"&&typeof e!="function")return{default:e};var r=gl(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}function vi(e){"@babel/helpers - typeof";return vi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},vi(e)}function dl(e){return H_(e)||X_(e)||K_(e)||Q_()}function Q_(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function K_(e,i){if(e){if(typeof e=="string")return qn(e,i);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?qn(e,i):void 0}}function X_(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function H_(e){if(Array.isArray(e))return qn(e)}function qn(e,i){(i==null||i>e.length)&&(i=e.length);for(var r=0,s=Array(i);r=0;c--)s+=this._rQ[this._rQi++]<>>0}},{key:"rQshiftStr",value:function(r){for(var s="",c=0;c1&&arguments[1]!==void 0?arguments[1]:!0;return this._rQi+=r,s?this._rQ.slice(this._rQi-r,this._rQi):this._rQ.subarray(this._rQi-r,this._rQi)}},{key:"rQshiftTo",value:function(r,s){r.set(new Uint8Array(this._rQ.buffer,this._rQi,s)),this._rQi+=s}},{key:"rQpeekBytes",value:function(r){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return s?this._rQ.slice(this._rQi,this._rQi+r):this._rQ.subarray(this._rQi,this._rQi+r)}},{key:"rQwait",value:function(r,s,c){if(this._rQlen-this._rQi>8&255,this._sQ[this._sQlen++]=r>>0&255}},{key:"sQpush32",value:function(r){this._sQensureSpace(4),this._sQ[this._sQlen++]=r>>24&255,this._sQ[this._sQlen++]=r>>16&255,this._sQ[this._sQlen++]=r>>8&255,this._sQ[this._sQlen++]=r>>0&255}},{key:"sQpushString",value:function(r){var s=r.split("").map(function(c){return c.charCodeAt(0)});this.sQpushBytes(new Uint8Array(s))}},{key:"sQpushBytes",value:function(r){for(var s=0;sr.length-s&&(c=r.length-s),this._sQ.set(r.subarray(s,c),this._sQlen),this._sQlen+=c,s+=c}}},{key:"flush",value:function(){this._sQlen>0&&this.readyState==="open"&&(this._websocket.send(new Uint8Array(this._sQ.buffer,0,this._sQlen)),this._sQlen=0)}},{key:"_sQensureSpace",value:function(r){this._sQbufferSize-this._sQlen> WebSock.onopen"),s._websocket.protocol&&wt.Info("Server choose sub-protocol: "+s._websocket.protocol),s._eventHandlers.open(),wt.Debug("<< WebSock.onopen")},this._websocket.onclose=function(h){wt.Debug(">> WebSock.onclose"),s._eventHandlers.close(h),wt.Debug("<< WebSock.onclose")},this._websocket.onerror=function(h){wt.Debug(">> WebSock.onerror: "+h),s._eventHandlers.error(h),wt.Debug("<< WebSock.onerror: "+h)}}},{key:"close",value:function(){this._websocket&&((this.readyState==="connecting"||this.readyState==="open")&&(wt.Info("Closing WebSocket connection"),this._websocket.close()),this._websocket.onmessage=function(){})}},{key:"_expandCompactRQ",value:function(r){var s=(this._rQlen-this._rQi+r)*8,c=this._rQbufferSizezn&&(this._rQbufferSize=zn,this._rQbufferSize-(this._rQlen-this._rQi)this._rQbufferSize-this._rQlen&&this._expandCompactRQ(s.length),this._rQ.set(s,this._rQlen),this._rQlen+=s.length,this._rQlen-this._rQi>0?this._eventHandlers.message():wt.Debug("Ignoring empty message")}}])}()});var vl=re(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.default=void 0;var Iv=Yr.default={Again:57349,AltLeft:56,AltRight:57400,ArrowDown:57424,ArrowLeft:57419,ArrowRight:57421,ArrowUp:57416,AudioVolumeDown:57390,AudioVolumeMute:57376,AudioVolumeUp:57392,Backquote:41,Backslash:43,Backspace:14,BracketLeft:26,BracketRight:27,BrowserBack:57450,BrowserFavorites:57446,BrowserForward:57449,BrowserHome:57394,BrowserRefresh:57447,BrowserSearch:57445,BrowserStop:57448,CapsLock:58,Comma:51,ContextMenu:57437,ControlLeft:29,ControlRight:57373,Convert:121,Copy:57464,Cut:57404,Delete:57427,Digit0:11,Digit1:2,Digit2:3,Digit3:4,Digit4:5,Digit5:6,Digit6:7,Digit7:8,Digit8:9,Digit9:10,Eject:57469,End:57423,Enter:28,Equal:13,Escape:1,F1:59,F10:68,F11:87,F12:88,F13:93,F14:94,F15:95,F16:85,F17:57347,F18:57463,F19:57348,F2:60,F20:90,F21:116,F22:57465,F23:109,F24:111,F3:61,F4:62,F5:63,F6:64,F7:65,F8:66,F9:67,Find:57409,Help:57461,Hiragana:119,Home:57415,Insert:57426,IntlBackslash:86,IntlRo:115,IntlYen:125,KanaMode:112,Katakana:120,KeyA:30,KeyB:48,KeyC:46,KeyD:32,KeyE:18,KeyF:33,KeyG:34,KeyH:35,KeyI:23,KeyJ:36,KeyK:37,KeyL:38,KeyM:50,KeyN:49,KeyO:24,KeyP:25,KeyQ:16,KeyR:19,KeyS:31,KeyT:20,KeyU:22,KeyV:47,KeyW:17,KeyX:45,KeyY:21,KeyZ:44,Lang1:114,Lang2:113,Lang3:120,Lang4:119,Lang5:118,LaunchApp1:57451,LaunchApp2:57377,LaunchMail:57452,MediaPlayPause:57378,MediaSelect:57453,MediaStop:57380,MediaTrackNext:57369,MediaTrackPrevious:57360,MetaLeft:57435,MetaRight:57436,Minus:12,NonConvert:123,NumLock:69,Numpad0:82,Numpad1:79,Numpad2:80,Numpad3:81,Numpad4:75,Numpad5:76,Numpad6:77,Numpad7:71,Numpad8:72,Numpad9:73,NumpadAdd:78,NumpadComma:126,NumpadDecimal:83,NumpadDivide:57397,NumpadEnter:57372,NumpadEqual:89,NumpadMultiply:55,NumpadParenLeft:57462,NumpadParenRight:57467,NumpadSubtract:74,Open:100,PageDown:57425,PageUp:57417,Paste:101,Pause:57414,Period:52,Power:57438,PrintScreen:84,Props:57350,Quote:40,ScrollLock:70,Semicolon:39,ShiftLeft:42,ShiftRight:54,Slash:53,Sleep:57439,Space:57,Suspend:57381,Tab:15,Undo:57351,WakeUp:57443}});var ml=re(qi=>{"use strict";Object.defineProperty(qi,"__esModule",{value:!0});qi.encodingName=j_;qi.encodings=void 0;var Ft=qi.encodings={encodingRaw:0,encodingCopyRect:1,encodingRRE:2,encodingHextile:5,encodingTight:7,encodingZRLE:16,encodingTightPNG:-260,encodingJPEG:21,pseudoEncodingQualityLevel9:-23,pseudoEncodingQualityLevel0:-32,pseudoEncodingDesktopSize:-223,pseudoEncodingLastRect:-224,pseudoEncodingCursor:-239,pseudoEncodingQEMUExtendedKeyEvent:-258,pseudoEncodingQEMULedEvent:-261,pseudoEncodingDesktopName:-307,pseudoEncodingExtendedDesktopSize:-308,pseudoEncodingXvp:-309,pseudoEncodingFence:-312,pseudoEncodingContinuousUpdates:-313,pseudoEncodingCompressLevel9:-247,pseudoEncodingCompressLevel0:-256,pseudoEncodingVMwareCursor:1464686180,pseudoEncodingExtendedClipboard:3231835598};function j_(e){switch(e){case Ft.encodingRaw:return"Raw";case Ft.encodingCopyRect:return"CopyRect";case Ft.encodingRRE:return"RRE";case Ft.encodingHextile:return"Hextile";case Ft.encodingTight:return"Tight";case Ft.encodingZRLE:return"ZRLE";case Ft.encodingTightPNG:return"TightPNG";case Ft.encodingJPEG:return"JPEG";default:return"[unknown encoding "+e+"]"}}});var Cl=re(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.AESECBCipher=mi.AESEAXCipher=void 0;function Jt(e){"@babel/helpers - typeof";return Jt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Jt(e)}function we(){"use strict";we=function(){return i};var e,i={},r=Object.prototype,s=r.hasOwnProperty,c=Object.defineProperty||function(k,m,x){k[m]=x.value},t=typeof Symbol=="function"?Symbol:{},n=t.iterator||"@@iterator",h=t.asyncIterator||"@@asyncIterator",g=t.toStringTag||"@@toStringTag";function a(k,m,x){return Object.defineProperty(k,m,{value:x,enumerable:!0,configurable:!0,writable:!0}),k[m]}try{a({},"")}catch{a=function(x,E,I){return x[E]=I}}function l(k,m,x,E){var I=m&&m.prototype instanceof p?m:p,M=Object.create(I.prototype),X=new K(E||[]);return c(M,"_invoke",{value:B(k,x,X)}),M}function _(k,m,x){try{return{type:"normal",arg:k.call(m,x)}}catch(E){return{type:"throw",arg:E}}}i.wrap=l;var v="suspendedStart",u="suspendedYield",o="executing",d="completed",f={};function p(){}function y(){}function w(){}var b={};a(b,n,function(){return this});var S=Object.getPrototypeOf,A=S&&S(S(N([])));A&&A!==r&&s.call(A,n)&&(b=A);var C=w.prototype=p.prototype=Object.create(b);function D(k){["next","throw","return"].forEach(function(m){a(k,m,function(x){return this._invoke(m,x)})})}function L(k,m){function x(I,M,X,$){var W=_(k[I],k,M);if(W.type!=="throw"){var P=W.arg,T=P.value;return T&&Jt(T)=="object"&&s.call(T,"__await")?m.resolve(T.__await).then(function(U){x("next",U,X,$)},function(U){x("throw",U,X,$)}):m.resolve(T).then(function(U){P.value=U,X(P)},function(U){return x("throw",U,X,$)})}$(W.arg)}var E;c(this,"_invoke",{value:function(M,X){function $(){return new m(function(W,P){x(M,X,W,P)})}return E=E?E.then($,$):$()}})}function B(k,m,x){var E=v;return function(I,M){if(E===o)throw Error("Generator is already running");if(E===d){if(I==="throw")throw M;return{value:e,done:!0}}for(x.method=I,x.arg=M;;){var X=x.delegate;if(X){var $=R(X,x);if($){if($===f)continue;return $}}if(x.method==="next")x.sent=x._sent=x.arg;else if(x.method==="throw"){if(E===v)throw E=d,x.arg;x.dispatchException(x.arg)}else x.method==="return"&&x.abrupt("return",x.arg);E=o;var W=_(k,m,x);if(W.type==="normal"){if(E=x.done?d:u,W.arg===f)continue;return{value:W.arg,done:x.done}}W.type==="throw"&&(E=d,x.method="throw",x.arg=W.arg)}}}function R(k,m){var x=m.method,E=k.iterator[x];if(E===e)return m.delegate=null,x==="throw"&&k.iterator.return&&(m.method="return",m.arg=e,R(k,m),m.method==="throw")||x!=="return"&&(m.method="throw",m.arg=new TypeError("The iterator does not provide a '"+x+"' method")),f;var I=_(E,k.iterator,m.arg);if(I.type==="throw")return m.method="throw",m.arg=I.arg,m.delegate=null,f;var M=I.arg;return M?M.done?(m[k.resultName]=M.value,m.next=k.nextLoc,m.method!=="return"&&(m.method="next",m.arg=e),m.delegate=null,f):M:(m.method="throw",m.arg=new TypeError("iterator result is not an object"),m.delegate=null,f)}function F(k){var m={tryLoc:k[0]};1 in k&&(m.catchLoc=k[1]),2 in k&&(m.finallyLoc=k[2],m.afterLoc=k[3]),this.tryEntries.push(m)}function Q(k){var m=k.completion||{};m.type="normal",delete m.arg,k.completion=m}function K(k){this.tryEntries=[{tryLoc:"root"}],k.forEach(F,this),this.reset(!0)}function N(k){if(k||k===""){var m=k[n];if(m)return m.call(k);if(typeof k.next=="function")return k;if(!isNaN(k.length)){var x=-1,E=function I(){for(;++x=0;--I){var M=this.tryEntries[I],X=M.completion;if(M.tryLoc==="root")return E("end");if(M.tryLoc<=this.prev){var $=s.call(M,"catchLoc"),W=s.call(M,"finallyLoc");if($&&W){if(this.prev=0;--E){var I=this.tryEntries[E];if(I.tryLoc<=this.prev&&s.call(I,"finallyLoc")&&this.prev=0;--x){var E=this.tryEntries[x];if(E.finallyLoc===m)return this.complete(E.completion,E.afterLoc),Q(E),f}},catch:function(m){for(var x=this.tryEntries.length-1;x>=0;--x){var E=this.tryEntries[x];if(E.tryLoc===m){var I=E.completion;if(I.type==="throw"){var M=I.arg;Q(E)}return M}}throw Error("illegal catch attempt")},delegateYield:function(m,x,E){return this.delegate={iterator:N(m),resultName:x,nextLoc:E},this.method==="next"&&(this.arg=e),f}},i}function yl(e,i,r,s,c,t,n){try{var h=e[t](n),g=h.value}catch(a){return void r(a)}h.done?i(g):Promise.resolve(g).then(s,c)}function Ze(e){return function(){var i=this,r=arguments;return new Promise(function(s,c){var t=e.apply(i,r);function n(g){yl(t,s,c,n,h,"next",g)}function h(g){yl(t,s,c,n,h,"throw",g)}n(void 0)})}}function Al(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function bl(e,i){for(var r=0;r>>6,h=0;h<15;h++)t[h]=c[h+1]>>6|c[h]<<2,c[h]=c[h+1]>>7|c[h]<<1;g=[0,135,14,137],t[14]^=n>>>1,t[15]=c[15]<<2^g[n],c[15]=c[15]<<1^g[n>>1],this._k1=c,this._k2=t;case 12:case"end":return l.stop()}},s,this)}));function r(){return i.apply(this,arguments)}return r}()},{key:"_encryptCTR",value:function(){var i=Ze(we().mark(function s(c,t){var n;return we().wrap(function(g){for(;;)switch(g.prev=g.next){case 0:return g.next=2,window.crypto.subtle.encrypt({name:"AES-CTR",counter:t,length:128},this._ctrKey,c);case 2:return n=g.sent,g.abrupt("return",new Uint8Array(n));case 4:case"end":return g.stop()}},s,this)}));function r(s,c){return i.apply(this,arguments)}return r}()},{key:"_decryptCTR",value:function(){var i=Ze(we().mark(function s(c,t){var n;return we().wrap(function(g){for(;;)switch(g.prev=g.next){case 0:return g.next=2,window.crypto.subtle.decrypt({name:"AES-CTR",counter:t,length:128},this._ctrKey,c);case 2:return n=g.sent,g.abrupt("return",new Uint8Array(n));case 4:case"end":return g.stop()}},s,this)}));function r(s,c){return i.apply(this,arguments)}return r}()},{key:"_computeCMAC",value:function(){var i=Ze(we().mark(function s(c,t){var n,h,g,a,l,_,v,u;return we().wrap(function(d){for(;;)switch(d.prev=d.next){case 0:if(t.length===16){d.next=2;break}return d.abrupt("return",null);case 2:if(n=Math.floor(c.length/16),h=Math.ceil(c.length/16),g=c.length-n*16,a=new Uint8Array((h+1)*16),a.set(t),a.set(c,16),g===0)for(l=0;l<16;l++)a[n*16+l]^=this._k1[l];else for(a[(n+1)*16+g]=128,_=0;_<16;_++)a[(n+1)*16+_]^=this._k2[_];return d.next=11,window.crypto.subtle.encrypt({name:"AES-CBC",iv:this._zeroBlock},this._cbcKey,a);case 11:return v=d.sent,v=new Uint8Array(v),u=v.slice(v.length-32,v.length-16),d.abrupt("return",u);case 15:case"end":return d.stop()}},s,this)}));function r(s,c){return i.apply(this,arguments)}return r}()},{key:"_importKey",value:function(){var i=Ze(we().mark(function s(c){return we().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return this._rawKey=c,n.next=3,window.crypto.subtle.importKey("raw",c,{name:"AES-CTR"},!1,["encrypt","decrypt"]);case 3:return this._ctrKey=n.sent,n.next=6,window.crypto.subtle.importKey("raw",c,{name:"AES-CBC"},!1,["encrypt"]);case 6:return this._cbcKey=n.sent,n.next=9,this._initCMAC();case 9:case"end":return n.stop()}},s,this)}));function r(s){return i.apply(this,arguments)}return r}()},{key:"encrypt",value:function(){var i=Ze(we().mark(function s(c,t){var n,h,g,a,l,_,v,u;return we().wrap(function(d){for(;;)switch(d.prev=d.next){case 0:return n=c.additionalData,h=c.iv,d.next=4,this._computeCMAC(h,this._prefixBlock0);case 4:return g=d.sent,d.next=7,this._encryptCTR(t,g);case 7:return a=d.sent,d.next=10,this._computeCMAC(n,this._prefixBlock1);case 10:return l=d.sent,d.next=13,this._computeCMAC(a,this._prefixBlock2);case 13:for(_=d.sent,v=0;v<16;v++)_[v]^=g[v]^l[v];return u=new Uint8Array(16+a.length),u.set(a),u.set(_,a.length),d.abrupt("return",u);case 19:case"end":return d.stop()}},s,this)}));function r(s,c){return i.apply(this,arguments)}return r}()},{key:"decrypt",value:function(){var i=Ze(we().mark(function s(c,t){var n,h,g,a,l,_,v,u,o,d;return we().wrap(function(p){for(;;)switch(p.prev=p.next){case 0:return n=t.slice(0,t.length-16),h=c.additionalData,g=c.iv,a=t.slice(t.length-16),p.next=6,this._computeCMAC(g,this._prefixBlock0);case 6:return l=p.sent,p.next=9,this._computeCMAC(h,this._prefixBlock1);case 9:return _=p.sent,p.next=12,this._computeCMAC(n,this._prefixBlock2);case 12:for(v=p.sent,u=0;u<16;u++)v[u]^=l[u]^_[u];if(v.length===a.length){p.next=16;break}return p.abrupt("return",null);case 16:o=0;case 17:if(!(o{"use strict";Object.defineProperty(yi,"__esModule",{value:!0});yi.DESECBCipher=yi.DESCBCCipher=void 0;function Vi(e){"@babel/helpers - typeof";return Vi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Vi(e)}function Vn(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function xl(e,i){for(var r=0;r>>3]&1<>>10,this.keys[p]|=(w&4032)>>>6,++p,this.keys[p]=(y&258048)<<12,this.keys[p]|=(y&63)<<16,this.keys[p]|=(w&258048)>>>4,this.keys[p]|=w&63,++p}}return Yn(e,[{key:"enc8",value:function(r){var s=r.slice(),c=0,t,n,h;t=s[c++]<<24|s[c++]<<16|s[c++]<<8|s[c++],n=s[c++]<<24|s[c++]<<16|s[c++]<<8|s[c++],h=(t>>>4^n)&252645135,n^=h,t^=h<<4,h=(t>>>16^n)&65535,n^=h,t^=h<<16,h=(n>>>2^t)&858993459,t^=h,n^=h<<2,h=(n>>>8^t)&16711935,t^=h,n^=h<<8,n=n<<1|n>>>31&1,h=(t^n)&2863311530,t^=h,n^=h,t=t<<1|t>>>31&1;for(var g=0,a=0;g<8;++g){h=n<<28|n>>>4,h^=this.keys[a++];var l=Rl[h&63];l|=Il[h>>>8&63],l|=Bl[h>>>16&63],l|=El[h>>>24&63],h=n^this.keys[a++],l|=Ml[h&63],l|=Dl[h>>>8&63],l|=Ll[h>>>16&63],l|=kl[h>>>24&63],t^=l,h=t<<28|t>>>4,h^=this.keys[a++],l=Rl[h&63],l|=Il[h>>>8&63],l|=Bl[h>>>16&63],l|=El[h>>>24&63],h=t^this.keys[a++],l|=Ml[h&63],l|=Dl[h>>>8&63],l|=Ll[h>>>16&63],l|=kl[h>>>24&63],n^=l}for(n=n<<31|n>>>1,h=(t^n)&2863311530,t^=h,n^=h,t=t<<31|t>>>1,h=(t>>>8^n)&16711935,n^=h,t^=h<<8,h=(t>>>2^n)&858993459,n^=h,t^=h<<2,h=(n>>>16^t)&65535,t^=h,n^=h<<16,h=(n>>>4^t)&252645135,t^=h,n^=h<<4,h=[n,t],c=0;c<8;c++)s[c]=(h[c>>>2]>>>8*(3-c%4))%256,s[c]<0&&(s[c]+=256);return s}}])}(),Pv=yi.DESECBCipher=function(){function e(){Vn(this,e),this._cipher=null}return Yn(e,[{key:"algorithm",get:function(){return{name:"DES-ECB"}}},{key:"_importKey",value:function(r,s,c){this._cipher=new Tl(r)}},{key:"encrypt",value:function(r,s){var c=new Uint8Array(s);if(c.length%8!==0||this._cipher===null)return null;for(var t=c.length/8,n=0;n{"use strict";Object.defineProperty(Yi,"__esModule",{value:!0});Yi.bigIntToU8Array=Z_;Yi.modPow=J_;Yi.u8ArrayToBigInt=e0;function J_(e,i,r){var s=1n;for(e=e%r;i>0n;)(i&1n)===1n&&(s=s*e%r),i=i>>1n,e=e*e%r;return s}function Z_(e){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=e.toString(16);i===0&&(i=Math.ceil(r.length/2)),r=r.padStart(i*2,"0");for(var s=r.length/2,c=new Uint8Array(s),t=0;t{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.RSACipher=void 0;var t0=i0(nn()),nt=Jn();function i0(e){return e&&e.__esModule?e:{default:e}}function ei(e){"@babel/helpers - typeof";return ei=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},ei(e)}function Ue(){"use strict";Ue=function(){return i};var e,i={},r=Object.prototype,s=r.hasOwnProperty,c=Object.defineProperty||function(k,m,x){k[m]=x.value},t=typeof Symbol=="function"?Symbol:{},n=t.iterator||"@@iterator",h=t.asyncIterator||"@@asyncIterator",g=t.toStringTag||"@@toStringTag";function a(k,m,x){return Object.defineProperty(k,m,{value:x,enumerable:!0,configurable:!0,writable:!0}),k[m]}try{a({},"")}catch{a=function(x,E,I){return x[E]=I}}function l(k,m,x,E){var I=m&&m.prototype instanceof p?m:p,M=Object.create(I.prototype),X=new K(E||[]);return c(M,"_invoke",{value:B(k,x,X)}),M}function _(k,m,x){try{return{type:"normal",arg:k.call(m,x)}}catch(E){return{type:"throw",arg:E}}}i.wrap=l;var v="suspendedStart",u="suspendedYield",o="executing",d="completed",f={};function p(){}function y(){}function w(){}var b={};a(b,n,function(){return this});var S=Object.getPrototypeOf,A=S&&S(S(N([])));A&&A!==r&&s.call(A,n)&&(b=A);var C=w.prototype=p.prototype=Object.create(b);function D(k){["next","throw","return"].forEach(function(m){a(k,m,function(x){return this._invoke(m,x)})})}function L(k,m){function x(I,M,X,$){var W=_(k[I],k,M);if(W.type!=="throw"){var P=W.arg,T=P.value;return T&&ei(T)=="object"&&s.call(T,"__await")?m.resolve(T.__await).then(function(U){x("next",U,X,$)},function(U){x("throw",U,X,$)}):m.resolve(T).then(function(U){P.value=U,X(P)},function(U){return x("throw",U,X,$)})}$(W.arg)}var E;c(this,"_invoke",{value:function(M,X){function $(){return new m(function(W,P){x(M,X,W,P)})}return E=E?E.then($,$):$()}})}function B(k,m,x){var E=v;return function(I,M){if(E===o)throw Error("Generator is already running");if(E===d){if(I==="throw")throw M;return{value:e,done:!0}}for(x.method=I,x.arg=M;;){var X=x.delegate;if(X){var $=R(X,x);if($){if($===f)continue;return $}}if(x.method==="next")x.sent=x._sent=x.arg;else if(x.method==="throw"){if(E===v)throw E=d,x.arg;x.dispatchException(x.arg)}else x.method==="return"&&x.abrupt("return",x.arg);E=o;var W=_(k,m,x);if(W.type==="normal"){if(E=x.done?d:u,W.arg===f)continue;return{value:W.arg,done:x.done}}W.type==="throw"&&(E=d,x.method="throw",x.arg=W.arg)}}}function R(k,m){var x=m.method,E=k.iterator[x];if(E===e)return m.delegate=null,x==="throw"&&k.iterator.return&&(m.method="return",m.arg=e,R(k,m),m.method==="throw")||x!=="return"&&(m.method="throw",m.arg=new TypeError("The iterator does not provide a '"+x+"' method")),f;var I=_(E,k.iterator,m.arg);if(I.type==="throw")return m.method="throw",m.arg=I.arg,m.delegate=null,f;var M=I.arg;return M?M.done?(m[k.resultName]=M.value,m.next=k.nextLoc,m.method!=="return"&&(m.method="next",m.arg=e),m.delegate=null,f):M:(m.method="throw",m.arg=new TypeError("iterator result is not an object"),m.delegate=null,f)}function F(k){var m={tryLoc:k[0]};1 in k&&(m.catchLoc=k[1]),2 in k&&(m.finallyLoc=k[2],m.afterLoc=k[3]),this.tryEntries.push(m)}function Q(k){var m=k.completion||{};m.type="normal",delete m.arg,k.completion=m}function K(k){this.tryEntries=[{tryLoc:"root"}],k.forEach(F,this),this.reset(!0)}function N(k){if(k||k===""){var m=k[n];if(m)return m.call(k);if(typeof k.next=="function")return k;if(!isNaN(k.length)){var x=-1,E=function I(){for(;++x=0;--I){var M=this.tryEntries[I],X=M.completion;if(M.tryLoc==="root")return E("end");if(M.tryLoc<=this.prev){var $=s.call(M,"catchLoc"),W=s.call(M,"finallyLoc");if($&&W){if(this.prev=0;--E){var I=this.tryEntries[E];if(I.tryLoc<=this.prev&&s.call(I,"finallyLoc")&&this.prev=0;--x){var E=this.tryEntries[x];if(E.finallyLoc===m)return this.complete(E.completion,E.afterLoc),Q(E),f}},catch:function(m){for(var x=this.tryEntries.length-1;x>=0;--x){var E=this.tryEntries[x];if(E.tryLoc===m){var I=E.completion;if(I.type==="throw"){var M=I.arg;Q(E)}return M}}throw Error("illegal catch attempt")},delegateYield:function(m,x,E){return this.delegate={iterator:N(m),resultName:x,nextLoc:E},this.method==="next"&&(this.arg=e),f}},i}function Pl(e,i,r,s,c,t,n){try{var h=e[t](n),g=h.value}catch(a){return void r(a)}h.done?i(g):Promise.resolve(g).then(s,c)}function Zt(e){return function(){var i=this,r=arguments;return new Promise(function(s,c){var t=e.apply(i,r);function n(g){Pl(t,s,c,n,h,"next",g)}function h(g){Pl(t,s,c,n,h,"throw",g)}n(void 0)})}}function r0(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function Ol(e,i){for(var r=0;rthis._keyBytes-11)){v.next=2;break}return v.abrupt("return",null);case 2:for(n=new Uint8Array(this._keyBytes-t.length-3),window.crypto.getRandomValues(n),h=0;h{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.DHCipher=void 0;var Pt=Jn();function Ji(e){"@babel/helpers - typeof";return Ji=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Ji(e)}function Xl(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function Kl(e,i){for(var r=0;rthis._keyBytes?c:this._keyBytes,h=(0,Pt.modPow)((0,Pt.u8ArrayToBigInt)(t),this._privateKeyBigInt,this._pBigInt);return(0,Pt.bigIntToU8Array)(h,n).slice(0,n)}}],[{key:"generateKey",value:function(r,s){var c=new e;return c._generateKey(r),{privateKey:c,publicKey:new l0(c._publicKey)}}}])}()});var $l=re(to=>{"use strict";Object.defineProperty(to,"__esModule",{value:!0});to.MD5=u0;function es(e){"@babel/helpers - typeof";return es=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},es(e)}function Zn(){"use strict";Zn=function(){return i};var e,i={},r=Object.prototype,s=r.hasOwnProperty,c=Object.defineProperty||function(k,m,x){k[m]=x.value},t=typeof Symbol=="function"?Symbol:{},n=t.iterator||"@@iterator",h=t.asyncIterator||"@@asyncIterator",g=t.toStringTag||"@@toStringTag";function a(k,m,x){return Object.defineProperty(k,m,{value:x,enumerable:!0,configurable:!0,writable:!0}),k[m]}try{a({},"")}catch{a=function(x,E,I){return x[E]=I}}function l(k,m,x,E){var I=m&&m.prototype instanceof p?m:p,M=Object.create(I.prototype),X=new K(E||[]);return c(M,"_invoke",{value:B(k,x,X)}),M}function _(k,m,x){try{return{type:"normal",arg:k.call(m,x)}}catch(E){return{type:"throw",arg:E}}}i.wrap=l;var v="suspendedStart",u="suspendedYield",o="executing",d="completed",f={};function p(){}function y(){}function w(){}var b={};a(b,n,function(){return this});var S=Object.getPrototypeOf,A=S&&S(S(N([])));A&&A!==r&&s.call(A,n)&&(b=A);var C=w.prototype=p.prototype=Object.create(b);function D(k){["next","throw","return"].forEach(function(m){a(k,m,function(x){return this._invoke(m,x)})})}function L(k,m){function x(I,M,X,$){var W=_(k[I],k,M);if(W.type!=="throw"){var P=W.arg,T=P.value;return T&&es(T)=="object"&&s.call(T,"__await")?m.resolve(T.__await).then(function(U){x("next",U,X,$)},function(U){x("throw",U,X,$)}):m.resolve(T).then(function(U){P.value=U,X(P)},function(U){return x("throw",U,X,$)})}$(W.arg)}var E;c(this,"_invoke",{value:function(M,X){function $(){return new m(function(W,P){x(M,X,W,P)})}return E=E?E.then($,$):$()}})}function B(k,m,x){var E=v;return function(I,M){if(E===o)throw Error("Generator is already running");if(E===d){if(I==="throw")throw M;return{value:e,done:!0}}for(x.method=I,x.arg=M;;){var X=x.delegate;if(X){var $=R(X,x);if($){if($===f)continue;return $}}if(x.method==="next")x.sent=x._sent=x.arg;else if(x.method==="throw"){if(E===v)throw E=d,x.arg;x.dispatchException(x.arg)}else x.method==="return"&&x.abrupt("return",x.arg);E=o;var W=_(k,m,x);if(W.type==="normal"){if(E=x.done?d:u,W.arg===f)continue;return{value:W.arg,done:x.done}}W.type==="throw"&&(E=d,x.method="throw",x.arg=W.arg)}}}function R(k,m){var x=m.method,E=k.iterator[x];if(E===e)return m.delegate=null,x==="throw"&&k.iterator.return&&(m.method="return",m.arg=e,R(k,m),m.method==="throw")||x!=="return"&&(m.method="throw",m.arg=new TypeError("The iterator does not provide a '"+x+"' method")),f;var I=_(E,k.iterator,m.arg);if(I.type==="throw")return m.method="throw",m.arg=I.arg,m.delegate=null,f;var M=I.arg;return M?M.done?(m[k.resultName]=M.value,m.next=k.nextLoc,m.method!=="return"&&(m.method="next",m.arg=e),m.delegate=null,f):M:(m.method="throw",m.arg=new TypeError("iterator result is not an object"),m.delegate=null,f)}function F(k){var m={tryLoc:k[0]};1 in k&&(m.catchLoc=k[1]),2 in k&&(m.finallyLoc=k[2],m.afterLoc=k[3]),this.tryEntries.push(m)}function Q(k){var m=k.completion||{};m.type="normal",delete m.arg,k.completion=m}function K(k){this.tryEntries=[{tryLoc:"root"}],k.forEach(F,this),this.reset(!0)}function N(k){if(k||k===""){var m=k[n];if(m)return m.call(k);if(typeof k.next=="function")return k;if(!isNaN(k.length)){var x=-1,E=function I(){for(;++x=0;--I){var M=this.tryEntries[I],X=M.completion;if(M.tryLoc==="root")return E("end");if(M.tryLoc<=this.prev){var $=s.call(M,"catchLoc"),W=s.call(M,"finallyLoc");if($&&W){if(this.prev=0;--E){var I=this.tryEntries[E];if(I.tryLoc<=this.prev&&s.call(I,"finallyLoc")&&this.prev=0;--x){var E=this.tryEntries[x];if(E.finallyLoc===m)return this.complete(E.completion,E.afterLoc),Q(E),f}},catch:function(m){for(var x=this.tryEntries.length-1;x>=0;--x){var E=this.tryEntries[x];if(E.tryLoc===m){var I=E.completion;if(I.type==="throw"){var M=I.arg;Q(E)}return M}}throw Error("illegal catch attempt")},delegateYield:function(m,x,E){return this.delegate={iterator:N(m),resultName:x,nextLoc:E},this.method==="next"&&(this.arg=e),f}},i}function Ul(e,i,r,s,c,t,n){try{var h=e[t](n),g=h.value}catch(a){return void r(a)}h.done?i(g):Promise.resolve(g).then(s,c)}function c0(e){return function(){var i=this,r=arguments;return new Promise(function(s,c){var t=e.apply(i,r);function n(g){Ul(t,s,c,n,h,"next",g)}function h(g){Ul(t,s,c,n,h,"throw",g)}n(void 0)})}}function u0(e){return eo.apply(this,arguments)}function eo(){return eo=c0(Zn().mark(function e(i){var r,s;return Zn().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:for(r="",s=0;s>2),r=0;r>5]|=(255&e.charCodeAt(s/8))<>5]>>>r%32&255);return i}function g0(e,i){e[i>>5]|=128<>>9<<4)]=i;for(var r=1732584193,s=-271733879,c=-1732584194,t=271733878,n=0;n>16)+(i>>16)+(r>>16)<<16|65535&r}function p0(e,i){return e<>>32-i}});var io=re(is=>{"use strict";Object.defineProperty(is,"__esModule",{value:!0});is.default=void 0;var Wl=Cl(),jl=Fl(),v0=Ql(),m0=Nl(),y0=$l();function Zi(e){"@babel/helpers - typeof";return Zi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Zi(e)}function b0(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function Gl(e,i){for(var r=0;r"u"||typeof h.importKey!="function")throw new Error("algorithm is not supported");return h.importKey(s,c,t,n)}},{key:"generateKey",value:function(r,s,c){var t=this._algorithms[r.name];if(typeof t>"u"||typeof t.generateKey!="function")throw new Error("algorithm is not supported");return t.generateKey(r,s,c)}},{key:"exportKey",value:function(r,s){if(r!=="raw")throw new Error("key format is not supported");if(typeof s.exportKey!="function")throw new Error("key does not support exportKey");return s.exportKey()}},{key:"digest",value:function(r,s){var c=this._algorithms[r];if(typeof c!="function")throw new Error("algorithm is not supported");return c(s)}},{key:"deriveBits",value:function(r,s,c){if(s.algorithm.name!==r.name)throw new Error("algorithm does not match");if(typeof s.deriveBits!="function")throw new Error("key does not support deriveBits");return s.deriveBits(r,c)}}])}(),Wv=is.default=new x0});var ic=re(ns=>{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.default=void 0;var zl=zs(),S0=Jl(rn()),Qt=Jl(io());function Jl(e){return e&&e.__esModule?e:{default:e}}function E0(e,i,r){return i=ss(i),k0(e,Zl()?Reflect.construct(i,r||[],ss(e).constructor):i.apply(e,r))}function k0(e,i){if(i&&(Kt(i)=="object"||typeof i=="function"))return i;if(i!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return B0(e)}function B0(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Zl(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Zl=function(){return!!e})()}function ss(e){return ss=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(i){return i.__proto__||Object.getPrototypeOf(i)},ss(e)}function L0(e,i){if(typeof i!="function"&&i!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(i&&i.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),i&&ro(e,i)}function ro(e,i){return ro=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,s){return r.__proto__=s,r},ro(e,i)}function Kt(e){"@babel/helpers - typeof";return Kt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Kt(e)}function Ct(){"use strict";Ct=function(){return i};var e,i={},r=Object.prototype,s=r.hasOwnProperty,c=Object.defineProperty||function(k,m,x){k[m]=x.value},t=typeof Symbol=="function"?Symbol:{},n=t.iterator||"@@iterator",h=t.asyncIterator||"@@asyncIterator",g=t.toStringTag||"@@toStringTag";function a(k,m,x){return Object.defineProperty(k,m,{value:x,enumerable:!0,configurable:!0,writable:!0}),k[m]}try{a({},"")}catch{a=function(x,E,I){return x[E]=I}}function l(k,m,x,E){var I=m&&m.prototype instanceof p?m:p,M=Object.create(I.prototype),X=new K(E||[]);return c(M,"_invoke",{value:B(k,x,X)}),M}function _(k,m,x){try{return{type:"normal",arg:k.call(m,x)}}catch(E){return{type:"throw",arg:E}}}i.wrap=l;var v="suspendedStart",u="suspendedYield",o="executing",d="completed",f={};function p(){}function y(){}function w(){}var b={};a(b,n,function(){return this});var S=Object.getPrototypeOf,A=S&&S(S(N([])));A&&A!==r&&s.call(A,n)&&(b=A);var C=w.prototype=p.prototype=Object.create(b);function D(k){["next","throw","return"].forEach(function(m){a(k,m,function(x){return this._invoke(m,x)})})}function L(k,m){function x(I,M,X,$){var W=_(k[I],k,M);if(W.type!=="throw"){var P=W.arg,T=P.value;return T&&Kt(T)=="object"&&s.call(T,"__await")?m.resolve(T.__await).then(function(U){x("next",U,X,$)},function(U){x("throw",U,X,$)}):m.resolve(T).then(function(U){P.value=U,X(P)},function(U){return x("throw",U,X,$)})}$(W.arg)}var E;c(this,"_invoke",{value:function(M,X){function $(){return new m(function(W,P){x(M,X,W,P)})}return E=E?E.then($,$):$()}})}function B(k,m,x){var E=v;return function(I,M){if(E===o)throw Error("Generator is already running");if(E===d){if(I==="throw")throw M;return{value:e,done:!0}}for(x.method=I,x.arg=M;;){var X=x.delegate;if(X){var $=R(X,x);if($){if($===f)continue;return $}}if(x.method==="next")x.sent=x._sent=x.arg;else if(x.method==="throw"){if(E===v)throw E=d,x.arg;x.dispatchException(x.arg)}else x.method==="return"&&x.abrupt("return",x.arg);E=o;var W=_(k,m,x);if(W.type==="normal"){if(E=x.done?d:u,W.arg===f)continue;return{value:W.arg,done:x.done}}W.type==="throw"&&(E=d,x.method="throw",x.arg=W.arg)}}}function R(k,m){var x=m.method,E=k.iterator[x];if(E===e)return m.delegate=null,x==="throw"&&k.iterator.return&&(m.method="return",m.arg=e,R(k,m),m.method==="throw")||x!=="return"&&(m.method="throw",m.arg=new TypeError("The iterator does not provide a '"+x+"' method")),f;var I=_(E,k.iterator,m.arg);if(I.type==="throw")return m.method="throw",m.arg=I.arg,m.delegate=null,f;var M=I.arg;return M?M.done?(m[k.resultName]=M.value,m.next=k.nextLoc,m.method!=="return"&&(m.method="next",m.arg=e),m.delegate=null,f):M:(m.method="throw",m.arg=new TypeError("iterator result is not an object"),m.delegate=null,f)}function F(k){var m={tryLoc:k[0]};1 in k&&(m.catchLoc=k[1]),2 in k&&(m.finallyLoc=k[2],m.afterLoc=k[3]),this.tryEntries.push(m)}function Q(k){var m=k.completion||{};m.type="normal",delete m.arg,k.completion=m}function K(k){this.tryEntries=[{tryLoc:"root"}],k.forEach(F,this),this.reset(!0)}function N(k){if(k||k===""){var m=k[n];if(m)return m.call(k);if(typeof k.next=="function")return k;if(!isNaN(k.length)){var x=-1,E=function I(){for(;++x=0;--I){var M=this.tryEntries[I],X=M.completion;if(M.tryLoc==="root")return E("end");if(M.tryLoc<=this.prev){var $=s.call(M,"catchLoc"),W=s.call(M,"finallyLoc");if($&&W){if(this.prev=0;--E){var I=this.tryEntries[E];if(I.tryLoc<=this.prev&&s.call(I,"finallyLoc")&&this.prev=0;--x){var E=this.tryEntries[x];if(E.finallyLoc===m)return this.complete(E.completion,E.afterLoc),Q(E),f}},catch:function(m){for(var x=this.tryEntries.length-1;x>=0;--x){var E=this.tryEntries[x];if(E.tryLoc===m){var I=E.completion;if(I.type==="throw"){var M=I.arg;Q(E)}return M}}throw Error("illegal catch attempt")},delegateYield:function(m,x,E){return this.delegate={iterator:N(m),resultName:x,nextLoc:E},this.method==="next"&&(this.arg=e),f}},i}function ql(e,i,r,s,c,t,n){try{var h=e[t](n),g=h.value}catch(a){return void r(a)}h.done?i(g):Promise.resolve(g).then(s,c)}function rs(e){return function(){var i=this,r=arguments;return new Promise(function(s,c){var t=e.apply(i,r);function n(g){ql(t,s,c,n,h,"next",g)}function h(g){ql(t,s,c,n,h,"throw",g)}n(void 0)})}}function ec(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function Vl(e,i){for(var r=0;r>>8,c.length&255]),l.next=3,Qt.default.encrypt({name:"AES-EAX",iv:this._counter,additionalData:t},this._cipher,c);case 3:for(n=l.sent,h=0;h<16&&this._counter[h]++===255;h++);return g=new Uint8Array(c.length+2+16),g.set(t),g.set(n,2),l.abrupt("return",g);case 9:case"end":return l.stop()}},s,this)}));function r(s){return i.apply(this,arguments)}return r}()},{key:"receiveMessage",value:function(){var i=rs(Ct().mark(function s(c,t){var n,h,g;return Ct().wrap(function(l){for(;;)switch(l.prev=l.next){case 0:return n=new Uint8Array([(c&65280)>>>8,c&255]),l.next=3,Qt.default.decrypt({name:"AES-EAX",iv:this._counter,additionalData:n},this._cipher,t);case 3:for(h=l.sent,g=0;g<16&&this._counter[g]++===255;g++);return l.abrupt("return",h);case 6:case"end":return l.stop()}},s,this)}));function r(s,c){return i.apply(this,arguments)}return r}()}])}(),Gv=ns.default=function(e){function i(r,s){var c;return ec(this,i),c=E0(this,i),c._hasStarted=!1,c._checkSock=null,c._checkCredentials=null,c._approveServerResolve=null,c._sockReject=null,c._credentialsReject=null,c._approveServerReject=null,c._sock=r,c._getCredentials=s,c}return L0(i,e),tc(i,[{key:"_waitSockAsync",value:function(s){var c=this;return new Promise(function(t,n){var h=function(){return!c._sock.rQwait("RA2",s)};h()?t():(c._checkSock=function(){h()&&(t(),c._checkSock=null,c._sockReject=null)},c._sockReject=n)})}},{key:"_waitApproveKeyAsync",value:function(){var s=this;return new Promise(function(c,t){s._approveServerResolve=c,s._approveServerReject=t})}},{key:"_waitCredentialsAsync",value:function(s){var c=this,t=function(){return s===1&&c._getCredentials().username!==void 0&&c._getCredentials().password!==void 0?!0:s===2&&c._getCredentials().password!==void 0};return new Promise(function(n,h){t()?n():(c._checkCredentials=function(){t()&&(n(),c._checkCredentials=null,c._credentialsReject=null)},c._credentialsReject=h)})}},{key:"checkInternalEvents",value:function(){this._checkSock!==null&&this._checkSock(),this._checkCredentials!==null&&this._checkCredentials()}},{key:"approveServer",value:function(){this._approveServerResolve!==null&&(this._approveServerResolve(),this._approveServerResolve=null)}},{key:"disconnect",value:function(){this._sockReject!==null&&(this._sockReject(new Error("disconnect normally")),this._sockReject=null),this._credentialsReject!==null&&(this._credentialsReject(new Error("disconnect normally")),this._credentialsReject=null),this._approveServerReject!==null&&(this._approveServerReject(new Error("disconnect normally")),this._approveServerReject=null)}},{key:"negotiateRA2neAuthAsync",value:function(){var r=rs(Ct().mark(function c(){var t,n,h,g,a,l,_,v,u,o,d,f,p,y,w,b,S,A,C,D,L,B,R,F,Q,K,N,k,m,x,E,I,M,X,$;return Ct().wrap(function(P){for(;;)switch(P.prev=P.next){case 0:return this._hasStarted=!0,P.next=3,this._waitSockAsync(4);case 3:if(t=this._sock.rQpeekBytes(4),n=this._sock.rQshift32(),!(n<1024)){P.next=9;break}throw new Error("RA2: server public key is too short: "+n);case 9:if(!(n>8192)){P.next=11;break}throw new Error("RA2: server public key is too long: "+n);case 11:return h=Math.ceil(n/8),P.next=14,this._waitSockAsync(h*2);case 14:return g=this._sock.rQshiftBytes(h),a=this._sock.rQshiftBytes(h),P.next=18,Qt.default.importKey("raw",{n:g,e:a},{name:"RSA-PKCS1-v1_5"},!1,["encrypt"]);case 18:return l=P.sent,_=new Uint8Array(4+h*2),_.set(t),_.set(g,4),_.set(a,4+h),v=this._waitApproveKeyAsync(),this.dispatchEvent(new CustomEvent("serververification",{detail:{type:"RSA",publickey:_}})),P.next=27,v;case 27:return u=2048,o=Math.ceil(u/8),P.next=31,Qt.default.generateKey({name:"RSA-PKCS1-v1_5",modulusLength:u,publicExponent:new Uint8Array([1,0,1])},!0,["encrypt"]);case 31:return d=P.sent.privateKey,P.next=34,Qt.default.exportKey("raw",d);case 34:return f=P.sent,p=f.n,y=f.e,w=new Uint8Array(4+o*2),w[0]=(u&4278190080)>>>24,w[1]=(u&16711680)>>>16,w[2]=(u&65280)>>>8,w[3]=u&255,w.set(p,4),w.set(y,4+o),this._sock.sQpushBytes(w),this._sock.flush(),b=new Uint8Array(16),window.crypto.getRandomValues(b),P.next=50,Qt.default.encrypt({name:"RSA-PKCS1-v1_5"},l,b);case 50:return S=P.sent,A=new Uint8Array(2+h),A[0]=(h&65280)>>>8,A[1]=h&255,A.set(S,2),this._sock.sQpushBytes(A),this._sock.flush(),P.next=59,this._waitSockAsync(2);case 59:if(this._sock.rQshift16()===o){P.next=61;break}throw new Error("RA2: wrong encrypted message length");case 61:return C=this._sock.rQshiftBytes(o),P.next=64,Qt.default.decrypt({name:"RSA-PKCS1-v1_5"},d,C);case 64:if(D=P.sent,!(D===null||D.length!==16)){P.next=67;break}throw new Error("RA2: corrupted server encrypted random");case 67:return L=new Uint8Array(32),B=new Uint8Array(32),L.set(D),L.set(b,16),B.set(b),B.set(D,16),P.next=75,window.crypto.subtle.digest("SHA-1",L);case 75:return L=P.sent,L=new Uint8Array(L).slice(0,16),P.next=79,window.crypto.subtle.digest("SHA-1",B);case 79:return B=P.sent,B=new Uint8Array(B).slice(0,16),R=new Yl,P.next=84,R.setKey(L);case 84:return F=new Yl,P.next=87,F.setKey(B);case 87:return Q=new Uint8Array(8+h*2+o*2),K=new Uint8Array(8+h*2+o*2),Q.set(_),Q.set(w,4+h*2),K.set(w),K.set(_,4+o*2),P.next=95,window.crypto.subtle.digest("SHA-1",Q);case 95:return Q=P.sent,P.next=98,window.crypto.subtle.digest("SHA-1",K);case 98:return K=P.sent,Q=new Uint8Array(Q),K=new Uint8Array(K),P.t0=this._sock,P.next=104,R.makeMessage(K);case 104:return P.t1=P.sent,P.t0.sQpushBytes.call(P.t0,P.t1),this._sock.flush(),P.next=109,this._waitSockAsync(38);case 109:if(this._sock.rQshift16()===20){P.next=111;break}throw new Error("RA2: wrong server hash");case 111:return P.next=113,F.receiveMessage(20,this._sock.rQshiftBytes(36));case 113:if(N=P.sent,N!==null){P.next=116;break}throw new Error("RA2: failed to authenticate the message");case 116:k=0;case 117:if(!(k<20)){P.next=123;break}if(N[k]===Q[k]){P.next=120;break}throw new Error("RA2: wrong server hash");case 120:k++,P.next=117;break;case 123:return P.next=125,this._waitSockAsync(19);case 125:if(this._sock.rQshift16()===1){P.next=127;break}throw new Error("RA2: wrong subtype");case 127:return P.next=129,F.receiveMessage(1,this._sock.rQshiftBytes(17));case 129:if(m=P.sent,m!==null){P.next=132;break}throw new Error("RA2: failed to authenticate the message");case 132:if(m=m[0],x=this._waitCredentialsAsync(m),m!==1){P.next=138;break}(this._getCredentials().username===void 0||this._getCredentials().password===void 0)&&this.dispatchEvent(new CustomEvent("credentialsrequired",{detail:{types:["username","password"]}})),P.next=143;break;case 138:if(m!==2){P.next=142;break}this._getCredentials().password===void 0&&this.dispatchEvent(new CustomEvent("credentialsrequired",{detail:{types:["password"]}})),P.next=143;break;case 142:throw new Error("RA2: wrong subtype");case 143:return P.next=145,x;case 145:for(m===1?E=(0,zl.encodeUTF8)(this._getCredentials().username).slice(0,255):E="",I=(0,zl.encodeUTF8)(this._getCredentials().password).slice(0,255),M=new Uint8Array(E.length+I.length+2),M[0]=E.length,M[E.length+1]=I.length,X=0;X{"use strict";Object.defineProperty(os,"__esModule",{value:!0});os.default=void 0;function er(e){"@babel/helpers - typeof";return er=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},er(e)}function R0(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function rc(e,i){for(var r=0;r0;){if(n.rQwait("RAW",l))return!1;var _=s+(t-this._lines),v=n.rQshiftBytes(l,!1);if(g==8){for(var u=new Uint8Array(c*4),o=0;o>0&3)*255/3,u[o*4+1]=(v[o]>>2&3)*255/3,u[o*4+2]=(v[o]>>4&3)*255/3,u[o*4+3]=255;v=u}for(var d=0;d{"use strict";Object.defineProperty(as,"__esModule",{value:!0});as.default=void 0;function tr(e){"@babel/helpers - typeof";return tr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},tr(e)}function P0(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function nc(e,i){for(var r=0;r{"use strict";Object.defineProperty(hs,"__esModule",{value:!0});hs.default=void 0;function ir(e){"@babel/helpers - typeof";return ir=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},ir(e)}function X0(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function ac(e,i){for(var r=0;r0;){if(n.rQwait("RRE",12))return!1;var l=n.rQshiftBytes(4),_=n.rQshift16(),v=n.rQshift16(),u=n.rQshift16(),o=n.rQshift16();h.fillRect(r+_,s+v,u,o,l),this._subrects--}return!0}}])}()});var uc=re(ls=>{"use strict";Object.defineProperty(ls,"__esModule",{value:!0});ls.default=void 0;var $0=W0(yt());function cc(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(cc=function(c){return c?r:i})(e)}function W0(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||bi(e)!="object"&&typeof e!="function")return{default:e};var r=cc(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}function bi(e){"@babel/helpers - typeof";return bi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},bi(e)}function j0(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function lc(e,i){for(var r=0;r0;){var a=1;if(n.rQwait("HEXTILE",a))return!1;var l=n.rQpeek8();if(l>30)throw new Error("Illegal hextile subencoding (subencoding: "+l+")");var _=this._totalTiles-this._tiles,v=_%this._tilesX,u=Math.floor(_/this._tilesX),o=r+v*16,d=s+u*16,f=Math.min(16,r+c-o),p=Math.min(16,s+t-d);if(l&1)a+=f*p*4;else if(l&2&&(a+=4),l&4&&(a+=4),l&8){if(a++,n.rQwait("HEXTILE",a))return!1;var y=n.rQpeekBytes(a).at(-1);l&16?a+=y*6:a+=y*2}if(n.rQwait("HEXTILE",a))return!1;if(n.rQshift8(),l===0)this._lastsubencoding&1?$0.Debug(" Ignoring blank after RAW"):h.fillRect(o,d,f,p,this._background);else if(l&1){for(var w=f*p,b=n.rQshiftBytes(w*4,!1),S=0;S>4,R=L&15,F=n.rQshift8(),Q=(F>>4)+1,K=(F&15)+1;this._subTile(B,R,Q,K,D)}this._finishTile(h)}this._lastsubencoding=l,this._tiles--}return!0}},{key:"_startTile",value:function(r,s,c,t,n){this._tileX=r,this._tileY=s,this._tileW=c,this._tileH=t;for(var h=n[0],g=n[1],a=n[2],l=this._tileBuffer,_=0;_{"use strict";Object.defineProperty(cs,"__esModule",{value:!0});cs.default=void 0;var V0=Z0(yt()),Y0=J0(kr());function J0(e){return e&&e.__esModule?e:{default:e}}function fc(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(fc=function(c){return c?r:i})(e)}function Z0(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||Ai(e)!="object"&&typeof e!="function")return{default:e};var r=fc(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}function Ai(e){"@babel/helpers - typeof";return Ai=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Ai(e)}function eg(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function dc(e,i){for(var r=0;r>a&1&&(this._zlibs[a].reset(),V0.Info("Reset zlib stream "+a));this._ctl=this._ctl>>4}var l;if(this._ctl===8)l=this._fillRect(r,s,c,t,n,h,g);else if(this._ctl===9)l=this._jpegRect(r,s,c,t,n,h,g);else if(this._ctl===10)l=this._pngRect(r,s,c,t,n,h,g);else if(!(this._ctl&8))l=this._basicRect(this._ctl,r,s,c,t,n,h,g);else throw new Error("Illegal tight compression received (ctl: "+this._ctl+")");return l&&(this._ctl=null),l}},{key:"_fillRect",value:function(r,s,c,t,n,h,g){if(n.rQwait("TIGHT",3))return!1;var a=n.rQshiftBytes(3);return h.fillRect(r,s,c,t,a,!1),!0}},{key:"_jpegRect",value:function(r,s,c,t,n,h,g){var a=this._readData(n);return a===null?!1:(h.imageRect(r,s,c,t,"image/jpeg",a),!0)}},{key:"_pngRect",value:function(r,s,c,t,n,h,g){throw new Error("PNG received in standard Tight rect")}},{key:"_basicRect",value:function(r,s,c,t,n,h,g,a){if(this._filter===null)if(r&4){if(h.rQwait("TIGHT",1))return!1;this._filter=h.rQshift8()}else this._filter=0;var l=r&3,_;switch(this._filter){case 0:_=this._copyFilter(l,s,c,t,n,h,g,a);break;case 1:_=this._paletteFilter(l,s,c,t,n,h,g,a);break;case 2:_=this._gradientFilter(l,s,c,t,n,h,g,a);break;default:throw new Error("Illegal tight filter received (ctl: "+this._filter+")")}return _&&(this._filter=null),_}},{key:"_copyFilter",value:function(r,s,c,t,n,h,g,a){var l=t*n*3,_;if(l===0)return!0;if(l<12){if(h.rQwait("TIGHT",l))return!1;_=h.rQshiftBytes(l)}else{if(_=this._readData(h),_===null)return!1;this._zlibs[r].setInput(_),_=this._zlibs[r].inflate(l),this._zlibs[r].setInput(null)}for(var v=new Uint8Array(t*n*4),u=0,o=0;u=0;f--)u=(v*c+d*8+7-f)*4,o=(n[v*l+d]>>f&1)*3,a[u]=h[o],a[u+1]=h[o+1],a[u+2]=h[o+2],a[u+3]=255;for(var p=7;p>=8-c%8;p--)u=(v*c+d*8+7-p)*4,o=(n[v*l+d]>>p&1)*3,a[u]=h[o],a[u+1]=h[o+1],a[u+2]=h[o+2],a[u+3]=255}g.blitImage(r,s,c,t,a,0,!1)}},{key:"_paletteRect",value:function(r,s,c,t,n,h,g){for(var a=this._getScratchBuffer(c*t*4),l=c*t*4,_=0,v=0;_255&&(B=255);var R=_[o++]+B;v[u++]=R,A[L]=S[L],d[L]=R}v[u++]=255,b++}}return g.blitImage(s,c,t,n,v,0,!1),!0}},{key:"_readData",value:function(r){if(this._len===0){if(r.rQwait("TIGHT",3))return null;var s;s=r.rQshift8(),this._len=s&127,s&128&&(s=r.rQshift8(),this._len|=(s&127)<<7,s&128&&(s=r.rQshift8(),this._len|=s<<14))}if(r.rQwait("TIGHT",this._len))return null;var c=r.rQshiftBytes(this._len,!1);return this._len=0,c}},{key:"_getScratchBuffer",value:function(r){return(!this._scratchBuffer||this._scratchBuffer.length{"use strict";function wi(e){"@babel/helpers - typeof";return wi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},wi(e)}Object.defineProperty(ds,"__esModule",{value:!0});ds.default=void 0;var sg=ng(so());function ng(e){return e&&e.__esModule?e:{default:e}}function og(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function _c(e,i){for(var r=0;r{"use strict";Object.defineProperty(gs,"__esModule",{value:!0});gs.default=void 0;var _g=gg(kr());function gg(e){return e&&e.__esModule?e:{default:e}}function rr(e){"@babel/helpers - typeof";return rr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},rr(e)}function pg(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}function vc(e,i){for(var r=0;r=2&&d<=16){var y=this._decodePaletteTile(d,o,u,_);h.blitImage(v,l,u,_,y,0,!1)}else if(d===128){var w=this._decodeRLETile(o);h.blitImage(v,l,u,_,w,0,!1)}else if(d>=130&&d<=255){var b=this._decodeRLEPaletteTile(d-128,o);h.blitImage(v,l,u,_,b,0,!1)}else throw new Error("Unknown subencoding: "+d)}return this._length=0,!0}},{key:"_getBitsPerPixelInPalette",value:function(r){if(r<=2)return 1;if(r<=4)return 2;if(r<=16)return 4}},{key:"_readPixels",value:function(r){for(var s=this._pixelBuffer,c=this._inflator.inflate(3*r),t=0,n=0;t>u&a;n[l]=h[d*4],n[l+1]=h[d*4+1],n[l+2]=h[d*4+2],n[l+3]=h[d*4+3],l+=4,u-=g}u<8-g&&v=128&&(h-=128,g=this._readRLELength()),h>r)throw new Error("Too big index in palette: "+h+", palette size: "+r);if(n+g>s)throw new Error("Too big rle length in palette mode: "+g+", allowed length is: "+(s-n));for(var a=0;a{"use strict";Object.defineProperty(ps,"__esModule",{value:!0});ps.default=void 0;function sr(e){"@babel/helpers - typeof";return sr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},sr(e)}function yc(e){return wg(e)||Ag(e)||Ac(e)||bg()}function bg(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ag(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function wg(e){if(Array.isArray(e))return ao(e)}function oo(e,i){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ac(e))||i&&e&&typeof e.length=="number"){r&&(e=r);var s=0,c=function(){};return{s:c,n:function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(a){throw a},f:c}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var t,n=!0,h=!1;return{s:function(){r=r.call(e)},n:function(){var a=r.next();return n=a.done,a},e:function(a){h=!0,t=a},f:function(){try{n||r.return==null||r.return()}finally{if(h)throw t}}}}function Ac(e,i){if(e){if(typeof e=="string")return ao(e,i);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ao(e,i):void 0}}function ao(e,i){(i==null||i>e.length)&&(i=e.length);for(var r=0,s=Array(i);r=208&&c<=217||c==1)return new Uint8Array([s,c]);if(r.rQwait("JPEG",2,2))return null;var t=r.rQshift16();if(t<2)throw new Error("Illegal JPEG length received (length: "+t+")");if(r.rQwait("JPEG",t-2,4))return null;var n=0;if(c===218)for(n+=2;;){if(r.rQwait("JPEG",t-2+n,4))return null;var h=r.rQpeekBytes(t-2+n,!1);if(h.at(-2)===255&&h.at(-1)!==0&&!(h.at(-1)>=208&&h.at(-1)<=215)){n-=2;break}n++}var g=new Uint8Array(2+t+n);return g[0]=s,g[1]=c,g[2]=t>>8,g[3]=t,g.set(r.rQshiftBytes(t-2+n,!1),4),g}}])}()});var $c=re(As=>{"use strict";function xt(e){"@babel/helpers - typeof";return xt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},xt(e)}Object.defineProperty(As,"__esModule",{value:!0});As.default=void 0;var Xc=js(),ie=jg(yt()),ft=zs(),Cc=Ci(),nr=na(),kg=tn(),Bg=Ie(rn()),Lg=Ie(_a()),Ig=Ie(kr()),Dg=Ie($h()),Rg=Ie(sl()),Mg=Ie(hl()),Tg=Ie(ul()),Fg=Ie(pl()),et=Ie(_i()),Pg=Ie(vl()),ue=ml(),Og=Ie(ic()),je=Ie(io()),Qg=Ie(sc()),Kg=Ie(oc()),Xg=Ie(hc()),Hg=Ie(uc()),Ng=Ie(so()),Ug=Ie(pc()),$g=Ie(mc()),Wg=Ie(wc());function Ie(e){return e&&e.__esModule?e:{default:e}}function Hc(e){if(typeof WeakMap!="function")return null;var i=new WeakMap,r=new WeakMap;return(Hc=function(c){return c?r:i})(e)}function jg(e,i){if(!i&&e&&e.__esModule)return e;if(e===null||xt(e)!="object"&&typeof e!="function")return{default:e};var r=Hc(i);if(r&&r.has(e))return r.get(e);var s={__proto__:null},c=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var t in e)if(t!=="default"&&{}.hasOwnProperty.call(e,t)){var n=c?Object.getOwnPropertyDescriptor(e,t):null;n&&(n.get||n.set)?Object.defineProperty(s,t,n):s[t]=e[t]}return s.default=e,r&&r.set(e,s),s}function co(){"use strict";co=function(){return i};var e,i={},r=Object.prototype,s=r.hasOwnProperty,c=Object.defineProperty||function(k,m,x){k[m]=x.value},t=typeof Symbol=="function"?Symbol:{},n=t.iterator||"@@iterator",h=t.asyncIterator||"@@asyncIterator",g=t.toStringTag||"@@toStringTag";function a(k,m,x){return Object.defineProperty(k,m,{value:x,enumerable:!0,configurable:!0,writable:!0}),k[m]}try{a({},"")}catch{a=function(x,E,I){return x[E]=I}}function l(k,m,x,E){var I=m&&m.prototype instanceof p?m:p,M=Object.create(I.prototype),X=new K(E||[]);return c(M,"_invoke",{value:B(k,x,X)}),M}function _(k,m,x){try{return{type:"normal",arg:k.call(m,x)}}catch(E){return{type:"throw",arg:E}}}i.wrap=l;var v="suspendedStart",u="suspendedYield",o="executing",d="completed",f={};function p(){}function y(){}function w(){}var b={};a(b,n,function(){return this});var S=Object.getPrototypeOf,A=S&&S(S(N([])));A&&A!==r&&s.call(A,n)&&(b=A);var C=w.prototype=p.prototype=Object.create(b);function D(k){["next","throw","return"].forEach(function(m){a(k,m,function(x){return this._invoke(m,x)})})}function L(k,m){function x(I,M,X,$){var W=_(k[I],k,M);if(W.type!=="throw"){var P=W.arg,T=P.value;return T&&xt(T)=="object"&&s.call(T,"__await")?m.resolve(T.__await).then(function(U){x("next",U,X,$)},function(U){x("throw",U,X,$)}):m.resolve(T).then(function(U){P.value=U,X(P)},function(U){return x("throw",U,X,$)})}$(W.arg)}var E;c(this,"_invoke",{value:function(M,X){function $(){return new m(function(W,P){x(M,X,W,P)})}return E=E?E.then($,$):$()}})}function B(k,m,x){var E=v;return function(I,M){if(E===o)throw Error("Generator is already running");if(E===d){if(I==="throw")throw M;return{value:e,done:!0}}for(x.method=I,x.arg=M;;){var X=x.delegate;if(X){var $=R(X,x);if($){if($===f)continue;return $}}if(x.method==="next")x.sent=x._sent=x.arg;else if(x.method==="throw"){if(E===v)throw E=d,x.arg;x.dispatchException(x.arg)}else x.method==="return"&&x.abrupt("return",x.arg);E=o;var W=_(k,m,x);if(W.type==="normal"){if(E=x.done?d:u,W.arg===f)continue;return{value:W.arg,done:x.done}}W.type==="throw"&&(E=d,x.method="throw",x.arg=W.arg)}}}function R(k,m){var x=m.method,E=k.iterator[x];if(E===e)return m.delegate=null,x==="throw"&&k.iterator.return&&(m.method="return",m.arg=e,R(k,m),m.method==="throw")||x!=="return"&&(m.method="throw",m.arg=new TypeError("The iterator does not provide a '"+x+"' method")),f;var I=_(E,k.iterator,m.arg);if(I.type==="throw")return m.method="throw",m.arg=I.arg,m.delegate=null,f;var M=I.arg;return M?M.done?(m[k.resultName]=M.value,m.next=k.nextLoc,m.method!=="return"&&(m.method="next",m.arg=e),m.delegate=null,f):M:(m.method="throw",m.arg=new TypeError("iterator result is not an object"),m.delegate=null,f)}function F(k){var m={tryLoc:k[0]};1 in k&&(m.catchLoc=k[1]),2 in k&&(m.finallyLoc=k[2],m.afterLoc=k[3]),this.tryEntries.push(m)}function Q(k){var m=k.completion||{};m.type="normal",delete m.arg,k.completion=m}function K(k){this.tryEntries=[{tryLoc:"root"}],k.forEach(F,this),this.reset(!0)}function N(k){if(k||k===""){var m=k[n];if(m)return m.call(k);if(typeof k.next=="function")return k;if(!isNaN(k.length)){var x=-1,E=function I(){for(;++x=0;--I){var M=this.tryEntries[I],X=M.completion;if(M.tryLoc==="root")return E("end");if(M.tryLoc<=this.prev){var $=s.call(M,"catchLoc"),W=s.call(M,"finallyLoc");if($&&W){if(this.prev=0;--E){var I=this.tryEntries[E];if(I.tryLoc<=this.prev&&s.call(I,"finallyLoc")&&this.prev=0;--x){var E=this.tryEntries[x];if(E.finallyLoc===m)return this.complete(E.completion,E.afterLoc),Q(E),f}},catch:function(m){for(var x=this.tryEntries.length-1;x>=0;--x){var E=this.tryEntries[x];if(E.tryLoc===m){var I=E.completion;if(I.type==="throw"){var M=I.arg;Q(E)}return M}}throw Error("illegal catch attempt")},delegateYield:function(m,x,E){return this.delegate={iterator:N(m),resultName:x,nextLoc:E},this.method==="next"&&(this.arg=e),f}},i}function xc(e,i,r,s,c,t,n){try{var h=e[t](n),g=h.value}catch(a){return void r(a)}h.done?i(g):Promise.resolve(g).then(s,c)}function Gg(e){return function(){var i=this,r=arguments;return new Promise(function(s,c){var t=e.apply(i,r);function n(g){xc(t,s,c,n,h,"next",g)}function h(g){xc(t,s,c,n,h,"throw",g)}n(void 0)})}}function zg(e,i){return Yg(e)||Vg(e,i)||Nc(e,i)||qg()}function qg(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Vg(e,i){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var s,c,t,n,h=[],g=!0,a=!1;try{if(t=(r=r.call(e)).next,i===0){if(Object(r)!==r)return;g=!1}else for(;!(g=(s=t.call(r)).done)&&(h.push(s.value),h.length!==i);g=!0);}catch(l){a=!0,c=l}finally{try{if(!g&&r.return!=null&&(n=r.return(),Object(n)!==n))return}finally{if(a)throw c}}return h}}function Yg(e){if(Array.isArray(e))return e}function ho(e,i){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Nc(e))||i&&e&&typeof e.length=="number"){r&&(e=r);var s=0,c=function(){};return{s:c,n:function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(a){throw a},f:c}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var t,n=!0,h=!1;return{s:function(){r=r.call(e)},n:function(){var a=r.next();return n=a.done,a},e:function(a){h=!0,t=a},f:function(){try{n||r.return==null||r.return()}finally{if(h)throw t}}}}function Nc(e,i){if(e){if(typeof e=="string")return Sc(e,i);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Sc(e,i):void 0}}function Sc(e,i){(i==null||i>e.length)&&(i=e.length);for(var r=0,s=Array(i);r> RFB.constructor"),t._screen=document.createElement("div"),t._screen.style.display="flex",t._screen.style.width="100%",t._screen.style.height="100%",t._screen.style.overflow="auto",t._screen.style.background=ap,t._canvas=document.createElement("canvas"),t._canvas.style.margin="auto",t._canvas.style.outline="none",t._canvas.width=0,t._canvas.height=0,t._canvas.tabIndex=-1,t._screen.appendChild(t._canvas),t._cursor=new Tg.default,t._cursorImage=i.cursors.none,t._decoders[ue.encodings.encodingRaw]=new Qg.default,t._decoders[ue.encodings.encodingCopyRect]=new Kg.default,t._decoders[ue.encodings.encodingRRE]=new Xg.default,t._decoders[ue.encodings.encodingHextile]=new Hg.default,t._decoders[ue.encodings.encodingTight]=new Ng.default,t._decoders[ue.encodings.encodingTightPNG]=new Ug.default,t._decoders[ue.encodings.encodingZRLE]=new $g.default,t._decoders[ue.encodings.encodingJPEG]=new Wg.default;try{t._display=new Lg.default(t._canvas)}catch(n){throw ie.Error("Display exception: "+n),n}return t._keyboard=new Rg.default(t._canvas),t._keyboard.onkeyevent=t._handleKeyEvent.bind(t),t._remoteCapsLock=null,t._remoteNumLock=null,t._gestures=new Mg.default,t._sock=new Fg.default,t._sock.on("open",t._socketOpen.bind(t)),t._sock.on("close",t._socketClose.bind(t)),t._sock.on("message",t._handleMessage.bind(t)),t._sock.on("error",t._socketError.bind(t)),t._expectedClientWidth=null,t._expectedClientHeight=null,t._resizeObserver=new ResizeObserver(t._eventHandlers.handleResize),t._updateConnectionState("connecting"),ie.Debug("<< RFB.constructor"),t.dragViewport=!1,t.focusOnClick=!0,t._viewOnly=!1,t._clipViewport=!1,t._clippingViewport=!1,t._scaleViewport=!1,t._resizeSession=!1,t._showDotCursor=!1,c.showDotCursor!==void 0&&(ie.Warn("Specifying showDotCursor as a RFB constructor argument is deprecated"),t._showDotCursor=c.showDotCursor),t._qualityLevel=6,t._compressionLevel=2,t}return np(i,e),Zg(i,[{key:"viewOnly",get:function(){return this._viewOnly},set:function(s){this._viewOnly=s,(this._rfbConnectionState==="connecting"||this._rfbConnectionState==="connected")&&(s?this._keyboard.ungrab():this._keyboard.grab())}},{key:"capabilities",get:function(){return this._capabilities}},{key:"clippingViewport",get:function(){return this._clippingViewport}},{key:"_setClippingViewport",value:function(s){s!==this._clippingViewport&&(this._clippingViewport=s,this.dispatchEvent(new CustomEvent("clippingviewport",{detail:this._clippingViewport})))}},{key:"touchButton",get:function(){return 0},set:function(s){ie.Warn("Using old API!")}},{key:"clipViewport",get:function(){return this._clipViewport},set:function(s){this._clipViewport=s,this._updateClip()}},{key:"scaleViewport",get:function(){return this._scaleViewport},set:function(s){this._scaleViewport=s,s&&this._clipViewport&&this._updateClip(),this._updateScale(),!s&&this._clipViewport&&this._updateClip()}},{key:"resizeSession",get:function(){return this._resizeSession},set:function(s){this._resizeSession=s,s&&this._requestRemoteResize()}},{key:"showDotCursor",get:function(){return this._showDotCursor},set:function(s){this._showDotCursor=s,this._refreshCursor()}},{key:"background",get:function(){return this._screen.style.background},set:function(s){this._screen.style.background=s}},{key:"qualityLevel",get:function(){return this._qualityLevel},set:function(s){if(!Number.isInteger(s)||s<0||s>9){ie.Error("qualityLevel must be an integer between 0 and 9");return}this._qualityLevel!==s&&(this._qualityLevel=s,this._rfbConnectionState==="connected"&&this._sendEncodings())}},{key:"compressionLevel",get:function(){return this._compressionLevel},set:function(s){if(!Number.isInteger(s)||s<0||s>9){ie.Error("compressionLevel must be an integer between 0 and 9");return}this._compressionLevel!==s&&(this._compressionLevel=s,this._rfbConnectionState==="connected"&&this._sendEncodings())}},{key:"disconnect",value:function(){this._updateConnectionState("disconnecting"),this._sock.off("error"),this._sock.off("message"),this._sock.off("open"),this._rfbRSAAESAuthenticationState!==null&&this._rfbRSAAESAuthenticationState.disconnect()}},{key:"approveServer",value:function(){this._rfbRSAAESAuthenticationState!==null&&this._rfbRSAAESAuthenticationState.approveServer()}},{key:"sendCredentials",value:function(s){this._rfbCredentials=s,this._resumeAuthentication()}},{key:"sendCtrlAltDel",value:function(){this._rfbConnectionState!=="connected"||this._viewOnly||(ie.Info("Sending Ctrl-Alt-Del"),this.sendKey(et.default.XK_Control_L,"ControlLeft",!0),this.sendKey(et.default.XK_Alt_L,"AltLeft",!0),this.sendKey(et.default.XK_Delete,"Delete",!0),this.sendKey(et.default.XK_Delete,"Delete",!1),this.sendKey(et.default.XK_Alt_L,"AltLeft",!1),this.sendKey(et.default.XK_Control_L,"ControlLeft",!1))}},{key:"machineShutdown",value:function(){this._xvpOp(1,2)}},{key:"machineReboot",value:function(){this._xvpOp(1,3)}},{key:"machineReset",value:function(){this._xvpOp(1,4)}},{key:"sendKey",value:function(s,c,t){if(!(this._rfbConnectionState!=="connected"||this._viewOnly)){if(t===void 0){this.sendKey(s,c,!0),this.sendKey(s,c,!1);return}var n=Pg.default[c];if(this._qemuExtKeyEventSupported&&n)s=s||0,ie.Info("Sending key ("+(t?"down":"up")+"): keysym "+s+", scancode "+n),i.messages.QEMUExtendedKeyEvent(this._sock,s,t,n);else{if(!s)return;ie.Info("Sending keysym ("+(t?"down":"up")+"): "+s),i.messages.keyEvent(this._sock,s,t?1:0)}}}},{key:"focus",value:function(s){this._canvas.focus(s)}},{key:"blur",value:function(){this._canvas.blur()}},{key:"clipboardPasteFrom",value:function(s){if(!(this._rfbConnectionState!=="connected"||this._viewOnly))if(this._clipboardServerCapabilitiesFormats[_t]&&this._clipboardServerCapabilitiesActions[ar])this._clipboardText=s,i.messages.extendedClipboardNotify(this._sock,[_t]);else{var c,t,n;c=0;var h=ho(s),g;try{for(h.s();!(g=h.n()).done;){var a=g.value;c++}}catch(o){h.e(o)}finally{h.f()}n=new Uint8Array(c),t=0;var l=ho(s),_;try{for(l.s();!(_=l.n()).done;){var v=_.value,u=v.codePointAt(0);u>255&&(u=63),n[t++]=u}}catch(o){l.e(o)}finally{l.f()}i.messages.clientCutText(this._sock,n)}}},{key:"getImageData",value:function(){return this._display.getImageData()}},{key:"toDataURL",value:function(s,c){return this._display.toDataURL(s,c)}},{key:"toBlob",value:function(s,c,t){return this._display.toBlob(s,c,t)}},{key:"_connect",value:function(){if(ie.Debug(">> RFB.connect"),this._url)ie.Info("connecting to ".concat(this._url)),this._sock.open(this._url,this._wsProtocols);else{if(ie.Info("attaching ".concat(this._rawChannel," to Websock")),this._sock.attach(this._rawChannel),this._sock.readyState==="closed")throw Error("Cannot use already closed WebSocket/RTCDataChannel");this._sock.readyState==="open"&&this._socketOpen()}this._target.appendChild(this._screen),this._gestures.attach(this._canvas),this._cursor.attach(this._canvas),this._refreshCursor(),this._resizeObserver.observe(this._screen),this._canvas.addEventListener("mousedown",this._eventHandlers.focusCanvas),this._canvas.addEventListener("touchstart",this._eventHandlers.focusCanvas),this._canvas.addEventListener("mousedown",this._eventHandlers.handleMouse),this._canvas.addEventListener("mouseup",this._eventHandlers.handleMouse),this._canvas.addEventListener("mousemove",this._eventHandlers.handleMouse),this._canvas.addEventListener("click",this._eventHandlers.handleMouse),this._canvas.addEventListener("contextmenu",this._eventHandlers.handleMouse),this._canvas.addEventListener("wheel",this._eventHandlers.handleWheel),this._canvas.addEventListener("gesturestart",this._eventHandlers.handleGesture),this._canvas.addEventListener("gesturemove",this._eventHandlers.handleGesture),this._canvas.addEventListener("gestureend",this._eventHandlers.handleGesture),ie.Debug("<< RFB.connect")}},{key:"_disconnect",value:function(){ie.Debug(">> RFB.disconnect"),this._cursor.detach(),this._canvas.removeEventListener("gesturestart",this._eventHandlers.handleGesture),this._canvas.removeEventListener("gesturemove",this._eventHandlers.handleGesture),this._canvas.removeEventListener("gestureend",this._eventHandlers.handleGesture),this._canvas.removeEventListener("wheel",this._eventHandlers.handleWheel),this._canvas.removeEventListener("mousedown",this._eventHandlers.handleMouse),this._canvas.removeEventListener("mouseup",this._eventHandlers.handleMouse),this._canvas.removeEventListener("mousemove",this._eventHandlers.handleMouse),this._canvas.removeEventListener("click",this._eventHandlers.handleMouse),this._canvas.removeEventListener("contextmenu",this._eventHandlers.handleMouse),this._canvas.removeEventListener("mousedown",this._eventHandlers.focusCanvas),this._canvas.removeEventListener("touchstart",this._eventHandlers.focusCanvas),this._resizeObserver.disconnect(),this._keyboard.ungrab(),this._gestures.detach(),this._sock.close();try{this._target.removeChild(this._screen)}catch(s){if(s.name!=="NotFoundError")throw s}clearTimeout(this._resizeTimeout),clearTimeout(this._mouseMoveTimer),ie.Debug("<< RFB.disconnect")}},{key:"_socketOpen",value:function(){this._rfbConnectionState==="connecting"&&this._rfbInitState===""?(this._rfbInitState="ProtocolVersion",ie.Debug("Starting VNC handshake")):this._fail("Unexpected server connection while "+this._rfbConnectionState)}},{key:"_socketClose",value:function(s){ie.Debug("WebSocket on-close event");var c="";switch(s.code&&(c="(code: "+s.code,s.reason&&(c+=", reason: "+s.reason),c+=")"),this._rfbConnectionState){case"connecting":this._fail("Connection closed "+c);break;case"connected":this._updateConnectionState("disconnecting"),this._updateConnectionState("disconnected");break;case"disconnecting":this._updateConnectionState("disconnected");break;case"disconnected":this._fail("Unexpected server disconnect when already disconnected "+c);break;default:this._fail("Unexpected server disconnect before connecting "+c);break}this._sock.off("close"),this._rawChannel=null}},{key:"_socketError",value:function(s){ie.Warn("WebSocket on-error event")}},{key:"_focusCanvas",value:function(s){this.focusOnClick&&this.focus({preventScroll:!0})}},{key:"_setDesktopName",value:function(s){this._fbName=s,this.dispatchEvent(new CustomEvent("desktopname",{detail:{name:this._fbName}}))}},{key:"_saveExpectedClientSize",value:function(){this._expectedClientWidth=this._screen.clientWidth,this._expectedClientHeight=this._screen.clientHeight}},{key:"_currentClientSize",value:function(){return[this._screen.clientWidth,this._screen.clientHeight]}},{key:"_clientHasExpectedSize",value:function(){var s=this._currentClientSize(),c=zg(s,2),t=c[0],n=c[1];return t==this._expectedClientWidth&&n==this._expectedClientHeight}},{key:"_handleResize",value:function(){var s=this;this._clientHasExpectedSize()||(window.requestAnimationFrame(function(){s._updateClip(),s._updateScale()}),this._resizeSession&&(clearTimeout(this._resizeTimeout),this._resizeTimeout=setTimeout(this._requestRemoteResize.bind(this),500)))}},{key:"_updateClip",value:function(){var s=this._display.clipViewport,c=this._clipViewport;if(this._scaleViewport&&(c=!1),s!==c&&(this._display.clipViewport=c),c){var t=this._screenSize();this._display.viewportChangeSize(t.w,t.h),this._fixScrollbars(),this._setClippingViewport(t.wCc.dragThreshold||Math.abs(h)>Cc.dragThreshold)&&(this._viewportHasMoved=!0,this._viewportDragPos={x:s,y:c},this._display.viewportChangePos(n,h));return}if(this._mousePos={x:s,y:c},this._mouseMoveTimer==null){var g=Date.now()-this._mouseLastMoveTime;g>kc?(this._sendMouse(s,c,this._mouseButtonMask),this._mouseLastMoveTime=Date.now()):this._mouseMoveTimer=setTimeout(function(){t._handleDelayedMouseMove()},kc-g)}}},{key:"_handleDelayedMouseMove",value:function(){this._mouseMoveTimer=null,this._sendMouse(this._mousePos.x,this._mousePos.y,this._mouseButtonMask),this._mouseLastMoveTime=Date.now()}},{key:"_sendMouse",value:function(s,c,t){this._rfbConnectionState==="connected"&&(this._viewOnly||i.messages.pointerEvent(this._sock,this._display.absX(s),this._display.absY(c),t))}},{key:"_handleWheel",value:function(s){if(this._rfbConnectionState==="connected"&&!this._viewOnly){s.stopPropagation(),s.preventDefault();var c=(0,nr.clientToElement)(s.clientX,s.clientY,this._canvas),t=s.deltaX,n=s.deltaY;s.deltaMode!==0&&(t*=Lc,n*=Lc),this._accumulatedWheelDeltaX+=t,this._accumulatedWheelDeltaY+=n,Math.abs(this._accumulatedWheelDeltaX)>=Bc&&(this._accumulatedWheelDeltaX<0?(this._handleMouseButton(c.x,c.y,!0,32),this._handleMouseButton(c.x,c.y,!1,32)):this._accumulatedWheelDeltaX>0&&(this._handleMouseButton(c.x,c.y,!0,64),this._handleMouseButton(c.x,c.y,!1,64)),this._accumulatedWheelDeltaX=0),Math.abs(this._accumulatedWheelDeltaY)>=Bc&&(this._accumulatedWheelDeltaY<0?(this._handleMouseButton(c.x,c.y,!0,8),this._handleMouseButton(c.x,c.y,!1,8)):this._accumulatedWheelDeltaY>0&&(this._handleMouseButton(c.x,c.y,!0,16),this._handleMouseButton(c.x,c.y,!1,16)),this._accumulatedWheelDeltaY=0)}}},{key:"_fakeMouseMove",value:function(s,c,t){this._handleMouseMove(c,t),this._cursor.move(s.detail.clientX,s.detail.clientY)}},{key:"_handleTapEvent",value:function(s,c){var t=(0,nr.clientToElement)(s.detail.clientX,s.detail.clientY,this._canvas);if(this._gestureLastTapTime!==null&&Date.now()-this._gestureLastTapTimeXt;)this._handleMouseButton(t.x,t.y,!0,8),this._handleMouseButton(t.x,t.y,!1,8),this._gestureLastMagnitudeY+=Xt;for(;s.detail.magnitudeY-this._gestureLastMagnitudeY<-Xt;)this._handleMouseButton(t.x,t.y,!0,16),this._handleMouseButton(t.x,t.y,!1,16),this._gestureLastMagnitudeY-=Xt;for(;s.detail.magnitudeX-this._gestureLastMagnitudeX>Xt;)this._handleMouseButton(t.x,t.y,!0,32),this._handleMouseButton(t.x,t.y,!1,32),this._gestureLastMagnitudeX+=Xt;for(;s.detail.magnitudeX-this._gestureLastMagnitudeX<-Xt;)this._handleMouseButton(t.x,t.y,!0,64),this._handleMouseButton(t.x,t.y,!1,64),this._gestureLastMagnitudeX-=Xt;break;case"pinch":if(this._fakeMouseMove(s,t.x,t.y),c=Math.hypot(s.detail.magnitudeX,s.detail.magnitudeY),Math.abs(c-this._gestureLastMagnitudeX)>or){for(this._handleKeyEvent(et.default.XK_Control_L,"ControlLeft",!0);c-this._gestureLastMagnitudeX>or;)this._handleMouseButton(t.x,t.y,!0,8),this._handleMouseButton(t.x,t.y,!1,8),this._gestureLastMagnitudeX+=or;for(;c-this._gestureLastMagnitudeX<-or;)this._handleMouseButton(t.x,t.y,!0,16),this._handleMouseButton(t.x,t.y,!1,16),this._gestureLastMagnitudeX-=or}this._handleKeyEvent(et.default.XK_Control_L,"ControlLeft",!1);break}break;case"gestureend":switch(s.detail.type){case"onetap":case"twotap":case"threetap":case"pinch":case"twodrag":break;case"drag":this._fakeMouseMove(s,t.x,t.y),this._handleMouseButton(t.x,t.y,!1,1);break;case"longpress":this._fakeMouseMove(s,t.x,t.y),this._handleMouseButton(t.x,t.y,!1,4);break}break}}},{key:"_negotiateProtocolVersion",value:function(){if(this._sock.rQwait("version",12))return!1;var s=this._sock.rQshiftStr(12).substr(4,7);ie.Info("Server ProtocolVersion: "+s);var c=0;switch(s){case"000.000":c=1;break;case"003.003":case"003.006":this._rfbVersion=3.3;break;case"003.007":this._rfbVersion=3.7;break;case"003.008":case"003.889":case"004.000":case"004.001":case"005.000":this._rfbVersion=3.8;break;default:return this._fail("Invalid server version "+s)}if(c){for(var t="ID:"+this._repeaterID;t.length<250;)t+="\0";return this._sock.sQpushString(t),this._sock.flush(),!0}this._rfbVersion>this._rfbMaxVersion&&(this._rfbVersion=this._rfbMaxVersion);var n="00"+parseInt(this._rfbVersion,10)+".00"+this._rfbVersion*10%10;this._sock.sQpushString("RFB "+n+` +`),this._sock.flush(),ie.Debug("Sent ProtocolVersion: "+n),this._rfbInitState="Security"}},{key:"_isSupportedSecurityType",value:function(s){var c=[Ic,vs,Dc,Rc,lo,Mc,Tc,Fc,Oc];return c.includes(s)}},{key:"_negotiateSecurity",value:function(){if(this._rfbVersion>=3.7){var s=this._sock.rQshift8();if(this._sock.rQwait("security type",s,1))return!1;if(s===0)return this._rfbInitState="SecurityReason",this._securityContext="no security types",this._securityStatus=1,!0;var c=this._sock.rQshiftBytes(s);ie.Debug("Server security types: "+c),this._rfbAuthScheme=-1;var t=ho(c),n;try{for(t.s();!(n=t.n()).done;){var h=n.value;if(this._isSupportedSecurityType(h)){this._rfbAuthScheme=h;break}}}catch(g){t.e(g)}finally{t.f()}if(this._rfbAuthScheme===-1)return this._fail("Unsupported security types (types: "+c+")");this._sock.sQpush8(this._rfbAuthScheme),this._sock.flush()}else{if(this._sock.rQwait("security scheme",4))return!1;if(this._rfbAuthScheme=this._sock.rQshift32(),this._rfbAuthScheme==0)return this._rfbInitState="SecurityReason",this._securityContext="authentication scheme",this._securityStatus=1,!0}return this._rfbInitState="Authentication",ie.Debug("Authenticating using scheme: "+this._rfbAuthScheme),!0}},{key:"_handleSecurityReason",value:function(){if(this._sock.rQwait("reason length",4))return!1;var s=this._sock.rQshift32(),c="";if(s>0){if(this._sock.rQwait("reason",s,4))return!1;c=this._sock.rQshiftStr(s)}return c!==""?(this.dispatchEvent(new CustomEvent("securityfailure",{detail:{status:this._securityStatus,reason:c}})),this._fail("Security negotiation failed on "+this._securityContext+" (reason: "+c+")")):(this.dispatchEvent(new CustomEvent("securityfailure",{detail:{status:this._securityStatus}})),this._fail("Security negotiation failed on "+this._securityContext))}},{key:"_negotiateXvpAuth",value:function(){return this._rfbCredentials.username===void 0||this._rfbCredentials.password===void 0||this._rfbCredentials.target===void 0?(this.dispatchEvent(new CustomEvent("credentialsrequired",{detail:{types:["username","password","target"]}})),!1):(this._sock.sQpush8(this._rfbCredentials.username.length),this._sock.sQpush8(this._rfbCredentials.target.length),this._sock.sQpushString(this._rfbCredentials.username),this._sock.sQpushString(this._rfbCredentials.target),this._sock.flush(),this._rfbAuthScheme=vs,this._negotiateAuthentication())}},{key:"_negotiateVeNCryptAuth",value:function(){if(this._rfbVeNCryptState==0){if(this._sock.rQwait("vencrypt version",2))return!1;var s=this._sock.rQshift8(),c=this._sock.rQshift8();if(!(s==0&&c==2))return this._fail("Unsupported VeNCrypt version "+s+"."+c);this._sock.sQpush8(0),this._sock.sQpush8(2),this._sock.flush(),this._rfbVeNCryptState=1}if(this._rfbVeNCryptState==1){if(this._sock.rQwait("vencrypt ack",1))return!1;var t=this._sock.rQshift8();if(t!=0)return this._fail("VeNCrypt failure "+t);this._rfbVeNCryptState=2}if(this._rfbVeNCryptState==2){if(this._sock.rQwait("vencrypt subtypes length",1))return!1;var n=this._sock.rQshift8();if(n<1)return this._fail("VeNCrypt subtypes empty");this._rfbVeNCryptSubtypesLength=n,this._rfbVeNCryptState=3}if(this._rfbVeNCryptState==3){if(this._sock.rQwait("vencrypt subtypes",4*this._rfbVeNCryptSubtypesLength))return!1;for(var h=[],g=0;g0&&this._sock.rQwait("tunnel capabilities",16*s,4))return!1;if(this._rfbTightVNC=!0,s>0)return this._negotiateTightTunnels(s),!1}if(this._sock.rQwait("sub auth count",4))return!1;var c=this._sock.rQshift32();if(c===0)return this._rfbInitState="SecurityResult",!0;if(this._sock.rQwait("sub auth capabilities",16*c,4))return!1;for(var t={STDVNOAUTH__:1,STDVVNCAUTH_:2,TGHTULGNAUTH:129},n=[],h=0;h=3.8?this._rfbInitState="SecurityResult":this._rfbInitState="ClientInitialisation",!0;case Mc:return this._negotiateXvpAuth();case Tc:return this._negotiateARDAuth();case vs:return this._negotiateStdVNCAuth();case Rc:return this._negotiateTightAuth();case lo:return this._negotiateVeNCryptAuth();case Oc:return this._negotiatePlainAuth();case Pc:return this._negotiateTightUnixAuth();case Dc:return this._negotiateRA2neAuth();case Fc:return this._negotiateMSLogonIIAuth();default:return this._fail("Unsupported auth scheme (scheme: "+this._rfbAuthScheme+")")}}},{key:"_handleSecurityResult",value:function(){if(this._sock.rQwait("VNC auth response ",4))return!1;var s=this._sock.rQshift32();return s===0?(this._rfbInitState="ClientInitialisation",ie.Debug("Authentication OK"),!0):this._rfbVersion>=3.8?(this._rfbInitState="SecurityReason",this._securityContext="security result",this._securityStatus=s,!0):(this.dispatchEvent(new CustomEvent("securityfailure",{detail:{status:s}})),this._fail("Security handshake failed"))}},{key:"_negotiateServerInit",value:function(){if(this._sock.rQwait("server initialization",24))return!1;var s=this._sock.rQshift16(),c=this._sock.rQshift16(),t=this._sock.rQshift8(),n=this._sock.rQshift8(),h=this._sock.rQshift8(),g=this._sock.rQshift8(),a=this._sock.rQshift16(),l=this._sock.rQshift16(),_=this._sock.rQshift16(),v=this._sock.rQshift8(),u=this._sock.rQshift8(),o=this._sock.rQshift8();this._sock.rQskipBytes(3);var d=this._sock.rQshift32();if(this._sock.rQwait("server init name",d,24))return!1;var f=this._sock.rQshiftStr(d);if(f=(0,ft.decodeUTF8)(f,!0),this._rfbTightVNC){if(this._sock.rQwait("TightVNC extended server init header",8,24+d))return!1;var p=this._sock.rQshift16(),y=this._sock.rQshift16(),w=this._sock.rQshift16();this._sock.rQskipBytes(2);var b=(p+y+w)*16;if(this._sock.rQwait("TightVNC extended server init header",b,32+d))return!1;this._sock.rQskipBytes(16*p),this._sock.rQskipBytes(16*y),this._sock.rQskipBytes(16*w)}return ie.Info("Screen: "+s+"x"+c+", bpp: "+t+", depth: "+n+", bigEndian: "+h+", trueColor: "+g+", redMax: "+a+", greenMax: "+l+", blueMax: "+_+", redShift: "+v+", greenShift: "+u+", blueShift: "+o),this._setDesktopName(f),this._resize(s,c),this._viewOnly||this._keyboard.grab(),this._fbDepth=24,this._fbName==="Intel(r) AMT KVM"&&(ie.Warn("Intel AMT KVM only supports 8/16 bit depths. Using low color mode."),this._fbDepth=8),i.messages.pixelFormat(this._sock,this._fbDepth,!0),this._sendEncodings(),i.messages.fbUpdateRequest(this._sock,!1,0,0,this._fbWidth,this._fbHeight),this._updateConnectionState("connected"),!0}},{key:"_sendEncodings",value:function(){var s=[];s.push(ue.encodings.encodingCopyRect),this._fbDepth==24&&(s.push(ue.encodings.encodingTight),s.push(ue.encodings.encodingTightPNG),s.push(ue.encodings.encodingZRLE),s.push(ue.encodings.encodingJPEG),s.push(ue.encodings.encodingHextile),s.push(ue.encodings.encodingRRE)),s.push(ue.encodings.encodingRaw),s.push(ue.encodings.pseudoEncodingQualityLevel0+this._qualityLevel),s.push(ue.encodings.pseudoEncodingCompressLevel0+this._compressionLevel),s.push(ue.encodings.pseudoEncodingDesktopSize),s.push(ue.encodings.pseudoEncodingLastRect),s.push(ue.encodings.pseudoEncodingQEMUExtendedKeyEvent),s.push(ue.encodings.pseudoEncodingQEMULedEvent),s.push(ue.encodings.pseudoEncodingExtendedDesktopSize),s.push(ue.encodings.pseudoEncodingXvp),s.push(ue.encodings.pseudoEncodingFence),s.push(ue.encodings.pseudoEncodingContinuousUpdates),s.push(ue.encodings.pseudoEncodingDesktopName),s.push(ue.encodings.pseudoEncodingExtendedClipboard),this._fbDepth==24&&(s.push(ue.encodings.pseudoEncodingVMwareCursor),s.push(ue.encodings.pseudoEncodingCursor)),i.messages.clientEncodings(this._sock,s)}},{key:"_initMsg",value:function(){switch(this._rfbInitState){case"ProtocolVersion":return this._negotiateProtocolVersion();case"Security":return this._negotiateSecurity();case"Authentication":return this._negotiateAuthentication();case"SecurityResult":return this._handleSecurityResult();case"SecurityReason":return this._handleSecurityReason();case"ClientInitialisation":return this._sock.sQpush8(this._shared?1:0),this._sock.flush(),this._rfbInitState="ServerInitialisation",!0;case"ServerInitialisation":return this._negotiateServerInit();default:return this._fail("Unknown init state (state: "+this._rfbInitState+")")}}},{key:"_resumeAuthentication",value:function(){setTimeout(this._initMsg.bind(this),0)}},{key:"_handleSetColourMapMsg",value:function(){return ie.Debug("SetColorMapEntries"),this._fail("Unexpected SetColorMapEntries message")}},{key:"_handleServerCutText",value:function(){if(ie.Debug("ServerCutText"),this._sock.rQwait("ServerCutText header",7,1))return!1;this._sock.rQskipBytes(3);var s=this._sock.rQshift32();if(s=(0,Xc.toSigned32bit)(s),this._sock.rQwait("ServerCutText content",Math.abs(s),8))return!1;if(s>=0){var c=this._sock.rQshiftStr(s);if(this._viewOnly)return!0;this.dispatchEvent(new CustomEvent("clipboard",{detail:{text:c}}))}else{s=Math.abs(s);var t=this._sock.rQshift32(),n=t&65535,h=t&4278190080,g=!!(h&Qc);if(g){this._clipboardServerCapabilitiesFormats={},this._clipboardServerCapabilitiesActions={};for(var a=0;a<=15;a++){var l=1<0&&f.charAt(f.length-1)==="\0"&&(f=f.slice(0,-1)),f=f.replaceAll(`\r +`,` +`),this.dispatchEvent(new CustomEvent("clipboard",{detail:{text:f}}))}}else return this._fail("Unexpected action in extended clipboard message: "+h)}return!0}},{key:"_handleServerFenceMsg",value:function(){if(this._sock.rQwait("ServerFence header",8,1))return!1;this._sock.rQskipBytes(3);var s=this._sock.rQshift32(),c=this._sock.rQshift8();if(this._sock.rQwait("ServerFence payload",c,9))return!1;c>64&&(ie.Warn("Bad payload length ("+c+") in fence response"),c=64);var t=this._sock.rQshiftStr(c);return this._supportsFence=!0,s&1<<31?(s&=3,i.messages.clientFence(this._sock,s,t),!0):this._fail("Unexpected fence response")}},{key:"_handleXvpMsg",value:function(){if(this._sock.rQwait("XVP version and message",3,1))return!1;this._sock.rQskipBytes(1);var s=this._sock.rQshift8(),c=this._sock.rQshift8();switch(c){case 0:ie.Error("XVP Operation Failed");break;case 1:this._rfbXvpVer=s,ie.Info("XVP extensions enabled (version "+this._rfbXvpVer+")"),this._setCapability("power",!0);break;default:this._fail("Illegal server XVP message (msg: "+c+")");break}return!0}},{key:"_normalMsg",value:function(){var s;this._FBU.rects>0?s=0:s=this._sock.rQshift8();var c,t;switch(s){case 0:return t=this._framebufferUpdate(),t&&!this._enabledContinuousUpdates&&i.messages.fbUpdateRequest(this._sock,!0,0,0,this._fbWidth,this._fbHeight),t;case 1:return this._handleSetColourMapMsg();case 2:return ie.Debug("Bell"),this.dispatchEvent(new CustomEvent("bell",{detail:{}})),!0;case 3:return this._handleServerCutText();case 150:return c=!this._supportsContinuousUpdates,this._supportsContinuousUpdates=!0,this._enabledContinuousUpdates=!1,c&&(this._enabledContinuousUpdates=!0,this._updateContinuousUpdates(),ie.Info("Enabling continuous updates.")),!0;case 248:return this._handleServerFenceMsg();case 250:return this._handleXvpMsg();default:return this._fail("Unexpected server message (type "+s+")"),ie.Debug("sock.rQpeekBytes(30): "+this._sock.rQpeekBytes(30)),!0}}},{key:"_framebufferUpdate",value:function(){var s=this;if(this._FBU.rects===0){if(this._sock.rQwait("FBU header",3,1))return!1;if(this._sock.rQskipBytes(1),this._FBU.rects=this._sock.rQshift16(),this._display.pending())return this._flushing=!0,this._display.flush().then(function(){s._flushing=!1,s._sock.rQwait("message",1)||s._handleMessage()}),!1}for(;this._FBU.rects>0;){if(this._FBU.encoding===null){if(this._sock.rQwait("rect header",12))return!1;this._FBU.x=this._sock.rQshift16(),this._FBU.y=this._sock.rQshift16(),this._FBU.width=this._sock.rQshift16(),this._FBU.height=this._sock.rQshift16(),this._FBU.encoding=this._sock.rQshift32(),this._FBU.encoding>>=0}if(!this._handleRect())return!1;this._FBU.rects--,this._FBU.encoding=null}return this._display.flip(),!0}},{key:"_handleRect",value:function(){switch(this._FBU.encoding){case ue.encodings.pseudoEncodingLastRect:return this._FBU.rects=1,!0;case ue.encodings.pseudoEncodingVMwareCursor:return this._handleVMwareCursor();case ue.encodings.pseudoEncodingCursor:return this._handleCursor();case ue.encodings.pseudoEncodingQEMUExtendedKeyEvent:return this._qemuExtKeyEventSupported=!0,!0;case ue.encodings.pseudoEncodingDesktopName:return this._handleDesktopName();case ue.encodings.pseudoEncodingDesktopSize:return this._resize(this._FBU.width,this._FBU.height),!0;case ue.encodings.pseudoEncodingExtendedDesktopSize:return this._handleExtendedDesktopSize();case ue.encodings.pseudoEncodingQEMULedEvent:return this._handleLedEvent();default:return this._handleDataRect()}}},{key:"_handleVMwareCursor",value:function(){var s=this._FBU.x,c=this._FBU.y,t=this._FBU.width,n=this._FBU.height;if(this._sock.rQwait("VMware cursor encoding",1))return!1;var h=this._sock.rQshift8();this._sock.rQshift8();var g,a=4;if(h==0){var l=-256;if(g=new Array(t*n*a),this._sock.rQwait("VMware cursor classic encoding",t*n*a*2,2))return!1;for(var _=new Array(t*n),v=0;v>8&255,y=f>>16&255,w=f>>24&255;g[d*a]=p,g[d*a+1]=y,g[d*a+2]=w,g[d*a+3]=255}else(_[d]&l)==l?u[d]==0?(g[d*a]=0,g[d*a+1]=0,g[d*a+2]=0,g[d*a+3]=0):((u[d]&l)==l,g[d*a]=0,g[d*a+1]=0,g[d*a+2]=0,g[d*a+3]=255):(g[d*a]=0,g[d*a+1]=0,g[d*a+2]=0,g[d*a+3]=255)}else if(h==1){if(this._sock.rQwait("VMware cursor alpha encoding",t*n*4,2))return!1;g=new Array(t*n*a);for(var b=0;b>24&255,g[b*4+1]=S>>16&255,g[b*4+2]=S>>8&255,g[b*4+3]=S&255}}else return ie.Warn("The given cursor type is not supported: "+h+" given."),!1;return this._updateCursor(g,s,c,t,n),!0}},{key:"_handleCursor",value:function(){var s=this._FBU.x,c=this._FBU.y,t=this._FBU.width,n=this._FBU.height,h=t*n*4,g=Math.ceil(t/8)*n,a=h+g;if(this._sock.rQwait("cursor encoding",a))return!1;for(var l=this._sock.rQshiftBytes(h),_=this._sock.rQshiftBytes(g),v=new Uint8Array(t*n*4),u=0,o=0;o>8,a=c&255;return g===224&&a<127?a|128:h}i.sQpush8(255),i.sQpush8(0),i.sQpush16(s),i.sQpush32(r);var n=t(c);i.sQpush32(n),i.flush()},pointerEvent:function(i,r,s,c){i.sQpush8(5),i.sQpush8(c),i.sQpush16(r),i.sQpush16(s),i.flush()},_buildExtendedClipboardFlags:function(i,r){for(var s=new Uint8Array(4),c=0,t=0,n=0;n>24,s[1]=0,s[2]=0,s[3]=c,s},extendedClipboardProvide:function(i,r,s){for(var c=new Dg.default,t=[],n=0;n>24&255,h.length>>16&255,h.length>>8&255,h.length&255);for(var g=0;g>24,t[n+1]=s[c[h]]>>16,t[n+2]=s[c[h]]>>8,t[n+3]=s[c[h]]>>0,n+=4,t[3]|=1<2&&arguments[2]!==void 0?arguments[2]:!1;i.sQpush8(6),i.sQpush8(0),i.sQpush8(0),i.sQpush8(0);var c;s?c=(0,Xc.toUnsigned32bit)(-r.length):c=r.length,i.sQpush32(c),i.sQpushBytes(r),i.flush()},setDesktopSize:function(i,r,s,c,t){i.sQpush8(251),i.sQpush8(0),i.sQpush16(r),i.sQpush16(s),i.sQpush8(1),i.sQpush8(0),i.sQpush32(c),i.sQpush16(0),i.sQpush16(0),i.sQpush16(r),i.sQpush16(s),i.sQpush32(t),i.flush()},clientFence:function(i,r,s){i.sQpush8(248),i.sQpush8(0),i.sQpush8(0),i.sQpush8(0),i.sQpush32(r),i.sQpush8(s.length),i.sQpushString(s),i.flush()},enableContinuousUpdates:function(i,r,s,c,t,n){i.sQpush8(150),i.sQpush8(r),i.sQpush16(s),i.sQpush16(c),i.sQpush16(t),i.sQpush16(n),i.flush()},pixelFormat:function(i,r,s){var c;r>16?c=32:r>8?c=16:c=8;var t=Math.floor(r/3);i.sQpush8(0),i.sQpush8(0),i.sQpush8(0),i.sQpush8(0),i.sQpush8(c),i.sQpush8(r),i.sQpush8(0),i.sQpush8(s?1:0),i.sQpush16((1<"u"&&(s=0),typeof c>"u"&&(c=0),i.sQpush8(3),i.sQpush8(r?1:0),i.sQpush16(s),i.sQpush16(c),i.sQpush16(t),i.sQpush16(n),i.flush()},xvpOp:function(i,r,s){i.sQpush8(250),i.sQpush8(0),i.sQpush8(r),i.sQpush8(s),i.flush()}};gt.cursors={none:{rgbaPixels:new Uint8Array,w:0,h:0,hotx:0,hoty:0},dot:{rgbaPixels:new Uint8Array([255,255,255,255,0,0,0,255,255,255,255,255,0,0,0,255,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,255,255,255,255,255]),w:3,h:3,hotx:1,hoty:1}}});var jc=re((ws,fo)=>{(function(e,i){if(typeof ws=="object"&&typeof fo=="object")fo.exports=i();else if(typeof define=="function"&&define.amd)define([],i);else{var r=i();for(var s in r)(typeof ws=="object"?ws:e)[s]=r[s]}})(globalThis,()=>(()=>{"use strict";var e={4567:function(c,t,n){var h=this&&this.__decorate||function(f,p,y,w){var b,S=arguments.length,A=S<3?p:w===null?w=Object.getOwnPropertyDescriptor(p,y):w;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")A=Reflect.decorate(f,p,y,w);else for(var C=f.length-1;C>=0;C--)(b=f[C])&&(A=(S<3?b(A):S>3?b(p,y,A):b(p,y))||A);return S>3&&A&&Object.defineProperty(p,y,A),A},g=this&&this.__param||function(f,p){return function(y,w){p(y,w,f)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AccessibilityManager=void 0;let a=n(9042),l=n(9924),_=n(844),v=n(4725),u=n(2585),o=n(3656),d=t.AccessibilityManager=class extends _.Disposable{constructor(f,p,y,w){super(),this._terminal=f,this._coreBrowserService=y,this._renderService=w,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=this._coreBrowserService.mainDocument.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let b=0;bthis._handleBoundaryFocus(b,0),this._bottomBoundaryFocusListener=b=>this._handleBoundaryFocus(b,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new l.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize(b=>this._handleResize(b.rows))),this.register(this._terminal.onRender(b=>this._refreshRows(b.start,b.end))),this.register(this._terminal.onScroll(()=>this._refreshRows())),this.register(this._terminal.onA11yChar(b=>this._handleChar(b))),this.register(this._terminal.onLineFeed(()=>this._handleChar(` +`))),this.register(this._terminal.onA11yTab(b=>this._handleTab(b))),this.register(this._terminal.onKey(b=>this._handleKey(b.key))),this.register(this._terminal.onBlur(()=>this._clearLiveRegion())),this.register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this.register((0,o.addDisposableDomListener)(document,"selectionchange",()=>this._handleSelectionChange())),this.register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRows(),this.register((0,_.toDisposable)(()=>{this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(f){for(let p=0;p0?this._charsToConsume.shift()!==f&&(this._charsToAnnounce+=f):this._charsToAnnounce+=f,f===` +`&&(this._liveRegionLineCount++,this._liveRegionLineCount===21&&(this._liveRegion.textContent+=a.tooMuchOutput)))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(f){this._clearLiveRegion(),/\p{Control}/u.test(f)||this._charsToConsume.push(f)}_refreshRows(f,p){this._liveRegionDebouncer.refresh(f,p,this._terminal.rows)}_renderRows(f,p){let y=this._terminal.buffer,w=y.lines.length.toString();for(let b=f;b<=p;b++){let S=y.lines.get(y.ydisp+b),A=[],C=S?.translateToString(!0,void 0,void 0,A)||"",D=(y.ydisp+b+1).toString(),L=this._rowElements[b];L&&(C.length===0?(L.innerText="\xA0",this._rowColumns.set(L,[0,1])):(L.textContent=C,this._rowColumns.set(L,A)),L.setAttribute("aria-posinset",D),L.setAttribute("aria-setsize",w))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(f,p){let y=f.target,w=this._rowElements[p===0?1:this._rowElements.length-2];if(y.getAttribute("aria-posinset")===(p===0?"1":`${this._terminal.buffer.lines.length}`)||f.relatedTarget!==w)return;let b,S;if(p===0?(b=y,S=this._rowElements.pop(),this._rowContainer.removeChild(S)):(b=this._rowElements.shift(),S=y,this._rowContainer.removeChild(b)),b.removeEventListener("focus",this._topBoundaryFocusListener),S.removeEventListener("focus",this._bottomBoundaryFocusListener),p===0){let A=this._createAccessibilityTreeNode();this._rowElements.unshift(A),this._rowContainer.insertAdjacentElement("afterbegin",A)}else{let A=this._createAccessibilityTreeNode();this._rowElements.push(A),this._rowContainer.appendChild(A)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(p===0?-1:1),this._rowElements[p===0?1:this._rowElements.length-2].focus(),f.preventDefault(),f.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;let f=document.getSelection();if(!f)return;if(f.isCollapsed)return void(this._rowContainer.contains(f.anchorNode)&&this._terminal.clearSelection());if(!f.anchorNode||!f.focusNode)return void console.error("anchorNode and/or focusNode are null");let p={node:f.anchorNode,offset:f.anchorOffset},y={node:f.focusNode,offset:f.focusOffset};if((p.node.compareDocumentPosition(y.node)&Node.DOCUMENT_POSITION_PRECEDING||p.node===y.node&&p.offset>y.offset)&&([p,y]=[y,p]),p.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(p={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(p.node))return;let w=this._rowElements.slice(-1)[0];if(y.node.compareDocumentPosition(w)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(y={node:w,offset:w.textContent?.length??0}),!this._rowContainer.contains(y.node))return;let b=({node:C,offset:D})=>{let L=C instanceof Text?C.parentNode:C,B=parseInt(L?.getAttribute("aria-posinset"),10)-1;if(isNaN(B))return console.warn("row is invalid. Race condition?"),null;let R=this._rowColumns.get(L);if(!R)return console.warn("columns is null. Race condition?"),null;let F=D=this._terminal.cols&&(++B,F=0),{row:B,column:F}},S=b(p),A=b(y);if(S&&A){if(S.row>A.row||S.row===A.row&&S.column>=A.column)throw new Error("invalid range");this._terminal.select(S.column,S.row,(A.row-S.row)*this._terminal.cols-S.column+A.column)}}_handleResize(f){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let p=this._rowContainer.children.length;pf;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let f=this._coreBrowserService.mainDocument.createElement("div");return f.setAttribute("role","listitem"),f.tabIndex=-1,this._refreshRowDimensions(f),f}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let f=0;f{function n(l){return l.replace(/\r?\n/g,"\r")}function h(l,_){return _?"\x1B[200~"+l+"\x1B[201~":l}function g(l,_,v,u){l=h(l=n(l),v.decPrivateModes.bracketedPasteMode&&u.rawOptions.ignoreBracketedPasteMode!==!0),v.triggerDataEvent(l,!0),_.value=""}function a(l,_,v){let u=v.getBoundingClientRect(),o=l.clientX-u.left-10,d=l.clientY-u.top-10;_.style.width="20px",_.style.height="20px",_.style.left=`${o}px`,_.style.top=`${d}px`,_.style.zIndex="1000",_.focus()}Object.defineProperty(t,"__esModule",{value:!0}),t.rightClickHandler=t.moveTextAreaUnderMouseCursor=t.paste=t.handlePasteEvent=t.copyHandler=t.bracketTextForPaste=t.prepareTextForTerminal=void 0,t.prepareTextForTerminal=n,t.bracketTextForPaste=h,t.copyHandler=function(l,_){l.clipboardData&&l.clipboardData.setData("text/plain",_.selectionText),l.preventDefault()},t.handlePasteEvent=function(l,_,v,u){l.stopPropagation(),l.clipboardData&&g(l.clipboardData.getData("text/plain"),_,v,u)},t.paste=g,t.moveTextAreaUnderMouseCursor=a,t.rightClickHandler=function(l,_,v,u,o){a(l,_,v),o&&u.rightClickSelect(l),_.value=u.selectionText,_.select()}},7239:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorContrastCache=void 0;let h=n(1505);t.ColorContrastCache=class{constructor(){this._color=new h.TwoKeyMap,this._css=new h.TwoKeyMap}setCss(g,a,l){this._css.set(g,a,l)}getCss(g,a){return this._css.get(g,a)}setColor(g,a,l){this._color.set(g,a,l)}getColor(g,a){return this._color.get(g,a)}clear(){this._color.clear(),this._css.clear()}}},3656:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(n,h,g,a){n.addEventListener(h,g,a);let l=!1;return{dispose:()=>{l||(l=!0,n.removeEventListener(h,g,a))}}}},3551:function(c,t,n){var h=this&&this.__decorate||function(d,f,p,y){var w,b=arguments.length,S=b<3?f:y===null?y=Object.getOwnPropertyDescriptor(f,p):y;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")S=Reflect.decorate(d,f,p,y);else for(var A=d.length-1;A>=0;A--)(w=d[A])&&(S=(b<3?w(S):b>3?w(f,p,S):w(f,p))||S);return b>3&&S&&Object.defineProperty(f,p,S),S},g=this&&this.__param||function(d,f){return function(p,y){f(p,y,d)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Linkifier=void 0;let a=n(3656),l=n(8460),_=n(844),v=n(2585),u=n(4725),o=t.Linkifier=class extends _.Disposable{get currentLink(){return this._currentLink}constructor(d,f,p,y,w){super(),this._element=d,this._mouseService=f,this._renderService=p,this._bufferService=y,this._linkProviderService=w,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new l.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new l.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,_.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,_.toDisposable)(()=>{this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()})),this.register(this._bufferService.onResize(()=>{this._clearCurrentLink(),this._wasResized=!0})),this.register((0,a.addDisposableDomListener)(this._element,"mouseleave",()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this.register((0,a.addDisposableDomListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this.register((0,a.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,a.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(d){this._lastMouseEvent=d;let f=this._positionFromMouseEvent(d,this._element,this._mouseService);if(!f)return;this._isMouseOut=!1;let p=d.composedPath();for(let y=0;y{y?.forEach(w=>{w.link.dispose&&w.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=d.y);let p=!1;for(let[y,w]of this._linkProviderService.linkProviders.entries())f?this._activeProviderReplies?.get(y)&&(p=this._checkLinkProviderResult(y,d,p)):w.provideLinks(d.y,b=>{if(this._isMouseOut)return;let S=b?.map(A=>({link:A}));this._activeProviderReplies?.set(y,S),p=this._checkLinkProviderResult(y,d,p),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(d.y,this._activeProviderReplies)})}_removeIntersectingLinks(d,f){let p=new Set;for(let y=0;yd?this._bufferService.cols:S.link.range.end.x;for(let D=A;D<=C;D++){if(p.has(D)){w.splice(b--,1);break}p.add(D)}}}}_checkLinkProviderResult(d,f,p){if(!this._activeProviderReplies)return p;let y=this._activeProviderReplies.get(d),w=!1;for(let b=0;bthis._linkAtPosition(S.link,f));b&&(p=!0,this._handleNewLink(b))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!p)for(let b=0;bthis._linkAtPosition(A.link,f));if(S){p=!0,this._handleNewLink(S);break}}return p}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(d){if(!this._currentLink)return;let f=this._positionFromMouseEvent(d,this._element,this._mouseService);f&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,f)&&this._currentLink.link.activate(d,this._currentLink.link.text)}_clearCurrentLink(d,f){this._currentLink&&this._lastMouseEvent&&(!d||!f||this._currentLink.link.range.start.y>=d&&this._currentLink.link.range.end.y<=f)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,_.disposeArray)(this._linkCacheDisposables))}_handleNewLink(d){if(!this._lastMouseEvent)return;let f=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);f&&this._linkAtPosition(d.link,f)&&(this._currentLink=d,this._currentLink.state={decorations:{underline:d.link.decorations===void 0||d.link.decorations.underline,pointerCursor:d.link.decorations===void 0||d.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,d.link,this._lastMouseEvent),d.link.decorations={},Object.defineProperties(d.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:p=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==p&&(this._currentLink.state.decorations.pointerCursor=p,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",p))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:p=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==p&&(this._currentLink.state.decorations.underline=p,this._currentLink.state.isHovered&&this._fireUnderlineEvent(d.link,p))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(p=>{if(!this._currentLink)return;let y=p.start===0?0:p.start+1+this._bufferService.buffer.ydisp,w=this._bufferService.buffer.ydisp+1+p.end;if(this._currentLink.link.range.start.y>=y&&this._currentLink.link.range.end.y<=w&&(this._clearCurrentLink(y,w),this._lastMouseEvent)){let b=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);b&&this._askForLink(b,!1)}})))}_linkHover(d,f,p){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(f,!0),this._currentLink.state.decorations.pointerCursor&&d.classList.add("xterm-cursor-pointer")),f.hover&&f.hover(p,f.text)}_fireUnderlineEvent(d,f){let p=d.range,y=this._bufferService.buffer.ydisp,w=this._createLinkUnderlineEvent(p.start.x-1,p.start.y-y-1,p.end.x,p.end.y-y-1,void 0);(f?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(w)}_linkLeave(d,f,p){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(f,!1),this._currentLink.state.decorations.pointerCursor&&d.classList.remove("xterm-cursor-pointer")),f.leave&&f.leave(p,f.text)}_linkAtPosition(d,f){let p=d.range.start.y*this._bufferService.cols+d.range.start.x,y=d.range.end.y*this._bufferService.cols+d.range.end.x,w=f.y*this._bufferService.cols+f.x;return p<=w&&w<=y}_positionFromMouseEvent(d,f,p){let y=p.getCoords(d,f,this._bufferService.cols,this._bufferService.rows);if(y)return{x:y[0],y:y[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(d,f,p,y,w){return{x1:d,y1:f,x2:p,y2:y,cols:this._bufferService.cols,fg:w}}};t.Linkifier=o=h([g(1,u.IMouseService),g(2,u.IRenderService),g(3,v.IBufferService),g(4,u.ILinkProviderService)],o)},9042:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0,t.promptLabel="Terminal input",t.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},3730:function(c,t,n){var h=this&&this.__decorate||function(u,o,d,f){var p,y=arguments.length,w=y<3?o:f===null?f=Object.getOwnPropertyDescriptor(o,d):f;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")w=Reflect.decorate(u,o,d,f);else for(var b=u.length-1;b>=0;b--)(p=u[b])&&(w=(y<3?p(w):y>3?p(o,d,w):p(o,d))||w);return y>3&&w&&Object.defineProperty(o,d,w),w},g=this&&this.__param||function(u,o){return function(d,f){o(d,f,u)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkProvider=void 0;let a=n(511),l=n(2585),_=t.OscLinkProvider=class{constructor(u,o,d){this._bufferService=u,this._optionsService=o,this._oscLinkService=d}provideLinks(u,o){let d=this._bufferService.buffer.lines.get(u-1);if(!d)return void o(void 0);let f=[],p=this._optionsService.rawOptions.linkHandler,y=new a.CellData,w=d.getTrimmedLength(),b=-1,S=-1,A=!1;for(let C=0;Cp?p.activate(R,F,L):v(0,F),hover:(R,F)=>p?.hover?.(R,F,L),leave:(R,F)=>p?.leave?.(R,F,L)})}A=!1,y.hasExtendedAttrs()&&y.extended.urlId?(S=C,b=y.extended.urlId):(S=-1,b=-1)}}o(f)}};function v(u,o){if(confirm(`Do you want to navigate to ${o}? -WARNING: This link could potentially be dangerous`)){let i=window.open();if(i){try{i.opener=null}catch{}i.location.href=e}else console.warn("Opening link blocked as opener could not be cleared")}}t.OscLinkProvider=d=l([u(0,h.IBufferService),u(1,h.IOptionsService),u(2,h.IOscLinkService)],d)},6193:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RenderDebouncer=void 0,t.RenderDebouncer=class{constructor(a,l){this._parentWindow=a,this._renderCallback=l,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._parentWindow.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(a){return this._refreshCallbacks.push(a),this._animationFrame||(this._animationFrame=this._parentWindow.requestAnimationFrame(()=>this._innerRefresh())),this._animationFrame}refresh(a,l,u){this._rowCount=u,a=a!==void 0?a:0,l=l!==void 0?l:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,a):a,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,l):l,this._animationFrame||(this._animationFrame=this._parentWindow.requestAnimationFrame(()=>this._innerRefresh()))}_innerRefresh(){if(this._animationFrame=void 0,this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return void this._runRefreshCallbacks();let a=Math.max(this._rowStart,0),l=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(a,l),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(let a of this._refreshCallbacks)a(0);this._refreshCallbacks=[]}}},5596:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ScreenDprMonitor=void 0;let l=a(844);class u extends l.Disposable{constructor(h){super(),this._parentWindow=h,this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this.register((0,l.toDisposable)(()=>{this.clearListener()}))}setListener(h){this._listener&&this.clearListener(),this._listener=h,this._outerListener=()=>{this._listener&&(this._listener(this._parentWindow.devicePixelRatio,this._currentDevicePixelRatio),this._updateDpr())},this._updateDpr()}_updateDpr(){var h;this._outerListener&&((h=this._resolutionMediaMatchList)===null||h===void 0||h.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._listener&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._listener=void 0,this._outerListener=void 0)}}t.ScreenDprMonitor=u},3236:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Terminal=void 0;let l=a(3614),u=a(3656),r=a(6465),h=a(9042),d=a(3730),_=a(1680),o=a(3107),e=a(5744),i=a(2950),s=a(1296),n=a(428),f=a(4269),v=a(5114),p=a(8934),S=a(3230),c=a(9312),g=a(4725),w=a(6731),C=a(8055),m=a(8969),L=a(8460),A=a(844),D=a(6114),M=a(8437),B=a(2584),b=a(7399),E=a(5941),x=a(9074),k=a(2585),P=a(5435),N=a(4567),U=typeof window<"u"?window.document:null;class W extends m.CoreTerminal{get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}constructor(y={}){super(y),this.browser=D,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this.register(new A.MutableDisposable),this._onCursorMove=this.register(new L.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new L.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new L.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new L.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new L.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new L.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new L.EventEmitter),this._onBlur=this.register(new L.EventEmitter),this._onA11yCharEmitter=this.register(new L.EventEmitter),this._onA11yTabEmitter=this.register(new L.EventEmitter),this._onWillOpen=this.register(new L.EventEmitter),this._setup(),this.linkifier2=this.register(this._instantiationService.createInstance(r.Linkifier2)),this.linkifier2.registerLinkProvider(this._instantiationService.createInstance(d.OscLinkProvider)),this._decorationService=this._instantiationService.createInstance(x.DecorationService),this._instantiationService.setService(k.IDecorationService,this._decorationService),this.register(this._inputHandler.onRequestBell(()=>this._onBell.fire())),this.register(this._inputHandler.onRequestRefreshRows((O,$)=>this.refresh(O,$))),this.register(this._inputHandler.onRequestSendFocus(()=>this._reportFocus())),this.register(this._inputHandler.onRequestReset(()=>this.reset())),this.register(this._inputHandler.onRequestWindowsOptionsReport(O=>this._reportWindowsOptions(O))),this.register(this._inputHandler.onColor(O=>this._handleColorEvent(O))),this.register((0,L.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,L.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,L.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,L.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize(O=>this._afterResize(O.cols,O.rows))),this.register((0,A.toDisposable)(()=>{var O,$;this._customKeyEventHandler=void 0,($=(O=this.element)===null||O===void 0?void 0:O.parentNode)===null||$===void 0||$.removeChild(this.element)}))}_handleColorEvent(y){if(this._themeService)for(let O of y){let $,F="";switch(O.index){case 256:$="foreground",F="10";break;case 257:$="background",F="11";break;case 258:$="cursor",F="12";break;default:$="ansi",F="4;"+O.index}switch(O.type){case 0:let K=C.color.toColorRGB($==="ansi"?this._themeService.colors.ansi[O.index]:this._themeService.colors[$]);this.coreService.triggerDataEvent(`${B.C0.ESC}]${F};${(0,E.toRgbString)(K)}${B.C1_ESCAPED.ST}`);break;case 1:if($==="ansi")this._themeService.modifyColors(z=>z.ansi[O.index]=C.rgba.toColor(...O.color));else{let z=$;this._themeService.modifyColors(ee=>ee[z]=C.rgba.toColor(...O.color))}break;case 2:this._themeService.restoreColor(O.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(y){y?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(N.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(y){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(B.C0.ESC+"[I"),this.updateCursorStyle(y),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){var y;return(y=this.textarea)===null||y===void 0?void 0:y.blur()}_handleTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(B.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;let y=this.buffer.ybase+this.buffer.y,O=this.buffer.lines.get(y);if(!O)return;let $=Math.min(this.buffer.x,this.cols-1),F=this._renderService.dimensions.css.cell.height,K=O.getWidth($),z=this._renderService.dimensions.css.cell.width*K,ee=this.buffer.y*this._renderService.dimensions.css.cell.height,ae=$*this._renderService.dimensions.css.cell.width;this.textarea.style.left=ae+"px",this.textarea.style.top=ee+"px",this.textarea.style.width=z+"px",this.textarea.style.height=F+"px",this.textarea.style.lineHeight=F+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this.register((0,u.addDisposableDomListener)(this.element,"copy",O=>{this.hasSelection()&&(0,l.copyHandler)(O,this._selectionService)}));let y=O=>(0,l.handlePasteEvent)(O,this.textarea,this.coreService,this.optionsService);this.register((0,u.addDisposableDomListener)(this.textarea,"paste",y)),this.register((0,u.addDisposableDomListener)(this.element,"paste",y)),D.isFirefox?this.register((0,u.addDisposableDomListener)(this.element,"mousedown",O=>{O.button===2&&(0,l.rightClickHandler)(O,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this.register((0,u.addDisposableDomListener)(this.element,"contextmenu",O=>{(0,l.rightClickHandler)(O,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),D.isLinux&&this.register((0,u.addDisposableDomListener)(this.element,"auxclick",O=>{O.button===1&&(0,l.moveTextAreaUnderMouseCursor)(O,this.textarea,this.screenElement)}))}_bindKeys(){this.register((0,u.addDisposableDomListener)(this.textarea,"keyup",y=>this._keyUp(y),!0)),this.register((0,u.addDisposableDomListener)(this.textarea,"keydown",y=>this._keyDown(y),!0)),this.register((0,u.addDisposableDomListener)(this.textarea,"keypress",y=>this._keyPress(y),!0)),this.register((0,u.addDisposableDomListener)(this.textarea,"compositionstart",()=>this._compositionHelper.compositionstart())),this.register((0,u.addDisposableDomListener)(this.textarea,"compositionupdate",y=>this._compositionHelper.compositionupdate(y))),this.register((0,u.addDisposableDomListener)(this.textarea,"compositionend",()=>this._compositionHelper.compositionend())),this.register((0,u.addDisposableDomListener)(this.textarea,"input",y=>this._inputEvent(y),!0)),this.register(this.onRender(()=>this._compositionHelper.updateCompositionElements()))}open(y){var O;if(!y)throw new Error("Terminal requires a parent element.");y.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this._document=y.ownerDocument,this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),y.appendChild(this.element);let $=U.createDocumentFragment();this._viewportElement=U.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),$.appendChild(this._viewportElement),this._viewportScrollArea=U.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=U.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._helperContainer=U.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),$.appendChild(this.screenElement),this.textarea=U.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",h.promptLabel),D.isChromeOS||this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this._coreBrowserService=this._instantiationService.createInstance(v.CoreBrowserService,this.textarea,(O=this._document.defaultView)!==null&&O!==void 0?O:window),this._instantiationService.setService(g.ICoreBrowserService,this._coreBrowserService),this.register((0,u.addDisposableDomListener)(this.textarea,"focus",F=>this._handleTextAreaFocus(F))),this.register((0,u.addDisposableDomListener)(this.textarea,"blur",()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(n.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(g.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(w.ThemeService),this._instantiationService.setService(g.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(f.CharacterJoinerService),this._instantiationService.setService(g.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(S.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(g.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange(F=>this._onRender.fire(F))),this.onResize(F=>this._renderService.resize(F.cols,F.rows)),this._compositionView=U.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(i.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this.element.appendChild($);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._mouseService=this._instantiationService.createInstance(p.MouseService),this._instantiationService.setService(g.IMouseService,this._mouseService),this.viewport=this._instantiationService.createInstance(_.Viewport,this._viewportElement,this._viewportScrollArea),this.viewport.onRequestScrollLines(F=>this.scrollLines(F.amount,F.suppressScrollEvent,1)),this.register(this._inputHandler.onRequestSyncScrollBar(()=>this.viewport.syncScrollArea())),this.register(this.viewport),this.register(this.onCursorMove(()=>{this._renderService.handleCursorMove(),this._syncTextArea()})),this.register(this.onResize(()=>this._renderService.handleResize(this.cols,this.rows))),this.register(this.onBlur(()=>this._renderService.handleBlur())),this.register(this.onFocus(()=>this._renderService.handleFocus())),this.register(this._renderService.onDimensionsChange(()=>this.viewport.syncScrollArea())),this._selectionService=this.register(this._instantiationService.createInstance(c.SelectionService,this.element,this.screenElement,this.linkifier2)),this._instantiationService.setService(g.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines(F=>this.scrollLines(F.amount,F.suppressScrollEvent))),this.register(this._selectionService.onSelectionChange(()=>this._onSelectionChange.fire())),this.register(this._selectionService.onRequestRedraw(F=>this._renderService.handleSelectionChanged(F.start,F.end,F.columnSelectMode))),this.register(this._selectionService.onLinuxMouseSelection(F=>{this.textarea.value=F,this.textarea.focus(),this.textarea.select()})),this.register(this._onScroll.event(F=>{this.viewport.syncScrollArea(),this._selectionService.refresh()})),this.register((0,u.addDisposableDomListener)(this._viewportElement,"scroll",()=>this._selectionService.refresh())),this.linkifier2.attachToDom(this.screenElement,this._mouseService,this._renderService),this.register(this._instantiationService.createInstance(o.BufferDecorationRenderer,this.screenElement)),this.register((0,u.addDisposableDomListener)(this.element,"mousedown",F=>this._selectionService.handleMouseDown(F))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(N.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange("screenReaderMode",F=>this._handleScreenReaderModeOptionChange(F))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(e.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRulerWidth",F=>{!this._overviewRulerRenderer&&F&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(e.OverviewRulerRenderer,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(s.DomRenderer,this.element,this.screenElement,this._viewportElement,this.linkifier2)}bindMouse(){let y=this,O=this.element;function $(z){let ee=y._mouseService.getMouseReportCoords(z,y.screenElement);if(!ee)return!1;let ae,le;switch(z.overrideType||z.type){case"mousemove":le=32,z.buttons===void 0?(ae=3,z.button!==void 0&&(ae=z.button<3?z.button:3)):ae=1&z.buttons?0:4&z.buttons?1:2&z.buttons?2:3;break;case"mouseup":le=0,ae=z.button<3?z.button:3;break;case"mousedown":le=1,ae=z.button<3?z.button:3;break;case"wheel":if(y.viewport.getLinesScrolled(z)===0)return!1;le=z.deltaY<0?0:1,ae=4;break;default:return!1}return!(le===void 0||ae===void 0||ae>4)&&y.coreMouseService.triggerMouseEvent({col:ee.col,row:ee.row,x:ee.x,y:ee.y,button:ae,action:le,ctrl:z.ctrlKey,alt:z.altKey,shift:z.shiftKey})}let F={mouseup:null,wheel:null,mousedrag:null,mousemove:null},K={mouseup:z=>($(z),z.buttons||(this._document.removeEventListener("mouseup",F.mouseup),F.mousedrag&&this._document.removeEventListener("mousemove",F.mousedrag)),this.cancel(z)),wheel:z=>($(z),this.cancel(z,!0)),mousedrag:z=>{z.buttons&&$(z)},mousemove:z=>{z.buttons||$(z)}};this.register(this.coreMouseService.onProtocolChange(z=>{z?(this.optionsService.rawOptions.logLevel==="debug"&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(z)),this.element.classList.add("enable-mouse-events"),this._selectionService.disable()):(this._logService.debug("Unbinding from mouse events."),this.element.classList.remove("enable-mouse-events"),this._selectionService.enable()),8&z?F.mousemove||(O.addEventListener("mousemove",K.mousemove),F.mousemove=K.mousemove):(O.removeEventListener("mousemove",F.mousemove),F.mousemove=null),16&z?F.wheel||(O.addEventListener("wheel",K.wheel,{passive:!1}),F.wheel=K.wheel):(O.removeEventListener("wheel",F.wheel),F.wheel=null),2&z?F.mouseup||(O.addEventListener("mouseup",K.mouseup),F.mouseup=K.mouseup):(this._document.removeEventListener("mouseup",F.mouseup),O.removeEventListener("mouseup",F.mouseup),F.mouseup=null),4&z?F.mousedrag||(F.mousedrag=K.mousedrag):(this._document.removeEventListener("mousemove",F.mousedrag),F.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,u.addDisposableDomListener)(O,"mousedown",z=>{if(z.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(z))return $(z),F.mouseup&&this._document.addEventListener("mouseup",F.mouseup),F.mousedrag&&this._document.addEventListener("mousemove",F.mousedrag),this.cancel(z)})),this.register((0,u.addDisposableDomListener)(O,"wheel",z=>{if(!F.wheel){if(!this.buffer.hasScrollback){let ee=this.viewport.getLinesScrolled(z);if(ee===0)return;let ae=B.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(z.deltaY<0?"A":"B"),le="";for(let se=0;se{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(z),this.cancel(z)},{passive:!0})),this.register((0,u.addDisposableDomListener)(O,"touchmove",z=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(z)?void 0:this.cancel(z)},{passive:!1}))}refresh(y,O){var $;($=this._renderService)===null||$===void 0||$.refreshRows(y,O)}updateCursorStyle(y){var O;!((O=this._selectionService)===null||O===void 0)&&O.shouldColumnSelect(y)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(y,O,$=0){var F;$===1?(super.scrollLines(y,O,$),this.refresh(0,this.rows-1)):(F=this.viewport)===null||F===void 0||F.scrollLines(y)}paste(y){(0,l.paste)(y,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(y){this._customKeyEventHandler=y}registerLinkProvider(y){return this.linkifier2.registerLinkProvider(y)}registerCharacterJoiner(y){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");let O=this._characterJoinerService.register(y);return this.refresh(0,this.rows-1),O}deregisterCharacterJoiner(y){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(y)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(y){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+y)}registerDecoration(y){return this._decorationService.registerDecoration(y)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(y,O,$){this._selectionService.setSelection(y,O,$)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){var y;(y=this._selectionService)===null||y===void 0||y.clearSelection()}selectAll(){var y;(y=this._selectionService)===null||y===void 0||y.selectAll()}selectLines(y,O){var $;($=this._selectionService)===null||$===void 0||$.selectLines(y,O)}_keyDown(y){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(y)===!1)return!1;let O=this.browser.isMac&&this.options.macOptionIsMeta&&y.altKey;if(!O&&!this._compositionHelper.keydown(y))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;O||y.key!=="Dead"&&y.key!=="AltGraph"||(this._unprocessedDeadKey=!0);let $=(0,b.evaluateKeyboardEvent)(y,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(y),$.type===3||$.type===2){let F=this.rows-1;return this.scrollLines($.type===2?-F:F),this.cancel(y,!0)}return $.type===1&&this.selectAll(),!!this._isThirdLevelShift(this.browser,y)||($.cancel&&this.cancel(y,!0),!$.key||!!(y.key&&!y.ctrlKey&&!y.altKey&&!y.metaKey&&y.key.length===1&&y.key.charCodeAt(0)>=65&&y.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):($.key!==B.C0.ETX&&$.key!==B.C0.CR||(this.textarea.value=""),this._onKey.fire({key:$.key,domEvent:y}),this._showCursor(),this.coreService.triggerDataEvent($.key,!0),!this.optionsService.rawOptions.screenReaderMode||y.altKey||y.ctrlKey?this.cancel(y,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(y,O){let $=y.isMac&&!this.options.macOptionIsMeta&&O.altKey&&!O.ctrlKey&&!O.metaKey||y.isWindows&&O.altKey&&O.ctrlKey&&!O.metaKey||y.isWindows&&O.getModifierState("AltGraph");return O.type==="keypress"?$:$&&(!O.keyCode||O.keyCode>47)}_keyUp(y){this._keyDownSeen=!1,this._customKeyEventHandler&&this._customKeyEventHandler(y)===!1||(function(O){return O.keyCode===16||O.keyCode===17||O.keyCode===18}(y)||this.focus(),this.updateCursorStyle(y),this._keyPressHandled=!1)}_keyPress(y){let O;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(y)===!1)return!1;if(this.cancel(y),y.charCode)O=y.charCode;else if(y.which===null||y.which===void 0)O=y.keyCode;else{if(y.which===0||y.charCode===0)return!1;O=y.which}return!(!O||(y.altKey||y.ctrlKey||y.metaKey)&&!this._isThirdLevelShift(this.browser,y)||(O=String.fromCharCode(O),this._onKey.fire({key:O,domEvent:y}),this._showCursor(),this.coreService.triggerDataEvent(O,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(y){if(y.data&&y.inputType==="insertText"&&(!y.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let O=y.data;return this.coreService.triggerDataEvent(O,!0),this.cancel(y),!0}return!1}resize(y,O){y!==this.cols||O!==this.rows?super.resize(y,O):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(y,O){var $,F;($=this._charSizeService)===null||$===void 0||$.measure(),(F=this.viewport)===null||F===void 0||F.syncScrollArea(!0)}clear(){var y;if(this.buffer.ybase!==0||this.buffer.y!==0){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let O=1;O{Object.defineProperty(t,"__esModule",{value:!0}),t.TimeBasedDebouncer=void 0,t.TimeBasedDebouncer=class{constructor(a,l=1e3){this._renderCallback=a,this._debounceThresholdMS=l,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(a,l,u){this._rowCount=u,a=a!==void 0?a:0,l=l!==void 0?l:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,a):a,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,l):l;let r=Date.now();if(r-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=r,this._innerRefresh();else if(!this._additionalRefreshRequested){let h=r-this._lastRefreshMs,d=this._debounceThresholdMS-h;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},d)}}_innerRefresh(){if(this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return;let a=Math.max(this._rowStart,0),l=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(a,l)}}},1680:function(R,t,a){var l=this&&this.__decorate||function(i,s,n,f){var v,p=arguments.length,S=p<3?s:f===null?f=Object.getOwnPropertyDescriptor(s,n):f;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")S=Reflect.decorate(i,s,n,f);else for(var c=i.length-1;c>=0;c--)(v=i[c])&&(S=(p<3?v(S):p>3?v(s,n,S):v(s,n))||S);return p>3&&S&&Object.defineProperty(s,n,S),S},u=this&&this.__param||function(i,s){return function(n,f){s(n,f,i)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Viewport=void 0;let r=a(3656),h=a(4725),d=a(8460),_=a(844),o=a(2585),e=t.Viewport=class extends _.Disposable{constructor(i,s,n,f,v,p,S,c){super(),this._viewportElement=i,this._scrollArea=s,this._bufferService=n,this._optionsService=f,this._charSizeService=v,this._renderService=p,this._coreBrowserService=S,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this._onRequestScrollLines=this.register(new d.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,r.addDisposableDomListener)(this._viewportElement,"scroll",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate(g=>this._activeBuffer=g.activeBuffer)),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange(g=>this._renderDimensions=g)),this._handleThemeChange(c.colors),this.register(c.onChangeColors(g=>this._handleThemeChange(g))),this.register(this._optionsService.onSpecificOptionChange("scrollback",()=>this.syncScrollArea())),setTimeout(()=>this.syncScrollArea())}_handleThemeChange(i){this._viewportElement.style.backgroundColor=i.background.css}reset(){this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._coreBrowserService.window.requestAnimationFrame(()=>this.syncScrollArea())}_refresh(i){if(i)return this._innerRefresh(),void(this._refreshAnimationFrame!==null&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));this._refreshAnimationFrame===null&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh()))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderService.dimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderService.dimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;let s=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderService.dimensions.css.canvas.height);this._lastRecordedBufferHeight!==s&&(this._lastRecordedBufferHeight=s,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}let i=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==i&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=i),this._refreshAnimationFrame=null}syncScrollArea(i=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(i);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(i)}_handleScroll(i){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._onRequestScrollLines.fire({amount:0,suppressScrollEvent:!0});let s=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._onRequestScrollLines.fire({amount:s,suppressScrollEvent:!0})}_smoothScroll(){if(this._isDisposed||this._smoothScrollState.origin===-1||this._smoothScrollState.target===-1)return;let i=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(i*(this._smoothScrollState.target-this._smoothScrollState.origin)),i<1?this._coreBrowserService.window.requestAnimationFrame(()=>this._smoothScroll()):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(i,s){let n=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(s<0&&this._viewportElement.scrollTop!==0||s>0&&n0&&(f=m),v=""}}return{bufferElements:p,cursorElement:f}}getLinesScrolled(i){if(i.deltaY===0||i.shiftKey)return 0;let s=this._applyScrollModifier(i.deltaY,i);return i.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(s/=this._currentRowHeight+0,this._wheelPartialScroll+=s,s=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):i.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(s*=this._bufferService.rows),s}_applyScrollModifier(i,s){let n=this._optionsService.rawOptions.fastScrollModifier;return n==="alt"&&s.altKey||n==="ctrl"&&s.ctrlKey||n==="shift"&&s.shiftKey?i*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:i*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(i){this._lastTouchY=i.touches[0].pageY}handleTouchMove(i){let s=this._lastTouchY-i.touches[0].pageY;return this._lastTouchY=i.touches[0].pageY,s!==0&&(this._viewportElement.scrollTop+=s,this._bubbleScroll(i,s))}};t.Viewport=e=l([u(2,o.IBufferService),u(3,o.IOptionsService),u(4,h.ICharSizeService),u(5,h.IRenderService),u(6,h.ICoreBrowserService),u(7,h.IThemeService)],e)},3107:function(R,t,a){var l=this&&this.__decorate||function(e,i,s,n){var f,v=arguments.length,p=v<3?i:n===null?n=Object.getOwnPropertyDescriptor(i,s):n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")p=Reflect.decorate(e,i,s,n);else for(var S=e.length-1;S>=0;S--)(f=e[S])&&(p=(v<3?f(p):v>3?f(i,s,p):f(i,s))||p);return v>3&&p&&Object.defineProperty(i,s,p),p},u=this&&this.__param||function(e,i){return function(s,n){i(s,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferDecorationRenderer=void 0;let r=a(3656),h=a(4725),d=a(844),_=a(2585),o=t.BufferDecorationRenderer=class extends d.Disposable{constructor(e,i,s,n){super(),this._screenElement=e,this._bufferService=i,this._decorationService=s,this._renderService=n,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement("div"),this._container.classList.add("xterm-decoration-container"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange(()=>this._doRefreshDecorations())),this.register(this._renderService.onDimensionsChange(()=>{this._dimensionsChanged=!0,this._queueRefresh()})),this.register((0,r.addDisposableDomListener)(window,"resize",()=>this._queueRefresh())),this.register(this._bufferService.buffers.onBufferActivate(()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt})),this.register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh())),this.register(this._decorationService.onDecorationRemoved(f=>this._removeDecoration(f))),this.register((0,d.toDisposable)(()=>{this._container.remove(),this._decorationElements.clear()}))}_queueRefresh(){this._animationFrame===void 0&&(this._animationFrame=this._renderService.addRefreshCallback(()=>{this._doRefreshDecorations(),this._animationFrame=void 0}))}_doRefreshDecorations(){for(let e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){var i,s;let n=document.createElement("div");n.classList.add("xterm-decoration"),n.classList.toggle("xterm-decoration-top-layer",((i=e?.options)===null||i===void 0?void 0:i.layer)==="top"),n.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,n.style.height=(e.options.height||1)*this._renderService.dimensions.css.cell.height+"px",n.style.top=(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+"px",n.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;let f=(s=e.options.x)!==null&&s!==void 0?s:0;return f&&f>this._bufferService.cols&&(n.style.display="none"),this._refreshXPosition(e,n),n}_refreshStyle(e){let i=e.marker.line-this._bufferService.buffers.active.ydisp;if(i<0||i>=this._bufferService.rows)e.element&&(e.element.style.display="none",e.onRenderEmitter.fire(e.element));else{let s=this._decorationElements.get(e);s||(s=this._createElement(e),e.element=s,this._decorationElements.set(e,s),this._container.appendChild(s),e.onDispose(()=>{this._decorationElements.delete(e),s.remove()})),s.style.top=i*this._renderService.dimensions.css.cell.height+"px",s.style.display=this._altBufferIsActive?"none":"block",e.onRenderEmitter.fire(s)}}_refreshXPosition(e,i=e.element){var s;if(!i)return;let n=(s=e.options.x)!==null&&s!==void 0?s:0;(e.options.anchor||"left")==="right"?i.style.right=n?n*this._renderService.dimensions.css.cell.width+"px":"":i.style.left=n?n*this._renderService.dimensions.css.cell.width+"px":""}_removeDecoration(e){var i;(i=this._decorationElements.get(e))===null||i===void 0||i.remove(),this._decorationElements.delete(e),e.dispose()}};t.BufferDecorationRenderer=o=l([u(1,_.IBufferService),u(2,_.IDecorationService),u(3,h.IRenderService)],o)},5871:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorZoneStore=void 0,t.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(a){if(a.options.overviewRulerOptions){for(let l of this._zones)if(l.color===a.options.overviewRulerOptions.color&&l.position===a.options.overviewRulerOptions.position){if(this._lineIntersectsZone(l,a.marker.line))return;if(this._lineAdjacentToZone(l,a.marker.line,a.options.overviewRulerOptions.position))return void this._addLineToZone(l,a.marker.line)}if(this._zonePoolIndex=a.startBufferLine&&l<=a.endBufferLine}_lineAdjacentToZone(a,l,u){return l>=a.startBufferLine-this._linePadding[u||"full"]&&l<=a.endBufferLine+this._linePadding[u||"full"]}_addLineToZone(a,l){a.startBufferLine=Math.min(a.startBufferLine,l),a.endBufferLine=Math.max(a.endBufferLine,l)}}},5744:function(R,t,a){var l=this&&this.__decorate||function(f,v,p,S){var c,g=arguments.length,w=g<3?v:S===null?S=Object.getOwnPropertyDescriptor(v,p):S;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")w=Reflect.decorate(f,v,p,S);else for(var C=f.length-1;C>=0;C--)(c=f[C])&&(w=(g<3?c(w):g>3?c(v,p,w):c(v,p))||w);return g>3&&w&&Object.defineProperty(v,p,w),w},u=this&&this.__param||function(f,v){return function(p,S){v(p,S,f)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OverviewRulerRenderer=void 0;let r=a(5871),h=a(3656),d=a(4725),_=a(844),o=a(2585),e={full:0,left:0,center:0,right:0},i={full:0,left:0,center:0,right:0},s={full:0,left:0,center:0,right:0},n=t.OverviewRulerRenderer=class extends _.Disposable{get _width(){return this._optionsService.options.overviewRulerWidth||0}constructor(f,v,p,S,c,g,w){var C;super(),this._viewportElement=f,this._screenElement=v,this._bufferService=p,this._decorationService=S,this._renderService=c,this._optionsService=g,this._coreBrowseService=w,this._colorZoneStore=new r.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=document.createElement("canvas"),this._canvas.classList.add("xterm-decoration-overview-ruler"),this._refreshCanvasDimensions(),(C=this._viewportElement.parentElement)===null||C===void 0||C.insertBefore(this._canvas,this._viewportElement);let m=this._canvas.getContext("2d");if(!m)throw new Error("Ctx cannot be null");this._ctx=m,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,_.toDisposable)(()=>{var L;(L=this._canvas)===null||L===void 0||L.remove()}))}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh(void 0,!0))),this.register(this._decorationService.onDecorationRemoved(()=>this._queueRefresh(void 0,!0)))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange(()=>this._queueRefresh())),this.register(this._bufferService.buffers.onBufferActivate(()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?"none":"block"})),this.register(this._bufferService.onScroll(()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())}))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender(()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)})),this.register(this._optionsService.onSpecificOptionChange("overviewRulerWidth",()=>this._queueRefresh(!0))),this.register((0,h.addDisposableDomListener)(this._coreBrowseService.window,"resize",()=>this._queueRefresh(!0))),this._queueRefresh(!0)}_refreshDrawConstants(){let f=Math.floor(this._canvas.width/3),v=Math.ceil(this._canvas.width/3);i.full=this._canvas.width,i.left=f,i.center=v,i.right=f,this._refreshDrawHeightConstants(),s.full=0,s.left=0,s.center=i.left,s.right=i.left+i.center}_refreshDrawHeightConstants(){e.full=Math.round(2*this._coreBrowseService.dpr);let f=this._canvas.height/this._bufferService.buffer.lines.length,v=Math.round(Math.max(Math.min(f,12),6)*this._coreBrowseService.dpr);e.left=v,e.center=v,e.right=v}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*e.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*e.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*e.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*e.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowseService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowseService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(let v of this._decorationService.decorations)this._colorZoneStore.addDecoration(v);this._ctx.lineWidth=1;let f=this._colorZoneStore.zones;for(let v of f)v.position!=="full"&&this._renderColorZone(v);for(let v of f)v.position==="full"&&this._renderColorZone(v);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(f){this._ctx.fillStyle=f.color,this._ctx.fillRect(s[f.position||"full"],Math.round((this._canvas.height-1)*(f.startBufferLine/this._bufferService.buffers.active.lines.length)-e[f.position||"full"]/2),i[f.position||"full"],Math.round((this._canvas.height-1)*((f.endBufferLine-f.startBufferLine)/this._bufferService.buffers.active.lines.length)+e[f.position||"full"]))}_queueRefresh(f,v){this._shouldUpdateDimensions=f||this._shouldUpdateDimensions,this._shouldUpdateAnchor=v||this._shouldUpdateAnchor,this._animationFrame===void 0&&(this._animationFrame=this._coreBrowseService.window.requestAnimationFrame(()=>{this._refreshDecorations(),this._animationFrame=void 0}))}};t.OverviewRulerRenderer=n=l([u(2,o.IBufferService),u(3,o.IDecorationService),u(4,d.IRenderService),u(5,o.IOptionsService),u(6,d.ICoreBrowserService)],n)},2950:function(R,t,a){var l=this&&this.__decorate||function(o,e,i,s){var n,f=arguments.length,v=f<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,i):s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")v=Reflect.decorate(o,e,i,s);else for(var p=o.length-1;p>=0;p--)(n=o[p])&&(v=(f<3?n(v):f>3?n(e,i,v):n(e,i))||v);return f>3&&v&&Object.defineProperty(e,i,v),v},u=this&&this.__param||function(o,e){return function(i,s){e(i,s,o)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompositionHelper=void 0;let r=a(4725),h=a(2585),d=a(2584),_=t.CompositionHelper=class{get isComposing(){return this._isComposing}constructor(o,e,i,s,n,f){this._textarea=o,this._compositionView=e,this._bufferService=i,this._optionsService=s,this._coreService=n,this._renderService=f,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=""}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._dataAlreadySent="",this._compositionView.classList.add("active")}compositionupdate(o){this._compositionView.textContent=o.data,this.updateCompositionElements(),setTimeout(()=>{this._compositionPosition.end=this._textarea.value.length},0)}compositionend(){this._finalizeComposition(!0)}keydown(o){if(this._isComposing||this._isSendingComposition){if(o.keyCode===229||o.keyCode===16||o.keyCode===17||o.keyCode===18)return!1;this._finalizeComposition(!1)}return o.keyCode!==229||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(o){if(this._compositionView.classList.remove("active"),this._isComposing=!1,o){let e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout(()=>{if(this._isSendingComposition){let i;this._isSendingComposition=!1,e.start+=this._dataAlreadySent.length,i=this._isComposing?this._textarea.value.substring(e.start,e.end):this._textarea.value.substring(e.start),i.length>0&&this._coreService.triggerDataEvent(i,!0)}},0)}else{this._isSendingComposition=!1;let e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){let o=this._textarea.value;setTimeout(()=>{if(!this._isComposing){let e=this._textarea.value,i=e.replace(o,"");this._dataAlreadySent=i,e.length>o.length?this._coreService.triggerDataEvent(i,!0):e.lengththis.updateCompositionElements(!0),0)}}};t.CompositionHelper=_=l([u(2,h.IBufferService),u(3,h.IOptionsService),u(4,h.ICoreService),u(5,r.IRenderService)],_)},9806:(R,t)=>{function a(l,u,r){let h=r.getBoundingClientRect(),d=l.getComputedStyle(r),_=parseInt(d.getPropertyValue("padding-left")),o=parseInt(d.getPropertyValue("padding-top"));return[u.clientX-h.left-_,u.clientY-h.top-o]}Object.defineProperty(t,"__esModule",{value:!0}),t.getCoords=t.getCoordsRelativeToElement=void 0,t.getCoordsRelativeToElement=a,t.getCoords=function(l,u,r,h,d,_,o,e,i){if(!_)return;let s=a(l,u,r);return s?(s[0]=Math.ceil((s[0]+(i?o/2:0))/o),s[1]=Math.ceil(s[1]/e),s[0]=Math.min(Math.max(s[0],1),h+(i?1:0)),s[1]=Math.min(Math.max(s[1],1),d),s):void 0}},9504:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.moveToCellSequence=void 0;let l=a(2584);function u(e,i,s,n){let f=e-r(e,s),v=i-r(i,s),p=Math.abs(f-v)-function(S,c,g){let w=0,C=S-r(S,g),m=c-r(c,g);for(let L=0;L=0&&ei?"A":"B"}function d(e,i,s,n,f,v){let p=e,S=i,c="";for(;p!==s||S!==n;)p+=f?1:-1,f&&p>v.cols-1?(c+=v.buffer.translateBufferLineToString(S,!1,e,p),p=0,e=0,S++):!f&&p<0&&(c+=v.buffer.translateBufferLineToString(S,!1,0,e+1),p=v.cols-1,e=p,S--);return c+v.buffer.translateBufferLineToString(S,!1,e,p)}function _(e,i){let s=i?"O":"[";return l.C0.ESC+s+e}function o(e,i){e=Math.floor(e);let s="";for(let n=0;n0?C-r(C,m):g;let D=C,M=function(B,b,E,x,k,P){let N;return N=u(E,x,k,P).length>0?x-r(x,k):b,B=E&&Ne?"D":"C",o(Math.abs(f-e),_(p,n));p=v>i?"D":"C";let S=Math.abs(v-i);return o(function(c,g){return g.cols-c}(v>i?e:f,s)+(S-1)*s.cols+1+((v>i?f:e)-1),_(p,n))}},1296:function(R,t,a){var l=this&&this.__decorate||function(m,L,A,D){var M,B=arguments.length,b=B<3?L:D===null?D=Object.getOwnPropertyDescriptor(L,A):D;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(m,L,A,D);else for(var E=m.length-1;E>=0;E--)(M=m[E])&&(b=(B<3?M(b):B>3?M(L,A,b):M(L,A))||b);return B>3&&b&&Object.defineProperty(L,A,b),b},u=this&&this.__param||function(m,L){return function(A,D){L(A,D,m)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRenderer=void 0;let r=a(3787),h=a(2550),d=a(2223),_=a(6171),o=a(4725),e=a(8055),i=a(8460),s=a(844),n=a(2585),f="xterm-dom-renderer-owner-",v="xterm-rows",p="xterm-fg-",S="xterm-bg-",c="xterm-focus",g="xterm-selection",w=1,C=t.DomRenderer=class extends s.Disposable{constructor(m,L,A,D,M,B,b,E,x,k){super(),this._element=m,this._screenElement=L,this._viewportElement=A,this._linkifier2=D,this._charSizeService=B,this._optionsService=b,this._bufferService=E,this._coreBrowserService=x,this._themeService=k,this._terminalClass=w++,this._rowElements=[],this.onRequestRedraw=this.register(new i.EventEmitter).event,this._rowContainer=document.createElement("div"),this._rowContainer.classList.add(v),this._rowContainer.style.lineHeight="normal",this._rowContainer.setAttribute("aria-hidden","true"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=document.createElement("div"),this._selectionContainer.classList.add(g),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions=(0,_.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this.register(this._themeService.onChangeColors(P=>this._injectCss(P))),this._injectCss(this._themeService.colors),this._rowFactory=M.createInstance(r.DomRendererRowFactory,document),this._element.classList.add(f+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline(P=>this._handleLinkHover(P))),this.register(this._linkifier2.onHideLinkUnderline(P=>this._handleLinkLeave(P))),this.register((0,s.toDisposable)(()=>{this._element.classList.remove(f+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()})),this._widthCache=new h.WidthCache(document),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){let m=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*m,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*m),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/m),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/m),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(let A of this._rowElements)A.style.width=`${this.dimensions.css.canvas.width}px`,A.style.height=`${this.dimensions.css.cell.height}px`,A.style.lineHeight=`${this.dimensions.css.cell.height}px`,A.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));let L=`${this._terminalSelector} .${v} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=L,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(m){this._themeStyleElement||(this._themeStyleElement=document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let L=`${this._terminalSelector} .${v} { color: ${m.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;L+=`${this._terminalSelector} .${v} .xterm-dim { color: ${e.color.multiplyOpacity(m.foreground,.5).css};}`,L+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`,L+="@keyframes blink_box_shadow_"+this._terminalClass+" { 50% { border-bottom-style: hidden; }}",L+="@keyframes blink_block_"+this._terminalClass+` { 0% { background-color: ${m.cursor.css}; color: ${m.cursorAccent.css}; } 50% { background-color: inherit; color: ${m.cursor.css}; }}`,L+=`${this._terminalSelector} .${v}.${c} .xterm-cursor.xterm-cursor-blink:not(.xterm-cursor-block) { animation: blink_box_shadow_`+this._terminalClass+` 1s step-end infinite;}${this._terminalSelector} .${v}.${c} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: blink_block_`+this._terminalClass+` 1s step-end infinite;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-block { background-color: ${m.cursor.css}; color: ${m.cursorAccent.css};}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${m.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${m.cursor.css} inset;}${this._terminalSelector} .${v} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${m.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,L+=`${this._terminalSelector} .${g} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${g} div { position: absolute; background-color: ${m.selectionBackgroundOpaque.css};}${this._terminalSelector} .${g} div { position: absolute; background-color: ${m.selectionInactiveBackgroundOpaque.css};}`;for(let[A,D]of m.ansi.entries())L+=`${this._terminalSelector} .${p}${A} { color: ${D.css}; }${this._terminalSelector} .${p}${A}.xterm-dim { color: ${e.color.multiplyOpacity(D,.5).css}; }${this._terminalSelector} .${S}${A} { background-color: ${D.css}; }`;L+=`${this._terminalSelector} .${p}${d.INVERTED_DEFAULT_COLOR} { color: ${e.color.opaque(m.background).css}; }${this._terminalSelector} .${p}${d.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${e.color.multiplyOpacity(e.color.opaque(m.background),.5).css}; }${this._terminalSelector} .${S}${d.INVERTED_DEFAULT_COLOR} { background-color: ${m.foreground.css}; }`,this._themeStyleElement.textContent=L}_setDefaultSpacing(){let m=this.dimensions.css.cell.width-this._widthCache.get("W",!1,!1);this._rowContainer.style.letterSpacing=`${m}px`,this._rowFactory.defaultSpacing=m}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(m,L){for(let A=this._rowElements.length;A<=L;A++){let D=document.createElement("div");this._rowContainer.appendChild(D),this._rowElements.push(D)}for(;this._rowElements.length>L;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(m,L){this._refreshRowElements(m,L),this._updateDimensions()}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(c)}handleFocus(){this._rowContainer.classList.add(c),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(m,L,A){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(m,L,A),this.renderRows(0,this._bufferService.rows-1),!m||!L)return;let D=m[1]-this._bufferService.buffer.ydisp,M=L[1]-this._bufferService.buffer.ydisp,B=Math.max(D,0),b=Math.min(M,this._bufferService.rows-1);if(B>=this._bufferService.rows||b<0)return;let E=document.createDocumentFragment();if(A){let x=m[0]>L[0];E.appendChild(this._createSelectionElement(B,x?L[0]:m[0],x?m[0]:L[0],b-B+1))}else{let x=D===B?m[0]:0,k=B===M?L[0]:this._bufferService.cols;E.appendChild(this._createSelectionElement(B,x,k));let P=b-B-1;if(E.appendChild(this._createSelectionElement(B+1,0,this._bufferService.cols,P)),B!==b){let N=M===b?L[0]:this._bufferService.cols;E.appendChild(this._createSelectionElement(b,0,N))}}this._selectionContainer.appendChild(E)}_createSelectionElement(m,L,A,D=1){let M=document.createElement("div");return M.style.height=D*this.dimensions.css.cell.height+"px",M.style.top=m*this.dimensions.css.cell.height+"px",M.style.left=L*this.dimensions.css.cell.width+"px",M.style.width=this.dimensions.css.cell.width*(A-L)+"px",M}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(let m of this._rowElements)m.replaceChildren()}renderRows(m,L){let A=this._bufferService.buffer,D=A.ybase+A.y,M=Math.min(A.x,this._bufferService.cols-1),B=this._optionsService.rawOptions.cursorBlink,b=this._optionsService.rawOptions.cursorStyle,E=this._optionsService.rawOptions.cursorInactiveStyle;for(let x=m;x<=L;x++){let k=x+A.ydisp,P=this._rowElements[x],N=A.lines.get(k);if(!P||!N)break;P.replaceChildren(...this._rowFactory.createRow(N,k,k===D,b,E,M,B,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${f}${this._terminalClass}`}_handleLinkHover(m){this._setCellUnderline(m.x1,m.x2,m.y1,m.y2,m.cols,!0)}_handleLinkLeave(m){this._setCellUnderline(m.x1,m.x2,m.y1,m.y2,m.cols,!1)}_setCellUnderline(m,L,A,D,M,B){A<0&&(m=0),D<0&&(L=0);let b=this._bufferService.rows-1;A=Math.max(Math.min(A,b),0),D=Math.max(Math.min(D,b),0),M=Math.min(M,this._bufferService.cols);let E=this._bufferService.buffer,x=E.ybase+E.y,k=Math.min(E.x,M-1),P=this._optionsService.rawOptions.cursorBlink,N=this._optionsService.rawOptions.cursorStyle,U=this._optionsService.rawOptions.cursorInactiveStyle;for(let W=A;W<=D;++W){let G=W+E.ydisp,y=this._rowElements[W],O=E.lines.get(G);if(!y||!O)break;y.replaceChildren(...this._rowFactory.createRow(O,G,G===x,N,U,k,P,this.dimensions.css.cell.width,this._widthCache,B?W===A?m:0:-1,B?(W===D?L:M)-1:-1))}}};t.DomRenderer=C=l([u(4,n.IInstantiationService),u(5,o.ICharSizeService),u(6,n.IOptionsService),u(7,n.IBufferService),u(8,o.ICoreBrowserService),u(9,o.IThemeService)],C)},3787:function(R,t,a){var l=this&&this.__decorate||function(p,S,c,g){var w,C=arguments.length,m=C<3?S:g===null?g=Object.getOwnPropertyDescriptor(S,c):g;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")m=Reflect.decorate(p,S,c,g);else for(var L=p.length-1;L>=0;L--)(w=p[L])&&(m=(C<3?w(m):C>3?w(S,c,m):w(S,c))||m);return C>3&&m&&Object.defineProperty(S,c,m),m},u=this&&this.__param||function(p,S){return function(c,g){S(c,g,p)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRendererRowFactory=void 0;let r=a(2223),h=a(643),d=a(511),_=a(2585),o=a(8055),e=a(4725),i=a(4269),s=a(6171),n=a(3734),f=t.DomRendererRowFactory=class{constructor(p,S,c,g,w,C,m){this._document=p,this._characterJoinerService=S,this._optionsService=c,this._coreBrowserService=g,this._coreService=w,this._decorationService=C,this._themeService=m,this._workCell=new d.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(p,S,c){this._selectionStart=p,this._selectionEnd=S,this._columnSelectMode=c}createRow(p,S,c,g,w,C,m,L,A,D,M){let B=[],b=this._characterJoinerService.getJoinedCharacters(S),E=this._themeService.colors,x,k=p.getNoBgTrimmedLength();c&&k0&&ee===b[0][0]){le=!0;let Z=b.shift();J=new i.JoinedCellData(this._workCell,p.translateToString(!0,Z[0],Z[1]),Z[1]-Z[0]),se=Z[1]-1,ae=J.getWidth()}let fe=this._isCellInSelection(ee,S),ge=c&&ee===C,pe=z&&ee>=D&&ee<=M,Ce=!1;this._decorationService.forEachDecorationAtCell(ee,S,void 0,Z=>{Ce=!0});let te=J.getChars()||h.WHITESPACE_CELL_CHAR;if(te===" "&&(J.isUnderline()||J.isOverline())&&(te="\xA0"),F=ae*L-A.get(te,J.isBold(),J.isItalic()),x){if(P&&(fe&&$||!fe&&!$&&J.bg===U)&&(fe&&$&&E.selectionForeground||J.fg===W)&&J.extended.ext===G&&pe===y&&F===O&&!ge&&!le&&!Ce){N+=te,P++;continue}P&&(x.textContent=N),x=this._document.createElement("span"),P=0,N=""}else x=this._document.createElement("span");if(U=J.bg,W=J.fg,G=J.extended.ext,y=pe,O=F,$=fe,le&&C>=ee&&C<=se&&(C=ee),!this._coreService.isCursorHidden&&ge){if(K.push("xterm-cursor"),this._coreBrowserService.isFocused)m&&K.push("xterm-cursor-blink"),K.push(g==="bar"?"xterm-cursor-bar":g==="underline"?"xterm-cursor-underline":"xterm-cursor-block");else if(w)switch(w){case"outline":K.push("xterm-cursor-outline");break;case"block":K.push("xterm-cursor-block");break;case"bar":K.push("xterm-cursor-bar");break;case"underline":K.push("xterm-cursor-underline")}}if(J.isBold()&&K.push("xterm-bold"),J.isItalic()&&K.push("xterm-italic"),J.isDim()&&K.push("xterm-dim"),N=J.isInvisible()?h.WHITESPACE_CELL_CHAR:J.getChars()||h.WHITESPACE_CELL_CHAR,J.isUnderline()&&(K.push(`xterm-underline-${J.extended.underlineStyle}`),N===" "&&(N="\xA0"),!J.isUnderlineColorDefault()))if(J.isUnderlineColorRGB())x.style.textDecorationColor=`rgb(${n.AttributeData.toColorRGB(J.getUnderlineColor()).join(",")})`;else{let Z=J.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&J.isBold()&&Z<8&&(Z+=8),x.style.textDecorationColor=E.ansi[Z].css}J.isOverline()&&(K.push("xterm-overline"),N===" "&&(N="\xA0")),J.isStrikethrough()&&K.push("xterm-strikethrough"),pe&&(x.style.textDecoration="underline");let Y=J.getFgColor(),Q=J.getFgColorMode(),X=J.getBgColor(),ie=J.getBgColorMode(),de=!!J.isInverse();if(de){let Z=Y;Y=X,X=Z;let _e=Q;Q=ie,ie=_e}let re,ve,ue,ce=!1;switch(this._decorationService.forEachDecorationAtCell(ee,S,void 0,Z=>{Z.options.layer!=="top"&&ce||(Z.backgroundColorRGB&&(ie=50331648,X=Z.backgroundColorRGB.rgba>>8&16777215,re=Z.backgroundColorRGB),Z.foregroundColorRGB&&(Q=50331648,Y=Z.foregroundColorRGB.rgba>>8&16777215,ve=Z.foregroundColorRGB),ce=Z.options.layer==="top")}),!ce&&fe&&(re=this._coreBrowserService.isFocused?E.selectionBackgroundOpaque:E.selectionInactiveBackgroundOpaque,X=re.rgba>>8&16777215,ie=50331648,ce=!0,E.selectionForeground&&(Q=50331648,Y=E.selectionForeground.rgba>>8&16777215,ve=E.selectionForeground)),ce&&K.push("xterm-decoration-top"),ie){case 16777216:case 33554432:ue=E.ansi[X],K.push(`xterm-bg-${X}`);break;case 50331648:ue=o.rgba.toColor(X>>16,X>>8&255,255&X),this._addStyle(x,`background-color:#${v((X>>>0).toString(16),"0",6)}`);break;default:de?(ue=E.foreground,K.push(`xterm-bg-${r.INVERTED_DEFAULT_COLOR}`)):ue=E.background}switch(re||J.isDim()&&(re=o.color.multiplyOpacity(ue,.5)),Q){case 16777216:case 33554432:J.isBold()&&Y<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(Y+=8),this._applyMinimumContrast(x,ue,E.ansi[Y],J,re,void 0)||K.push(`xterm-fg-${Y}`);break;case 50331648:let Z=o.rgba.toColor(Y>>16&255,Y>>8&255,255&Y);this._applyMinimumContrast(x,ue,Z,J,re,ve)||this._addStyle(x,`color:#${v(Y.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(x,ue,E.foreground,J,re,void 0)||de&&K.push(`xterm-fg-${r.INVERTED_DEFAULT_COLOR}`)}K.length&&(x.className=K.join(" "),K.length=0),ge||le||Ce?x.textContent=N:P++,F!==this.defaultSpacing&&(x.style.letterSpacing=`${F}px`),B.push(x),ee=se}return x&&P&&(x.textContent=N),B}_applyMinimumContrast(p,S,c,g,w,C){if(this._optionsService.rawOptions.minimumContrastRatio===1||(0,s.excludeFromContrastRatioDemands)(g.getCode()))return!1;let m=this._getContrastCache(g),L;if(w||C||(L=m.getColor(S.rgba,c.rgba)),L===void 0){let A=this._optionsService.rawOptions.minimumContrastRatio/(g.isDim()?2:1);L=o.color.ensureContrastRatio(w||S,C||c,A),m.setColor((w||S).rgba,(C||c).rgba,L??null)}return!!L&&(this._addStyle(p,`color:${L.css}`),!0)}_getContrastCache(p){return p.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(p,S){p.setAttribute("style",`${p.getAttribute("style")||""}${S};`)}_isCellInSelection(p,S){let c=this._selectionStart,g=this._selectionEnd;return!(!c||!g)&&(this._columnSelectMode?c[0]<=g[0]?p>=c[0]&&S>=c[1]&&p=c[1]&&p>=g[0]&&S<=g[1]:S>c[1]&&S=c[0]&&p=c[0])}};function v(p,S,c){for(;p.length{Object.defineProperty(t,"__esModule",{value:!0}),t.WidthCache=void 0,t.WidthCache=class{constructor(a){this._flat=new Float32Array(256),this._font="",this._fontSize=0,this._weight="normal",this._weightBold="bold",this._measureElements=[],this._container=a.createElement("div"),this._container.style.position="absolute",this._container.style.top="-50000px",this._container.style.width="50000px",this._container.style.whiteSpace="pre",this._container.style.fontKerning="none";let l=a.createElement("span"),u=a.createElement("span");u.style.fontWeight="bold";let r=a.createElement("span");r.style.fontStyle="italic";let h=a.createElement("span");h.style.fontWeight="bold",h.style.fontStyle="italic",this._measureElements=[l,u,r,h],this._container.appendChild(l),this._container.appendChild(u),this._container.appendChild(r),this._container.appendChild(h),a.body.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(a,l,u,r){a===this._font&&l===this._fontSize&&u===this._weight&&r===this._weightBold||(this._font=a,this._fontSize=l,this._weight=u,this._weightBold=r,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${u}`,this._measureElements[1].style.fontWeight=`${r}`,this._measureElements[2].style.fontWeight=`${u}`,this._measureElements[3].style.fontWeight=`${r}`,this.clear())}get(a,l,u){let r=0;if(!l&&!u&&a.length===1&&(r=a.charCodeAt(0))<256)return this._flat[r]!==-9999?this._flat[r]:this._flat[r]=this._measure(a,0);let h=a;l&&(h+="B"),u&&(h+="I");let d=this._holey.get(h);if(d===void 0){let _=0;l&&(_|=1),u&&(_|=2),d=this._measure(a,_),this._holey.set(h,d)}return d}_measure(a,l){let u=this._measureElements[l];return u.textContent=a.repeat(32),u.offsetWidth/32}}},2223:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;let l=a(6114);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=l.isFirefox||l.isLegacyEdge?"bottom":"ideographic"},6171:(R,t)=>{function a(l){return 57508<=l&&l<=57558}Object.defineProperty(t,"__esModule",{value:!0}),t.createRenderDimensions=t.excludeFromContrastRatioDemands=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(l){if(!l)throw new Error("value must not be falsy");return l},t.isPowerlineGlyph=a,t.isRestrictedPowerlineGlyph=function(l){return 57520<=l&&l<=57527},t.excludeFromContrastRatioDemands=function(l){return a(l)||function(u){return 9472<=u&&u<=9631}(l)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}}},456:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionModel=void 0,t.SelectionModel=class{constructor(a){this._bufferService=a,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){let a=this.selectionStart[0]+this.selectionStartLength;return a>this._bufferService.cols?a%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(a/this._bufferService.cols)-1]:[a%this._bufferService.cols,this.selectionStart[1]+Math.floor(a/this._bufferService.cols)]:[a,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){let a=this.selectionStart[0]+this.selectionStartLength;return a>this._bufferService.cols?[a%this._bufferService.cols,this.selectionStart[1]+Math.floor(a/this._bufferService.cols)]:[Math.max(a,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){let a=this.selectionStart,l=this.selectionEnd;return!(!a||!l)&&(a[1]>l[1]||a[1]===l[1]&&a[0]>l[0])}handleTrim(a){return this.selectionStart&&(this.selectionStart[1]-=a),this.selectionEnd&&(this.selectionEnd[1]-=a),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(R,t,a){var l=this&&this.__decorate||function(e,i,s,n){var f,v=arguments.length,p=v<3?i:n===null?n=Object.getOwnPropertyDescriptor(i,s):n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")p=Reflect.decorate(e,i,s,n);else for(var S=e.length-1;S>=0;S--)(f=e[S])&&(p=(v<3?f(p):v>3?f(i,s,p):f(i,s))||p);return v>3&&p&&Object.defineProperty(i,s,p),p},u=this&&this.__param||function(e,i){return function(s,n){i(s,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharSizeService=void 0;let r=a(2585),h=a(8460),d=a(844),_=t.CharSizeService=class extends d.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(e,i,s){super(),this._optionsService=s,this.width=0,this.height=0,this._onCharSizeChange=this.register(new h.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event,this._measureStrategy=new o(e,i,this._optionsService),this.register(this._optionsService.onMultipleOptionChange(["fontFamily","fontSize"],()=>this.measure()))}measure(){let e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};t.CharSizeService=_=l([u(2,r.IOptionsService)],_);class o{constructor(i,s,n){this._document=i,this._parentElement=s,this._optionsService=n,this._result={width:0,height:0},this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W".repeat(32),this._measureElement.setAttribute("aria-hidden","true"),this._measureElement.style.whiteSpace="pre",this._measureElement.style.fontKerning="none",this._parentElement.appendChild(this._measureElement)}measure(){this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`;let i={height:Number(this._measureElement.offsetHeight),width:Number(this._measureElement.offsetWidth)};return i.width!==0&&i.height!==0&&(this._result.width=i.width/32,this._result.height=Math.ceil(i.height)),this._result}}},4269:function(R,t,a){var l=this&&this.__decorate||function(i,s,n,f){var v,p=arguments.length,S=p<3?s:f===null?f=Object.getOwnPropertyDescriptor(s,n):f;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")S=Reflect.decorate(i,s,n,f);else for(var c=i.length-1;c>=0;c--)(v=i[c])&&(S=(p<3?v(S):p>3?v(s,n,S):v(s,n))||S);return p>3&&S&&Object.defineProperty(s,n,S),S},u=this&&this.__param||function(i,s){return function(n,f){s(n,f,i)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;let r=a(3734),h=a(643),d=a(511),_=a(2585);class o extends r.AttributeData{constructor(s,n,f){super(),this.content=0,this.combinedData="",this.fg=s.fg,this.bg=s.bg,this.combinedData=n,this._width=f}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(s){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=o;let e=t.CharacterJoinerService=class it{constructor(s){this._bufferService=s,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new d.CellData}register(s){let n={id:this._nextCharacterJoinerId++,handler:s};return this._characterJoiners.push(n),n.id}deregister(s){for(let n=0;n1){let m=this._getJoinedRanges(v,c,S,n,p);for(let L=0;L1){let C=this._getJoinedRanges(v,c,S,n,p);for(let m=0;m{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreBrowserService=void 0,t.CoreBrowserService=class{constructor(a,l){this._textarea=a,this.window=l,this._isFocused=!1,this._cachedIsFocused=void 0,this._textarea.addEventListener("focus",()=>this._isFocused=!0),this._textarea.addEventListener("blur",()=>this._isFocused=!1)}get dpr(){return this.window.devicePixelRatio}get isFocused(){return this._cachedIsFocused===void 0&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask(()=>this._cachedIsFocused=void 0)),this._cachedIsFocused}}},8934:function(R,t,a){var l=this&&this.__decorate||function(_,o,e,i){var s,n=arguments.length,f=n<3?o:i===null?i=Object.getOwnPropertyDescriptor(o,e):i;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")f=Reflect.decorate(_,o,e,i);else for(var v=_.length-1;v>=0;v--)(s=_[v])&&(f=(n<3?s(f):n>3?s(o,e,f):s(o,e))||f);return n>3&&f&&Object.defineProperty(o,e,f),f},u=this&&this.__param||function(_,o){return function(e,i){o(e,i,_)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MouseService=void 0;let r=a(4725),h=a(9806),d=t.MouseService=class{constructor(_,o){this._renderService=_,this._charSizeService=o}getCoords(_,o,e,i,s){return(0,h.getCoords)(window,_,o,e,i,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,s)}getMouseReportCoords(_,o){let e=(0,h.getCoordsRelativeToElement)(window,_,o);if(this._charSizeService.hasValidSize)return e[0]=Math.min(Math.max(e[0],0),this._renderService.dimensions.css.canvas.width-1),e[1]=Math.min(Math.max(e[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(e[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(e[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(e[0]),y:Math.floor(e[1])}}};t.MouseService=d=l([u(0,r.IRenderService),u(1,r.ICharSizeService)],d)},3230:function(R,t,a){var l=this&&this.__decorate||function(f,v,p,S){var c,g=arguments.length,w=g<3?v:S===null?S=Object.getOwnPropertyDescriptor(v,p):S;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")w=Reflect.decorate(f,v,p,S);else for(var C=f.length-1;C>=0;C--)(c=f[C])&&(w=(g<3?c(w):g>3?c(v,p,w):c(v,p))||w);return g>3&&w&&Object.defineProperty(v,p,w),w},u=this&&this.__param||function(f,v){return function(p,S){v(p,S,f)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenderService=void 0;let r=a(3656),h=a(6193),d=a(5596),_=a(4725),o=a(8460),e=a(844),i=a(7226),s=a(2585),n=t.RenderService=class extends e.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(f,v,p,S,c,g,w,C){if(super(),this._rowCount=f,this._charSizeService=S,this._renderer=this.register(new e.MutableDisposable),this._pausedResizeTask=new i.DebouncedIdleTask,this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new o.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new o.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new o.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new o.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new h.RenderDebouncer(w.window,(m,L)=>this._renderRows(m,L)),this.register(this._renderDebouncer),this._screenDprMonitor=new d.ScreenDprMonitor(w.window),this._screenDprMonitor.setListener(()=>this.handleDevicePixelRatioChange()),this.register(this._screenDprMonitor),this.register(g.onResize(()=>this._fullRefresh())),this.register(g.buffers.onBufferActivate(()=>{var m;return(m=this._renderer.value)===null||m===void 0?void 0:m.clear()})),this.register(p.onOptionChange(()=>this._handleOptionsChanged())),this.register(this._charSizeService.onCharSizeChange(()=>this.handleCharSizeChanged())),this.register(c.onDecorationRegistered(()=>this._fullRefresh())),this.register(c.onDecorationRemoved(()=>this._fullRefresh())),this.register(p.onMultipleOptionChange(["customGlyphs","drawBoldTextInBrightColors","letterSpacing","lineHeight","fontFamily","fontSize","fontWeight","fontWeightBold","minimumContrastRatio"],()=>{this.clear(),this.handleResize(g.cols,g.rows),this._fullRefresh()})),this.register(p.onMultipleOptionChange(["cursorBlink","cursorStyle"],()=>this.refreshRows(g.buffer.y,g.buffer.y,!0))),this.register((0,r.addDisposableDomListener)(w.window,"resize",()=>this.handleDevicePixelRatioChange())),this.register(C.onChangeColors(()=>this._fullRefresh())),"IntersectionObserver"in w.window){let m=new w.window.IntersectionObserver(L=>this._handleIntersectionChange(L[L.length-1]),{threshold:0});m.observe(v),this.register({dispose:()=>m.disconnect()})}}_handleIntersectionChange(f){this._isPaused=f.isIntersecting===void 0?f.intersectionRatio===0:!f.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(f,v,p=!1){this._isPaused?this._needsFullRefresh=!0:(p||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(f,v,this._rowCount))}_renderRows(f,v){this._renderer.value&&(f=Math.min(f,this._rowCount-1),v=Math.min(v,this._rowCount-1),this._renderer.value.renderRows(f,v),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:f,end:v}),this._onRender.fire({start:f,end:v}),this._isNextRenderRedrawOnly=!0)}resize(f,v){this._rowCount=v,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(f){this._renderer.value=f,this._renderer.value.onRequestRedraw(v=>this.refreshRows(v.start,v.end,!0)),this._needsSelectionRefresh=!0,this._fullRefresh()}addRefreshCallback(f){return this._renderDebouncer.addRefreshCallback(f)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){var f,v;this._renderer.value&&((v=(f=this._renderer.value).clearTextureAtlas)===null||v===void 0||v.call(f),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(f,v){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set(()=>this._renderer.value.handleResize(f,v)):this._renderer.value.handleResize(f,v),this._fullRefresh())}handleCharSizeChanged(){var f;(f=this._renderer.value)===null||f===void 0||f.handleCharSizeChanged()}handleBlur(){var f;(f=this._renderer.value)===null||f===void 0||f.handleBlur()}handleFocus(){var f;(f=this._renderer.value)===null||f===void 0||f.handleFocus()}handleSelectionChanged(f,v,p){var S;this._selectionState.start=f,this._selectionState.end=v,this._selectionState.columnSelectMode=p,(S=this._renderer.value)===null||S===void 0||S.handleSelectionChanged(f,v,p)}handleCursorMove(){var f;(f=this._renderer.value)===null||f===void 0||f.handleCursorMove()}clear(){var f;(f=this._renderer.value)===null||f===void 0||f.clear()}};t.RenderService=n=l([u(2,s.IOptionsService),u(3,_.ICharSizeService),u(4,s.IDecorationService),u(5,s.IBufferService),u(6,_.ICoreBrowserService),u(7,_.IThemeService)],n)},9312:function(R,t,a){var l=this&&this.__decorate||function(c,g,w,C){var m,L=arguments.length,A=L<3?g:C===null?C=Object.getOwnPropertyDescriptor(g,w):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")A=Reflect.decorate(c,g,w,C);else for(var D=c.length-1;D>=0;D--)(m=c[D])&&(A=(L<3?m(A):L>3?m(g,w,A):m(g,w))||A);return L>3&&A&&Object.defineProperty(g,w,A),A},u=this&&this.__param||function(c,g){return function(w,C){g(w,C,c)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionService=void 0;let r=a(9806),h=a(9504),d=a(456),_=a(4725),o=a(8460),e=a(844),i=a(6114),s=a(4841),n=a(511),f=a(2585),v=String.fromCharCode(160),p=new RegExp(v,"g"),S=t.SelectionService=class extends e.Disposable{constructor(c,g,w,C,m,L,A,D,M){super(),this._element=c,this._screenElement=g,this._linkifier=w,this._bufferService=C,this._coreService=m,this._mouseService=L,this._optionsService=A,this._renderService=D,this._coreBrowserService=M,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new n.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new o.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new o.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new o.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new o.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=B=>this._handleMouseMove(B),this._mouseUpListener=B=>this._handleMouseUp(B),this._coreService.onUserInput(()=>{this.hasSelection&&this.clearSelection()}),this._trimListener=this._bufferService.buffer.lines.onTrim(B=>this._handleTrim(B)),this.register(this._bufferService.buffers.onBufferActivate(B=>this._handleBufferActivate(B))),this.enable(),this._model=new d.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,e.toDisposable)(()=>{this._removeMouseDownListeners()}))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){let c=this._model.finalSelectionStart,g=this._model.finalSelectionEnd;return!(!c||!g||c[0]===g[0]&&c[1]===g[1])}get selectionText(){let c=this._model.finalSelectionStart,g=this._model.finalSelectionEnd;if(!c||!g)return"";let w=this._bufferService.buffer,C=[];if(this._activeSelectionMode===3){if(c[0]===g[0])return"";let m=c[0]m.replace(p," ")).join(i.isWindows?`\r +WARNING: This link could potentially be dangerous`)){let d=window.open();if(d){try{d.opener=null}catch{}d.location.href=o}else console.warn("Opening link blocked as opener could not be cleared")}}t.OscLinkProvider=_=h([g(0,l.IBufferService),g(1,l.IOptionsService),g(2,l.IOscLinkService)],_)},6193:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RenderDebouncer=void 0,t.RenderDebouncer=class{constructor(n,h){this._renderCallback=n,this._coreBrowserService=h,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(n){return this._refreshCallbacks.push(n),this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh())),this._animationFrame}refresh(n,h,g){this._rowCount=g,n=n!==void 0?n:0,h=h!==void 0?h:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,n):n,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,h):h,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh()))}_innerRefresh(){if(this._animationFrame=void 0,this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return void this._runRefreshCallbacks();let n=Math.max(this._rowStart,0),h=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(n,h),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(let n of this._refreshCallbacks)n(0);this._refreshCallbacks=[]}}},3236:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Terminal=void 0;let h=n(3614),g=n(3656),a=n(3551),l=n(9042),_=n(3730),v=n(1680),u=n(3107),o=n(5744),d=n(2950),f=n(1296),p=n(428),y=n(4269),w=n(5114),b=n(8934),S=n(3230),A=n(9312),C=n(4725),D=n(6731),L=n(8055),B=n(8969),R=n(8460),F=n(844),Q=n(6114),K=n(8437),N=n(2584),k=n(7399),m=n(5941),x=n(9074),E=n(2585),I=n(5435),M=n(4567),X=n(779);class $ extends B.CoreTerminal{get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}constructor(P={}){super(P),this.browser=Q,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this.register(new F.MutableDisposable),this._onCursorMove=this.register(new R.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new R.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new R.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new R.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new R.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new R.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new R.EventEmitter),this._onBlur=this.register(new R.EventEmitter),this._onA11yCharEmitter=this.register(new R.EventEmitter),this._onA11yTabEmitter=this.register(new R.EventEmitter),this._onWillOpen=this.register(new R.EventEmitter),this._setup(),this._decorationService=this._instantiationService.createInstance(x.DecorationService),this._instantiationService.setService(E.IDecorationService,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(X.LinkProviderService),this._instantiationService.setService(C.ILinkProviderService,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(_.OscLinkProvider)),this.register(this._inputHandler.onRequestBell(()=>this._onBell.fire())),this.register(this._inputHandler.onRequestRefreshRows((T,U)=>this.refresh(T,U))),this.register(this._inputHandler.onRequestSendFocus(()=>this._reportFocus())),this.register(this._inputHandler.onRequestReset(()=>this.reset())),this.register(this._inputHandler.onRequestWindowsOptionsReport(T=>this._reportWindowsOptions(T))),this.register(this._inputHandler.onColor(T=>this._handleColorEvent(T))),this.register((0,R.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,R.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,R.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,R.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize(T=>this._afterResize(T.cols,T.rows))),this.register((0,F.toDisposable)(()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)}))}_handleColorEvent(P){if(this._themeService)for(let T of P){let U,Z="";switch(T.index){case 256:U="foreground",Z="10";break;case 257:U="background",Z="11";break;case 258:U="cursor",Z="12";break;default:U="ansi",Z="4;"+T.index}switch(T.type){case 0:let te=L.color.toColorRGB(U==="ansi"?this._themeService.colors.ansi[T.index]:this._themeService.colors[U]);this.coreService.triggerDataEvent(`${N.C0.ESC}]${Z};${(0,m.toRgbString)(te)}${N.C1_ESCAPED.ST}`);break;case 1:if(U==="ansi")this._themeService.modifyColors(ee=>ee.ansi[T.index]=L.channels.toColor(...T.color));else{let ee=U;this._themeService.modifyColors(le=>le[ee]=L.channels.toColor(...T.color))}break;case 2:this._themeService.restoreColor(T.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(P){P?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(P){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(N.C0.ESC+"[I"),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(N.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;let P=this.buffer.ybase+this.buffer.y,T=this.buffer.lines.get(P);if(!T)return;let U=Math.min(this.buffer.x,this.cols-1),Z=this._renderService.dimensions.css.cell.height,te=T.getWidth(U),ee=this._renderService.dimensions.css.cell.width*te,le=this.buffer.y*this._renderService.dimensions.css.cell.height,be=U*this._renderService.dimensions.css.cell.width;this.textarea.style.left=be+"px",this.textarea.style.top=le+"px",this.textarea.style.width=ee+"px",this.textarea.style.height=Z+"px",this.textarea.style.lineHeight=Z+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this.register((0,g.addDisposableDomListener)(this.element,"copy",T=>{this.hasSelection()&&(0,h.copyHandler)(T,this._selectionService)}));let P=T=>(0,h.handlePasteEvent)(T,this.textarea,this.coreService,this.optionsService);this.register((0,g.addDisposableDomListener)(this.textarea,"paste",P)),this.register((0,g.addDisposableDomListener)(this.element,"paste",P)),Q.isFirefox?this.register((0,g.addDisposableDomListener)(this.element,"mousedown",T=>{T.button===2&&(0,h.rightClickHandler)(T,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this.register((0,g.addDisposableDomListener)(this.element,"contextmenu",T=>{(0,h.rightClickHandler)(T,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),Q.isLinux&&this.register((0,g.addDisposableDomListener)(this.element,"auxclick",T=>{T.button===1&&(0,h.moveTextAreaUnderMouseCursor)(T,this.textarea,this.screenElement)}))}_bindKeys(){this.register((0,g.addDisposableDomListener)(this.textarea,"keyup",P=>this._keyUp(P),!0)),this.register((0,g.addDisposableDomListener)(this.textarea,"keydown",P=>this._keyDown(P),!0)),this.register((0,g.addDisposableDomListener)(this.textarea,"keypress",P=>this._keyPress(P),!0)),this.register((0,g.addDisposableDomListener)(this.textarea,"compositionstart",()=>this._compositionHelper.compositionstart())),this.register((0,g.addDisposableDomListener)(this.textarea,"compositionupdate",P=>this._compositionHelper.compositionupdate(P))),this.register((0,g.addDisposableDomListener)(this.textarea,"compositionend",()=>this._compositionHelper.compositionend())),this.register((0,g.addDisposableDomListener)(this.textarea,"input",P=>this._inputEvent(P),!0)),this.register(this.onRender(()=>this._compositionHelper.updateCompositionElements()))}open(P){if(!P)throw new Error("Terminal requires a parent element.");if(P.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this.element?.ownerDocument.defaultView&&this._coreBrowserService)return void(this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView));this._document=P.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),P.appendChild(this.element);let T=this._document.createDocumentFragment();this._viewportElement=this._document.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),T.appendChild(this._viewportElement),this._viewportScrollArea=this._document.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=this._document.createElement("div"),this.screenElement.classList.add("xterm-screen"),this.register((0,g.addDisposableDomListener)(this.screenElement,"mousemove",U=>this.updateCursorStyle(U))),this._helperContainer=this._document.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),T.appendChild(this.screenElement),this.textarea=this._document.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",l.promptLabel),Q.isChromeOS||this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this._coreBrowserService=this.register(this._instantiationService.createInstance(w.CoreBrowserService,this.textarea,P.ownerDocument.defaultView??window,this._document??typeof window<"u"?window.document:null)),this._instantiationService.setService(C.ICoreBrowserService,this._coreBrowserService),this.register((0,g.addDisposableDomListener)(this.textarea,"focus",U=>this._handleTextAreaFocus(U))),this.register((0,g.addDisposableDomListener)(this.textarea,"blur",()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(p.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(C.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(D.ThemeService),this._instantiationService.setService(C.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(y.CharacterJoinerService),this._instantiationService.setService(C.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(S.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(C.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange(U=>this._onRender.fire(U))),this.onResize(U=>this._renderService.resize(U.cols,U.rows)),this._compositionView=this._document.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(d.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(b.MouseService),this._instantiationService.setService(C.IMouseService,this._mouseService),this.linkifier=this.register(this._instantiationService.createInstance(a.Linkifier,this.screenElement)),this.element.appendChild(T);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this.viewport=this._instantiationService.createInstance(v.Viewport,this._viewportElement,this._viewportScrollArea),this.viewport.onRequestScrollLines(U=>this.scrollLines(U.amount,U.suppressScrollEvent,1)),this.register(this._inputHandler.onRequestSyncScrollBar(()=>this.viewport.syncScrollArea())),this.register(this.viewport),this.register(this.onCursorMove(()=>{this._renderService.handleCursorMove(),this._syncTextArea()})),this.register(this.onResize(()=>this._renderService.handleResize(this.cols,this.rows))),this.register(this.onBlur(()=>this._renderService.handleBlur())),this.register(this.onFocus(()=>this._renderService.handleFocus())),this.register(this._renderService.onDimensionsChange(()=>this.viewport.syncScrollArea())),this._selectionService=this.register(this._instantiationService.createInstance(A.SelectionService,this.element,this.screenElement,this.linkifier)),this._instantiationService.setService(C.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines(U=>this.scrollLines(U.amount,U.suppressScrollEvent))),this.register(this._selectionService.onSelectionChange(()=>this._onSelectionChange.fire())),this.register(this._selectionService.onRequestRedraw(U=>this._renderService.handleSelectionChanged(U.start,U.end,U.columnSelectMode))),this.register(this._selectionService.onLinuxMouseSelection(U=>{this.textarea.value=U,this.textarea.focus(),this.textarea.select()})),this.register(this._onScroll.event(U=>{this.viewport.syncScrollArea(),this._selectionService.refresh()})),this.register((0,g.addDisposableDomListener)(this._viewportElement,"scroll",()=>this._selectionService.refresh())),this.register(this._instantiationService.createInstance(u.BufferDecorationRenderer,this.screenElement)),this.register((0,g.addDisposableDomListener)(this.element,"mousedown",U=>this._selectionService.handleMouseDown(U))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange("screenReaderMode",U=>this._handleScreenReaderModeOptionChange(U))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(o.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRulerWidth",U=>{!this._overviewRulerRenderer&&U&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(o.OverviewRulerRenderer,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(f.DomRenderer,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let P=this,T=this.element;function U(ee){let le=P._mouseService.getMouseReportCoords(ee,P.screenElement);if(!le)return!1;let be,ye;switch(ee.overrideType||ee.type){case"mousemove":ye=32,ee.buttons===void 0?(be=3,ee.button!==void 0&&(be=ee.button<3?ee.button:3)):be=1&ee.buttons?0:4&ee.buttons?1:2&ee.buttons?2:3;break;case"mouseup":ye=0,be=ee.button<3?ee.button:3;break;case"mousedown":ye=1,be=ee.button<3?ee.button:3;break;case"wheel":if(P._customWheelEventHandler&&P._customWheelEventHandler(ee)===!1||P.viewport.getLinesScrolled(ee)===0)return!1;ye=ee.deltaY<0?0:1,be=4;break;default:return!1}return!(ye===void 0||be===void 0||be>4)&&P.coreMouseService.triggerMouseEvent({col:le.col,row:le.row,x:le.x,y:le.y,button:be,action:ye,ctrl:ee.ctrlKey,alt:ee.altKey,shift:ee.shiftKey})}let Z={mouseup:null,wheel:null,mousedrag:null,mousemove:null},te={mouseup:ee=>(U(ee),ee.buttons||(this._document.removeEventListener("mouseup",Z.mouseup),Z.mousedrag&&this._document.removeEventListener("mousemove",Z.mousedrag)),this.cancel(ee)),wheel:ee=>(U(ee),this.cancel(ee,!0)),mousedrag:ee=>{ee.buttons&&U(ee)},mousemove:ee=>{ee.buttons||U(ee)}};this.register(this.coreMouseService.onProtocolChange(ee=>{ee?(this.optionsService.rawOptions.logLevel==="debug"&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(ee)),this.element.classList.add("enable-mouse-events"),this._selectionService.disable()):(this._logService.debug("Unbinding from mouse events."),this.element.classList.remove("enable-mouse-events"),this._selectionService.enable()),8&ee?Z.mousemove||(T.addEventListener("mousemove",te.mousemove),Z.mousemove=te.mousemove):(T.removeEventListener("mousemove",Z.mousemove),Z.mousemove=null),16&ee?Z.wheel||(T.addEventListener("wheel",te.wheel,{passive:!1}),Z.wheel=te.wheel):(T.removeEventListener("wheel",Z.wheel),Z.wheel=null),2&ee?Z.mouseup||(Z.mouseup=te.mouseup):(this._document.removeEventListener("mouseup",Z.mouseup),Z.mouseup=null),4&ee?Z.mousedrag||(Z.mousedrag=te.mousedrag):(this._document.removeEventListener("mousemove",Z.mousedrag),Z.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,g.addDisposableDomListener)(T,"mousedown",ee=>{if(ee.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(ee))return U(ee),Z.mouseup&&this._document.addEventListener("mouseup",Z.mouseup),Z.mousedrag&&this._document.addEventListener("mousemove",Z.mousedrag),this.cancel(ee)})),this.register((0,g.addDisposableDomListener)(T,"wheel",ee=>{if(!Z.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(ee)===!1)return!1;if(!this.buffer.hasScrollback){let le=this.viewport.getLinesScrolled(ee);if(le===0)return;let be=N.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(ee.deltaY<0?"A":"B"),ye="";for(let he=0;he{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(ee),this.cancel(ee)},{passive:!0})),this.register((0,g.addDisposableDomListener)(T,"touchmove",ee=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(ee)?void 0:this.cancel(ee)},{passive:!1}))}refresh(P,T){this._renderService?.refreshRows(P,T)}updateCursorStyle(P){this._selectionService?.shouldColumnSelect(P)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(P,T,U=0){U===1?(super.scrollLines(P,T,U),this.refresh(0,this.rows-1)):this.viewport?.scrollLines(P)}paste(P){(0,h.paste)(P,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(P){this._customKeyEventHandler=P}attachCustomWheelEventHandler(P){this._customWheelEventHandler=P}registerLinkProvider(P){return this._linkProviderService.registerLinkProvider(P)}registerCharacterJoiner(P){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");let T=this._characterJoinerService.register(P);return this.refresh(0,this.rows-1),T}deregisterCharacterJoiner(P){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(P)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(P){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+P)}registerDecoration(P){return this._decorationService.registerDecoration(P)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(P,T,U){this._selectionService.setSelection(P,T,U)}getSelection(){return this._selectionService?this._selectionService.selectionText:""}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(P,T){this._selectionService?.selectLines(P,T)}_keyDown(P){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(P)===!1)return!1;let T=this.browser.isMac&&this.options.macOptionIsMeta&&P.altKey;if(!T&&!this._compositionHelper.keydown(P))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;T||P.key!=="Dead"&&P.key!=="AltGraph"||(this._unprocessedDeadKey=!0);let U=(0,k.evaluateKeyboardEvent)(P,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(P),U.type===3||U.type===2){let Z=this.rows-1;return this.scrollLines(U.type===2?-Z:Z),this.cancel(P,!0)}return U.type===1&&this.selectAll(),!!this._isThirdLevelShift(this.browser,P)||(U.cancel&&this.cancel(P,!0),!U.key||!!(P.key&&!P.ctrlKey&&!P.altKey&&!P.metaKey&&P.key.length===1&&P.key.charCodeAt(0)>=65&&P.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(U.key!==N.C0.ETX&&U.key!==N.C0.CR||(this.textarea.value=""),this._onKey.fire({key:U.key,domEvent:P}),this._showCursor(),this.coreService.triggerDataEvent(U.key,!0),!this.optionsService.rawOptions.screenReaderMode||P.altKey||P.ctrlKey?this.cancel(P,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(P,T){let U=P.isMac&&!this.options.macOptionIsMeta&&T.altKey&&!T.ctrlKey&&!T.metaKey||P.isWindows&&T.altKey&&T.ctrlKey&&!T.metaKey||P.isWindows&&T.getModifierState("AltGraph");return T.type==="keypress"?U:U&&(!T.keyCode||T.keyCode>47)}_keyUp(P){this._keyDownSeen=!1,this._customKeyEventHandler&&this._customKeyEventHandler(P)===!1||(function(T){return T.keyCode===16||T.keyCode===17||T.keyCode===18}(P)||this.focus(),this.updateCursorStyle(P),this._keyPressHandled=!1)}_keyPress(P){let T;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(P)===!1)return!1;if(this.cancel(P),P.charCode)T=P.charCode;else if(P.which===null||P.which===void 0)T=P.keyCode;else{if(P.which===0||P.charCode===0)return!1;T=P.which}return!(!T||(P.altKey||P.ctrlKey||P.metaKey)&&!this._isThirdLevelShift(this.browser,P)||(T=String.fromCharCode(T),this._onKey.fire({key:T,domEvent:P}),this._showCursor(),this.coreService.triggerDataEvent(T,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(P){if(P.data&&P.inputType==="insertText"&&(!P.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let T=P.data;return this.coreService.triggerDataEvent(T,!0),this.cancel(P),!0}return!1}resize(P,T){P!==this.cols||T!==this.rows?super.resize(P,T):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(P,T){this._charSizeService?.measure(),this.viewport?.syncScrollArea(!0)}clear(){if(this.buffer.ybase!==0||this.buffer.y!==0){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let P=1;P{Object.defineProperty(t,"__esModule",{value:!0}),t.TimeBasedDebouncer=void 0,t.TimeBasedDebouncer=class{constructor(n,h=1e3){this._renderCallback=n,this._debounceThresholdMS=h,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(n,h,g){this._rowCount=g,n=n!==void 0?n:0,h=h!==void 0?h:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,n):n,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,h):h;let a=Date.now();if(a-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=a,this._innerRefresh();else if(!this._additionalRefreshRequested){let l=a-this._lastRefreshMs,_=this._debounceThresholdMS-l;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},_)}}_innerRefresh(){if(this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return;let n=Math.max(this._rowStart,0),h=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(n,h)}}},1680:function(c,t,n){var h=this&&this.__decorate||function(d,f,p,y){var w,b=arguments.length,S=b<3?f:y===null?y=Object.getOwnPropertyDescriptor(f,p):y;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")S=Reflect.decorate(d,f,p,y);else for(var A=d.length-1;A>=0;A--)(w=d[A])&&(S=(b<3?w(S):b>3?w(f,p,S):w(f,p))||S);return b>3&&S&&Object.defineProperty(f,p,S),S},g=this&&this.__param||function(d,f){return function(p,y){f(p,y,d)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Viewport=void 0;let a=n(3656),l=n(4725),_=n(8460),v=n(844),u=n(2585),o=t.Viewport=class extends v.Disposable{constructor(d,f,p,y,w,b,S,A){super(),this._viewportElement=d,this._scrollArea=f,this._bufferService=p,this._optionsService=y,this._charSizeService=w,this._renderService=b,this._coreBrowserService=S,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this._onRequestScrollLines=this.register(new _.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,a.addDisposableDomListener)(this._viewportElement,"scroll",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate(C=>this._activeBuffer=C.activeBuffer)),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange(C=>this._renderDimensions=C)),this._handleThemeChange(A.colors),this.register(A.onChangeColors(C=>this._handleThemeChange(C))),this.register(this._optionsService.onSpecificOptionChange("scrollback",()=>this.syncScrollArea())),setTimeout(()=>this.syncScrollArea())}_handleThemeChange(d){this._viewportElement.style.backgroundColor=d.background.css}reset(){this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._coreBrowserService.window.requestAnimationFrame(()=>this.syncScrollArea())}_refresh(d){if(d)return this._innerRefresh(),void(this._refreshAnimationFrame!==null&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));this._refreshAnimationFrame===null&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh()))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderDimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderDimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;let f=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderDimensions.css.canvas.height);this._lastRecordedBufferHeight!==f&&(this._lastRecordedBufferHeight=f,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}let d=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==d&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=d),this._refreshAnimationFrame=null}syncScrollArea(d=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(d);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(d)}_handleScroll(d){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._onRequestScrollLines.fire({amount:0,suppressScrollEvent:!0});let f=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._onRequestScrollLines.fire({amount:f,suppressScrollEvent:!0})}_smoothScroll(){if(this._isDisposed||this._smoothScrollState.origin===-1||this._smoothScrollState.target===-1)return;let d=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(d*(this._smoothScrollState.target-this._smoothScrollState.origin)),d<1?this._coreBrowserService.window.requestAnimationFrame(()=>this._smoothScroll()):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(d,f){let p=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(f<0&&this._viewportElement.scrollTop!==0||f>0&&p0&&(p=L),y=""}}return{bufferElements:w,cursorElement:p}}getLinesScrolled(d){if(d.deltaY===0||d.shiftKey)return 0;let f=this._applyScrollModifier(d.deltaY,d);return d.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(f/=this._currentRowHeight+0,this._wheelPartialScroll+=f,f=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):d.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(f*=this._bufferService.rows),f}_applyScrollModifier(d,f){let p=this._optionsService.rawOptions.fastScrollModifier;return p==="alt"&&f.altKey||p==="ctrl"&&f.ctrlKey||p==="shift"&&f.shiftKey?d*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:d*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(d){this._lastTouchY=d.touches[0].pageY}handleTouchMove(d){let f=this._lastTouchY-d.touches[0].pageY;return this._lastTouchY=d.touches[0].pageY,f!==0&&(this._viewportElement.scrollTop+=f,this._bubbleScroll(d,f))}};t.Viewport=o=h([g(2,u.IBufferService),g(3,u.IOptionsService),g(4,l.ICharSizeService),g(5,l.IRenderService),g(6,l.ICoreBrowserService),g(7,l.IThemeService)],o)},3107:function(c,t,n){var h=this&&this.__decorate||function(u,o,d,f){var p,y=arguments.length,w=y<3?o:f===null?f=Object.getOwnPropertyDescriptor(o,d):f;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")w=Reflect.decorate(u,o,d,f);else for(var b=u.length-1;b>=0;b--)(p=u[b])&&(w=(y<3?p(w):y>3?p(o,d,w):p(o,d))||w);return y>3&&w&&Object.defineProperty(o,d,w),w},g=this&&this.__param||function(u,o){return function(d,f){o(d,f,u)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferDecorationRenderer=void 0;let a=n(4725),l=n(844),_=n(2585),v=t.BufferDecorationRenderer=class extends l.Disposable{constructor(u,o,d,f,p){super(),this._screenElement=u,this._bufferService=o,this._coreBrowserService=d,this._decorationService=f,this._renderService=p,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement("div"),this._container.classList.add("xterm-decoration-container"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange(()=>this._doRefreshDecorations())),this.register(this._renderService.onDimensionsChange(()=>{this._dimensionsChanged=!0,this._queueRefresh()})),this.register(this._coreBrowserService.onDprChange(()=>this._queueRefresh())),this.register(this._bufferService.buffers.onBufferActivate(()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt})),this.register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh())),this.register(this._decorationService.onDecorationRemoved(y=>this._removeDecoration(y))),this.register((0,l.toDisposable)(()=>{this._container.remove(),this._decorationElements.clear()}))}_queueRefresh(){this._animationFrame===void 0&&(this._animationFrame=this._renderService.addRefreshCallback(()=>{this._doRefreshDecorations(),this._animationFrame=void 0}))}_doRefreshDecorations(){for(let u of this._decorationService.decorations)this._renderDecoration(u);this._dimensionsChanged=!1}_renderDecoration(u){this._refreshStyle(u),this._dimensionsChanged&&this._refreshXPosition(u)}_createElement(u){let o=this._coreBrowserService.mainDocument.createElement("div");o.classList.add("xterm-decoration"),o.classList.toggle("xterm-decoration-top-layer",u?.options?.layer==="top"),o.style.width=`${Math.round((u.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,o.style.height=(u.options.height||1)*this._renderService.dimensions.css.cell.height+"px",o.style.top=(u.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+"px",o.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;let d=u.options.x??0;return d&&d>this._bufferService.cols&&(o.style.display="none"),this._refreshXPosition(u,o),o}_refreshStyle(u){let o=u.marker.line-this._bufferService.buffers.active.ydisp;if(o<0||o>=this._bufferService.rows)u.element&&(u.element.style.display="none",u.onRenderEmitter.fire(u.element));else{let d=this._decorationElements.get(u);d||(d=this._createElement(u),u.element=d,this._decorationElements.set(u,d),this._container.appendChild(d),u.onDispose(()=>{this._decorationElements.delete(u),d.remove()})),d.style.top=o*this._renderService.dimensions.css.cell.height+"px",d.style.display=this._altBufferIsActive?"none":"block",u.onRenderEmitter.fire(d)}}_refreshXPosition(u,o=u.element){if(!o)return;let d=u.options.x??0;(u.options.anchor||"left")==="right"?o.style.right=d?d*this._renderService.dimensions.css.cell.width+"px":"":o.style.left=d?d*this._renderService.dimensions.css.cell.width+"px":""}_removeDecoration(u){this._decorationElements.get(u)?.remove(),this._decorationElements.delete(u),u.dispose()}};t.BufferDecorationRenderer=v=h([g(1,_.IBufferService),g(2,a.ICoreBrowserService),g(3,_.IDecorationService),g(4,a.IRenderService)],v)},5871:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ColorZoneStore=void 0,t.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(n){if(n.options.overviewRulerOptions){for(let h of this._zones)if(h.color===n.options.overviewRulerOptions.color&&h.position===n.options.overviewRulerOptions.position){if(this._lineIntersectsZone(h,n.marker.line))return;if(this._lineAdjacentToZone(h,n.marker.line,n.options.overviewRulerOptions.position))return void this._addLineToZone(h,n.marker.line)}if(this._zonePoolIndex=n.startBufferLine&&h<=n.endBufferLine}_lineAdjacentToZone(n,h,g){return h>=n.startBufferLine-this._linePadding[g||"full"]&&h<=n.endBufferLine+this._linePadding[g||"full"]}_addLineToZone(n,h){n.startBufferLine=Math.min(n.startBufferLine,h),n.endBufferLine=Math.max(n.endBufferLine,h)}}},5744:function(c,t,n){var h=this&&this.__decorate||function(p,y,w,b){var S,A=arguments.length,C=A<3?y:b===null?b=Object.getOwnPropertyDescriptor(y,w):b;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")C=Reflect.decorate(p,y,w,b);else for(var D=p.length-1;D>=0;D--)(S=p[D])&&(C=(A<3?S(C):A>3?S(y,w,C):S(y,w))||C);return A>3&&C&&Object.defineProperty(y,w,C),C},g=this&&this.__param||function(p,y){return function(w,b){y(w,b,p)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OverviewRulerRenderer=void 0;let a=n(5871),l=n(4725),_=n(844),v=n(2585),u={full:0,left:0,center:0,right:0},o={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0},f=t.OverviewRulerRenderer=class extends _.Disposable{get _width(){return this._optionsService.options.overviewRulerWidth||0}constructor(p,y,w,b,S,A,C){super(),this._viewportElement=p,this._screenElement=y,this._bufferService=w,this._decorationService=b,this._renderService=S,this._optionsService=A,this._coreBrowserService=C,this._colorZoneStore=new a.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add("xterm-decoration-overview-ruler"),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement);let D=this._canvas.getContext("2d");if(!D)throw new Error("Ctx cannot be null");this._ctx=D,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,_.toDisposable)(()=>{this._canvas?.remove()}))}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh(void 0,!0))),this.register(this._decorationService.onDecorationRemoved(()=>this._queueRefresh(void 0,!0)))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange(()=>this._queueRefresh())),this.register(this._bufferService.buffers.onBufferActivate(()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?"none":"block"})),this.register(this._bufferService.onScroll(()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())}))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender(()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)})),this.register(this._optionsService.onSpecificOptionChange("overviewRulerWidth",()=>this._queueRefresh(!0))),this.register(this._coreBrowserService.onDprChange(()=>this._queueRefresh(!0))),this._queueRefresh(!0)}_refreshDrawConstants(){let p=Math.floor(this._canvas.width/3),y=Math.ceil(this._canvas.width/3);o.full=this._canvas.width,o.left=p,o.center=y,o.right=p,this._refreshDrawHeightConstants(),d.full=0,d.left=0,d.center=o.left,d.right=o.left+o.center}_refreshDrawHeightConstants(){u.full=Math.round(2*this._coreBrowserService.dpr);let p=this._canvas.height/this._bufferService.buffer.lines.length,y=Math.round(Math.max(Math.min(p,12),6)*this._coreBrowserService.dpr);u.left=y,u.center=y,u.right=y}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*u.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*u.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*u.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*u.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(let y of this._decorationService.decorations)this._colorZoneStore.addDecoration(y);this._ctx.lineWidth=1;let p=this._colorZoneStore.zones;for(let y of p)y.position!=="full"&&this._renderColorZone(y);for(let y of p)y.position==="full"&&this._renderColorZone(y);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(p){this._ctx.fillStyle=p.color,this._ctx.fillRect(d[p.position||"full"],Math.round((this._canvas.height-1)*(p.startBufferLine/this._bufferService.buffers.active.lines.length)-u[p.position||"full"]/2),o[p.position||"full"],Math.round((this._canvas.height-1)*((p.endBufferLine-p.startBufferLine)/this._bufferService.buffers.active.lines.length)+u[p.position||"full"]))}_queueRefresh(p,y){this._shouldUpdateDimensions=p||this._shouldUpdateDimensions,this._shouldUpdateAnchor=y||this._shouldUpdateAnchor,this._animationFrame===void 0&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._refreshDecorations(),this._animationFrame=void 0}))}};t.OverviewRulerRenderer=f=h([g(2,v.IBufferService),g(3,v.IDecorationService),g(4,l.IRenderService),g(5,v.IOptionsService),g(6,l.ICoreBrowserService)],f)},2950:function(c,t,n){var h=this&&this.__decorate||function(u,o,d,f){var p,y=arguments.length,w=y<3?o:f===null?f=Object.getOwnPropertyDescriptor(o,d):f;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")w=Reflect.decorate(u,o,d,f);else for(var b=u.length-1;b>=0;b--)(p=u[b])&&(w=(y<3?p(w):y>3?p(o,d,w):p(o,d))||w);return y>3&&w&&Object.defineProperty(o,d,w),w},g=this&&this.__param||function(u,o){return function(d,f){o(d,f,u)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CompositionHelper=void 0;let a=n(4725),l=n(2585),_=n(2584),v=t.CompositionHelper=class{get isComposing(){return this._isComposing}constructor(u,o,d,f,p,y){this._textarea=u,this._compositionView=o,this._bufferService=d,this._optionsService=f,this._coreService=p,this._renderService=y,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=""}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._dataAlreadySent="",this._compositionView.classList.add("active")}compositionupdate(u){this._compositionView.textContent=u.data,this.updateCompositionElements(),setTimeout(()=>{this._compositionPosition.end=this._textarea.value.length},0)}compositionend(){this._finalizeComposition(!0)}keydown(u){if(this._isComposing||this._isSendingComposition){if(u.keyCode===229||u.keyCode===16||u.keyCode===17||u.keyCode===18)return!1;this._finalizeComposition(!1)}return u.keyCode!==229||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(u){if(this._compositionView.classList.remove("active"),this._isComposing=!1,u){let o={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout(()=>{if(this._isSendingComposition){let d;this._isSendingComposition=!1,o.start+=this._dataAlreadySent.length,d=this._isComposing?this._textarea.value.substring(o.start,o.end):this._textarea.value.substring(o.start),d.length>0&&this._coreService.triggerDataEvent(d,!0)}},0)}else{this._isSendingComposition=!1;let o=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(o,!0)}}_handleAnyTextareaChanges(){let u=this._textarea.value;setTimeout(()=>{if(!this._isComposing){let o=this._textarea.value,d=o.replace(u,"");this._dataAlreadySent=d,o.length>u.length?this._coreService.triggerDataEvent(d,!0):o.lengththis.updateCompositionElements(!0),0)}}};t.CompositionHelper=v=h([g(2,l.IBufferService),g(3,l.IOptionsService),g(4,l.ICoreService),g(5,a.IRenderService)],v)},9806:(c,t)=>{function n(h,g,a){let l=a.getBoundingClientRect(),_=h.getComputedStyle(a),v=parseInt(_.getPropertyValue("padding-left")),u=parseInt(_.getPropertyValue("padding-top"));return[g.clientX-l.left-v,g.clientY-l.top-u]}Object.defineProperty(t,"__esModule",{value:!0}),t.getCoords=t.getCoordsRelativeToElement=void 0,t.getCoordsRelativeToElement=n,t.getCoords=function(h,g,a,l,_,v,u,o,d){if(!v)return;let f=n(h,g,a);return f?(f[0]=Math.ceil((f[0]+(d?u/2:0))/u),f[1]=Math.ceil(f[1]/o),f[0]=Math.min(Math.max(f[0],1),l+(d?1:0)),f[1]=Math.min(Math.max(f[1],1),_),f):void 0}},9504:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.moveToCellSequence=void 0;let h=n(2584);function g(o,d,f,p){let y=o-a(o,f),w=d-a(d,f),b=Math.abs(y-w)-function(S,A,C){let D=0,L=S-a(S,C),B=A-a(A,C);for(let R=0;R=0&&od?"A":"B"}function _(o,d,f,p,y,w){let b=o,S=d,A="";for(;b!==f||S!==p;)b+=y?1:-1,y&&b>w.cols-1?(A+=w.buffer.translateBufferLineToString(S,!1,o,b),b=0,o=0,S++):!y&&b<0&&(A+=w.buffer.translateBufferLineToString(S,!1,0,o+1),b=w.cols-1,o=b,S--);return A+w.buffer.translateBufferLineToString(S,!1,o,b)}function v(o,d){let f=d?"O":"[";return h.C0.ESC+f+o}function u(o,d){o=Math.floor(o);let f="";for(let p=0;p0?L-a(L,B):C;let Q=L,K=function(N,k,m,x,E,I){let M;return M=g(m,x,E,I).length>0?x-a(x,E):k,N=m&&Mo?"D":"C",u(Math.abs(y-o),v(b,p));b=w>d?"D":"C";let S=Math.abs(w-d);return u(function(A,C){return C.cols-A}(w>d?o:y,f)+(S-1)*f.cols+1+((w>d?y:o)-1),v(b,p))}},1296:function(c,t,n){var h=this&&this.__decorate||function(R,F,Q,K){var N,k=arguments.length,m=k<3?F:K===null?K=Object.getOwnPropertyDescriptor(F,Q):K;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")m=Reflect.decorate(R,F,Q,K);else for(var x=R.length-1;x>=0;x--)(N=R[x])&&(m=(k<3?N(m):k>3?N(F,Q,m):N(F,Q))||m);return k>3&&m&&Object.defineProperty(F,Q,m),m},g=this&&this.__param||function(R,F){return function(Q,K){F(Q,K,R)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRenderer=void 0;let a=n(3787),l=n(2550),_=n(2223),v=n(6171),u=n(6052),o=n(4725),d=n(8055),f=n(8460),p=n(844),y=n(2585),w="xterm-dom-renderer-owner-",b="xterm-rows",S="xterm-fg-",A="xterm-bg-",C="xterm-focus",D="xterm-selection",L=1,B=t.DomRenderer=class extends p.Disposable{constructor(R,F,Q,K,N,k,m,x,E,I,M,X,$){super(),this._terminal=R,this._document=F,this._element=Q,this._screenElement=K,this._viewportElement=N,this._helperContainer=k,this._linkifier2=m,this._charSizeService=E,this._optionsService=I,this._bufferService=M,this._coreBrowserService=X,this._themeService=$,this._terminalClass=L++,this._rowElements=[],this._selectionRenderModel=(0,u.createSelectionRenderModel)(),this.onRequestRedraw=this.register(new f.EventEmitter).event,this._rowContainer=this._document.createElement("div"),this._rowContainer.classList.add(b),this._rowContainer.style.lineHeight="normal",this._rowContainer.setAttribute("aria-hidden","true"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement("div"),this._selectionContainer.classList.add(D),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions=(0,v.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this.register(this._themeService.onChangeColors(W=>this._injectCss(W))),this._injectCss(this._themeService.colors),this._rowFactory=x.createInstance(a.DomRendererRowFactory,document),this._element.classList.add(w+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline(W=>this._handleLinkHover(W))),this.register(this._linkifier2.onHideLinkUnderline(W=>this._handleLinkLeave(W))),this.register((0,p.toDisposable)(()=>{this._element.classList.remove(w+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()})),this._widthCache=new l.WidthCache(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){let R=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*R,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*R),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/R),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/R),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(let Q of this._rowElements)Q.style.width=`${this.dimensions.css.canvas.width}px`,Q.style.height=`${this.dimensions.css.cell.height}px`,Q.style.lineHeight=`${this.dimensions.css.cell.height}px`,Q.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));let F=`${this._terminalSelector} .${b} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=F,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(R){this._themeStyleElement||(this._themeStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let F=`${this._terminalSelector} .${b} { color: ${R.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;F+=`${this._terminalSelector} .${b} .xterm-dim { color: ${d.color.multiplyOpacity(R.foreground,.5).css};}`,F+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;let Q=`blink_underline_${this._terminalClass}`,K=`blink_bar_${this._terminalClass}`,N=`blink_block_${this._terminalClass}`;F+=`@keyframes ${Q} { 50% { border-bottom-style: hidden; }}`,F+=`@keyframes ${K} { 50% { box-shadow: none; }}`,F+=`@keyframes ${N} { 0% { background-color: ${R.cursor.css}; color: ${R.cursorAccent.css}; } 50% { background-color: inherit; color: ${R.cursor.css}; }}`,F+=`${this._terminalSelector} .${b}.${C} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${Q} 1s step-end infinite;}${this._terminalSelector} .${b}.${C} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${K} 1s step-end infinite;}${this._terminalSelector} .${b}.${C} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${N} 1s step-end infinite;}${this._terminalSelector} .${b} .xterm-cursor.xterm-cursor-block { background-color: ${R.cursor.css}; color: ${R.cursorAccent.css};}${this._terminalSelector} .${b} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${R.cursor.css} !important; color: ${R.cursorAccent.css} !important;}${this._terminalSelector} .${b} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${R.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${b} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${R.cursor.css} inset;}${this._terminalSelector} .${b} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${R.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,F+=`${this._terminalSelector} .${D} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${D} div { position: absolute; background-color: ${R.selectionBackgroundOpaque.css};}${this._terminalSelector} .${D} div { position: absolute; background-color: ${R.selectionInactiveBackgroundOpaque.css};}`;for(let[k,m]of R.ansi.entries())F+=`${this._terminalSelector} .${S}${k} { color: ${m.css}; }${this._terminalSelector} .${S}${k}.xterm-dim { color: ${d.color.multiplyOpacity(m,.5).css}; }${this._terminalSelector} .${A}${k} { background-color: ${m.css}; }`;F+=`${this._terminalSelector} .${S}${_.INVERTED_DEFAULT_COLOR} { color: ${d.color.opaque(R.background).css}; }${this._terminalSelector} .${S}${_.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${d.color.multiplyOpacity(d.color.opaque(R.background),.5).css}; }${this._terminalSelector} .${A}${_.INVERTED_DEFAULT_COLOR} { background-color: ${R.foreground.css}; }`,this._themeStyleElement.textContent=F}_setDefaultSpacing(){let R=this.dimensions.css.cell.width-this._widthCache.get("W",!1,!1);this._rowContainer.style.letterSpacing=`${R}px`,this._rowFactory.defaultSpacing=R}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(R,F){for(let Q=this._rowElements.length;Q<=F;Q++){let K=this._document.createElement("div");this._rowContainer.appendChild(K),this._rowElements.push(K)}for(;this._rowElements.length>F;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(R,F){this._refreshRowElements(R,F),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(C),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(C),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(R,F,Q){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(R,F,Q),this.renderRows(0,this._bufferService.rows-1),!R||!F)return;this._selectionRenderModel.update(this._terminal,R,F,Q);let K=this._selectionRenderModel.viewportStartRow,N=this._selectionRenderModel.viewportEndRow,k=this._selectionRenderModel.viewportCappedStartRow,m=this._selectionRenderModel.viewportCappedEndRow;if(k>=this._bufferService.rows||m<0)return;let x=this._document.createDocumentFragment();if(Q){let E=R[0]>F[0];x.appendChild(this._createSelectionElement(k,E?F[0]:R[0],E?R[0]:F[0],m-k+1))}else{let E=K===k?R[0]:0,I=k===N?F[0]:this._bufferService.cols;x.appendChild(this._createSelectionElement(k,E,I));let M=m-k-1;if(x.appendChild(this._createSelectionElement(k+1,0,this._bufferService.cols,M)),k!==m){let X=N===m?F[0]:this._bufferService.cols;x.appendChild(this._createSelectionElement(m,0,X))}}this._selectionContainer.appendChild(x)}_createSelectionElement(R,F,Q,K=1){let N=this._document.createElement("div"),k=F*this.dimensions.css.cell.width,m=this.dimensions.css.cell.width*(Q-F);return k+m>this.dimensions.css.canvas.width&&(m=this.dimensions.css.canvas.width-k),N.style.height=K*this.dimensions.css.cell.height+"px",N.style.top=R*this.dimensions.css.cell.height+"px",N.style.left=`${k}px`,N.style.width=`${m}px`,N}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(let R of this._rowElements)R.replaceChildren()}renderRows(R,F){let Q=this._bufferService.buffer,K=Q.ybase+Q.y,N=Math.min(Q.x,this._bufferService.cols-1),k=this._optionsService.rawOptions.cursorBlink,m=this._optionsService.rawOptions.cursorStyle,x=this._optionsService.rawOptions.cursorInactiveStyle;for(let E=R;E<=F;E++){let I=E+Q.ydisp,M=this._rowElements[E],X=Q.lines.get(I);if(!M||!X)break;M.replaceChildren(...this._rowFactory.createRow(X,I,I===K,m,x,N,k,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${w}${this._terminalClass}`}_handleLinkHover(R){this._setCellUnderline(R.x1,R.x2,R.y1,R.y2,R.cols,!0)}_handleLinkLeave(R){this._setCellUnderline(R.x1,R.x2,R.y1,R.y2,R.cols,!1)}_setCellUnderline(R,F,Q,K,N,k){Q<0&&(R=0),K<0&&(F=0);let m=this._bufferService.rows-1;Q=Math.max(Math.min(Q,m),0),K=Math.max(Math.min(K,m),0),N=Math.min(N,this._bufferService.cols);let x=this._bufferService.buffer,E=x.ybase+x.y,I=Math.min(x.x,N-1),M=this._optionsService.rawOptions.cursorBlink,X=this._optionsService.rawOptions.cursorStyle,$=this._optionsService.rawOptions.cursorInactiveStyle;for(let W=Q;W<=K;++W){let P=W+x.ydisp,T=this._rowElements[W],U=x.lines.get(P);if(!T||!U)break;T.replaceChildren(...this._rowFactory.createRow(U,P,P===E,X,$,I,M,this.dimensions.css.cell.width,this._widthCache,k?W===Q?R:0:-1,k?(W===K?F:N)-1:-1))}}};t.DomRenderer=B=h([g(7,y.IInstantiationService),g(8,o.ICharSizeService),g(9,y.IOptionsService),g(10,y.IBufferService),g(11,o.ICoreBrowserService),g(12,o.IThemeService)],B)},3787:function(c,t,n){var h=this&&this.__decorate||function(b,S,A,C){var D,L=arguments.length,B=L<3?S:C===null?C=Object.getOwnPropertyDescriptor(S,A):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")B=Reflect.decorate(b,S,A,C);else for(var R=b.length-1;R>=0;R--)(D=b[R])&&(B=(L<3?D(B):L>3?D(S,A,B):D(S,A))||B);return L>3&&B&&Object.defineProperty(S,A,B),B},g=this&&this.__param||function(b,S){return function(A,C){S(A,C,b)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomRendererRowFactory=void 0;let a=n(2223),l=n(643),_=n(511),v=n(2585),u=n(8055),o=n(4725),d=n(4269),f=n(6171),p=n(3734),y=t.DomRendererRowFactory=class{constructor(b,S,A,C,D,L,B){this._document=b,this._characterJoinerService=S,this._optionsService=A,this._coreBrowserService=C,this._coreService=D,this._decorationService=L,this._themeService=B,this._workCell=new _.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(b,S,A){this._selectionStart=b,this._selectionEnd=S,this._columnSelectMode=A}createRow(b,S,A,C,D,L,B,R,F,Q,K){let N=[],k=this._characterJoinerService.getJoinedCharacters(S),m=this._themeService.colors,x,E=b.getNoBgTrimmedLength();A&&E0&&le===k[0][0]){ye=!0;let ce=k.shift();ne=new d.JoinedCellData(this._workCell,b.translateToString(!0,ce[0],ce[1]),ce[1]-ce[0]),he=ce[1]-1,be=ne.getWidth()}let tt=this._isCellInSelection(le,S),vt=A&&le===L,St=ee&&le>=Q&&le<=K,ti=!1;this._decorationService.forEachDecorationAtCell(le,S,void 0,ce=>{ti=!0});let ge=ne.getChars()||l.WHITESPACE_CELL_CHAR;if(ge===" "&&(ne.isUnderline()||ne.isOverline())&&(ge="\xA0"),Z=be*R-F.get(ge,ne.isBold(),ne.isItalic()),x){if(I&&(tt&&U||!tt&&!U&&ne.bg===X)&&(tt&&U&&m.selectionForeground||ne.fg===$)&&ne.extended.ext===W&&St===P&&Z===T&&!vt&&!ye&&!ti){ne.isInvisible()?M+=l.WHITESPACE_CELL_CHAR:M+=ge,I++;continue}I&&(x.textContent=M),x=this._document.createElement("span"),I=0,M=""}else x=this._document.createElement("span");if(X=ne.bg,$=ne.fg,W=ne.extended.ext,P=St,T=Z,U=tt,ye&&L>=le&&L<=he&&(L=le),!this._coreService.isCursorHidden&&vt&&this._coreService.isCursorInitialized){if(te.push("xterm-cursor"),this._coreBrowserService.isFocused)B&&te.push("xterm-cursor-blink"),te.push(C==="bar"?"xterm-cursor-bar":C==="underline"?"xterm-cursor-underline":"xterm-cursor-block");else if(D)switch(D){case"outline":te.push("xterm-cursor-outline");break;case"block":te.push("xterm-cursor-block");break;case"bar":te.push("xterm-cursor-bar");break;case"underline":te.push("xterm-cursor-underline")}}if(ne.isBold()&&te.push("xterm-bold"),ne.isItalic()&&te.push("xterm-italic"),ne.isDim()&&te.push("xterm-dim"),M=ne.isInvisible()?l.WHITESPACE_CELL_CHAR:ne.getChars()||l.WHITESPACE_CELL_CHAR,ne.isUnderline()&&(te.push(`xterm-underline-${ne.extended.underlineStyle}`),M===" "&&(M="\xA0"),!ne.isUnderlineColorDefault()))if(ne.isUnderlineColorRGB())x.style.textDecorationColor=`rgb(${p.AttributeData.toColorRGB(ne.getUnderlineColor()).join(",")})`;else{let ce=ne.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&ne.isBold()&&ce<8&&(ce+=8),x.style.textDecorationColor=m.ansi[ce].css}ne.isOverline()&&(te.push("xterm-overline"),M===" "&&(M="\xA0")),ne.isStrikethrough()&&te.push("xterm-strikethrough"),St&&(x.style.textDecoration="underline");let ae=ne.getFgColor(),de=ne.getFgColorMode(),se=ne.getBgColor(),pe=ne.getBgColorMode(),Xe=!!ne.isInverse();if(Xe){let ce=ae;ae=se,se=ce;let qe=de;de=pe,pe=qe}let Ce,ot,$e,Me=!1;switch(this._decorationService.forEachDecorationAtCell(le,S,void 0,ce=>{ce.options.layer!=="top"&&Me||(ce.backgroundColorRGB&&(pe=50331648,se=ce.backgroundColorRGB.rgba>>8&16777215,Ce=ce.backgroundColorRGB),ce.foregroundColorRGB&&(de=50331648,ae=ce.foregroundColorRGB.rgba>>8&16777215,ot=ce.foregroundColorRGB),Me=ce.options.layer==="top")}),!Me&&tt&&(Ce=this._coreBrowserService.isFocused?m.selectionBackgroundOpaque:m.selectionInactiveBackgroundOpaque,se=Ce.rgba>>8&16777215,pe=50331648,Me=!0,m.selectionForeground&&(de=50331648,ae=m.selectionForeground.rgba>>8&16777215,ot=m.selectionForeground)),Me&&te.push("xterm-decoration-top"),pe){case 16777216:case 33554432:$e=m.ansi[se],te.push(`xterm-bg-${se}`);break;case 50331648:$e=u.channels.toColor(se>>16,se>>8&255,255&se),this._addStyle(x,`background-color:#${w((se>>>0).toString(16),"0",6)}`);break;default:Xe?($e=m.foreground,te.push(`xterm-bg-${a.INVERTED_DEFAULT_COLOR}`)):$e=m.background}switch(Ce||ne.isDim()&&(Ce=u.color.multiplyOpacity($e,.5)),de){case 16777216:case 33554432:ne.isBold()&&ae<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(ae+=8),this._applyMinimumContrast(x,$e,m.ansi[ae],ne,Ce,void 0)||te.push(`xterm-fg-${ae}`);break;case 50331648:let ce=u.channels.toColor(ae>>16&255,ae>>8&255,255&ae);this._applyMinimumContrast(x,$e,ce,ne,Ce,ot)||this._addStyle(x,`color:#${w(ae.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(x,$e,m.foreground,ne,Ce,ot)||Xe&&te.push(`xterm-fg-${a.INVERTED_DEFAULT_COLOR}`)}te.length&&(x.className=te.join(" "),te.length=0),vt||ye||ti?x.textContent=M:I++,Z!==this.defaultSpacing&&(x.style.letterSpacing=`${Z}px`),N.push(x),le=he}return x&&I&&(x.textContent=M),N}_applyMinimumContrast(b,S,A,C,D,L){if(this._optionsService.rawOptions.minimumContrastRatio===1||(0,f.treatGlyphAsBackgroundColor)(C.getCode()))return!1;let B=this._getContrastCache(C),R;if(D||L||(R=B.getColor(S.rgba,A.rgba)),R===void 0){let F=this._optionsService.rawOptions.minimumContrastRatio/(C.isDim()?2:1);R=u.color.ensureContrastRatio(D||S,L||A,F),B.setColor((D||S).rgba,(L||A).rgba,R??null)}return!!R&&(this._addStyle(b,`color:${R.css}`),!0)}_getContrastCache(b){return b.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(b,S){b.setAttribute("style",`${b.getAttribute("style")||""}${S};`)}_isCellInSelection(b,S){let A=this._selectionStart,C=this._selectionEnd;return!(!A||!C)&&(this._columnSelectMode?A[0]<=C[0]?b>=A[0]&&S>=A[1]&&b=A[1]&&b>=C[0]&&S<=C[1]:S>A[1]&&S=A[0]&&b=A[0])}};function w(b,S,A){for(;b.length{Object.defineProperty(t,"__esModule",{value:!0}),t.WidthCache=void 0,t.WidthCache=class{constructor(n,h){this._flat=new Float32Array(256),this._font="",this._fontSize=0,this._weight="normal",this._weightBold="bold",this._measureElements=[],this._container=n.createElement("div"),this._container.classList.add("xterm-width-cache-measure-container"),this._container.setAttribute("aria-hidden","true"),this._container.style.whiteSpace="pre",this._container.style.fontKerning="none";let g=n.createElement("span");g.classList.add("xterm-char-measure-element");let a=n.createElement("span");a.classList.add("xterm-char-measure-element"),a.style.fontWeight="bold";let l=n.createElement("span");l.classList.add("xterm-char-measure-element"),l.style.fontStyle="italic";let _=n.createElement("span");_.classList.add("xterm-char-measure-element"),_.style.fontWeight="bold",_.style.fontStyle="italic",this._measureElements=[g,a,l,_],this._container.appendChild(g),this._container.appendChild(a),this._container.appendChild(l),this._container.appendChild(_),h.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(n,h,g,a){n===this._font&&h===this._fontSize&&g===this._weight&&a===this._weightBold||(this._font=n,this._fontSize=h,this._weight=g,this._weightBold=a,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${g}`,this._measureElements[1].style.fontWeight=`${a}`,this._measureElements[2].style.fontWeight=`${g}`,this._measureElements[3].style.fontWeight=`${a}`,this.clear())}get(n,h,g){let a=0;if(!h&&!g&&n.length===1&&(a=n.charCodeAt(0))<256){if(this._flat[a]!==-9999)return this._flat[a];let v=this._measure(n,0);return v>0&&(this._flat[a]=v),v}let l=n;h&&(l+="B"),g&&(l+="I");let _=this._holey.get(l);if(_===void 0){let v=0;h&&(v|=1),g&&(v|=2),_=this._measure(n,v),_>0&&this._holey.set(l,_)}return _}_measure(n,h){let g=this._measureElements[h];return g.textContent=n.repeat(32),g.offsetWidth/32}}},2223:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;let h=n(6114);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=h.isFirefox||h.isLegacyEdge?"bottom":"ideographic"},6171:(c,t)=>{function n(g){return 57508<=g&&g<=57558}function h(g){return g>=128512&&g<=128591||g>=127744&&g<=128511||g>=128640&&g<=128767||g>=9728&&g<=9983||g>=9984&&g<=10175||g>=65024&&g<=65039||g>=129280&&g<=129535||g>=127462&&g<=127487}Object.defineProperty(t,"__esModule",{value:!0}),t.computeNextVariantOffset=t.createRenderDimensions=t.treatGlyphAsBackgroundColor=t.allowRescaling=t.isEmoji=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(g){if(!g)throw new Error("value must not be falsy");return g},t.isPowerlineGlyph=n,t.isRestrictedPowerlineGlyph=function(g){return 57520<=g&&g<=57527},t.isEmoji=h,t.allowRescaling=function(g,a,l,_){return a===1&&l>Math.ceil(1.5*_)&&g!==void 0&&g>255&&!h(g)&&!n(g)&&!function(v){return 57344<=v&&v<=63743}(g)},t.treatGlyphAsBackgroundColor=function(g){return n(g)||function(a){return 9472<=a&&a<=9631}(g)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}},t.computeNextVariantOffset=function(g,a,l=0){return(g-(2*Math.round(a)-l))%(2*Math.round(a))}},6052:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createSelectionRenderModel=void 0;class n{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(g,a,l,_=!1){if(this.selectionStart=a,this.selectionEnd=l,!a||!l||a[0]===l[0]&&a[1]===l[1])return void this.clear();let v=g.buffers.active.ydisp,u=a[1]-v,o=l[1]-v,d=Math.max(u,0),f=Math.min(o,g.rows-1);d>=g.rows||f<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=_,this.viewportStartRow=u,this.viewportEndRow=o,this.viewportCappedStartRow=d,this.viewportCappedEndRow=f,this.startCol=a[0],this.endCol=l[0])}isCellSelected(g,a,l){return!!this.hasSelection&&(l-=g.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?a>=this.startCol&&l>=this.viewportCappedStartRow&&a=this.viewportCappedStartRow&&a>=this.endCol&&l<=this.viewportCappedEndRow:l>this.viewportStartRow&&l=this.startCol&&a=this.startCol)}}t.createSelectionRenderModel=function(){return new n}},456:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionModel=void 0,t.SelectionModel=class{constructor(n){this._bufferService=n,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){let n=this.selectionStart[0]+this.selectionStartLength;return n>this._bufferService.cols?n%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(n/this._bufferService.cols)-1]:[n%this._bufferService.cols,this.selectionStart[1]+Math.floor(n/this._bufferService.cols)]:[n,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){let n=this.selectionStart[0]+this.selectionStartLength;return n>this._bufferService.cols?[n%this._bufferService.cols,this.selectionStart[1]+Math.floor(n/this._bufferService.cols)]:[Math.max(n,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){let n=this.selectionStart,h=this.selectionEnd;return!(!n||!h)&&(n[1]>h[1]||n[1]===h[1]&&n[0]>h[0])}handleTrim(n){return this.selectionStart&&(this.selectionStart[1]-=n),this.selectionEnd&&(this.selectionEnd[1]-=n),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(c,t,n){var h=this&&this.__decorate||function(f,p,y,w){var b,S=arguments.length,A=S<3?p:w===null?w=Object.getOwnPropertyDescriptor(p,y):w;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")A=Reflect.decorate(f,p,y,w);else for(var C=f.length-1;C>=0;C--)(b=f[C])&&(A=(S<3?b(A):S>3?b(p,y,A):b(p,y))||A);return S>3&&A&&Object.defineProperty(p,y,A),A},g=this&&this.__param||function(f,p){return function(y,w){p(y,w,f)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharSizeService=void 0;let a=n(2585),l=n(8460),_=n(844),v=t.CharSizeService=class extends _.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(f,p,y){super(),this._optionsService=y,this.width=0,this.height=0,this._onCharSizeChange=this.register(new l.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this.register(new d(this._optionsService))}catch{this._measureStrategy=this.register(new o(f,p,this._optionsService))}this.register(this._optionsService.onMultipleOptionChange(["fontFamily","fontSize"],()=>this.measure()))}measure(){let f=this._measureStrategy.measure();f.width===this.width&&f.height===this.height||(this.width=f.width,this.height=f.height,this._onCharSizeChange.fire())}};t.CharSizeService=v=h([g(2,a.IOptionsService)],v);class u extends _.Disposable{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(p,y){p!==void 0&&p>0&&y!==void 0&&y>0&&(this._result.width=p,this._result.height=y)}}class o extends u{constructor(p,y,w){super(),this._document=p,this._parentElement=y,this._optionsService=w,this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W".repeat(32),this._measureElement.setAttribute("aria-hidden","true"),this._measureElement.style.whiteSpace="pre",this._measureElement.style.fontKerning="none",this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}}class d extends u{constructor(p){super(),this._optionsService=p,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext("2d");let y=this._ctx.measureText("W");if(!("width"in y&&"fontBoundingBoxAscent"in y&&"fontBoundingBoxDescent"in y))throw new Error("Required font metrics not supported")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;let p=this._ctx.measureText("W");return this._validateAndSet(p.width,p.fontBoundingBoxAscent+p.fontBoundingBoxDescent),this._result}}},4269:function(c,t,n){var h=this&&this.__decorate||function(d,f,p,y){var w,b=arguments.length,S=b<3?f:y===null?y=Object.getOwnPropertyDescriptor(f,p):y;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")S=Reflect.decorate(d,f,p,y);else for(var A=d.length-1;A>=0;A--)(w=d[A])&&(S=(b<3?w(S):b>3?w(f,p,S):w(f,p))||S);return b>3&&S&&Object.defineProperty(f,p,S),S},g=this&&this.__param||function(d,f){return function(p,y){f(p,y,d)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;let a=n(3734),l=n(643),_=n(511),v=n(2585);class u extends a.AttributeData{constructor(f,p,y){super(),this.content=0,this.combinedData="",this.fg=f.fg,this.bg=f.bg,this.combinedData=p,this._width=y}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(f){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=u;let o=t.CharacterJoinerService=class Wc{constructor(f){this._bufferService=f,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new _.CellData}register(f){let p={id:this._nextCharacterJoinerId++,handler:f};return this._characterJoiners.push(p),p.id}deregister(f){for(let p=0;p1){let B=this._getJoinedRanges(w,A,S,p,b);for(let R=0;R1){let L=this._getJoinedRanges(w,A,S,p,b);for(let B=0;B{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreBrowserService=void 0;let h=n(844),g=n(8460),a=n(3656);class l extends h.Disposable{constructor(u,o,d){super(),this._textarea=u,this._window=o,this.mainDocument=d,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=new _(this._window),this._onDprChange=this.register(new g.EventEmitter),this.onDprChange=this._onDprChange.event,this._onWindowChange=this.register(new g.EventEmitter),this.onWindowChange=this._onWindowChange.event,this.register(this.onWindowChange(f=>this._screenDprMonitor.setWindow(f))),this.register((0,g.forwardEvent)(this._screenDprMonitor.onDprChange,this._onDprChange)),this._textarea.addEventListener("focus",()=>this._isFocused=!0),this._textarea.addEventListener("blur",()=>this._isFocused=!1)}get window(){return this._window}set window(u){this._window!==u&&(this._window=u,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return this._cachedIsFocused===void 0&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask(()=>this._cachedIsFocused=void 0)),this._cachedIsFocused}}t.CoreBrowserService=l;class _ extends h.Disposable{constructor(u){super(),this._parentWindow=u,this._windowResizeListener=this.register(new h.MutableDisposable),this._onDprChange=this.register(new g.EventEmitter),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this.register((0,h.toDisposable)(()=>this.clearListener()))}setWindow(u){this._parentWindow=u,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=(0,a.addDisposableDomListener)(this._parentWindow,"resize",()=>this._setDprAndFireIfDiffers())}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}}},779:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkProviderService=void 0;let h=n(844);class g extends h.Disposable{constructor(){super(),this.linkProviders=[],this.register((0,h.toDisposable)(()=>this.linkProviders.length=0))}registerLinkProvider(l){return this.linkProviders.push(l),{dispose:()=>{let _=this.linkProviders.indexOf(l);_!==-1&&this.linkProviders.splice(_,1)}}}}t.LinkProviderService=g},8934:function(c,t,n){var h=this&&this.__decorate||function(v,u,o,d){var f,p=arguments.length,y=p<3?u:d===null?d=Object.getOwnPropertyDescriptor(u,o):d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")y=Reflect.decorate(v,u,o,d);else for(var w=v.length-1;w>=0;w--)(f=v[w])&&(y=(p<3?f(y):p>3?f(u,o,y):f(u,o))||y);return p>3&&y&&Object.defineProperty(u,o,y),y},g=this&&this.__param||function(v,u){return function(o,d){u(o,d,v)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MouseService=void 0;let a=n(4725),l=n(9806),_=t.MouseService=class{constructor(v,u){this._renderService=v,this._charSizeService=u}getCoords(v,u,o,d,f){return(0,l.getCoords)(window,v,u,o,d,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,f)}getMouseReportCoords(v,u){let o=(0,l.getCoordsRelativeToElement)(window,v,u);if(this._charSizeService.hasValidSize)return o[0]=Math.min(Math.max(o[0],0),this._renderService.dimensions.css.canvas.width-1),o[1]=Math.min(Math.max(o[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(o[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(o[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(o[0]),y:Math.floor(o[1])}}};t.MouseService=_=h([g(0,a.IRenderService),g(1,a.ICharSizeService)],_)},3230:function(c,t,n){var h=this&&this.__decorate||function(f,p,y,w){var b,S=arguments.length,A=S<3?p:w===null?w=Object.getOwnPropertyDescriptor(p,y):w;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")A=Reflect.decorate(f,p,y,w);else for(var C=f.length-1;C>=0;C--)(b=f[C])&&(A=(S<3?b(A):S>3?b(p,y,A):b(p,y))||A);return S>3&&A&&Object.defineProperty(p,y,A),A},g=this&&this.__param||function(f,p){return function(y,w){p(y,w,f)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenderService=void 0;let a=n(6193),l=n(4725),_=n(8460),v=n(844),u=n(7226),o=n(2585),d=t.RenderService=class extends v.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(f,p,y,w,b,S,A,C){super(),this._rowCount=f,this._charSizeService=w,this._renderer=this.register(new v.MutableDisposable),this._pausedResizeTask=new u.DebouncedIdleTask,this._observerDisposable=this.register(new v.MutableDisposable),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new _.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new _.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new _.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new _.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new a.RenderDebouncer((D,L)=>this._renderRows(D,L),A),this.register(this._renderDebouncer),this.register(A.onDprChange(()=>this.handleDevicePixelRatioChange())),this.register(S.onResize(()=>this._fullRefresh())),this.register(S.buffers.onBufferActivate(()=>this._renderer.value?.clear())),this.register(y.onOptionChange(()=>this._handleOptionsChanged())),this.register(this._charSizeService.onCharSizeChange(()=>this.handleCharSizeChanged())),this.register(b.onDecorationRegistered(()=>this._fullRefresh())),this.register(b.onDecorationRemoved(()=>this._fullRefresh())),this.register(y.onMultipleOptionChange(["customGlyphs","drawBoldTextInBrightColors","letterSpacing","lineHeight","fontFamily","fontSize","fontWeight","fontWeightBold","minimumContrastRatio","rescaleOverlappingGlyphs"],()=>{this.clear(),this.handleResize(S.cols,S.rows),this._fullRefresh()})),this.register(y.onMultipleOptionChange(["cursorBlink","cursorStyle"],()=>this.refreshRows(S.buffer.y,S.buffer.y,!0))),this.register(C.onChangeColors(()=>this._fullRefresh())),this._registerIntersectionObserver(A.window,p),this.register(A.onWindowChange(D=>this._registerIntersectionObserver(D,p)))}_registerIntersectionObserver(f,p){if("IntersectionObserver"in f){let y=new f.IntersectionObserver(w=>this._handleIntersectionChange(w[w.length-1]),{threshold:0});y.observe(p),this._observerDisposable.value=(0,v.toDisposable)(()=>y.disconnect())}}_handleIntersectionChange(f){this._isPaused=f.isIntersecting===void 0?f.intersectionRatio===0:!f.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(f,p,y=!1){this._isPaused?this._needsFullRefresh=!0:(y||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(f,p,this._rowCount))}_renderRows(f,p){this._renderer.value&&(f=Math.min(f,this._rowCount-1),p=Math.min(p,this._rowCount-1),this._renderer.value.renderRows(f,p),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:f,end:p}),this._onRender.fire({start:f,end:p}),this._isNextRenderRedrawOnly=!0)}resize(f,p){this._rowCount=p,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(f){this._renderer.value=f,this._renderer.value&&(this._renderer.value.onRequestRedraw(p=>this.refreshRows(p.start,p.end,!0)),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(f){return this._renderDebouncer.addRefreshCallback(f)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(f,p){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set(()=>this._renderer.value?.handleResize(f,p)):this._renderer.value.handleResize(f,p),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(f,p,y){this._selectionState.start=f,this._selectionState.end=p,this._selectionState.columnSelectMode=y,this._renderer.value?.handleSelectionChanged(f,p,y)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};t.RenderService=d=h([g(2,o.IOptionsService),g(3,l.ICharSizeService),g(4,o.IDecorationService),g(5,o.IBufferService),g(6,l.ICoreBrowserService),g(7,l.IThemeService)],d)},9312:function(c,t,n){var h=this&&this.__decorate||function(A,C,D,L){var B,R=arguments.length,F=R<3?C:L===null?L=Object.getOwnPropertyDescriptor(C,D):L;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")F=Reflect.decorate(A,C,D,L);else for(var Q=A.length-1;Q>=0;Q--)(B=A[Q])&&(F=(R<3?B(F):R>3?B(C,D,F):B(C,D))||F);return R>3&&F&&Object.defineProperty(C,D,F),F},g=this&&this.__param||function(A,C){return function(D,L){C(D,L,A)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelectionService=void 0;let a=n(9806),l=n(9504),_=n(456),v=n(4725),u=n(8460),o=n(844),d=n(6114),f=n(4841),p=n(511),y=n(2585),w="\xA0",b=new RegExp(w,"g"),S=t.SelectionService=class extends o.Disposable{constructor(A,C,D,L,B,R,F,Q,K){super(),this._element=A,this._screenElement=C,this._linkifier=D,this._bufferService=L,this._coreService=B,this._mouseService=R,this._optionsService=F,this._renderService=Q,this._coreBrowserService=K,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new p.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new u.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new u.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new u.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new u.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=N=>this._handleMouseMove(N),this._mouseUpListener=N=>this._handleMouseUp(N),this._coreService.onUserInput(()=>{this.hasSelection&&this.clearSelection()}),this._trimListener=this._bufferService.buffer.lines.onTrim(N=>this._handleTrim(N)),this.register(this._bufferService.buffers.onBufferActivate(N=>this._handleBufferActivate(N))),this.enable(),this._model=new _.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,o.toDisposable)(()=>{this._removeMouseDownListeners()}))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){let A=this._model.finalSelectionStart,C=this._model.finalSelectionEnd;return!(!A||!C||A[0]===C[0]&&A[1]===C[1])}get selectionText(){let A=this._model.finalSelectionStart,C=this._model.finalSelectionEnd;if(!A||!C)return"";let D=this._bufferService.buffer,L=[];if(this._activeSelectionMode===3){if(A[0]===C[0])return"";let B=A[0]B.replace(b," ")).join(d.isWindows?`\r `:` -`)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(c){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh())),i.isLinux&&c&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:this._activeSelectionMode===3})}_isClickInSelection(c){let g=this._getMouseBufferCoords(c),w=this._model.finalSelectionStart,C=this._model.finalSelectionEnd;return!!(w&&C&&g)&&this._areCoordsInSelection(g,w,C)}isCellInSelection(c,g){let w=this._model.finalSelectionStart,C=this._model.finalSelectionEnd;return!(!w||!C)&&this._areCoordsInSelection([c,g],w,C)}_areCoordsInSelection(c,g,w){return c[1]>g[1]&&c[1]=g[0]&&c[0]=g[0]}_selectWordAtCursor(c,g){var w,C;let m=(C=(w=this._linkifier.currentLink)===null||w===void 0?void 0:w.link)===null||C===void 0?void 0:C.range;if(m)return this._model.selectionStart=[m.start.x-1,m.start.y-1],this._model.selectionStartLength=(0,s.getRangeLength)(m,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let L=this._getMouseBufferCoords(c);return!!L&&(this._selectWordAt(L,g),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(c,g){this._model.clearSelection(),c=Math.max(c,0),g=Math.min(g,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,c],this._model.selectionEnd=[this._bufferService.cols,g],this.refresh(),this._onSelectionChange.fire()}_handleTrim(c){this._model.handleTrim(c)&&this.refresh()}_getMouseBufferCoords(c){let g=this._mouseService.getCoords(c,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(g)return g[0]--,g[1]--,g[1]+=this._bufferService.buffer.ydisp,g}_getMouseEventScrollAmount(c){let g=(0,r.getCoordsRelativeToElement)(this._coreBrowserService.window,c,this._screenElement)[1],w=this._renderService.dimensions.css.canvas.height;return g>=0&&g<=w?0:(g>w&&(g-=w),g=Math.min(Math.max(g,-50),50),g/=50,g/Math.abs(g)+Math.round(14*g))}shouldForceSelection(c){return i.isMac?c.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:c.shiftKey}handleMouseDown(c){if(this._mouseDownTimeStamp=c.timeStamp,(c.button!==2||!this.hasSelection)&&c.button===0){if(!this._enabled){if(!this.shouldForceSelection(c))return;c.stopPropagation()}c.preventDefault(),this._dragScrollAmount=0,this._enabled&&c.shiftKey?this._handleIncrementalClick(c):c.detail===1?this._handleSingleClick(c):c.detail===2?this._handleDoubleClick(c):c.detail===3&&this._handleTripleClick(c),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval(()=>this._dragScroll(),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(c){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(c))}_handleSingleClick(c){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(c)?3:0,this._model.selectionStart=this._getMouseBufferCoords(c),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let g=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);g&&g.length!==this._model.selectionStart[0]&&g.hasWidth(this._model.selectionStart[0])===0&&this._model.selectionStart[0]++}_handleDoubleClick(c){this._selectWordAtCursor(c,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(c){let g=this._getMouseBufferCoords(c);g&&(this._activeSelectionMode=2,this._selectLineAt(g[1]))}shouldColumnSelect(c){return c.altKey&&!(i.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(c){if(c.stopImmediatePropagation(),!this._model.selectionStart)return;let g=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(c),!this._model.selectionEnd)return void this.refresh(!0);this._activeSelectionMode===2?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let w=this._bufferService.buffer;if(this._model.selectionEnd[1]0?(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(c.ydisp+this._bufferService.rows,c.lines.length-1)):(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=c.ydisp),this.refresh()}}_handleMouseUp(c){let g=c.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&g<500&&c.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){let w=this._mouseService.getCoords(c,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(w&&w[0]!==void 0&&w[1]!==void 0){let C=(0,h.moveToCellSequence)(w[0]-1,w[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(C,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){let c=this._model.finalSelectionStart,g=this._model.finalSelectionEnd,w=!(!c||!g||c[0]===g[0]&&c[1]===g[1]);w?c&&g&&(this._oldSelectionStart&&this._oldSelectionEnd&&c[0]===this._oldSelectionStart[0]&&c[1]===this._oldSelectionStart[1]&&g[0]===this._oldSelectionEnd[0]&&g[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(c,g,w)):this._oldHasSelection&&this._fireOnSelectionChange(c,g,w)}_fireOnSelectionChange(c,g,w){this._oldSelectionStart=c,this._oldSelectionEnd=g,this._oldHasSelection=w,this._onSelectionChange.fire()}_handleBufferActivate(c){this.clearSelection(),this._trimListener.dispose(),this._trimListener=c.activeBuffer.lines.onTrim(g=>this._handleTrim(g))}_convertViewportColToCharacterIndex(c,g){let w=g;for(let C=0;g>=C;C++){let m=c.loadCell(C,this._workCell).getChars().length;this._workCell.getWidth()===0?w--:m>1&&g!==C&&(w+=m-1)}return w}setSelection(c,g,w){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[c,g],this._model.selectionStartLength=w,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(c){this._isClickInSelection(c)||(this._selectWordAtCursor(c,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(c,g,w=!0,C=!0){if(c[0]>=this._bufferService.cols)return;let m=this._bufferService.buffer,L=m.lines.get(c[1]);if(!L)return;let A=m.translateBufferLineToString(c[1],!1),D=this._convertViewportColToCharacterIndex(L,c[0]),M=D,B=c[0]-D,b=0,E=0,x=0,k=0;if(A.charAt(D)===" "){for(;D>0&&A.charAt(D-1)===" ";)D--;for(;M1&&(k+=G-1,M+=G-1);U>0&&D>0&&!this._isCharWordSeparator(L.loadCell(U-1,this._workCell));){L.loadCell(U-1,this._workCell);let y=this._workCell.getChars().length;this._workCell.getWidth()===0?(b++,U--):y>1&&(x+=y-1,D-=y-1),D--,U--}for(;W1&&(k+=y-1,M+=y-1),M++,W++}}M++;let P=D+B-b+x,N=Math.min(this._bufferService.cols,M-D+b+E-x-k);if(g||A.slice(D,M).trim()!==""){if(w&&P===0&&L.getCodePoint(0)!==32){let U=m.lines.get(c[1]-1);if(U&&L.isWrapped&&U.getCodePoint(this._bufferService.cols-1)!==32){let W=this._getWordAt([this._bufferService.cols-1,c[1]-1],!1,!0,!1);if(W){let G=this._bufferService.cols-W.start;P-=G,N+=G}}}if(C&&P+N===this._bufferService.cols&&L.getCodePoint(this._bufferService.cols-1)!==32){let U=m.lines.get(c[1]+1);if(U?.isWrapped&&U.getCodePoint(0)!==32){let W=this._getWordAt([0,c[1]+1],!1,!1,!0);W&&(N+=W.length)}}return{start:P,length:N}}}_selectWordAt(c,g){let w=this._getWordAt(c,g);if(w){for(;w.start<0;)w.start+=this._bufferService.cols,c[1]--;this._model.selectionStart=[w.start,c[1]],this._model.selectionStartLength=w.length}}_selectToWordAt(c){let g=this._getWordAt(c,!0);if(g){let w=c[1];for(;g.start<0;)g.start+=this._bufferService.cols,w--;if(!this._model.areSelectionValuesReversed())for(;g.start+g.length>this._bufferService.cols;)g.length-=this._bufferService.cols,w++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?g.start:g.start+g.length,w]}}_isCharWordSeparator(c){return c.getWidth()!==0&&this._optionsService.rawOptions.wordSeparator.indexOf(c.getChars())>=0}_selectLineAt(c){let g=this._bufferService.buffer.getWrappedRangeForLine(c),w={start:{x:0,y:g.first},end:{x:this._bufferService.cols-1,y:g.last}};this._model.selectionStart=[0,g.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,s.getRangeLength)(w,this._bufferService.cols)}};t.SelectionService=S=l([u(3,f.IBufferService),u(4,f.ICoreService),u(5,_.IMouseService),u(6,f.IOptionsService),u(7,_.IRenderService),u(8,_.ICoreBrowserService)],S)},4725:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IThemeService=t.ICharacterJoinerService=t.ISelectionService=t.IRenderService=t.IMouseService=t.ICoreBrowserService=t.ICharSizeService=void 0;let l=a(8343);t.ICharSizeService=(0,l.createDecorator)("CharSizeService"),t.ICoreBrowserService=(0,l.createDecorator)("CoreBrowserService"),t.IMouseService=(0,l.createDecorator)("MouseService"),t.IRenderService=(0,l.createDecorator)("RenderService"),t.ISelectionService=(0,l.createDecorator)("SelectionService"),t.ICharacterJoinerService=(0,l.createDecorator)("CharacterJoinerService"),t.IThemeService=(0,l.createDecorator)("ThemeService")},6731:function(R,t,a){var l=this&&this.__decorate||function(S,c,g,w){var C,m=arguments.length,L=m<3?c:w===null?w=Object.getOwnPropertyDescriptor(c,g):w;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L=Reflect.decorate(S,c,g,w);else for(var A=S.length-1;A>=0;A--)(C=S[A])&&(L=(m<3?C(L):m>3?C(c,g,L):C(c,g))||L);return m>3&&L&&Object.defineProperty(c,g,L),L},u=this&&this.__param||function(S,c){return function(g,w){c(g,w,S)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeService=t.DEFAULT_ANSI_COLORS=void 0;let r=a(7239),h=a(8055),d=a(8460),_=a(844),o=a(2585),e=h.css.toColor("#ffffff"),i=h.css.toColor("#000000"),s=h.css.toColor("#ffffff"),n=h.css.toColor("#000000"),f={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117};t.DEFAULT_ANSI_COLORS=Object.freeze((()=>{let S=[h.css.toColor("#2e3436"),h.css.toColor("#cc0000"),h.css.toColor("#4e9a06"),h.css.toColor("#c4a000"),h.css.toColor("#3465a4"),h.css.toColor("#75507b"),h.css.toColor("#06989a"),h.css.toColor("#d3d7cf"),h.css.toColor("#555753"),h.css.toColor("#ef2929"),h.css.toColor("#8ae234"),h.css.toColor("#fce94f"),h.css.toColor("#729fcf"),h.css.toColor("#ad7fa8"),h.css.toColor("#34e2e2"),h.css.toColor("#eeeeec")],c=[0,95,135,175,215,255];for(let g=0;g<216;g++){let w=c[g/36%6|0],C=c[g/6%6|0],m=c[g%6];S.push({css:h.channels.toCss(w,C,m),rgba:h.channels.toRgba(w,C,m)})}for(let g=0;g<24;g++){let w=8+10*g;S.push({css:h.channels.toCss(w,w,w),rgba:h.channels.toRgba(w,w,w)})}return S})());let v=t.ThemeService=class extends _.Disposable{get colors(){return this._colors}constructor(S){super(),this._optionsService=S,this._contrastCache=new r.ColorContrastCache,this._halfContrastCache=new r.ColorContrastCache,this._onChangeColors=this.register(new d.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:e,background:i,cursor:s,cursorAccent:n,selectionForeground:void 0,selectionBackgroundTransparent:f,selectionBackgroundOpaque:h.color.blend(i,f),selectionInactiveBackgroundTransparent:f,selectionInactiveBackgroundOpaque:h.color.blend(i,f),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange("minimumContrastRatio",()=>this._contrastCache.clear())),this.register(this._optionsService.onSpecificOptionChange("theme",()=>this._setTheme(this._optionsService.rawOptions.theme)))}_setTheme(S={}){let c=this._colors;if(c.foreground=p(S.foreground,e),c.background=p(S.background,i),c.cursor=p(S.cursor,s),c.cursorAccent=p(S.cursorAccent,n),c.selectionBackgroundTransparent=p(S.selectionBackground,f),c.selectionBackgroundOpaque=h.color.blend(c.background,c.selectionBackgroundTransparent),c.selectionInactiveBackgroundTransparent=p(S.selectionInactiveBackground,c.selectionBackgroundTransparent),c.selectionInactiveBackgroundOpaque=h.color.blend(c.background,c.selectionInactiveBackgroundTransparent),c.selectionForeground=S.selectionForeground?p(S.selectionForeground,h.NULL_COLOR):void 0,c.selectionForeground===h.NULL_COLOR&&(c.selectionForeground=void 0),h.color.isOpaque(c.selectionBackgroundTransparent)&&(c.selectionBackgroundTransparent=h.color.opacity(c.selectionBackgroundTransparent,.3)),h.color.isOpaque(c.selectionInactiveBackgroundTransparent)&&(c.selectionInactiveBackgroundTransparent=h.color.opacity(c.selectionInactiveBackgroundTransparent,.3)),c.ansi=t.DEFAULT_ANSI_COLORS.slice(),c.ansi[0]=p(S.black,t.DEFAULT_ANSI_COLORS[0]),c.ansi[1]=p(S.red,t.DEFAULT_ANSI_COLORS[1]),c.ansi[2]=p(S.green,t.DEFAULT_ANSI_COLORS[2]),c.ansi[3]=p(S.yellow,t.DEFAULT_ANSI_COLORS[3]),c.ansi[4]=p(S.blue,t.DEFAULT_ANSI_COLORS[4]),c.ansi[5]=p(S.magenta,t.DEFAULT_ANSI_COLORS[5]),c.ansi[6]=p(S.cyan,t.DEFAULT_ANSI_COLORS[6]),c.ansi[7]=p(S.white,t.DEFAULT_ANSI_COLORS[7]),c.ansi[8]=p(S.brightBlack,t.DEFAULT_ANSI_COLORS[8]),c.ansi[9]=p(S.brightRed,t.DEFAULT_ANSI_COLORS[9]),c.ansi[10]=p(S.brightGreen,t.DEFAULT_ANSI_COLORS[10]),c.ansi[11]=p(S.brightYellow,t.DEFAULT_ANSI_COLORS[11]),c.ansi[12]=p(S.brightBlue,t.DEFAULT_ANSI_COLORS[12]),c.ansi[13]=p(S.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),c.ansi[14]=p(S.brightCyan,t.DEFAULT_ANSI_COLORS[14]),c.ansi[15]=p(S.brightWhite,t.DEFAULT_ANSI_COLORS[15]),S.extendedAnsi){let g=Math.min(c.ansi.length-16,S.extendedAnsi.length);for(let w=0;w{Object.defineProperty(t,"__esModule",{value:!0}),t.CircularList=void 0;let l=a(8460),u=a(844);class r extends u.Disposable{constructor(d){super(),this._maxLength=d,this.onDeleteEmitter=this.register(new l.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new l.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new l.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(d){if(this._maxLength===d)return;let _=new Array(d);for(let o=0;othis._length)for(let _=this._length;_=d;e--)this._array[this._getCyclicIndex(e+o.length)]=this._array[this._getCyclicIndex(e)];for(let e=0;ethis._maxLength){let e=this._length+o.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=o.length}trimStart(d){d>this._length&&(d=this._length),this._startIndex+=d,this._length-=d,this.onTrimEmitter.fire(d)}shiftElements(d,_,o){if(!(_<=0)){if(d<0||d>=this._length)throw new Error("start argument out of range");if(d+o<0)throw new Error("Cannot shift elements in list beyond index 0");if(o>0){for(let i=_-1;i>=0;i--)this.set(d+i+o,this.get(d+i));let e=d+_+o-this._length;if(e>0)for(this._length+=e;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let e=0;e<_;e++)this.set(d+e+o,this.get(d+e))}}_getCyclicIndex(d){return(this._startIndex+d)%this._maxLength}}t.CircularList=r},1439:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.clone=void 0,t.clone=function a(l,u=5){if(typeof l!="object")return l;let r=Array.isArray(l)?[]:{};for(let h in l)r[h]=u<=1?l[h]:l[h]&&a(l[h],u-1);return r}},8055:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let l=a(6114),u=0,r=0,h=0,d=0;var _,o,e,i,s;function n(v){let p=v.toString(16);return p.length<2?"0"+p:p}function f(v,p){return v>>0}}(_||(t.channels=_={})),function(v){function p(S,c){return d=Math.round(255*c),[u,r,h]=s.toChannels(S.rgba),{css:_.toCss(u,r,h,d),rgba:_.toRgba(u,r,h,d)}}v.blend=function(S,c){if(d=(255&c.rgba)/255,d===1)return{css:c.css,rgba:c.rgba};let g=c.rgba>>24&255,w=c.rgba>>16&255,C=c.rgba>>8&255,m=S.rgba>>24&255,L=S.rgba>>16&255,A=S.rgba>>8&255;return u=m+Math.round((g-m)*d),r=L+Math.round((w-L)*d),h=A+Math.round((C-A)*d),{css:_.toCss(u,r,h),rgba:_.toRgba(u,r,h)}},v.isOpaque=function(S){return(255&S.rgba)==255},v.ensureContrastRatio=function(S,c,g){let w=s.ensureContrastRatio(S.rgba,c.rgba,g);if(w)return s.toColor(w>>24&255,w>>16&255,w>>8&255)},v.opaque=function(S){let c=(255|S.rgba)>>>0;return[u,r,h]=s.toChannels(c),{css:_.toCss(u,r,h),rgba:c}},v.opacity=p,v.multiplyOpacity=function(S,c){return d=255&S.rgba,p(S,d*c/255)},v.toColorRGB=function(S){return[S.rgba>>24&255,S.rgba>>16&255,S.rgba>>8&255]}}(o||(t.color=o={})),function(v){let p,S;if(!l.isNode){let c=document.createElement("canvas");c.width=1,c.height=1;let g=c.getContext("2d",{willReadFrequently:!0});g&&(p=g,p.globalCompositeOperation="copy",S=p.createLinearGradient(0,0,1,1))}v.toColor=function(c){if(c.match(/#[\da-f]{3,8}/i))switch(c.length){case 4:return u=parseInt(c.slice(1,2).repeat(2),16),r=parseInt(c.slice(2,3).repeat(2),16),h=parseInt(c.slice(3,4).repeat(2),16),s.toColor(u,r,h);case 5:return u=parseInt(c.slice(1,2).repeat(2),16),r=parseInt(c.slice(2,3).repeat(2),16),h=parseInt(c.slice(3,4).repeat(2),16),d=parseInt(c.slice(4,5).repeat(2),16),s.toColor(u,r,h,d);case 7:return{css:c,rgba:(parseInt(c.slice(1),16)<<8|255)>>>0};case 9:return{css:c,rgba:parseInt(c.slice(1),16)>>>0}}let g=c.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(g)return u=parseInt(g[1]),r=parseInt(g[2]),h=parseInt(g[3]),d=Math.round(255*(g[5]===void 0?1:parseFloat(g[5]))),s.toColor(u,r,h,d);if(!p||!S)throw new Error("css.toColor: Unsupported css format");if(p.fillStyle=S,p.fillStyle=c,typeof p.fillStyle!="string")throw new Error("css.toColor: Unsupported css format");if(p.fillRect(0,0,1,1),[u,r,h,d]=p.getImageData(0,0,1,1).data,d!==255)throw new Error("css.toColor: Unsupported css format");return{rgba:_.toRgba(u,r,h,d),css:c}}}(e||(t.css=e={})),function(v){function p(S,c,g){let w=S/255,C=c/255,m=g/255;return .2126*(w<=.03928?w/12.92:Math.pow((w+.055)/1.055,2.4))+.7152*(C<=.03928?C/12.92:Math.pow((C+.055)/1.055,2.4))+.0722*(m<=.03928?m/12.92:Math.pow((m+.055)/1.055,2.4))}v.relativeLuminance=function(S){return p(S>>16&255,S>>8&255,255&S)},v.relativeLuminance2=p}(i||(t.rgb=i={})),function(v){function p(c,g,w){let C=c>>24&255,m=c>>16&255,L=c>>8&255,A=g>>24&255,D=g>>16&255,M=g>>8&255,B=f(i.relativeLuminance2(A,D,M),i.relativeLuminance2(C,m,L));for(;B0||D>0||M>0);)A-=Math.max(0,Math.ceil(.1*A)),D-=Math.max(0,Math.ceil(.1*D)),M-=Math.max(0,Math.ceil(.1*M)),B=f(i.relativeLuminance2(A,D,M),i.relativeLuminance2(C,m,L));return(A<<24|D<<16|M<<8|255)>>>0}function S(c,g,w){let C=c>>24&255,m=c>>16&255,L=c>>8&255,A=g>>24&255,D=g>>16&255,M=g>>8&255,B=f(i.relativeLuminance2(A,D,M),i.relativeLuminance2(C,m,L));for(;B>>0}v.ensureContrastRatio=function(c,g,w){let C=i.relativeLuminance(c>>8),m=i.relativeLuminance(g>>8);if(f(C,m)>8));if(Mf(C,i.relativeLuminance(B>>8))?D:B}return D}let L=S(c,g,w),A=f(C,i.relativeLuminance(L>>8));if(Af(C,i.relativeLuminance(D>>8))?L:D}return L}},v.reduceLuminance=p,v.increaseLuminance=S,v.toChannels=function(c){return[c>>24&255,c>>16&255,c>>8&255,255&c]},v.toColor=function(c,g,w,C){return{css:_.toCss(c,g,w,C),rgba:_.toRgba(c,g,w,C)}}}(s||(t.rgba=s={})),t.toPaddedHex=n,t.contrastRatio=f},8969:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreTerminal=void 0;let l=a(844),u=a(2585),r=a(4348),h=a(7866),d=a(744),_=a(7302),o=a(6975),e=a(8460),i=a(1753),s=a(1480),n=a(7994),f=a(9282),v=a(5435),p=a(5981),S=a(2660),c=!1;class g extends l.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new e.EventEmitter),this._onScroll.event(C=>{var m;(m=this._onScrollApi)===null||m===void 0||m.fire(C.position)})),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(C){for(let m in C)this.optionsService.options[m]=C[m]}constructor(C){super(),this._windowsWrappingHeuristics=this.register(new l.MutableDisposable),this._onBinary=this.register(new e.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new e.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new e.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new e.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new e.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new e.EventEmitter),this._instantiationService=new r.InstantiationService,this.optionsService=this.register(new _.OptionsService(C)),this._instantiationService.setService(u.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(d.BufferService)),this._instantiationService.setService(u.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(h.LogService)),this._instantiationService.setService(u.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(o.CoreService)),this._instantiationService.setService(u.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(i.CoreMouseService)),this._instantiationService.setService(u.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(s.UnicodeService)),this._instantiationService.setService(u.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(n.CharsetService),this._instantiationService.setService(u.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(S.OscLinkService),this._instantiationService.setService(u.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new v.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,e.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,e.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,e.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,e.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom(()=>this.scrollToBottom())),this.register(this.coreService.onUserInput(()=>this._writeBuffer.handleUserInput())),this.register(this.optionsService.onMultipleOptionChange(["windowsMode","windowsPty"],()=>this._handleWindowsPtyOptionChange())),this.register(this._bufferService.onScroll(m=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)})),this.register(this._inputHandler.onScroll(m=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)})),this._writeBuffer=this.register(new p.WriteBuffer((m,L)=>this._inputHandler.parse(m,L))),this.register((0,e.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(C,m){this._writeBuffer.write(C,m)}writeSync(C,m){this._logService.logLevel<=u.LogLevelEnum.WARN&&!c&&(this._logService.warn("writeSync is unreliable and will be removed soon."),c=!0),this._writeBuffer.writeSync(C,m)}resize(C,m){isNaN(C)||isNaN(m)||(C=Math.max(C,d.MINIMUM_COLS),m=Math.max(m,d.MINIMUM_ROWS),this._bufferService.resize(C,m))}scroll(C,m=!1){this._bufferService.scroll(C,m)}scrollLines(C,m,L){this._bufferService.scrollLines(C,m,L)}scrollPages(C){this.scrollLines(C*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(C){let m=C-this._bufferService.buffer.ydisp;m!==0&&this.scrollLines(m)}registerEscHandler(C,m){return this._inputHandler.registerEscHandler(C,m)}registerDcsHandler(C,m){return this._inputHandler.registerDcsHandler(C,m)}registerCsiHandler(C,m){return this._inputHandler.registerCsiHandler(C,m)}registerOscHandler(C,m){return this._inputHandler.registerOscHandler(C,m)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let C=!1,m=this.optionsService.rawOptions.windowsPty;m&&m.buildNumber!==void 0&&m.buildNumber!==void 0?C=m.backend==="conpty"&&m.buildNumber<21376:this.optionsService.rawOptions.windowsMode&&(C=!0),C?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){let C=[];C.push(this.onLineFeed(f.updateWindowsModeWrappedState.bind(null,this._bufferService))),C.push(this.registerCsiHandler({final:"H"},()=>((0,f.updateWindowsModeWrappedState)(this._bufferService),!1))),this._windowsWrappingHeuristics.value=(0,l.toDisposable)(()=>{for(let m of C)m.dispose()})}}}t.CoreTerminal=g},8460:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=a=>(this._listeners.push(a),{dispose:()=>{if(!this._disposed){for(let l=0;ll.fire(u))}},5435:function(R,t,a){var l=this&&this.__decorate||function(B,b,E,x){var k,P=arguments.length,N=P<3?b:x===null?x=Object.getOwnPropertyDescriptor(b,E):x;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")N=Reflect.decorate(B,b,E,x);else for(var U=B.length-1;U>=0;U--)(k=B[U])&&(N=(P<3?k(N):P>3?k(b,E,N):k(b,E))||N);return P>3&&N&&Object.defineProperty(b,E,N),N},u=this&&this.__param||function(B,b){return function(E,x){b(E,x,B)}};Object.defineProperty(t,"__esModule",{value:!0}),t.InputHandler=t.WindowsOptionsReportType=void 0;let r=a(2584),h=a(7116),d=a(2015),_=a(844),o=a(482),e=a(8437),i=a(8460),s=a(643),n=a(511),f=a(3734),v=a(2585),p=a(6242),S=a(6351),c=a(5941),g={"(":0,")":1,"*":2,"+":3,"-":1,".":2},w=131072;function C(B,b){if(B>24)return b.setWinLines||!1;switch(B){case 1:return!!b.restoreWin;case 2:return!!b.minimizeWin;case 3:return!!b.setWinPosition;case 4:return!!b.setWinSizePixels;case 5:return!!b.raiseWin;case 6:return!!b.lowerWin;case 7:return!!b.refreshWin;case 8:return!!b.setWinSizeChars;case 9:return!!b.maximizeWin;case 10:return!!b.fullscreenWin;case 11:return!!b.getWinState;case 13:return!!b.getWinPosition;case 14:return!!b.getWinSizePixels;case 15:return!!b.getScreenSizePixels;case 16:return!!b.getCellSizePixels;case 18:return!!b.getWinSizeChars;case 19:return!!b.getScreenSizeChars;case 20:return!!b.getIconTitle;case 21:return!!b.getWinTitle;case 22:return!!b.pushTitle;case 23:return!!b.popTitle;case 24:return!!b.setWinLines}return!1}var m;(function(B){B[B.GET_WIN_SIZE_PIXELS=0]="GET_WIN_SIZE_PIXELS",B[B.GET_CELL_SIZE_PIXELS=1]="GET_CELL_SIZE_PIXELS"})(m||(t.WindowsOptionsReportType=m={}));let L=0;class A extends _.Disposable{getAttrData(){return this._curAttrData}constructor(b,E,x,k,P,N,U,W,G=new d.EscapeSequenceParser){super(),this._bufferService=b,this._charsetService=E,this._coreService=x,this._logService=k,this._optionsService=P,this._oscLinkService=N,this._coreMouseService=U,this._unicodeService=W,this._parser=G,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new o.StringToUtf32,this._utf8Decoder=new o.Utf8ToUtf32,this._workCell=new n.CellData,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=e.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=e.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new i.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new i.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new i.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new i.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new i.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new i.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new i.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new i.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new i.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new i.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new i.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new i.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new i.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new D(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate(y=>this._activeBuffer=y.activeBuffer)),this._parser.setCsiHandlerFallback((y,O)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(y),params:O.toArray()})}),this._parser.setEscHandlerFallback(y=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(y)})}),this._parser.setExecuteHandlerFallback(y=>{this._logService.debug("Unknown EXECUTE code: ",{code:y})}),this._parser.setOscHandlerFallback((y,O,$)=>{this._logService.debug("Unknown OSC code: ",{identifier:y,action:O,data:$})}),this._parser.setDcsHandlerFallback((y,O,$)=>{O==="HOOK"&&($=$.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(y),action:O,payload:$})}),this._parser.setPrintHandler((y,O,$)=>this.print(y,O,$)),this._parser.registerCsiHandler({final:"@"},y=>this.insertChars(y)),this._parser.registerCsiHandler({intermediates:" ",final:"@"},y=>this.scrollLeft(y)),this._parser.registerCsiHandler({final:"A"},y=>this.cursorUp(y)),this._parser.registerCsiHandler({intermediates:" ",final:"A"},y=>this.scrollRight(y)),this._parser.registerCsiHandler({final:"B"},y=>this.cursorDown(y)),this._parser.registerCsiHandler({final:"C"},y=>this.cursorForward(y)),this._parser.registerCsiHandler({final:"D"},y=>this.cursorBackward(y)),this._parser.registerCsiHandler({final:"E"},y=>this.cursorNextLine(y)),this._parser.registerCsiHandler({final:"F"},y=>this.cursorPrecedingLine(y)),this._parser.registerCsiHandler({final:"G"},y=>this.cursorCharAbsolute(y)),this._parser.registerCsiHandler({final:"H"},y=>this.cursorPosition(y)),this._parser.registerCsiHandler({final:"I"},y=>this.cursorForwardTab(y)),this._parser.registerCsiHandler({final:"J"},y=>this.eraseInDisplay(y,!1)),this._parser.registerCsiHandler({prefix:"?",final:"J"},y=>this.eraseInDisplay(y,!0)),this._parser.registerCsiHandler({final:"K"},y=>this.eraseInLine(y,!1)),this._parser.registerCsiHandler({prefix:"?",final:"K"},y=>this.eraseInLine(y,!0)),this._parser.registerCsiHandler({final:"L"},y=>this.insertLines(y)),this._parser.registerCsiHandler({final:"M"},y=>this.deleteLines(y)),this._parser.registerCsiHandler({final:"P"},y=>this.deleteChars(y)),this._parser.registerCsiHandler({final:"S"},y=>this.scrollUp(y)),this._parser.registerCsiHandler({final:"T"},y=>this.scrollDown(y)),this._parser.registerCsiHandler({final:"X"},y=>this.eraseChars(y)),this._parser.registerCsiHandler({final:"Z"},y=>this.cursorBackwardTab(y)),this._parser.registerCsiHandler({final:"`"},y=>this.charPosAbsolute(y)),this._parser.registerCsiHandler({final:"a"},y=>this.hPositionRelative(y)),this._parser.registerCsiHandler({final:"b"},y=>this.repeatPrecedingCharacter(y)),this._parser.registerCsiHandler({final:"c"},y=>this.sendDeviceAttributesPrimary(y)),this._parser.registerCsiHandler({prefix:">",final:"c"},y=>this.sendDeviceAttributesSecondary(y)),this._parser.registerCsiHandler({final:"d"},y=>this.linePosAbsolute(y)),this._parser.registerCsiHandler({final:"e"},y=>this.vPositionRelative(y)),this._parser.registerCsiHandler({final:"f"},y=>this.hVPosition(y)),this._parser.registerCsiHandler({final:"g"},y=>this.tabClear(y)),this._parser.registerCsiHandler({final:"h"},y=>this.setMode(y)),this._parser.registerCsiHandler({prefix:"?",final:"h"},y=>this.setModePrivate(y)),this._parser.registerCsiHandler({final:"l"},y=>this.resetMode(y)),this._parser.registerCsiHandler({prefix:"?",final:"l"},y=>this.resetModePrivate(y)),this._parser.registerCsiHandler({final:"m"},y=>this.charAttributes(y)),this._parser.registerCsiHandler({final:"n"},y=>this.deviceStatus(y)),this._parser.registerCsiHandler({prefix:"?",final:"n"},y=>this.deviceStatusPrivate(y)),this._parser.registerCsiHandler({intermediates:"!",final:"p"},y=>this.softReset(y)),this._parser.registerCsiHandler({intermediates:" ",final:"q"},y=>this.setCursorStyle(y)),this._parser.registerCsiHandler({final:"r"},y=>this.setScrollRegion(y)),this._parser.registerCsiHandler({final:"s"},y=>this.saveCursor(y)),this._parser.registerCsiHandler({final:"t"},y=>this.windowOptions(y)),this._parser.registerCsiHandler({final:"u"},y=>this.restoreCursor(y)),this._parser.registerCsiHandler({intermediates:"'",final:"}"},y=>this.insertColumns(y)),this._parser.registerCsiHandler({intermediates:"'",final:"~"},y=>this.deleteColumns(y)),this._parser.registerCsiHandler({intermediates:'"',final:"q"},y=>this.selectProtected(y)),this._parser.registerCsiHandler({intermediates:"$",final:"p"},y=>this.requestMode(y,!0)),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},y=>this.requestMode(y,!1)),this._parser.setExecuteHandler(r.C0.BEL,()=>this.bell()),this._parser.setExecuteHandler(r.C0.LF,()=>this.lineFeed()),this._parser.setExecuteHandler(r.C0.VT,()=>this.lineFeed()),this._parser.setExecuteHandler(r.C0.FF,()=>this.lineFeed()),this._parser.setExecuteHandler(r.C0.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler(r.C0.BS,()=>this.backspace()),this._parser.setExecuteHandler(r.C0.HT,()=>this.tab()),this._parser.setExecuteHandler(r.C0.SO,()=>this.shiftOut()),this._parser.setExecuteHandler(r.C0.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(r.C1.IND,()=>this.index()),this._parser.setExecuteHandler(r.C1.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(r.C1.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new p.OscHandler(y=>(this.setTitle(y),this.setIconName(y),!0))),this._parser.registerOscHandler(1,new p.OscHandler(y=>this.setIconName(y))),this._parser.registerOscHandler(2,new p.OscHandler(y=>this.setTitle(y))),this._parser.registerOscHandler(4,new p.OscHandler(y=>this.setOrReportIndexedColor(y))),this._parser.registerOscHandler(8,new p.OscHandler(y=>this.setHyperlink(y))),this._parser.registerOscHandler(10,new p.OscHandler(y=>this.setOrReportFgColor(y))),this._parser.registerOscHandler(11,new p.OscHandler(y=>this.setOrReportBgColor(y))),this._parser.registerOscHandler(12,new p.OscHandler(y=>this.setOrReportCursorColor(y))),this._parser.registerOscHandler(104,new p.OscHandler(y=>this.restoreIndexedColor(y))),this._parser.registerOscHandler(110,new p.OscHandler(y=>this.restoreFgColor(y))),this._parser.registerOscHandler(111,new p.OscHandler(y=>this.restoreBgColor(y))),this._parser.registerOscHandler(112,new p.OscHandler(y=>this.restoreCursorColor(y))),this._parser.registerEscHandler({final:"7"},()=>this.saveCursor()),this._parser.registerEscHandler({final:"8"},()=>this.restoreCursor()),this._parser.registerEscHandler({final:"D"},()=>this.index()),this._parser.registerEscHandler({final:"E"},()=>this.nextLine()),this._parser.registerEscHandler({final:"H"},()=>this.tabSet()),this._parser.registerEscHandler({final:"M"},()=>this.reverseIndex()),this._parser.registerEscHandler({final:"="},()=>this.keypadApplicationMode()),this._parser.registerEscHandler({final:">"},()=>this.keypadNumericMode()),this._parser.registerEscHandler({final:"c"},()=>this.fullReset()),this._parser.registerEscHandler({final:"n"},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:"o"},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:"|"},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:"}"},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:"~"},()=>this.setgLevel(1)),this._parser.registerEscHandler({intermediates:"%",final:"@"},()=>this.selectDefaultCharset()),this._parser.registerEscHandler({intermediates:"%",final:"G"},()=>this.selectDefaultCharset());for(let y in h.CHARSETS)this._parser.registerEscHandler({intermediates:"(",final:y},()=>this.selectCharset("("+y)),this._parser.registerEscHandler({intermediates:")",final:y},()=>this.selectCharset(")"+y)),this._parser.registerEscHandler({intermediates:"*",final:y},()=>this.selectCharset("*"+y)),this._parser.registerEscHandler({intermediates:"+",final:y},()=>this.selectCharset("+"+y)),this._parser.registerEscHandler({intermediates:"-",final:y},()=>this.selectCharset("-"+y)),this._parser.registerEscHandler({intermediates:".",final:y},()=>this.selectCharset("."+y)),this._parser.registerEscHandler({intermediates:"/",final:y},()=>this.selectCharset("/"+y));this._parser.registerEscHandler({intermediates:"#",final:"8"},()=>this.screenAlignmentPattern()),this._parser.setErrorHandler(y=>(this._logService.error("Parsing error: ",y),y)),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new S.DcsHandler((y,O)=>this.requestStatusString(y,O)))}_preserveStack(b,E,x,k){this._parseStack.paused=!0,this._parseStack.cursorStartX=b,this._parseStack.cursorStartY=E,this._parseStack.decodedLength=x,this._parseStack.position=k}_logSlowResolvingAsync(b){this._logService.logLevel<=v.LogLevelEnum.WARN&&Promise.race([b,new Promise((E,x)=>setTimeout(()=>x("#SLOW_TIMEOUT"),5e3))]).catch(E=>{if(E!=="#SLOW_TIMEOUT")throw E;console.warn("async parser handler taking longer than 5000 ms")})}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(b,E){let x,k=this._activeBuffer.x,P=this._activeBuffer.y,N=0,U=this._parseStack.paused;if(U){if(x=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,E))return this._logSlowResolvingAsync(x),x;k=this._parseStack.cursorStartX,P=this._parseStack.cursorStartY,this._parseStack.paused=!1,b.length>w&&(N=this._parseStack.position+w)}if(this._logService.logLevel<=v.LogLevelEnum.DEBUG&&this._logService.debug("parsing data"+(typeof b=="string"?` "${b}"`:` "${Array.prototype.map.call(b,W=>String.fromCharCode(W)).join("")}"`),typeof b=="string"?b.split("").map(W=>W.charCodeAt(0)):b),this._parseBuffer.lengthw)for(let W=N;W0&&$.getWidth(this._activeBuffer.x-1)===2&&$.setCellFromCodePoint(this._activeBuffer.x-1,0,1,O.fg,O.bg,O.extended);for(let F=E;F=W){if(G){for(;this._activeBuffer.x=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),$=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)}else if(this._activeBuffer.x=W-1,P===2)continue}if(y&&($.insertCells(this._activeBuffer.x,P,this._activeBuffer.getNullCell(O),O),$.getWidth(W-1)===2&&$.setCellFromCodePoint(W-1,s.NULL_CELL_CODE,s.NULL_CELL_WIDTH,O.fg,O.bg,O.extended)),$.setCellFromCodePoint(this._activeBuffer.x++,k,P,O.fg,O.bg,O.extended),P>0)for(;--P;)$.setCellFromCodePoint(this._activeBuffer.x++,0,0,O.fg,O.bg,O.extended)}else $.getWidth(this._activeBuffer.x-1)?$.addCodepointToCell(this._activeBuffer.x-1,k):$.addCodepointToCell(this._activeBuffer.x-2,k)}x-E>0&&($.loadCell(this._activeBuffer.x-1,this._workCell),this._workCell.getWidth()===2||this._workCell.getCode()>65535?this._parser.precedingCodepoint=0:this._workCell.isCombined()?this._parser.precedingCodepoint=this._workCell.getChars().charCodeAt(0):this._parser.precedingCodepoint=this._workCell.content),this._activeBuffer.x0&&$.getWidth(this._activeBuffer.x)===0&&!$.hasContent(this._activeBuffer.x)&&$.setCellFromCodePoint(this._activeBuffer.x,0,1,O.fg,O.bg,O.extended),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(b,E){return b.final!=="t"||b.prefix||b.intermediates?this._parser.registerCsiHandler(b,E):this._parser.registerCsiHandler(b,x=>!C(x.params[0],this._optionsService.rawOptions.windowOptions)||E(x))}registerDcsHandler(b,E){return this._parser.registerDcsHandler(b,new S.DcsHandler(E))}registerEscHandler(b,E){return this._parser.registerEscHandler(b,E)}registerOscHandler(b,E){return this._parser.registerOscHandler(b,new p.OscHandler(E))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){var b;if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(this._activeBuffer.x===0&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&(!((b=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y))===null||b===void 0)&&b.isWrapped)){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;let E=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);E.hasWidth(this._activeBuffer.x)&&!E.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let b=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-b),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(b=this._bufferService.cols-1){this._activeBuffer.x=Math.min(b,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(b,E){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=b,this._activeBuffer.y=this._activeBuffer.scrollTop+E):(this._activeBuffer.x=b,this._activeBuffer.y=E),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(b,E){this._restrictCursor(),this._setCursor(this._activeBuffer.x+b,this._activeBuffer.y+E)}cursorUp(b){let E=this._activeBuffer.y-this._activeBuffer.scrollTop;return E>=0?this._moveCursor(0,-Math.min(E,b.params[0]||1)):this._moveCursor(0,-(b.params[0]||1)),!0}cursorDown(b){let E=this._activeBuffer.scrollBottom-this._activeBuffer.y;return E>=0?this._moveCursor(0,Math.min(E,b.params[0]||1)):this._moveCursor(0,b.params[0]||1),!0}cursorForward(b){return this._moveCursor(b.params[0]||1,0),!0}cursorBackward(b){return this._moveCursor(-(b.params[0]||1),0),!0}cursorNextLine(b){return this.cursorDown(b),this._activeBuffer.x=0,!0}cursorPrecedingLine(b){return this.cursorUp(b),this._activeBuffer.x=0,!0}cursorCharAbsolute(b){return this._setCursor((b.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(b){return this._setCursor(b.length>=2?(b.params[1]||1)-1:0,(b.params[0]||1)-1),!0}charPosAbsolute(b){return this._setCursor((b.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(b){return this._moveCursor(b.params[0]||1,0),!0}linePosAbsolute(b){return this._setCursor(this._activeBuffer.x,(b.params[0]||1)-1),!0}vPositionRelative(b){return this._moveCursor(0,b.params[0]||1),!0}hVPosition(b){return this.cursorPosition(b),!0}tabClear(b){let E=b.params[0];return E===0?delete this._activeBuffer.tabs[this._activeBuffer.x]:E===3&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(b){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let E=b.params[0]||1;for(;E--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(b){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let E=b.params[0]||1;for(;E--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(b){let E=b.params[0];return E===1&&(this._curAttrData.bg|=536870912),E!==2&&E!==0||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(b,E,x,k=!1,P=!1){let N=this._activeBuffer.lines.get(this._activeBuffer.ybase+b);N.replaceCells(E,x,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData(),P),k&&(N.isWrapped=!1)}_resetBufferLine(b,E=!1){let x=this._activeBuffer.lines.get(this._activeBuffer.ybase+b);x&&(x.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),E),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+b),x.isWrapped=!1)}eraseInDisplay(b,E=!1){let x;switch(this._restrictCursor(this._bufferService.cols),b.params[0]){case 0:for(x=this._activeBuffer.y,this._dirtyRowTracker.markDirty(x),this._eraseInBufferLine(x++,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,E);x=this._bufferService.cols&&(this._activeBuffer.lines.get(x+1).isWrapped=!1);x--;)this._resetBufferLine(x,E);this._dirtyRowTracker.markDirty(0);break;case 2:for(x=this._bufferService.rows,this._dirtyRowTracker.markDirty(x-1);x--;)this._resetBufferLine(x,E);this._dirtyRowTracker.markDirty(0);break;case 3:let k=this._activeBuffer.lines.length-this._bufferService.rows;k>0&&(this._activeBuffer.lines.trimStart(k),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-k,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-k,0),this._onScroll.fire(0))}return!0}eraseInLine(b,E=!1){switch(this._restrictCursor(this._bufferService.cols),b.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,E);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,E);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,E)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(b){this._restrictCursor();let E=b.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.y0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(r.C0.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(r.C0.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(b){return b.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(r.C0.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(r.C0.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(b.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(r.C0.ESC+"[>83;40003;0c")),!0}_is(b){return(this._optionsService.rawOptions.termName+"").indexOf(b)===0}setMode(b){for(let E=0;Eee?1:2,F=b.params[0];return K=F,z=E?F===2?4:F===4?$(N.modes.insertMode):F===12?3:F===20?$(O.convertEol):0:F===1?$(x.applicationCursorKeys):F===3?O.windowOptions.setWinLines?W===80?2:W===132?1:0:0:F===6?$(x.origin):F===7?$(x.wraparound):F===8?3:F===9?$(k==="X10"):F===12?$(O.cursorBlink):F===25?$(!N.isCursorHidden):F===45?$(x.reverseWraparound):F===66?$(x.applicationKeypad):F===67?4:F===1e3?$(k==="VT200"):F===1002?$(k==="DRAG"):F===1003?$(k==="ANY"):F===1004?$(x.sendFocus):F===1005?4:F===1006?$(P==="SGR"):F===1015?4:F===1016?$(P==="SGR_PIXELS"):F===1048?1:F===47||F===1047||F===1049?$(G===y):F===2004?$(x.bracketedPasteMode):0,N.triggerDataEvent(`${r.C0.ESC}[${E?"":"?"}${K};${z}$y`),!0;var K,z}_updateAttrColor(b,E,x,k,P){return E===2?(b|=50331648,b&=-16777216,b|=f.AttributeData.fromColorRGB([x,k,P])):E===5&&(b&=-50331904,b|=33554432|255&x),b}_extractColor(b,E,x){let k=[0,0,-1,0,0,0],P=0,N=0;do{if(k[N+P]=b.params[E+N],b.hasSubParams(E+N)){let U=b.getSubParams(E+N),W=0;do k[1]===5&&(P=1),k[N+W+1+P]=U[W];while(++W=2||k[1]===2&&N+P>=5)break;k[1]&&(P=1)}while(++N+E5)&&(b=1),E.extended.underlineStyle=b,E.fg|=268435456,b===0&&(E.fg&=-268435457),E.updateExtended()}_processSGR0(b){b.fg=e.DEFAULT_ATTR_DATA.fg,b.bg=e.DEFAULT_ATTR_DATA.bg,b.extended=b.extended.clone(),b.extended.underlineStyle=0,b.extended.underlineColor&=-67108864,b.updateExtended()}charAttributes(b){if(b.length===1&&b.params[0]===0)return this._processSGR0(this._curAttrData),!0;let E=b.length,x,k=this._curAttrData;for(let P=0;P=30&&x<=37?(k.fg&=-50331904,k.fg|=16777216|x-30):x>=40&&x<=47?(k.bg&=-50331904,k.bg|=16777216|x-40):x>=90&&x<=97?(k.fg&=-50331904,k.fg|=16777224|x-90):x>=100&&x<=107?(k.bg&=-50331904,k.bg|=16777224|x-100):x===0?this._processSGR0(k):x===1?k.fg|=134217728:x===3?k.bg|=67108864:x===4?(k.fg|=268435456,this._processUnderline(b.hasSubParams(P)?b.getSubParams(P)[0]:1,k)):x===5?k.fg|=536870912:x===7?k.fg|=67108864:x===8?k.fg|=1073741824:x===9?k.fg|=2147483648:x===2?k.bg|=134217728:x===21?this._processUnderline(2,k):x===22?(k.fg&=-134217729,k.bg&=-134217729):x===23?k.bg&=-67108865:x===24?(k.fg&=-268435457,this._processUnderline(0,k)):x===25?k.fg&=-536870913:x===27?k.fg&=-67108865:x===28?k.fg&=-1073741825:x===29?k.fg&=2147483647:x===39?(k.fg&=-67108864,k.fg|=16777215&e.DEFAULT_ATTR_DATA.fg):x===49?(k.bg&=-67108864,k.bg|=16777215&e.DEFAULT_ATTR_DATA.bg):x===38||x===48||x===58?P+=this._extractColor(b,P,k):x===53?k.bg|=1073741824:x===55?k.bg&=-1073741825:x===59?(k.extended=k.extended.clone(),k.extended.underlineColor=-1,k.updateExtended()):x===100?(k.fg&=-67108864,k.fg|=16777215&e.DEFAULT_ATTR_DATA.fg,k.bg&=-67108864,k.bg|=16777215&e.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",x);return!0}deviceStatus(b){switch(b.params[0]){case 5:this._coreService.triggerDataEvent(`${r.C0.ESC}[0n`);break;case 6:let E=this._activeBuffer.y+1,x=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${r.C0.ESC}[${E};${x}R`)}return!0}deviceStatusPrivate(b){if(b.params[0]===6){let E=this._activeBuffer.y+1,x=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${r.C0.ESC}[?${E};${x}R`)}return!0}softReset(b){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=e.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(b){let E=b.params[0]||1;switch(E){case 1:case 2:this._optionsService.options.cursorStyle="block";break;case 3:case 4:this._optionsService.options.cursorStyle="underline";break;case 5:case 6:this._optionsService.options.cursorStyle="bar"}let x=E%2==1;return this._optionsService.options.cursorBlink=x,!0}setScrollRegion(b){let E=b.params[0]||1,x;return(b.length<2||(x=b.params[1])>this._bufferService.rows||x===0)&&(x=this._bufferService.rows),x>E&&(this._activeBuffer.scrollTop=E-1,this._activeBuffer.scrollBottom=x-1,this._setCursor(0,0)),!0}windowOptions(b){if(!C(b.params[0],this._optionsService.rawOptions.windowOptions))return!0;let E=b.length>1?b.params[1]:0;switch(b.params[0]){case 14:E!==2&&this._onRequestWindowsOptionsReport.fire(m.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(m.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${r.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:E!==0&&E!==2||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),E!==0&&E!==1||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:E!==0&&E!==2||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),E!==0&&E!==1||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(b){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(b){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(b){return this._windowTitle=b,this._onTitleChange.fire(b),!0}setIconName(b){return this._iconName=b,!0}setOrReportIndexedColor(b){let E=[],x=b.split(";");for(;x.length>1;){let k=x.shift(),P=x.shift();if(/^\d+$/.exec(k)){let N=parseInt(k);if(M(N))if(P==="?")E.push({type:0,index:N});else{let U=(0,c.parseColor)(P);U&&E.push({type:1,index:N,color:U})}}}return E.length&&this._onColor.fire(E),!0}setHyperlink(b){let E=b.split(";");return!(E.length<2)&&(E[1]?this._createHyperlink(E[0],E[1]):!E[0]&&this._finishHyperlink())}_createHyperlink(b,E){this._getCurrentLinkId()&&this._finishHyperlink();let x=b.split(":"),k,P=x.findIndex(N=>N.startsWith("id="));return P!==-1&&(k=x[P].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:k,uri:E}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(b,E){let x=b.split(";");for(let k=0;k=this._specialColors.length);++k,++E)if(x[k]==="?")this._onColor.fire([{type:0,index:this._specialColors[E]}]);else{let P=(0,c.parseColor)(x[k]);P&&this._onColor.fire([{type:1,index:this._specialColors[E],color:P}])}return!0}setOrReportFgColor(b){return this._setOrReportSpecialColor(b,0)}setOrReportBgColor(b){return this._setOrReportSpecialColor(b,1)}setOrReportCursorColor(b){return this._setOrReportSpecialColor(b,2)}restoreIndexedColor(b){if(!b)return this._onColor.fire([{type:2}]),!0;let E=[],x=b.split(";");for(let k=0;k=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){let b=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,b,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=e.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=e.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(b){return this._charsetService.setgLevel(b),!0}screenAlignmentPattern(){let b=new n.CellData;b.content=4194304|"E".charCodeAt(0),b.fg=this._curAttrData.fg,b.bg=this._curAttrData.bg,this._setCursor(0,0);for(let E=0;E(this._coreService.triggerDataEvent(`${r.C0.ESC}${P}${r.C0.ESC}\\`),!0))(b==='"q'?`P1$r${this._curAttrData.isProtected()?1:0}"q`:b==='"p'?'P1$r61;1"p':b==="r"?`P1$r${x.scrollTop+1};${x.scrollBottom+1}r`:b==="m"?"P1$r0m":b===" q"?`P1$r${{block:2,underline:4,bar:6}[k.cursorStyle]-(k.cursorBlink?1:0)} q`:"P0$r")}markRangeDirty(b,E){this._dirtyRowTracker.markRangeDirty(b,E)}}t.InputHandler=A;let D=class{constructor(B){this._bufferService=B,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(B){Bthis.end&&(this.end=B)}markRangeDirty(B,b){B>b&&(L=B,B=b,b=L),Bthis.end&&(this.end=b)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function M(B){return 0<=B&&B<256}D=l([u(0,v.IBufferService)],D)},844:(R,t)=>{function a(l){for(let u of l)u.dispose();l.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(let l of this._disposables)l.dispose();this._disposables.length=0}register(l){return this._disposables.push(l),l}unregister(l){let u=this._disposables.indexOf(l);u!==-1&&this._disposables.splice(u,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(l){var u;this._isDisposed||l===this._value||((u=this._value)===null||u===void 0||u.dispose(),this._value=l)}clear(){this.value=void 0}dispose(){var l;this._isDisposed=!0,(l=this._value)===null||l===void 0||l.dispose(),this._value=void 0}},t.toDisposable=function(l){return{dispose:l}},t.disposeArray=a,t.getDisposeArrayDisposable=function(l){return{dispose:()=>a(l)}}},1505:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class a{constructor(){this._data={}}set(u,r,h){this._data[u]||(this._data[u]={}),this._data[u][r]=h}get(u,r){return this._data[u]?this._data[u][r]:void 0}clear(){this._data={}}}t.TwoKeyMap=a,t.FourKeyMap=class{constructor(){this._data=new a}set(l,u,r,h,d){this._data.get(l,u)||this._data.set(l,u,new a),this._data.get(l,u).set(r,h,d)}get(l,u,r,h){var d;return(d=this._data.get(l,u))===null||d===void 0?void 0:d.get(r,h)}clear(){this._data.clear()}}},6114:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode=typeof navigator>"u";let a=t.isNode?"node":navigator.userAgent,l=t.isNode?"node":navigator.platform;t.isFirefox=a.includes("Firefox"),t.isLegacyEdge=a.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(a),t.getSafariVersion=function(){if(!t.isSafari)return 0;let u=a.match(/Version\/(\d+)/);return u===null||u.length<2?0:parseInt(u[1])},t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(l),t.isIpad=l==="iPad",t.isIphone=l==="iPhone",t.isWindows=["Windows","Win16","Win32","WinCE"].includes(l),t.isLinux=l.indexOf("Linux")>=0,t.isChromeOS=/\bCrOS\b/.test(a)},6106:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SortedList=void 0;let a=0;t.SortedList=class{constructor(l){this._getKey=l,this._array=[]}clear(){this._array.length=0}insert(l){this._array.length!==0?(a=this._search(this._getKey(l)),this._array.splice(a,0,l)):this._array.push(l)}delete(l){if(this._array.length===0)return!1;let u=this._getKey(l);if(u===void 0||(a=this._search(u),a===-1)||this._getKey(this._array[a])!==u)return!1;do if(this._array[a]===l)return this._array.splice(a,1),!0;while(++a=this._array.length)&&this._getKey(this._array[a])===l))do yield this._array[a];while(++a=this._array.length)&&this._getKey(this._array[a])===l))do u(this._array[a]);while(++a=u;){let h=u+r>>1,d=this._getKey(this._array[h]);if(d>l)r=h-1;else{if(!(d0&&this._getKey(this._array[h-1])===l;)h--;return h}u=h+1}}return u}}},7226:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;let l=a(6114);class u{constructor(){this._tasks=[],this._i=0}enqueue(d){this._tasks.push(d),this._start()}flush(){for(;this._ii)return e-_<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(e-_))}ms`),void this._start();e=i}this.clear()}}class r extends u{_requestCallback(d){return setTimeout(()=>d(this._createDeadline(16)))}_cancelCallback(d){clearTimeout(d)}_createDeadline(d){let _=Date.now()+d;return{timeRemaining:()=>Math.max(0,_-Date.now())}}}t.PriorityTaskQueue=r,t.IdleTaskQueue=!l.isNode&&"requestIdleCallback"in window?class extends u{_requestCallback(h){return requestIdleCallback(h)}_cancelCallback(h){cancelIdleCallback(h)}}:r,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(h){this._queue.clear(),this._queue.enqueue(h)}flush(){this._queue.flush()}}},9282:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.updateWindowsModeWrappedState=void 0;let l=a(643);t.updateWindowsModeWrappedState=function(u){let r=u.buffer.lines.get(u.buffer.ybase+u.buffer.y-1),h=r?.get(u.cols-1),d=u.buffer.lines.get(u.buffer.ybase+u.buffer.y);d&&h&&(d.isWrapped=h[l.CHAR_DATA_CODE_INDEX]!==l.NULL_CELL_CODE&&h[l.CHAR_DATA_CODE_INDEX]!==l.WHITESPACE_CELL_CODE)}},3734:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class a{constructor(){this.fg=0,this.bg=0,this.extended=new l}static toColorRGB(r){return[r>>>16&255,r>>>8&255,255&r]}static fromColorRGB(r){return(255&r[0])<<16|(255&r[1])<<8|255&r[2]}clone(){let r=new a;return r.fg=this.fg,r.bg=this.bg,r.extended=this.extended.clone(),r}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return(50331648&this.fg)==50331648}isBgRGB(){return(50331648&this.bg)==50331648}isFgPalette(){return(50331648&this.fg)==16777216||(50331648&this.fg)==33554432}isBgPalette(){return(50331648&this.bg)==16777216||(50331648&this.bg)==33554432}isFgDefault(){return(50331648&this.fg)==0}isBgDefault(){return(50331648&this.bg)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==16777216||(50331648&this.extended.underlineColor)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==0:this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}}t.AttributeData=a;class l{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(r){this._ext=r}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(r){this._ext&=-469762049,this._ext|=r<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(r){this._ext&=-67108864,this._ext|=67108863&r}get urlId(){return this._urlId}set urlId(r){this._urlId=r}constructor(r=0,h=0){this._ext=0,this._urlId=0,this._ext=r,this._urlId=h}clone(){return new l(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}}t.ExtendedAttrs=l},9092:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Buffer=t.MAX_BUFFER_SIZE=void 0;let l=a(6349),u=a(7226),r=a(3734),h=a(8437),d=a(4634),_=a(511),o=a(643),e=a(4863),i=a(7116);t.MAX_BUFFER_SIZE=4294967295,t.Buffer=class{constructor(s,n,f){this._hasScrollback=s,this._optionsService=n,this._bufferService=f,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=h.DEFAULT_ATTR_DATA.clone(),this.savedCharset=i.DEFAULT_CHARSET,this.markers=[],this._nullCell=_.CellData.fromCharData([0,o.NULL_CELL_CHAR,o.NULL_CELL_WIDTH,o.NULL_CELL_CODE]),this._whitespaceCell=_.CellData.fromCharData([0,o.WHITESPACE_CELL_CHAR,o.WHITESPACE_CELL_WIDTH,o.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new u.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new l.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(s){return s?(this._nullCell.fg=s.fg,this._nullCell.bg=s.bg,this._nullCell.extended=s.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new r.ExtendedAttrs),this._nullCell}getWhitespaceCell(s){return s?(this._whitespaceCell.fg=s.fg,this._whitespaceCell.bg=s.bg,this._whitespaceCell.extended=s.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new r.ExtendedAttrs),this._whitespaceCell}getBlankLine(s,n){return new h.BufferLine(this._bufferService.cols,this.getNullCell(s),n)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){let s=this.ybase+this.y-this.ydisp;return s>=0&&st.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:n}fillViewportRows(s){if(this.lines.length===0){s===void 0&&(s=h.DEFAULT_ATTR_DATA);let n=this._rows;for(;n--;)this.lines.push(this.getBlankLine(s))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new l.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(s,n){let f=this.getNullCell(h.DEFAULT_ATTR_DATA),v=0,p=this._getCorrectBufferLength(n);if(p>this.lines.maxLength&&(this.lines.maxLength=p),this.lines.length>0){if(this._cols0&&this.lines.length<=this.ybase+this.y+S+1?(this.ybase--,S++,this.ydisp>0&&this.ydisp--):this.lines.push(new h.BufferLine(s,f)));else for(let c=this._rows;c>n;c--)this.lines.length>n+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(p0&&(this.lines.trimStart(c),this.ybase=Math.max(this.ybase-c,0),this.ydisp=Math.max(this.ydisp-c,0),this.savedY=Math.max(this.savedY-c,0)),this.lines.maxLength=p}this.x=Math.min(this.x,s-1),this.y=Math.min(this.y,n-1),S&&(this.y+=S),this.savedX=Math.min(this.savedX,s-1),this.scrollTop=0}if(this.scrollBottom=n-1,this._isReflowEnabled&&(this._reflow(s,n),this._cols>s))for(let S=0;S.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue(()=>this._batchedMemoryCleanup()))}_batchedMemoryCleanup(){let s=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,s=!1);let n=0;for(;this._memoryCleanupPosition100)return!0;return s}get _isReflowEnabled(){let s=this._optionsService.rawOptions.windowsPty;return s&&s.buildNumber?this._hasScrollback&&s.backend==="conpty"&&s.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(s,n){this._cols!==s&&(s>this._cols?this._reflowLarger(s,n):this._reflowSmaller(s,n))}_reflowLarger(s,n){let f=(0,d.reflowLargerGetLinesToRemove)(this.lines,this._cols,s,this.ybase+this.y,this.getNullCell(h.DEFAULT_ATTR_DATA));if(f.length>0){let v=(0,d.reflowLargerCreateNewLayout)(this.lines,f);(0,d.reflowLargerApplyNewLayout)(this.lines,v.layout),this._reflowLargerAdjustViewport(s,n,v.countRemoved)}}_reflowLargerAdjustViewport(s,n,f){let v=this.getNullCell(h.DEFAULT_ATTR_DATA),p=f;for(;p-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length=0;S--){let c=this.lines.get(S);if(!c||!c.isWrapped&&c.getTrimmedLength()<=s)continue;let g=[c];for(;c.isWrapped&&S>0;)c=this.lines.get(--S),g.unshift(c);let w=this.ybase+this.y;if(w>=S&&w0&&(v.push({start:S+g.length+p,newLines:D}),p+=D.length),g.push(...D);let M=m.length-1,B=m[M];B===0&&(M--,B=m[M]);let b=g.length-L-1,E=C;for(;b>=0;){let k=Math.min(E,B);if(g[M]===void 0)break;if(g[M].copyCellsFrom(g[b],E-k,B-k,k,!0),B-=k,B===0&&(M--,B=m[M]),E-=k,E===0){b--;let P=Math.max(b,0);E=(0,d.getWrappedLineTrimmedLength)(g,P,this._cols)}}for(let k=0;k0;)this.ybase===0?this.y0){let S=[],c=[];for(let M=0;M=0;M--)if(m&&m.start>w+L){for(let B=m.newLines.length-1;B>=0;B--)this.lines.set(M--,m.newLines[B]);M++,S.push({index:w+1,amount:m.newLines.length}),L+=m.newLines.length,m=v[++C]}else this.lines.set(M,c[w--]);let A=0;for(let M=S.length-1;M>=0;M--)S[M].index+=A,this.lines.onInsertEmitter.fire(S[M]),A+=S[M].amount;let D=Math.max(0,g+p-this.lines.maxLength);D>0&&this.lines.onTrimEmitter.fire(D)}}translateBufferLineToString(s,n,f=0,v){let p=this.lines.get(s);return p?p.translateToString(n,f,v):""}getWrappedRangeForLine(s){let n=s,f=s;for(;n>0&&this.lines.get(n).isWrapped;)n--;for(;f+10;);return s>=this._cols?this._cols-1:s<0?0:s}nextStop(s){for(s==null&&(s=this.x);!this.tabs[++s]&&s=this._cols?this._cols-1:s<0?0:s}clearMarkers(s){this._isClearing=!0;for(let n=0;n{n.line-=f,n.line<0&&n.dispose()})),n.register(this.lines.onInsert(f=>{n.line>=f.index&&(n.line+=f.amount)})),n.register(this.lines.onDelete(f=>{n.line>=f.index&&n.linef.index&&(n.line-=f.amount)})),n.register(n.onDispose(()=>this._removeMarker(n))),n}_removeMarker(s){this._isClearing||this.markers.splice(this.markers.indexOf(s),1)}}},8437:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLine=t.DEFAULT_ATTR_DATA=void 0;let l=a(3734),u=a(511),r=a(643),h=a(482);t.DEFAULT_ATTR_DATA=Object.freeze(new l.AttributeData);let d=0;class _{constructor(e,i,s=!1){this.isWrapped=s,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*e);let n=i||u.CellData.fromCharData([0,r.NULL_CELL_CHAR,r.NULL_CELL_WIDTH,r.NULL_CELL_CODE]);for(let f=0;f>22,2097152&i?this._combined[e].charCodeAt(this._combined[e].length-1):s]}set(e,i){this._data[3*e+1]=i[r.CHAR_DATA_ATTR_INDEX],i[r.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=i[1],this._data[3*e+0]=2097152|e|i[r.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*e+0]=i[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|i[r.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(e){return this._data[3*e+0]>>22}hasWidth(e){return 12582912&this._data[3*e+0]}getFg(e){return this._data[3*e+1]}getBg(e){return this._data[3*e+2]}hasContent(e){return 4194303&this._data[3*e+0]}getCodePoint(e){let i=this._data[3*e+0];return 2097152&i?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&i}isCombined(e){return 2097152&this._data[3*e+0]}getString(e){let i=this._data[3*e+0];return 2097152&i?this._combined[e]:2097151&i?(0,h.stringFromCodePoint)(2097151&i):""}isProtected(e){return 536870912&this._data[3*e+2]}loadCell(e,i){return d=3*e,i.content=this._data[d+0],i.fg=this._data[d+1],i.bg=this._data[d+2],2097152&i.content&&(i.combinedData=this._combined[e]),268435456&i.bg&&(i.extended=this._extendedAttrs[e]),i}setCell(e,i){2097152&i.content&&(this._combined[e]=i.combinedData),268435456&i.bg&&(this._extendedAttrs[e]=i.extended),this._data[3*e+0]=i.content,this._data[3*e+1]=i.fg,this._data[3*e+2]=i.bg}setCellFromCodePoint(e,i,s,n,f,v){268435456&f&&(this._extendedAttrs[e]=v),this._data[3*e+0]=i|s<<22,this._data[3*e+1]=n,this._data[3*e+2]=f}addCodepointToCell(e,i){let s=this._data[3*e+0];2097152&s?this._combined[e]+=(0,h.stringFromCodePoint)(i):(2097151&s?(this._combined[e]=(0,h.stringFromCodePoint)(2097151&s)+(0,h.stringFromCodePoint)(i),s&=-2097152,s|=2097152):s=i|4194304,this._data[3*e+0]=s)}insertCells(e,i,s,n){if((e%=this.length)&&this.getWidth(e-1)===2&&this.setCellFromCodePoint(e-1,0,1,n?.fg||0,n?.bg||0,n?.extended||new l.ExtendedAttrs),i=0;--v)this.setCell(e+i+v,this.loadCell(e+v,f));for(let v=0;vthis.length){if(this._data.buffer.byteLength>=4*s)this._data=new Uint32Array(this._data.buffer,0,s);else{let n=new Uint32Array(s);n.set(this._data),this._data=n}for(let n=this.length;n=e&&delete this._combined[p]}let f=Object.keys(this._extendedAttrs);for(let v=0;v=e&&delete this._extendedAttrs[p]}}return this.length=e,4*s*2=0;--e)if(4194303&this._data[3*e+0])return e+(this._data[3*e+0]>>22);return 0}getNoBgTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0]||50331648&this._data[3*e+2])return e+(this._data[3*e+0]>>22);return 0}copyCellsFrom(e,i,s,n,f){let v=e._data;if(f)for(let S=n-1;S>=0;S--){for(let c=0;c<3;c++)this._data[3*(s+S)+c]=v[3*(i+S)+c];268435456&v[3*(i+S)+2]&&(this._extendedAttrs[s+S]=e._extendedAttrs[i+S])}else for(let S=0;S=i&&(this._combined[c-i+s]=e._combined[c])}}translateToString(e=!1,i=0,s=this.length){e&&(s=Math.min(s,this.getTrimmedLength()));let n="";for(;i>22||1}return n}}t.BufferLine=_},4841:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRangeLength=void 0,t.getRangeLength=function(a,l){if(a.start.y>a.end.y)throw new Error(`Buffer range end (${a.end.x}, ${a.end.y}) cannot be before start (${a.start.x}, ${a.start.y})`);return l*(a.end.y-a.start.y)+(a.end.x-a.start.x+1)}},4634:(R,t)=>{function a(l,u,r){if(u===l.length-1)return l[u].getTrimmedLength();let h=!l[u].hasContent(r-1)&&l[u].getWidth(r-1)===1,d=l[u+1].getWidth(0)===2;return h&&d?r-1:r}Object.defineProperty(t,"__esModule",{value:!0}),t.getWrappedLineTrimmedLength=t.reflowSmallerGetNewLineLengths=t.reflowLargerApplyNewLayout=t.reflowLargerCreateNewLayout=t.reflowLargerGetLinesToRemove=void 0,t.reflowLargerGetLinesToRemove=function(l,u,r,h,d){let _=[];for(let o=0;o=o&&h0&&(c>n||s[c].getTrimmedLength()===0);c--)S++;S>0&&(_.push(o+s.length-S),_.push(S)),o+=s.length-1}return _},t.reflowLargerCreateNewLayout=function(l,u){let r=[],h=0,d=u[h],_=0;for(let o=0;oa(l,s,u)).reduce((i,s)=>i+s),_=0,o=0,e=0;for(;ei&&(_-=i,o++);let s=l[o].getWidth(_-1)===2;s&&_--;let n=s?r-1:r;h.push(n),e+=n}return h},t.getWrappedLineTrimmedLength=a},5295:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferSet=void 0;let l=a(8460),u=a(844),r=a(9092);class h extends u.Disposable{constructor(_,o){super(),this._optionsService=_,this._bufferService=o,this._onBufferActivate=this.register(new l.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange("scrollback",()=>this.resize(this._bufferService.cols,this._bufferService.rows))),this.register(this._optionsService.onSpecificOptionChange("tabStopWidth",()=>this.setupTabStops()))}reset(){this._normal=new r.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new r.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(_){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(_),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(_,o){this._normal.resize(_,o),this._alt.resize(_,o),this.setupTabStops(_)}setupTabStops(_){this._normal.setupTabStops(_),this._alt.setupTabStops(_)}}t.BufferSet=h},511:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;let l=a(482),u=a(643),r=a(3734);class h extends r.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new r.ExtendedAttrs,this.combinedData=""}static fromCharData(_){let o=new h;return o.setFromCharData(_),o}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,l.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(_){this.fg=_[u.CHAR_DATA_ATTR_INDEX],this.bg=0;let o=!1;if(_[u.CHAR_DATA_CHAR_INDEX].length>2)o=!0;else if(_[u.CHAR_DATA_CHAR_INDEX].length===2){let e=_[u.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=e&&e<=56319){let i=_[u.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=i&&i<=57343?this.content=1024*(e-55296)+i-56320+65536|_[u.CHAR_DATA_WIDTH_INDEX]<<22:o=!0}else o=!0}else this.content=_[u.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|_[u.CHAR_DATA_WIDTH_INDEX]<<22;o&&(this.combinedData=_[u.CHAR_DATA_CHAR_INDEX],this.content=2097152|_[u.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=h},643:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},4863:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Marker=void 0;let l=a(8460),u=a(844);class r{get id(){return this._id}constructor(d){this.line=d,this.isDisposed=!1,this._disposables=[],this._id=r._nextId++,this._onDispose=this.register(new l.EventEmitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,u.disposeArray)(this._disposables),this._disposables.length=0)}register(d){return this._disposables.push(d),d}}t.Marker=r,r._nextId=1},7116:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_CHARSET=t.CHARSETS=void 0,t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={"`":"\u25C6",a:"\u2592",b:"\u2409",c:"\u240C",d:"\u240D",e:"\u240A",f:"\xB0",g:"\xB1",h:"\u2424",i:"\u240B",j:"\u2518",k:"\u2510",l:"\u250C",m:"\u2514",n:"\u253C",o:"\u23BA",p:"\u23BB",q:"\u2500",r:"\u23BC",s:"\u23BD",t:"\u251C",u:"\u2524",v:"\u2534",w:"\u252C",x:"\u2502",y:"\u2264",z:"\u2265","{":"\u03C0","|":"\u2260","}":"\xA3","~":"\xB7"},t.CHARSETS.A={"#":"\xA3"},t.CHARSETS.B=void 0,t.CHARSETS[4]={"#":"\xA3","@":"\xBE","[":"ij","\\":"\xBD","]":"|","{":"\xA8","|":"f","}":"\xBC","~":"\xB4"},t.CHARSETS.C=t.CHARSETS[5]={"[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"},t.CHARSETS.R={"#":"\xA3","@":"\xE0","[":"\xB0","\\":"\xE7","]":"\xA7","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xA8"},t.CHARSETS.Q={"@":"\xE0","[":"\xE2","\\":"\xE7","]":"\xEA","^":"\xEE","`":"\xF4","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xFB"},t.CHARSETS.K={"@":"\xA7","[":"\xC4","\\":"\xD6","]":"\xDC","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xDF"},t.CHARSETS.Y={"#":"\xA3","@":"\xA7","[":"\xB0","\\":"\xE7","]":"\xE9","`":"\xF9","{":"\xE0","|":"\xF2","}":"\xE8","~":"\xEC"},t.CHARSETS.E=t.CHARSETS[6]={"@":"\xC4","[":"\xC6","\\":"\xD8","]":"\xC5","^":"\xDC","`":"\xE4","{":"\xE6","|":"\xF8","}":"\xE5","~":"\xFC"},t.CHARSETS.Z={"#":"\xA3","@":"\xA7","[":"\xA1","\\":"\xD1","]":"\xBF","{":"\xB0","|":"\xF1","}":"\xE7"},t.CHARSETS.H=t.CHARSETS[7]={"@":"\xC9","[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"},t.CHARSETS["="]={"#":"\xF9","@":"\xE0","[":"\xE9","\\":"\xE7","]":"\xEA","^":"\xEE",_:"\xE8","`":"\xF4","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xFB"}},2584:(R,t)=>{var a,l,u;Object.defineProperty(t,"__esModule",{value:!0}),t.C1_ESCAPED=t.C1=t.C0=void 0,function(r){r.NUL="\0",r.SOH="",r.STX="",r.ETX="",r.EOT="",r.ENQ="",r.ACK="",r.BEL="\x07",r.BS="\b",r.HT=" ",r.LF=` -`,r.VT="\v",r.FF="\f",r.CR="\r",r.SO="",r.SI="",r.DLE="",r.DC1="",r.DC2="",r.DC3="",r.DC4="",r.NAK="",r.SYN="",r.ETB="",r.CAN="",r.EM="",r.SUB="",r.ESC="\x1B",r.FS="",r.GS="",r.RS="",r.US="",r.SP=" ",r.DEL="\x7F"}(a||(t.C0=a={})),function(r){r.PAD="\x80",r.HOP="\x81",r.BPH="\x82",r.NBH="\x83",r.IND="\x84",r.NEL="\x85",r.SSA="\x86",r.ESA="\x87",r.HTS="\x88",r.HTJ="\x89",r.VTS="\x8A",r.PLD="\x8B",r.PLU="\x8C",r.RI="\x8D",r.SS2="\x8E",r.SS3="\x8F",r.DCS="\x90",r.PU1="\x91",r.PU2="\x92",r.STS="\x93",r.CCH="\x94",r.MW="\x95",r.SPA="\x96",r.EPA="\x97",r.SOS="\x98",r.SGCI="\x99",r.SCI="\x9A",r.CSI="\x9B",r.ST="\x9C",r.OSC="\x9D",r.PM="\x9E",r.APC="\x9F"}(l||(t.C1=l={})),function(r){r.ST=`${a.ESC}\\`}(u||(t.C1_ESCAPED=u={}))},7399:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.evaluateKeyboardEvent=void 0;let l=a(2584),u={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};t.evaluateKeyboardEvent=function(r,h,d,_){let o={type:0,cancel:!1,key:void 0},e=(r.shiftKey?1:0)|(r.altKey?2:0)|(r.ctrlKey?4:0)|(r.metaKey?8:0);switch(r.keyCode){case 0:r.key==="UIKeyInputUpArrow"?o.key=h?l.C0.ESC+"OA":l.C0.ESC+"[A":r.key==="UIKeyInputLeftArrow"?o.key=h?l.C0.ESC+"OD":l.C0.ESC+"[D":r.key==="UIKeyInputRightArrow"?o.key=h?l.C0.ESC+"OC":l.C0.ESC+"[C":r.key==="UIKeyInputDownArrow"&&(o.key=h?l.C0.ESC+"OB":l.C0.ESC+"[B");break;case 8:if(r.altKey){o.key=l.C0.ESC+l.C0.DEL;break}o.key=l.C0.DEL;break;case 9:if(r.shiftKey){o.key=l.C0.ESC+"[Z";break}o.key=l.C0.HT,o.cancel=!0;break;case 13:o.key=r.altKey?l.C0.ESC+l.C0.CR:l.C0.CR,o.cancel=!0;break;case 27:o.key=l.C0.ESC,r.altKey&&(o.key=l.C0.ESC+l.C0.ESC),o.cancel=!0;break;case 37:if(r.metaKey)break;e?(o.key=l.C0.ESC+"[1;"+(e+1)+"D",o.key===l.C0.ESC+"[1;3D"&&(o.key=l.C0.ESC+(d?"b":"[1;5D"))):o.key=h?l.C0.ESC+"OD":l.C0.ESC+"[D";break;case 39:if(r.metaKey)break;e?(o.key=l.C0.ESC+"[1;"+(e+1)+"C",o.key===l.C0.ESC+"[1;3C"&&(o.key=l.C0.ESC+(d?"f":"[1;5C"))):o.key=h?l.C0.ESC+"OC":l.C0.ESC+"[C";break;case 38:if(r.metaKey)break;e?(o.key=l.C0.ESC+"[1;"+(e+1)+"A",d||o.key!==l.C0.ESC+"[1;3A"||(o.key=l.C0.ESC+"[1;5A")):o.key=h?l.C0.ESC+"OA":l.C0.ESC+"[A";break;case 40:if(r.metaKey)break;e?(o.key=l.C0.ESC+"[1;"+(e+1)+"B",d||o.key!==l.C0.ESC+"[1;3B"||(o.key=l.C0.ESC+"[1;5B")):o.key=h?l.C0.ESC+"OB":l.C0.ESC+"[B";break;case 45:r.shiftKey||r.ctrlKey||(o.key=l.C0.ESC+"[2~");break;case 46:o.key=e?l.C0.ESC+"[3;"+(e+1)+"~":l.C0.ESC+"[3~";break;case 36:o.key=e?l.C0.ESC+"[1;"+(e+1)+"H":h?l.C0.ESC+"OH":l.C0.ESC+"[H";break;case 35:o.key=e?l.C0.ESC+"[1;"+(e+1)+"F":h?l.C0.ESC+"OF":l.C0.ESC+"[F";break;case 33:r.shiftKey?o.type=2:r.ctrlKey?o.key=l.C0.ESC+"[5;"+(e+1)+"~":o.key=l.C0.ESC+"[5~";break;case 34:r.shiftKey?o.type=3:r.ctrlKey?o.key=l.C0.ESC+"[6;"+(e+1)+"~":o.key=l.C0.ESC+"[6~";break;case 112:o.key=e?l.C0.ESC+"[1;"+(e+1)+"P":l.C0.ESC+"OP";break;case 113:o.key=e?l.C0.ESC+"[1;"+(e+1)+"Q":l.C0.ESC+"OQ";break;case 114:o.key=e?l.C0.ESC+"[1;"+(e+1)+"R":l.C0.ESC+"OR";break;case 115:o.key=e?l.C0.ESC+"[1;"+(e+1)+"S":l.C0.ESC+"OS";break;case 116:o.key=e?l.C0.ESC+"[15;"+(e+1)+"~":l.C0.ESC+"[15~";break;case 117:o.key=e?l.C0.ESC+"[17;"+(e+1)+"~":l.C0.ESC+"[17~";break;case 118:o.key=e?l.C0.ESC+"[18;"+(e+1)+"~":l.C0.ESC+"[18~";break;case 119:o.key=e?l.C0.ESC+"[19;"+(e+1)+"~":l.C0.ESC+"[19~";break;case 120:o.key=e?l.C0.ESC+"[20;"+(e+1)+"~":l.C0.ESC+"[20~";break;case 121:o.key=e?l.C0.ESC+"[21;"+(e+1)+"~":l.C0.ESC+"[21~";break;case 122:o.key=e?l.C0.ESC+"[23;"+(e+1)+"~":l.C0.ESC+"[23~";break;case 123:o.key=e?l.C0.ESC+"[24;"+(e+1)+"~":l.C0.ESC+"[24~";break;default:if(!r.ctrlKey||r.shiftKey||r.altKey||r.metaKey)if(d&&!_||!r.altKey||r.metaKey)!d||r.altKey||r.ctrlKey||r.shiftKey||!r.metaKey?r.key&&!r.ctrlKey&&!r.altKey&&!r.metaKey&&r.keyCode>=48&&r.key.length===1?o.key=r.key:r.key&&r.ctrlKey&&(r.key==="_"&&(o.key=l.C0.US),r.key==="@"&&(o.key=l.C0.NUL)):r.keyCode===65&&(o.type=1);else{let i=u[r.keyCode],s=i?.[r.shiftKey?1:0];if(s)o.key=l.C0.ESC+s;else if(r.keyCode>=65&&r.keyCode<=90){let n=r.ctrlKey?r.keyCode-64:r.keyCode+32,f=String.fromCharCode(n);r.shiftKey&&(f=f.toUpperCase()),o.key=l.C0.ESC+f}else if(r.keyCode===32)o.key=l.C0.ESC+(r.ctrlKey?l.C0.NUL:" ");else if(r.key==="Dead"&&r.code.startsWith("Key")){let n=r.code.slice(3,4);r.shiftKey||(n=n.toLowerCase()),o.key=l.C0.ESC+n,o.cancel=!0}}else r.keyCode>=65&&r.keyCode<=90?o.key=String.fromCharCode(r.keyCode-64):r.keyCode===32?o.key=l.C0.NUL:r.keyCode>=51&&r.keyCode<=55?o.key=String.fromCharCode(r.keyCode-51+27):r.keyCode===56?o.key=l.C0.DEL:r.keyCode===219?o.key=l.C0.ESC:r.keyCode===220?o.key=l.C0.FS:r.keyCode===221&&(o.key=l.C0.GS)}return o}},482:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(a){return a>65535?(a-=65536,String.fromCharCode(55296+(a>>10))+String.fromCharCode(a%1024+56320)):String.fromCharCode(a)},t.utf32ToString=function(a,l=0,u=a.length){let r="";for(let h=l;h65535?(d-=65536,r+=String.fromCharCode(55296+(d>>10))+String.fromCharCode(d%1024+56320)):r+=String.fromCharCode(d)}return r},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(a,l){let u=a.length;if(!u)return 0;let r=0,h=0;if(this._interim){let d=a.charCodeAt(h++);56320<=d&&d<=57343?l[r++]=1024*(this._interim-55296)+d-56320+65536:(l[r++]=this._interim,l[r++]=d),this._interim=0}for(let d=h;d=u)return this._interim=_,r;let o=a.charCodeAt(d);56320<=o&&o<=57343?l[r++]=1024*(_-55296)+o-56320+65536:(l[r++]=_,l[r++]=o)}else _!==65279&&(l[r++]=_)}return r}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(a,l){let u=a.length;if(!u)return 0;let r,h,d,_,o=0,e=0,i=0;if(this.interim[0]){let f=!1,v=this.interim[0];v&=(224&v)==192?31:(240&v)==224?15:7;let p,S=0;for(;(p=63&this.interim[++S])&&S<4;)v<<=6,v|=p;let c=(224&this.interim[0])==192?2:(240&this.interim[0])==224?3:4,g=c-S;for(;i=u)return 0;if(p=a[i++],(192&p)!=128){i--,f=!0;break}this.interim[S++]=p,v<<=6,v|=63&p}f||(c===2?v<128?i--:l[o++]=v:c===3?v<2048||v>=55296&&v<=57343||v===65279||(l[o++]=v):v<65536||v>1114111||(l[o++]=v)),this.interim.fill(0)}let s=u-4,n=i;for(;n=u)return this.interim[0]=r,o;if(h=a[n++],(192&h)!=128){n--;continue}if(e=(31&r)<<6|63&h,e<128){n--;continue}l[o++]=e}else if((240&r)==224){if(n>=u)return this.interim[0]=r,o;if(h=a[n++],(192&h)!=128){n--;continue}if(n>=u)return this.interim[0]=r,this.interim[1]=h,o;if(d=a[n++],(192&d)!=128){n--;continue}if(e=(15&r)<<12|(63&h)<<6|63&d,e<2048||e>=55296&&e<=57343||e===65279)continue;l[o++]=e}else if((248&r)==240){if(n>=u)return this.interim[0]=r,o;if(h=a[n++],(192&h)!=128){n--;continue}if(n>=u)return this.interim[0]=r,this.interim[1]=h,o;if(d=a[n++],(192&d)!=128){n--;continue}if(n>=u)return this.interim[0]=r,this.interim[1]=h,this.interim[2]=d,o;if(_=a[n++],(192&_)!=128){n--;continue}if(e=(7&r)<<18|(63&h)<<12|(63&d)<<6|63&_,e<65536||e>1114111)continue;l[o++]=e}}return o}}},225:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV6=void 0;let a=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],l=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],u;t.UnicodeV6=class{constructor(){if(this.version="6",!u){u=new Uint8Array(65536),u.fill(1),u[0]=0,u.fill(0,1,32),u.fill(0,127,160),u.fill(2,4352,4448),u[9001]=2,u[9002]=2,u.fill(2,11904,42192),u[12351]=1,u.fill(2,44032,55204),u.fill(2,63744,64256),u.fill(2,65040,65050),u.fill(2,65072,65136),u.fill(2,65280,65377),u.fill(2,65504,65511);for(let r=0;rd[e][1])return!1;for(;e>=o;)if(_=o+e>>1,h>d[_][1])o=_+1;else{if(!(h=131072&&r<=196605||r>=196608&&r<=262141?2:1}}},5981:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WriteBuffer=void 0;let l=a(8460),u=a(844);class r extends u.Disposable{constructor(d){super(),this._action=d,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new l.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(d,_){if(_!==void 0&&this._syncCalls>_)return void(this._syncCalls=0);if(this._pendingData+=d.length,this._writeBuffer.push(d),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let o;for(this._isSyncWriting=!0;o=this._writeBuffer.shift();){this._action(o);let e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(d,_){if(this._pendingData>5e7)throw new Error("write data discarded, use flow control to avoid losing data");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=d.length,this._writeBuffer.push(d),this._callbacks.push(_),void this._innerWrite();setTimeout(()=>this._innerWrite())}this._pendingData+=d.length,this._writeBuffer.push(d),this._callbacks.push(_)}_innerWrite(d=0,_=!0){let o=d||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){let e=this._writeBuffer[this._bufferOffset],i=this._action(e,_);if(i){let n=f=>Date.now()-o>=12?setTimeout(()=>this._innerWrite(0,f)):this._innerWrite(o,f);return void i.catch(f=>(queueMicrotask(()=>{throw f}),Promise.resolve(!1))).then(n)}let s=this._callbacks[this._bufferOffset];if(s&&s(),this._bufferOffset++,this._pendingData-=e.length,Date.now()-o>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout(()=>this._innerWrite())):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}t.WriteBuffer=r},5941:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.toRgbString=t.parseColor=void 0;let a=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,l=/^[\da-f]+$/;function u(r,h){let d=r.toString(16),_=d.length<2?"0"+d:d;switch(h){case 4:return d[0];case 8:return _;case 12:return(_+_).slice(0,3);default:return _+_}}t.parseColor=function(r){if(!r)return;let h=r.toLowerCase();if(h.indexOf("rgb:")===0){h=h.slice(4);let d=a.exec(h);if(d){let _=d[1]?15:d[4]?255:d[7]?4095:65535;return[Math.round(parseInt(d[1]||d[4]||d[7]||d[10],16)/_*255),Math.round(parseInt(d[2]||d[5]||d[8]||d[11],16)/_*255),Math.round(parseInt(d[3]||d[6]||d[9]||d[12],16)/_*255)]}}else if(h.indexOf("#")===0&&(h=h.slice(1),l.exec(h)&&[3,6,9,12].includes(h.length))){let d=h.length/3,_=[0,0,0];for(let o=0;o<3;++o){let e=parseInt(h.slice(d*o,d*o+d),16);_[o]=d===1?e<<4:d===2?e:d===3?e>>4:e>>8}return _}},t.toRgbString=function(r,h=16){let[d,_,o]=r;return`rgb:${u(d,h)}/${u(_,h)}/${u(o,h)}`}},5770:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PAYLOAD_LIMIT=void 0,t.PAYLOAD_LIMIT=1e7},6351:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DcsHandler=t.DcsParser=void 0;let l=a(482),u=a(8742),r=a(5770),h=[];t.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=h,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=h}registerHandler(_,o){this._handlers[_]===void 0&&(this._handlers[_]=[]);let e=this._handlers[_];return e.push(o),{dispose:()=>{let i=e.indexOf(o);i!==-1&&e.splice(i,1)}}}clearHandler(_){this._handlers[_]&&delete this._handlers[_]}setHandlerFallback(_){this._handlerFb=_}reset(){if(this._active.length)for(let _=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;_>=0;--_)this._active[_].unhook(!1);this._stack.paused=!1,this._active=h,this._ident=0}hook(_,o){if(this.reset(),this._ident=_,this._active=this._handlers[_]||h,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(o);else this._handlerFb(this._ident,"HOOK",o)}put(_,o,e){if(this._active.length)for(let i=this._active.length-1;i>=0;i--)this._active[i].put(_,o,e);else this._handlerFb(this._ident,"PUT",(0,l.utf32ToString)(_,o,e))}unhook(_,o=!0){if(this._active.length){let e=!1,i=this._active.length-1,s=!1;if(this._stack.paused&&(i=this._stack.loopPosition-1,e=o,s=this._stack.fallThrough,this._stack.paused=!1),!s&&e===!1){for(;i>=0&&(e=this._active[i].unhook(_),e!==!0);i--)if(e instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=i,this._stack.fallThrough=!1,e;i--}for(;i>=0;i--)if(e=this._active[i].unhook(!1),e instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=i,this._stack.fallThrough=!0,e}else this._handlerFb(this._ident,"UNHOOK",_);this._active=h,this._ident=0}};let d=new u.Params;d.addParam(0),t.DcsHandler=class{constructor(_){this._handler=_,this._data="",this._params=d,this._hitLimit=!1}hook(_){this._params=_.length>1||_.params[0]?_.clone():d,this._data="",this._hitLimit=!1}put(_,o,e){this._hitLimit||(this._data+=(0,l.utf32ToString)(_,o,e),this._data.length>r.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}unhook(_){let o=!1;if(this._hitLimit)o=!1;else if(_&&(o=this._handler(this._data,this._params),o instanceof Promise))return o.then(e=>(this._params=d,this._data="",this._hitLimit=!1,e));return this._params=d,this._data="",this._hitLimit=!1,o}}},2015:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceParser=t.VT500_TRANSITION_TABLE=t.TransitionTable=void 0;let l=a(844),u=a(8742),r=a(6242),h=a(6351);class d{constructor(i){this.table=new Uint8Array(i)}setDefault(i,s){this.table.fill(i<<4|s)}add(i,s,n,f){this.table[s<<8|i]=n<<4|f}addMany(i,s,n,f){for(let v=0;vc),s=(S,c)=>i.slice(S,c),n=s(32,127),f=s(0,24);f.push(25),f.push.apply(f,s(28,32));let v=s(0,14),p;for(p in e.setDefault(1,0),e.addMany(n,0,2,0),v)e.addMany([24,26,153,154],p,3,0),e.addMany(s(128,144),p,3,0),e.addMany(s(144,152),p,3,0),e.add(156,p,0,0),e.add(27,p,11,1),e.add(157,p,4,8),e.addMany([152,158,159],p,0,7),e.add(155,p,11,3),e.add(144,p,11,9);return e.addMany(f,0,3,0),e.addMany(f,1,3,1),e.add(127,1,0,1),e.addMany(f,8,0,8),e.addMany(f,3,3,3),e.add(127,3,0,3),e.addMany(f,4,3,4),e.add(127,4,0,4),e.addMany(f,6,3,6),e.addMany(f,5,3,5),e.add(127,5,0,5),e.addMany(f,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(n,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(s(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(n,7,0,7),e.addMany(f,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(s(64,127),3,7,0),e.addMany(s(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(s(48,60),4,8,4),e.addMany(s(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(s(32,64),6,0,6),e.add(127,6,0,6),e.addMany(s(64,127),6,0,0),e.addMany(s(32,48),3,9,5),e.addMany(s(32,48),5,9,5),e.addMany(s(48,64),5,0,6),e.addMany(s(64,127),5,7,0),e.addMany(s(32,48),4,9,5),e.addMany(s(32,48),1,9,2),e.addMany(s(32,48),2,9,2),e.addMany(s(48,127),2,10,0),e.addMany(s(48,80),1,10,0),e.addMany(s(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(s(96,127),1,10,0),e.add(80,1,11,9),e.addMany(f,9,0,9),e.add(127,9,0,9),e.addMany(s(28,32),9,0,9),e.addMany(s(32,48),9,9,12),e.addMany(s(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(f,11,0,11),e.addMany(s(32,128),11,0,11),e.addMany(s(28,32),11,0,11),e.addMany(f,10,0,10),e.add(127,10,0,10),e.addMany(s(28,32),10,0,10),e.addMany(s(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(s(32,48),10,9,12),e.addMany(f,12,0,12),e.add(127,12,0,12),e.addMany(s(28,32),12,0,12),e.addMany(s(32,48),12,9,12),e.addMany(s(48,64),12,0,11),e.addMany(s(64,127),12,12,13),e.addMany(s(64,127),10,12,13),e.addMany(s(64,127),9,12,13),e.addMany(f,13,13,13),e.addMany(n,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(_,0,2,0),e.add(_,8,5,8),e.add(_,6,0,6),e.add(_,11,0,11),e.add(_,13,13,13),e}();class o extends l.Disposable{constructor(i=t.VT500_TRANSITION_TABLE){super(),this._transitions=i,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new u.Params,this._params.addParam(0),this._collect=0,this.precedingCodepoint=0,this._printHandlerFb=(s,n,f)=>{},this._executeHandlerFb=s=>{},this._csiHandlerFb=(s,n)=>{},this._escHandlerFb=s=>{},this._errorHandlerFb=s=>s,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,l.toDisposable)(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this.register(new r.OscParser),this._dcsParser=this.register(new h.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},()=>!0)}_identifier(i,s=[64,126]){let n=0;if(i.prefix){if(i.prefix.length>1)throw new Error("only one byte as prefix supported");if(n=i.prefix.charCodeAt(0),n&&60>n||n>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(i.intermediates){if(i.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let v=0;vp||p>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");n<<=8,n|=p}}if(i.final.length!==1)throw new Error("final must be a single byte");let f=i.final.charCodeAt(0);if(s[0]>f||f>s[1])throw new Error(`final must be in range ${s[0]} .. ${s[1]}`);return n<<=8,n|=f,n}identToString(i){let s=[];for(;i;)s.push(String.fromCharCode(255&i)),i>>=8;return s.reverse().join("")}setPrintHandler(i){this._printHandler=i}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(i,s){let n=this._identifier(i,[48,126]);this._escHandlers[n]===void 0&&(this._escHandlers[n]=[]);let f=this._escHandlers[n];return f.push(s),{dispose:()=>{let v=f.indexOf(s);v!==-1&&f.splice(v,1)}}}clearEscHandler(i){this._escHandlers[this._identifier(i,[48,126])]&&delete this._escHandlers[this._identifier(i,[48,126])]}setEscHandlerFallback(i){this._escHandlerFb=i}setExecuteHandler(i,s){this._executeHandlers[i.charCodeAt(0)]=s}clearExecuteHandler(i){this._executeHandlers[i.charCodeAt(0)]&&delete this._executeHandlers[i.charCodeAt(0)]}setExecuteHandlerFallback(i){this._executeHandlerFb=i}registerCsiHandler(i,s){let n=this._identifier(i);this._csiHandlers[n]===void 0&&(this._csiHandlers[n]=[]);let f=this._csiHandlers[n];return f.push(s),{dispose:()=>{let v=f.indexOf(s);v!==-1&&f.splice(v,1)}}}clearCsiHandler(i){this._csiHandlers[this._identifier(i)]&&delete this._csiHandlers[this._identifier(i)]}setCsiHandlerFallback(i){this._csiHandlerFb=i}registerDcsHandler(i,s){return this._dcsParser.registerHandler(this._identifier(i),s)}clearDcsHandler(i){this._dcsParser.clearHandler(this._identifier(i))}setDcsHandlerFallback(i){this._dcsParser.setHandlerFallback(i)}registerOscHandler(i,s){return this._oscParser.registerHandler(i,s)}clearOscHandler(i){this._oscParser.clearHandler(i)}setOscHandlerFallback(i){this._oscParser.setHandlerFallback(i)}setErrorHandler(i){this._errorHandler=i}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0,this._parseStack.state!==0&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(i,s,n,f,v){this._parseStack.state=i,this._parseStack.handlers=s,this._parseStack.handlerPos=n,this._parseStack.transition=f,this._parseStack.chunkPos=v}parse(i,s,n){let f,v=0,p=0,S=0;if(this._parseStack.state)if(this._parseStack.state===2)this._parseStack.state=0,S=this._parseStack.chunkPos+1;else{if(n===void 0||this._parseStack.state===1)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");let c=this._parseStack.handlers,g=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(n===!1&&g>-1){for(;g>=0&&(f=c[g](this._params),f!==!0);g--)if(f instanceof Promise)return this._parseStack.handlerPos=g,f}this._parseStack.handlers=[];break;case 4:if(n===!1&&g>-1){for(;g>=0&&(f=c[g](),f!==!0);g--)if(f instanceof Promise)return this._parseStack.handlerPos=g,f}this._parseStack.handlers=[];break;case 6:if(v=i[this._parseStack.chunkPos],f=this._dcsParser.unhook(v!==24&&v!==26,n),f)return f;v===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(v=i[this._parseStack.chunkPos],f=this._oscParser.end(v!==24&&v!==26,n),f)return f;v===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,S=this._parseStack.chunkPos+1,this.precedingCodepoint=0,this.currentState=15&this._parseStack.transition}for(let c=S;c>4){case 2:for(let L=c+1;;++L){if(L>=s||(v=i[L])<32||v>126&&v<_){this._printHandler(i,c,L),c=L-1;break}if(++L>=s||(v=i[L])<32||v>126&&v<_){this._printHandler(i,c,L),c=L-1;break}if(++L>=s||(v=i[L])<32||v>126&&v<_){this._printHandler(i,c,L),c=L-1;break}if(++L>=s||(v=i[L])<32||v>126&&v<_){this._printHandler(i,c,L),c=L-1;break}}break;case 3:this._executeHandlers[v]?this._executeHandlers[v]():this._executeHandlerFb(v),this.precedingCodepoint=0;break;case 0:break;case 1:if(this._errorHandler({position:c,code:v,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:let g=this._csiHandlers[this._collect<<8|v],w=g?g.length-1:-1;for(;w>=0&&(f=g[w](this._params),f!==!0);w--)if(f instanceof Promise)return this._preserveStack(3,g,w,p,c),f;w<0&&this._csiHandlerFb(this._collect<<8|v,this._params),this.precedingCodepoint=0;break;case 8:do switch(v){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(v-48)}while(++c47&&v<60);c--;break;case 9:this._collect<<=8,this._collect|=v;break;case 10:let C=this._escHandlers[this._collect<<8|v],m=C?C.length-1:-1;for(;m>=0&&(f=C[m](),f!==!0);m--)if(f instanceof Promise)return this._preserveStack(4,C,m,p,c),f;m<0&&this._escHandlerFb(this._collect<<8|v),this.precedingCodepoint=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|v,this._params);break;case 13:for(let L=c+1;;++L)if(L>=s||(v=i[L])===24||v===26||v===27||v>127&&v<_){this._dcsParser.put(i,c,L),c=L-1;break}break;case 14:if(f=this._dcsParser.unhook(v!==24&&v!==26),f)return this._preserveStack(6,[],0,p,c),f;v===27&&(p|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0;break;case 4:this._oscParser.start();break;case 5:for(let L=c+1;;L++)if(L>=s||(v=i[L])<32||v>127&&v<_){this._oscParser.put(i,c,L),c=L-1;break}break;case 6:if(f=this._oscParser.end(v!==24&&v!==26),f)return this._preserveStack(5,[],0,p,c),f;v===27&&(p|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0}this.currentState=15&p}}}t.EscapeSequenceParser=o},6242:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OscHandler=t.OscParser=void 0;let l=a(5770),u=a(482),r=[];t.OscParser=class{constructor(){this._state=0,this._active=r,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(h,d){this._handlers[h]===void 0&&(this._handlers[h]=[]);let _=this._handlers[h];return _.push(d),{dispose:()=>{let o=_.indexOf(d);o!==-1&&_.splice(o,1)}}}clearHandler(h){this._handlers[h]&&delete this._handlers[h]}setHandlerFallback(h){this._handlerFb=h}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=r}reset(){if(this._state===2)for(let h=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;h>=0;--h)this._active[h].end(!1);this._stack.paused=!1,this._active=r,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||r,this._active.length)for(let h=this._active.length-1;h>=0;h--)this._active[h].start();else this._handlerFb(this._id,"START")}_put(h,d,_){if(this._active.length)for(let o=this._active.length-1;o>=0;o--)this._active[o].put(h,d,_);else this._handlerFb(this._id,"PUT",(0,u.utf32ToString)(h,d,_))}start(){this.reset(),this._state=1}put(h,d,_){if(this._state!==3){if(this._state===1)for(;d<_;){let o=h[d++];if(o===59){this._state=2,this._start();break}if(o<48||570&&this._put(h,d,_)}}end(h,d=!0){if(this._state!==0){if(this._state!==3)if(this._state===1&&this._start(),this._active.length){let _=!1,o=this._active.length-1,e=!1;if(this._stack.paused&&(o=this._stack.loopPosition-1,_=d,e=this._stack.fallThrough,this._stack.paused=!1),!e&&_===!1){for(;o>=0&&(_=this._active[o].end(h),_!==!0);o--)if(_ instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=o,this._stack.fallThrough=!1,_;o--}for(;o>=0;o--)if(_=this._active[o].end(!1),_ instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=o,this._stack.fallThrough=!0,_}else this._handlerFb(this._id,"END",h);this._active=r,this._id=-1,this._state=0}}},t.OscHandler=class{constructor(h){this._handler=h,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(h,d,_){this._hitLimit||(this._data+=(0,u.utf32ToString)(h,d,_),this._data.length>l.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}end(h){let d=!1;if(this._hitLimit)d=!1;else if(h&&(d=this._handler(this._data),d instanceof Promise))return d.then(_=>(this._data="",this._hitLimit=!1,_));return this._data="",this._hitLimit=!1,d}}},8742:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Params=void 0;let a=2147483647;class l{static fromArray(r){let h=new l;if(!r.length)return h;for(let d=Array.isArray(r[0])?1:0;d256)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(r),this.length=0,this._subParams=new Int32Array(h),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(r),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){let r=new l(this.maxLength,this.maxSubParamsLength);return r.params.set(this.params),r.length=this.length,r._subParams.set(this._subParams),r._subParamsLength=this._subParamsLength,r._subParamsIdx.set(this._subParamsIdx),r._rejectDigits=this._rejectDigits,r._rejectSubDigits=this._rejectSubDigits,r._digitIsSub=this._digitIsSub,r}toArray(){let r=[];for(let h=0;h>8,_=255&this._subParamsIdx[h];_-d>0&&r.push(Array.prototype.slice.call(this._subParams,d,_))}return r}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(r){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(r<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=r>a?a:r}}addSubParam(r){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(r<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=r>a?a:r,this._subParamsIdx[this.length-1]++}}hasSubParams(r){return(255&this._subParamsIdx[r])-(this._subParamsIdx[r]>>8)>0}getSubParams(r){let h=this._subParamsIdx[r]>>8,d=255&this._subParamsIdx[r];return d-h>0?this._subParams.subarray(h,d):null}getSubParamsAll(){let r={};for(let h=0;h>8,_=255&this._subParamsIdx[h];_-d>0&&(r[h]=this._subParams.slice(d,_))}return r}addDigit(r){let h;if(this._rejectDigits||!(h=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let d=this._digitIsSub?this._subParams:this.params,_=d[h-1];d[h-1]=~_?Math.min(10*_+r,a):r}}t.Params=l},5741:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AddonManager=void 0,t.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let a=this._addons.length-1;a>=0;a--)this._addons[a].instance.dispose()}loadAddon(a,l){let u={instance:l,dispose:l.dispose,isDisposed:!1};this._addons.push(u),l.dispose=()=>this._wrappedAddonDispose(u),l.activate(a)}_wrappedAddonDispose(a){if(a.isDisposed)return;let l=-1;for(let u=0;u{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferApiView=void 0;let l=a(3785),u=a(511);t.BufferApiView=class{constructor(r,h){this._buffer=r,this.type=h}init(r){return this._buffer=r,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(r){let h=this._buffer.lines.get(r);if(h)return new l.BufferLineApiView(h)}getNullCell(){return new u.CellData}}},3785:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLineApiView=void 0;let l=a(511);t.BufferLineApiView=class{constructor(u){this._line=u}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(u,r){if(!(u<0||u>=this._line.length))return r?(this._line.loadCell(u,r),r):this._line.loadCell(u,new l.CellData)}translateToString(u,r,h){return this._line.translateToString(u,r,h)}}},8285:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferNamespaceApi=void 0;let l=a(8771),u=a(8460),r=a(844);class h extends r.Disposable{constructor(_){super(),this._core=_,this._onBufferChange=this.register(new u.EventEmitter),this.onBufferChange=this._onBufferChange.event,this._normal=new l.BufferApiView(this._core.buffers.normal,"normal"),this._alternate=new l.BufferApiView(this._core.buffers.alt,"alternate"),this._core.buffers.onBufferActivate(()=>this._onBufferChange.fire(this.active))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error("Active buffer is neither normal nor alternate")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}t.BufferNamespaceApi=h},7975:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ParserApi=void 0,t.ParserApi=class{constructor(a){this._core=a}registerCsiHandler(a,l){return this._core.registerCsiHandler(a,u=>l(u.toArray()))}addCsiHandler(a,l){return this.registerCsiHandler(a,l)}registerDcsHandler(a,l){return this._core.registerDcsHandler(a,(u,r)=>l(u,r.toArray()))}addDcsHandler(a,l){return this.registerDcsHandler(a,l)}registerEscHandler(a,l){return this._core.registerEscHandler(a,l)}addEscHandler(a,l){return this.registerEscHandler(a,l)}registerOscHandler(a,l){return this._core.registerOscHandler(a,l)}addOscHandler(a,l){return this.registerOscHandler(a,l)}}},7090:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeApi=void 0,t.UnicodeApi=class{constructor(a){this._core=a}register(a){this._core.unicodeService.register(a)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(a){this._core.unicodeService.activeVersion=a}}},744:function(R,t,a){var l=this&&this.__decorate||function(e,i,s,n){var f,v=arguments.length,p=v<3?i:n===null?n=Object.getOwnPropertyDescriptor(i,s):n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")p=Reflect.decorate(e,i,s,n);else for(var S=e.length-1;S>=0;S--)(f=e[S])&&(p=(v<3?f(p):v>3?f(i,s,p):f(i,s))||p);return v>3&&p&&Object.defineProperty(i,s,p),p},u=this&&this.__param||function(e,i){return function(s,n){i(s,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferService=t.MINIMUM_ROWS=t.MINIMUM_COLS=void 0;let r=a(8460),h=a(844),d=a(5295),_=a(2585);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;let o=t.BufferService=class extends h.Disposable{get buffer(){return this.buffers.active}constructor(e){super(),this.isUserScrolling=!1,this._onResize=this.register(new r.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new r.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,t.MINIMUM_COLS),this.rows=Math.max(e.rawOptions.rows||0,t.MINIMUM_ROWS),this.buffers=this.register(new d.BufferSet(e,this))}resize(e,i){this.cols=e,this.rows=i,this.buffers.resize(e,i),this._onResize.fire({cols:e,rows:i})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,i=!1){let s=this.buffer,n;n=this._cachedBlankLine,n&&n.length===this.cols&&n.getFg(0)===e.fg&&n.getBg(0)===e.bg||(n=s.getBlankLine(e,i),this._cachedBlankLine=n),n.isWrapped=i;let f=s.ybase+s.scrollTop,v=s.ybase+s.scrollBottom;if(s.scrollTop===0){let p=s.lines.isFull;v===s.lines.length-1?p?s.lines.recycle().copyFrom(n):s.lines.push(n.clone()):s.lines.splice(v+1,0,n.clone()),p?this.isUserScrolling&&(s.ydisp=Math.max(s.ydisp-1,0)):(s.ybase++,this.isUserScrolling||s.ydisp++)}else{let p=v-f+1;s.lines.shiftElements(f+1,p-1,-1),s.lines.set(v,n.clone())}this.isUserScrolling||(s.ydisp=s.ybase),this._onScroll.fire(s.ydisp)}scrollLines(e,i,s){let n=this.buffer;if(e<0){if(n.ydisp===0)return;this.isUserScrolling=!0}else e+n.ydisp>=n.ybase&&(this.isUserScrolling=!1);let f=n.ydisp;n.ydisp=Math.max(Math.min(n.ydisp+e,n.ybase),0),f!==n.ydisp&&(i||this._onScroll.fire(n.ydisp))}};t.BufferService=o=l([u(0,_.IOptionsService)],o)},7994:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CharsetService=void 0,t.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(a){this.glevel=a,this.charset=this._charsets[a]}setgCharset(a,l){this._charsets[a]=l,this.glevel===a&&(this.charset=l)}}},1753:function(R,t,a){var l=this&&this.__decorate||function(n,f,v,p){var S,c=arguments.length,g=c<3?f:p===null?p=Object.getOwnPropertyDescriptor(f,v):p;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")g=Reflect.decorate(n,f,v,p);else for(var w=n.length-1;w>=0;w--)(S=n[w])&&(g=(c<3?S(g):c>3?S(f,v,g):S(f,v))||g);return c>3&&g&&Object.defineProperty(f,v,g),g},u=this&&this.__param||function(n,f){return function(v,p){f(v,p,n)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreMouseService=void 0;let r=a(2585),h=a(8460),d=a(844),_={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:n=>n.button!==4&&n.action===1&&(n.ctrl=!1,n.alt=!1,n.shift=!1,!0)},VT200:{events:19,restrict:n=>n.action!==32},DRAG:{events:23,restrict:n=>n.action!==32||n.button!==3},ANY:{events:31,restrict:n=>!0}};function o(n,f){let v=(n.ctrl?16:0)|(n.shift?4:0)|(n.alt?8:0);return n.button===4?(v|=64,v|=n.action):(v|=3&n.button,4&n.button&&(v|=64),8&n.button&&(v|=128),n.action===32?v|=32:n.action!==0||f||(v|=3)),v}let e=String.fromCharCode,i={DEFAULT:n=>{let f=[o(n,!1)+32,n.col+32,n.row+32];return f[0]>255||f[1]>255||f[2]>255?"":`\x1B[M${e(f[0])}${e(f[1])}${e(f[2])}`},SGR:n=>{let f=n.action===0&&n.button!==4?"m":"M";return`\x1B[<${o(n,!0)};${n.col};${n.row}${f}`},SGR_PIXELS:n=>{let f=n.action===0&&n.button!==4?"m":"M";return`\x1B[<${o(n,!0)};${n.x};${n.y}${f}`}},s=t.CoreMouseService=class extends d.Disposable{constructor(n,f){super(),this._bufferService=n,this._coreService=f,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._onProtocolChange=this.register(new h.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(let v of Object.keys(_))this.addProtocol(v,_[v]);for(let v of Object.keys(i))this.addEncoding(v,i[v]);this.reset()}addProtocol(n,f){this._protocols[n]=f}addEncoding(n,f){this._encodings[n]=f}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return this._protocols[this._activeProtocol].events!==0}set activeProtocol(n){if(!this._protocols[n])throw new Error(`unknown protocol "${n}"`);this._activeProtocol=n,this._onProtocolChange.fire(this._protocols[n].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(n){if(!this._encodings[n])throw new Error(`unknown encoding "${n}"`);this._activeEncoding=n}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null}triggerMouseEvent(n){if(n.col<0||n.col>=this._bufferService.cols||n.row<0||n.row>=this._bufferService.rows||n.button===4&&n.action===32||n.button===3&&n.action!==32||n.button!==4&&(n.action===2||n.action===3)||(n.col++,n.row++,n.action===32&&this._lastEvent&&this._equalEvents(this._lastEvent,n,this._activeEncoding==="SGR_PIXELS"))||!this._protocols[this._activeProtocol].restrict(n))return!1;let f=this._encodings[this._activeEncoding](n);return f&&(this._activeEncoding==="DEFAULT"?this._coreService.triggerBinaryEvent(f):this._coreService.triggerDataEvent(f,!0)),this._lastEvent=n,!0}explainEvents(n){return{down:!!(1&n),up:!!(2&n),drag:!!(4&n),move:!!(8&n),wheel:!!(16&n)}}_equalEvents(n,f,v){if(v){if(n.x!==f.x||n.y!==f.y)return!1}else if(n.col!==f.col||n.row!==f.row)return!1;return n.button===f.button&&n.action===f.action&&n.ctrl===f.ctrl&&n.alt===f.alt&&n.shift===f.shift}};t.CoreMouseService=s=l([u(0,r.IBufferService),u(1,r.ICoreService)],s)},6975:function(R,t,a){var l=this&&this.__decorate||function(s,n,f,v){var p,S=arguments.length,c=S<3?n:v===null?v=Object.getOwnPropertyDescriptor(n,f):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")c=Reflect.decorate(s,n,f,v);else for(var g=s.length-1;g>=0;g--)(p=s[g])&&(c=(S<3?p(c):S>3?p(n,f,c):p(n,f))||c);return S>3&&c&&Object.defineProperty(n,f,c),c},u=this&&this.__param||function(s,n){return function(f,v){n(f,v,s)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreService=void 0;let r=a(1439),h=a(8460),d=a(844),_=a(2585),o=Object.freeze({insertMode:!1}),e=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0}),i=t.CoreService=class extends d.Disposable{constructor(s,n,f){super(),this._bufferService=s,this._logService=n,this._optionsService=f,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new h.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new h.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new h.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new h.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,r.clone)(o),this.decPrivateModes=(0,r.clone)(e)}reset(){this.modes=(0,r.clone)(o),this.decPrivateModes=(0,r.clone)(e)}triggerDataEvent(s,n=!1){if(this._optionsService.rawOptions.disableStdin)return;let f=this._bufferService.buffer;n&&this._optionsService.rawOptions.scrollOnUserInput&&f.ybase!==f.ydisp&&this._onRequestScrollToBottom.fire(),n&&this._onUserInput.fire(),this._logService.debug(`sending data "${s}"`,()=>s.split("").map(v=>v.charCodeAt(0))),this._onData.fire(s)}triggerBinaryEvent(s){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${s}"`,()=>s.split("").map(n=>n.charCodeAt(0))),this._onBinary.fire(s))}};t.CoreService=i=l([u(0,_.IBufferService),u(1,_.ILogService),u(2,_.IOptionsService)],i)},9074:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DecorationService=void 0;let l=a(8055),u=a(8460),r=a(844),h=a(6106),d=0,_=0;class o extends r.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new h.SortedList(s=>s?.marker.line),this._onDecorationRegistered=this.register(new u.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new u.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,r.toDisposable)(()=>this.reset()))}registerDecoration(s){if(s.marker.isDisposed)return;let n=new e(s);if(n){let f=n.marker.onDispose(()=>n.dispose());n.onDispose(()=>{n&&(this._decorations.delete(n)&&this._onDecorationRemoved.fire(n),f.dispose())}),this._decorations.insert(n),this._onDecorationRegistered.fire(n)}return n}reset(){for(let s of this._decorations.values())s.dispose();this._decorations.clear()}*getDecorationsAtCell(s,n,f){var v,p,S;let c=0,g=0;for(let w of this._decorations.getKeyIterator(n))c=(v=w.options.x)!==null&&v!==void 0?v:0,g=c+((p=w.options.width)!==null&&p!==void 0?p:1),s>=c&&s{var S,c,g;d=(S=p.options.x)!==null&&S!==void 0?S:0,_=d+((c=p.options.width)!==null&&c!==void 0?c:1),s>=d&&s<_&&(!f||((g=p.options.layer)!==null&&g!==void 0?g:"bottom")===f)&&v(p)})}}t.DecorationService=o;class e extends r.Disposable{get isDisposed(){return this._isDisposed}get backgroundColorRGB(){return this._cachedBg===null&&(this.options.backgroundColor?this._cachedBg=l.css.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return this._cachedFg===null&&(this.options.foregroundColor?this._cachedFg=l.css.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}constructor(s){super(),this.options=s,this.onRenderEmitter=this.register(new u.EventEmitter),this.onRender=this.onRenderEmitter.event,this._onDispose=this.register(new u.EventEmitter),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=s.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position="full")}dispose(){this._onDispose.fire(),super.dispose()}}},4348:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InstantiationService=t.ServiceCollection=void 0;let l=a(2585),u=a(8343);class r{constructor(...d){this._entries=new Map;for(let[_,o]of d)this.set(_,o)}set(d,_){let o=this._entries.get(d);return this._entries.set(d,_),o}forEach(d){for(let[_,o]of this._entries.entries())d(_,o)}has(d){return this._entries.has(d)}get(d){return this._entries.get(d)}}t.ServiceCollection=r,t.InstantiationService=class{constructor(){this._services=new r,this._services.set(l.IInstantiationService,this)}setService(h,d){this._services.set(h,d)}getService(h){return this._services.get(h)}createInstance(h,...d){let _=(0,u.getServiceDependencies)(h).sort((i,s)=>i.index-s.index),o=[];for(let i of _){let s=this._services.get(i.id);if(!s)throw new Error(`[createInstance] ${h.name} depends on UNKNOWN service ${i.id}.`);o.push(s)}let e=_.length>0?_[0].index:d.length;if(d.length!==e)throw new Error(`[createInstance] First service dependency of ${h.name} at position ${e+1} conflicts with ${d.length} static arguments`);return new h(...d,...o)}}},7866:function(R,t,a){var l=this&&this.__decorate||function(e,i,s,n){var f,v=arguments.length,p=v<3?i:n===null?n=Object.getOwnPropertyDescriptor(i,s):n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")p=Reflect.decorate(e,i,s,n);else for(var S=e.length-1;S>=0;S--)(f=e[S])&&(p=(v<3?f(p):v>3?f(i,s,p):f(i,s))||p);return v>3&&p&&Object.defineProperty(i,s,p),p},u=this&&this.__param||function(e,i){return function(s,n){i(s,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;let r=a(844),h=a(2585),d={trace:h.LogLevelEnum.TRACE,debug:h.LogLevelEnum.DEBUG,info:h.LogLevelEnum.INFO,warn:h.LogLevelEnum.WARN,error:h.LogLevelEnum.ERROR,off:h.LogLevelEnum.OFF},_,o=t.LogService=class extends r.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=h.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel())),_=this}_updateLogLevel(){this._logLevel=d[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let i=0;iJSON.stringify(p)).join(", ")})`);let v=n.apply(this,f);return _.trace(`GlyphRenderer#${n.name} return`,v),v}}},7302:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsService=t.DEFAULT_OPTIONS=void 0;let l=a(8460),u=a(844),r=a(6114);t.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",cursorWidth:1,cursorInactiveStyle:"outline",customGlyphs:!0,drawBoldTextInBrightColors:!0,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:"info",logger:null,scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rightClickSelectsWord:r.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRulerWidth:0};let h=["normal","bold","100","200","300","400","500","600","700","800","900"];class d extends u.Disposable{constructor(o){super(),this._onOptionChange=this.register(new l.EventEmitter),this.onOptionChange=this._onOptionChange.event;let e=Object.assign({},t.DEFAULT_OPTIONS);for(let i in o)if(i in e)try{let s=o[i];e[i]=this._sanitizeAndValidateOption(i,s)}catch(s){console.error(s)}this.rawOptions=e,this.options=Object.assign({},e),this._setupOptions()}onSpecificOptionChange(o,e){return this.onOptionChange(i=>{i===o&&e(this.rawOptions[o])})}onMultipleOptionChange(o,e){return this.onOptionChange(i=>{o.indexOf(i)!==-1&&e()})}_setupOptions(){let o=i=>{if(!(i in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${i}"`);return this.rawOptions[i]},e=(i,s)=>{if(!(i in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${i}"`);s=this._sanitizeAndValidateOption(i,s),this.rawOptions[i]!==s&&(this.rawOptions[i]=s,this._onOptionChange.fire(i))};for(let i in this.rawOptions){let s={get:o.bind(this,i),set:e.bind(this,i)};Object.defineProperty(this.options,i,s)}}_sanitizeAndValidateOption(o,e){switch(o){case"cursorStyle":if(e||(e=t.DEFAULT_OPTIONS[o]),!function(i){return i==="block"||i==="underline"||i==="bar"}(e))throw new Error(`"${e}" is not a valid value for ${o}`);break;case"wordSeparator":e||(e=t.DEFAULT_OPTIONS[o]);break;case"fontWeight":case"fontWeightBold":if(typeof e=="number"&&1<=e&&e<=1e3)break;e=h.includes(e)?e:t.DEFAULT_OPTIONS[o];break;case"cursorWidth":e=Math.floor(e);case"lineHeight":case"tabStopWidth":if(e<1)throw new Error(`${o} cannot be less than 1, value: ${e}`);break;case"minimumContrastRatio":e=Math.max(1,Math.min(21,Math.round(10*e)/10));break;case"scrollback":if((e=Math.min(e,4294967295))<0)throw new Error(`${o} cannot be less than 0, value: ${e}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(e<=0)throw new Error(`${o} cannot be less than or equal to 0, value: ${e}`);break;case"rows":case"cols":if(!e&&e!==0)throw new Error(`${o} must be numeric, value: ${e}`);break;case"windowsPty":e=e??{}}return e}}t.OptionsService=d},2660:function(R,t,a){var l=this&&this.__decorate||function(d,_,o,e){var i,s=arguments.length,n=s<3?_:e===null?e=Object.getOwnPropertyDescriptor(_,o):e;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(d,_,o,e);else for(var f=d.length-1;f>=0;f--)(i=d[f])&&(n=(s<3?i(n):s>3?i(_,o,n):i(_,o))||n);return s>3&&n&&Object.defineProperty(_,o,n),n},u=this&&this.__param||function(d,_){return function(o,e){_(o,e,d)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkService=void 0;let r=a(2585),h=t.OscLinkService=class{constructor(d){this._bufferService=d,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(d){let _=this._bufferService.buffer;if(d.id===void 0){let f=_.addMarker(_.ybase+_.y),v={data:d,id:this._nextId++,lines:[f]};return f.onDispose(()=>this._removeMarkerFromLink(v,f)),this._dataByLinkId.set(v.id,v),v.id}let o=d,e=this._getEntryIdKey(o),i=this._entriesWithId.get(e);if(i)return this.addLineToLink(i.id,_.ybase+_.y),i.id;let s=_.addMarker(_.ybase+_.y),n={id:this._nextId++,key:this._getEntryIdKey(o),data:o,lines:[s]};return s.onDispose(()=>this._removeMarkerFromLink(n,s)),this._entriesWithId.set(n.key,n),this._dataByLinkId.set(n.id,n),n.id}addLineToLink(d,_){let o=this._dataByLinkId.get(d);if(o&&o.lines.every(e=>e.line!==_)){let e=this._bufferService.buffer.addMarker(_);o.lines.push(e),e.onDispose(()=>this._removeMarkerFromLink(o,e))}}getLinkData(d){var _;return(_=this._dataByLinkId.get(d))===null||_===void 0?void 0:_.data}_getEntryIdKey(d){return`${d.id};;${d.uri}`}_removeMarkerFromLink(d,_){let o=d.lines.indexOf(_);o!==-1&&(d.lines.splice(o,1),d.lines.length===0&&(d.data.id!==void 0&&this._entriesWithId.delete(d.key),this._dataByLinkId.delete(d.id)))}};t.OscLinkService=h=l([u(0,r.IBufferService)],h)},8343:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;let a="di$target",l="di$dependencies";t.serviceRegistry=new Map,t.getServiceDependencies=function(u){return u[l]||[]},t.createDecorator=function(u){if(t.serviceRegistry.has(u))return t.serviceRegistry.get(u);let r=function(h,d,_){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");(function(o,e,i){e[a]===e?e[l].push({id:o,index:i}):(e[l]=[{id:o,index:i}],e[a]=e)})(r,h,_)};return r.toString=()=>u,t.serviceRegistry.set(u,r),r}},2585:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;let l=a(8343);var u;t.IBufferService=(0,l.createDecorator)("BufferService"),t.ICoreMouseService=(0,l.createDecorator)("CoreMouseService"),t.ICoreService=(0,l.createDecorator)("CoreService"),t.ICharsetService=(0,l.createDecorator)("CharsetService"),t.IInstantiationService=(0,l.createDecorator)("InstantiationService"),function(r){r[r.TRACE=0]="TRACE",r[r.DEBUG=1]="DEBUG",r[r.INFO=2]="INFO",r[r.WARN=3]="WARN",r[r.ERROR=4]="ERROR",r[r.OFF=5]="OFF"}(u||(t.LogLevelEnum=u={})),t.ILogService=(0,l.createDecorator)("LogService"),t.IOptionsService=(0,l.createDecorator)("OptionsService"),t.IOscLinkService=(0,l.createDecorator)("OscLinkService"),t.IUnicodeService=(0,l.createDecorator)("UnicodeService"),t.IDecorationService=(0,l.createDecorator)("DecorationService")},1480:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeService=void 0;let l=a(8460),u=a(225);t.UnicodeService=class{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new l.EventEmitter,this.onChange=this._onChange.event;let r=new u.UnicodeV6;this.register(r),this._active=r.version,this._activeProvider=r}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(r){if(!this._providers[r])throw new Error(`unknown Unicode version "${r}"`);this._active=r,this._activeProvider=this._providers[r],this._onChange.fire(r)}register(r){this._providers[r.version]=r}wcwidth(r){return this._activeProvider.wcwidth(r)}getStringCellWidth(r){let h=0,d=r.length;for(let _=0;_=d)return h+this.wcwidth(o);let e=r.charCodeAt(_);56320<=e&&e<=57343?o=1024*(o-55296)+e-56320+65536:h+=this.wcwidth(e)}h+=this.wcwidth(o)}return h}}}},T={};function I(R){var t=T[R];if(t!==void 0)return t.exports;var a=T[R]={exports:{}};return V[R].call(a.exports,a,a.exports,I),a.exports}var H={};return(()=>{var R=H;Object.defineProperty(R,"__esModule",{value:!0}),R.Terminal=void 0;let t=I(9042),a=I(3236),l=I(844),u=I(5741),r=I(8285),h=I(7975),d=I(7090),_=["cols","rows"];class o extends l.Disposable{constructor(i){super(),this._core=this.register(new a.Terminal(i)),this._addonManager=this.register(new u.AddonManager),this._publicOptions=Object.assign({},this._core.options);let s=f=>this._core.options[f],n=(f,v)=>{this._checkReadonlyOptions(f),this._core.options[f]=v};for(let f in this._core.options){let v={get:s.bind(this,f),set:n.bind(this,f)};Object.defineProperty(this._publicOptions,f,v)}}_checkReadonlyOptions(i){if(_.includes(i))throw new Error(`Option "${i}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new h.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new d.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this.register(new r.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let i=this._core.coreService.decPrivateModes,s="none";switch(this._core.coreMouseService.activeProtocol){case"X10":s="x10";break;case"VT200":s="vt200";break;case"DRAG":s="drag";break;case"ANY":s="any"}return{applicationCursorKeysMode:i.applicationCursorKeys,applicationKeypadMode:i.applicationKeypad,bracketedPasteMode:i.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:s,originMode:i.origin,reverseWraparoundMode:i.reverseWraparound,sendFocusMode:i.sendFocus,wraparoundMode:i.wraparound}}get options(){return this._publicOptions}set options(i){for(let s in i)this._publicOptions[s]=i[s]}blur(){this._core.blur()}focus(){this._core.focus()}resize(i,s){this._verifyIntegers(i,s),this._core.resize(i,s)}open(i){this._core.open(i)}attachCustomKeyEventHandler(i){this._core.attachCustomKeyEventHandler(i)}registerLinkProvider(i){return this._core.registerLinkProvider(i)}registerCharacterJoiner(i){return this._checkProposedApi(),this._core.registerCharacterJoiner(i)}deregisterCharacterJoiner(i){this._checkProposedApi(),this._core.deregisterCharacterJoiner(i)}registerMarker(i=0){return this._verifyIntegers(i),this._core.registerMarker(i)}registerDecoration(i){var s,n,f;return this._checkProposedApi(),this._verifyPositiveIntegers((s=i.x)!==null&&s!==void 0?s:0,(n=i.width)!==null&&n!==void 0?n:0,(f=i.height)!==null&&f!==void 0?f:0),this._core.registerDecoration(i)}hasSelection(){return this._core.hasSelection()}select(i,s,n){this._verifyIntegers(i,s,n),this._core.select(i,s,n)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(i,s){this._verifyIntegers(i,s),this._core.selectLines(i,s)}dispose(){super.dispose()}scrollLines(i){this._verifyIntegers(i),this._core.scrollLines(i)}scrollPages(i){this._verifyIntegers(i),this._core.scrollPages(i)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(i){this._verifyIntegers(i),this._core.scrollToLine(i)}clear(){this._core.clear()}write(i,s){this._core.write(i,s)}writeln(i,s){this._core.write(i),this._core.write(`\r -`,s)}paste(i){this._core.paste(i)}refresh(i,s){this._verifyIntegers(i,s),this._core.refresh(i,s)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(i){this._addonManager.loadAddon(this,i)}static get strings(){return t}_verifyIntegers(...i){for(let s of i)if(s===1/0||isNaN(s)||s%1!=0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...i){for(let s of i)if(s&&(s===1/0||isNaN(s)||s%1!=0||s<0))throw new Error("This API only accepts positive integers")}}R.Terminal=o})(),H})())});var rt=me((De,He)=>{(function(V,T){typeof De=="object"&&typeof He=="object"?He.exports=T():typeof define=="function"&&define.amd?define([],T):typeof De=="object"?De.FitAddon=T():V.FitAddon=T()})(self,()=>(()=>{"use strict";var V={};return(()=>{var T=V;Object.defineProperty(T,"__esModule",{value:!0}),T.FitAddon=void 0,T.FitAddon=class{activate(I){this._terminal=I}dispose(){}fit(){let I=this.proposeDimensions();if(!I||!this._terminal||isNaN(I.cols)||isNaN(I.rows))return;let H=this._terminal._core;this._terminal.rows===I.rows&&this._terminal.cols===I.cols||(H._renderService.clear(),this._terminal.resize(I.cols,I.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let I=this._terminal._core,H=I._renderService.dimensions;if(H.css.cell.width===0||H.css.cell.height===0)return;let R=this._terminal.options.scrollback===0?0:I.viewport.scrollBarWidth,t=window.getComputedStyle(this._terminal.element.parentElement),a=parseInt(t.getPropertyValue("height")),l=Math.max(0,parseInt(t.getPropertyValue("width"))),u=window.getComputedStyle(this._terminal.element),r=a-(parseInt(u.getPropertyValue("padding-top"))+parseInt(u.getPropertyValue("padding-bottom"))),h=l-(parseInt(u.getPropertyValue("padding-right"))+parseInt(u.getPropertyValue("padding-left")))-R;return{cols:Math.max(2,Math.floor(h/H.css.cell.width)),rows:Math.max(1,Math.floor(r/H.css.cell.height))}}}})(),V})())});var nt=me((Me,$e)=>{(function(V,T){typeof Me=="object"&&typeof $e=="object"?$e.exports=T():typeof define=="function"&&define.amd?define([],T):typeof Me=="object"?Me.WebglAddon=T():V.WebglAddon=T()})(self,()=>(()=>{"use strict";var V={965:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GlyphRenderer=void 0;let l=a(374),u=a(509),r=a(855),h=a(859),d=a(381),_=11,o=_*Float32Array.BYTES_PER_ELEMENT,e,i=0,s=0,n=0;class f extends h.Disposable{constructor(p,S,c){super(),this._terminal=p,this._gl=S,this._dimensions=c,this._activeBuffer=0,this._vertices={count:0,attributes:new Float32Array(0),attributesBuffers:[new Float32Array(0),new Float32Array(0)]};let g=this._gl;u.TextureAtlas.maxAtlasPages===void 0&&(u.TextureAtlas.maxAtlasPages=Math.min(32,(0,l.throwIfFalsy)(g.getParameter(g.MAX_TEXTURE_IMAGE_UNITS))),u.TextureAtlas.maxTextureSize=(0,l.throwIfFalsy)(g.getParameter(g.MAX_TEXTURE_SIZE))),this._program=(0,l.throwIfFalsy)((0,d.createProgram)(g,`#version 300 es +`)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(A){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh())),d.isLinux&&A&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:this._activeSelectionMode===3})}_isClickInSelection(A){let C=this._getMouseBufferCoords(A),D=this._model.finalSelectionStart,L=this._model.finalSelectionEnd;return!!(D&&L&&C)&&this._areCoordsInSelection(C,D,L)}isCellInSelection(A,C){let D=this._model.finalSelectionStart,L=this._model.finalSelectionEnd;return!(!D||!L)&&this._areCoordsInSelection([A,C],D,L)}_areCoordsInSelection(A,C,D){return A[1]>C[1]&&A[1]=C[0]&&A[0]=C[0]}_selectWordAtCursor(A,C){let D=this._linkifier.currentLink?.link?.range;if(D)return this._model.selectionStart=[D.start.x-1,D.start.y-1],this._model.selectionStartLength=(0,f.getRangeLength)(D,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let L=this._getMouseBufferCoords(A);return!!L&&(this._selectWordAt(L,C),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(A,C){this._model.clearSelection(),A=Math.max(A,0),C=Math.min(C,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,A],this._model.selectionEnd=[this._bufferService.cols,C],this.refresh(),this._onSelectionChange.fire()}_handleTrim(A){this._model.handleTrim(A)&&this.refresh()}_getMouseBufferCoords(A){let C=this._mouseService.getCoords(A,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(C)return C[0]--,C[1]--,C[1]+=this._bufferService.buffer.ydisp,C}_getMouseEventScrollAmount(A){let C=(0,a.getCoordsRelativeToElement)(this._coreBrowserService.window,A,this._screenElement)[1],D=this._renderService.dimensions.css.canvas.height;return C>=0&&C<=D?0:(C>D&&(C-=D),C=Math.min(Math.max(C,-50),50),C/=50,C/Math.abs(C)+Math.round(14*C))}shouldForceSelection(A){return d.isMac?A.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:A.shiftKey}handleMouseDown(A){if(this._mouseDownTimeStamp=A.timeStamp,(A.button!==2||!this.hasSelection)&&A.button===0){if(!this._enabled){if(!this.shouldForceSelection(A))return;A.stopPropagation()}A.preventDefault(),this._dragScrollAmount=0,this._enabled&&A.shiftKey?this._handleIncrementalClick(A):A.detail===1?this._handleSingleClick(A):A.detail===2?this._handleDoubleClick(A):A.detail===3&&this._handleTripleClick(A),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval(()=>this._dragScroll(),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(A){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(A))}_handleSingleClick(A){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(A)?3:0,this._model.selectionStart=this._getMouseBufferCoords(A),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let C=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);C&&C.length!==this._model.selectionStart[0]&&C.hasWidth(this._model.selectionStart[0])===0&&this._model.selectionStart[0]++}_handleDoubleClick(A){this._selectWordAtCursor(A,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(A){let C=this._getMouseBufferCoords(A);C&&(this._activeSelectionMode=2,this._selectLineAt(C[1]))}shouldColumnSelect(A){return A.altKey&&!(d.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(A){if(A.stopImmediatePropagation(),!this._model.selectionStart)return;let C=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(A),!this._model.selectionEnd)return void this.refresh(!0);this._activeSelectionMode===2?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let D=this._bufferService.buffer;if(this._model.selectionEnd[1]0?(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(A.ydisp+this._bufferService.rows,A.lines.length-1)):(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=A.ydisp),this.refresh()}}_handleMouseUp(A){let C=A.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&C<500&&A.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){let D=this._mouseService.getCoords(A,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(D&&D[0]!==void 0&&D[1]!==void 0){let L=(0,l.moveToCellSequence)(D[0]-1,D[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(L,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){let A=this._model.finalSelectionStart,C=this._model.finalSelectionEnd,D=!(!A||!C||A[0]===C[0]&&A[1]===C[1]);D?A&&C&&(this._oldSelectionStart&&this._oldSelectionEnd&&A[0]===this._oldSelectionStart[0]&&A[1]===this._oldSelectionStart[1]&&C[0]===this._oldSelectionEnd[0]&&C[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(A,C,D)):this._oldHasSelection&&this._fireOnSelectionChange(A,C,D)}_fireOnSelectionChange(A,C,D){this._oldSelectionStart=A,this._oldSelectionEnd=C,this._oldHasSelection=D,this._onSelectionChange.fire()}_handleBufferActivate(A){this.clearSelection(),this._trimListener.dispose(),this._trimListener=A.activeBuffer.lines.onTrim(C=>this._handleTrim(C))}_convertViewportColToCharacterIndex(A,C){let D=C;for(let L=0;C>=L;L++){let B=A.loadCell(L,this._workCell).getChars().length;this._workCell.getWidth()===0?D--:B>1&&C!==L&&(D+=B-1)}return D}setSelection(A,C,D){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[A,C],this._model.selectionStartLength=D,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(A){this._isClickInSelection(A)||(this._selectWordAtCursor(A,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(A,C,D=!0,L=!0){if(A[0]>=this._bufferService.cols)return;let B=this._bufferService.buffer,R=B.lines.get(A[1]);if(!R)return;let F=B.translateBufferLineToString(A[1],!1),Q=this._convertViewportColToCharacterIndex(R,A[0]),K=Q,N=A[0]-Q,k=0,m=0,x=0,E=0;if(F.charAt(Q)===" "){for(;Q>0&&F.charAt(Q-1)===" ";)Q--;for(;K1&&(E+=W-1,K+=W-1);X>0&&Q>0&&!this._isCharWordSeparator(R.loadCell(X-1,this._workCell));){R.loadCell(X-1,this._workCell);let P=this._workCell.getChars().length;this._workCell.getWidth()===0?(k++,X--):P>1&&(x+=P-1,Q-=P-1),Q--,X--}for(;$1&&(E+=P-1,K+=P-1),K++,$++}}K++;let I=Q+N-k+x,M=Math.min(this._bufferService.cols,K-Q+k+m-x-E);if(C||F.slice(Q,K).trim()!==""){if(D&&I===0&&R.getCodePoint(0)!==32){let X=B.lines.get(A[1]-1);if(X&&R.isWrapped&&X.getCodePoint(this._bufferService.cols-1)!==32){let $=this._getWordAt([this._bufferService.cols-1,A[1]-1],!1,!0,!1);if($){let W=this._bufferService.cols-$.start;I-=W,M+=W}}}if(L&&I+M===this._bufferService.cols&&R.getCodePoint(this._bufferService.cols-1)!==32){let X=B.lines.get(A[1]+1);if(X?.isWrapped&&X.getCodePoint(0)!==32){let $=this._getWordAt([0,A[1]+1],!1,!1,!0);$&&(M+=$.length)}}return{start:I,length:M}}}_selectWordAt(A,C){let D=this._getWordAt(A,C);if(D){for(;D.start<0;)D.start+=this._bufferService.cols,A[1]--;this._model.selectionStart=[D.start,A[1]],this._model.selectionStartLength=D.length}}_selectToWordAt(A){let C=this._getWordAt(A,!0);if(C){let D=A[1];for(;C.start<0;)C.start+=this._bufferService.cols,D--;if(!this._model.areSelectionValuesReversed())for(;C.start+C.length>this._bufferService.cols;)C.length-=this._bufferService.cols,D++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?C.start:C.start+C.length,D]}}_isCharWordSeparator(A){return A.getWidth()!==0&&this._optionsService.rawOptions.wordSeparator.indexOf(A.getChars())>=0}_selectLineAt(A){let C=this._bufferService.buffer.getWrappedRangeForLine(A),D={start:{x:0,y:C.first},end:{x:this._bufferService.cols-1,y:C.last}};this._model.selectionStart=[0,C.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,f.getRangeLength)(D,this._bufferService.cols)}};t.SelectionService=S=h([g(3,y.IBufferService),g(4,y.ICoreService),g(5,v.IMouseService),g(6,y.IOptionsService),g(7,v.IRenderService),g(8,v.ICoreBrowserService)],S)},4725:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ILinkProviderService=t.IThemeService=t.ICharacterJoinerService=t.ISelectionService=t.IRenderService=t.IMouseService=t.ICoreBrowserService=t.ICharSizeService=void 0;let h=n(8343);t.ICharSizeService=(0,h.createDecorator)("CharSizeService"),t.ICoreBrowserService=(0,h.createDecorator)("CoreBrowserService"),t.IMouseService=(0,h.createDecorator)("MouseService"),t.IRenderService=(0,h.createDecorator)("RenderService"),t.ISelectionService=(0,h.createDecorator)("SelectionService"),t.ICharacterJoinerService=(0,h.createDecorator)("CharacterJoinerService"),t.IThemeService=(0,h.createDecorator)("ThemeService"),t.ILinkProviderService=(0,h.createDecorator)("LinkProviderService")},6731:function(c,t,n){var h=this&&this.__decorate||function(S,A,C,D){var L,B=arguments.length,R=B<3?A:D===null?D=Object.getOwnPropertyDescriptor(A,C):D;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")R=Reflect.decorate(S,A,C,D);else for(var F=S.length-1;F>=0;F--)(L=S[F])&&(R=(B<3?L(R):B>3?L(A,C,R):L(A,C))||R);return B>3&&R&&Object.defineProperty(A,C,R),R},g=this&&this.__param||function(S,A){return function(C,D){A(C,D,S)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeService=t.DEFAULT_ANSI_COLORS=void 0;let a=n(7239),l=n(8055),_=n(8460),v=n(844),u=n(2585),o=l.css.toColor("#ffffff"),d=l.css.toColor("#000000"),f=l.css.toColor("#ffffff"),p=l.css.toColor("#000000"),y={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117};t.DEFAULT_ANSI_COLORS=Object.freeze((()=>{let S=[l.css.toColor("#2e3436"),l.css.toColor("#cc0000"),l.css.toColor("#4e9a06"),l.css.toColor("#c4a000"),l.css.toColor("#3465a4"),l.css.toColor("#75507b"),l.css.toColor("#06989a"),l.css.toColor("#d3d7cf"),l.css.toColor("#555753"),l.css.toColor("#ef2929"),l.css.toColor("#8ae234"),l.css.toColor("#fce94f"),l.css.toColor("#729fcf"),l.css.toColor("#ad7fa8"),l.css.toColor("#34e2e2"),l.css.toColor("#eeeeec")],A=[0,95,135,175,215,255];for(let C=0;C<216;C++){let D=A[C/36%6|0],L=A[C/6%6|0],B=A[C%6];S.push({css:l.channels.toCss(D,L,B),rgba:l.channels.toRgba(D,L,B)})}for(let C=0;C<24;C++){let D=8+10*C;S.push({css:l.channels.toCss(D,D,D),rgba:l.channels.toRgba(D,D,D)})}return S})());let w=t.ThemeService=class extends v.Disposable{get colors(){return this._colors}constructor(S){super(),this._optionsService=S,this._contrastCache=new a.ColorContrastCache,this._halfContrastCache=new a.ColorContrastCache,this._onChangeColors=this.register(new _.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:o,background:d,cursor:f,cursorAccent:p,selectionForeground:void 0,selectionBackgroundTransparent:y,selectionBackgroundOpaque:l.color.blend(d,y),selectionInactiveBackgroundTransparent:y,selectionInactiveBackgroundOpaque:l.color.blend(d,y),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange("minimumContrastRatio",()=>this._contrastCache.clear())),this.register(this._optionsService.onSpecificOptionChange("theme",()=>this._setTheme(this._optionsService.rawOptions.theme)))}_setTheme(S={}){let A=this._colors;if(A.foreground=b(S.foreground,o),A.background=b(S.background,d),A.cursor=b(S.cursor,f),A.cursorAccent=b(S.cursorAccent,p),A.selectionBackgroundTransparent=b(S.selectionBackground,y),A.selectionBackgroundOpaque=l.color.blend(A.background,A.selectionBackgroundTransparent),A.selectionInactiveBackgroundTransparent=b(S.selectionInactiveBackground,A.selectionBackgroundTransparent),A.selectionInactiveBackgroundOpaque=l.color.blend(A.background,A.selectionInactiveBackgroundTransparent),A.selectionForeground=S.selectionForeground?b(S.selectionForeground,l.NULL_COLOR):void 0,A.selectionForeground===l.NULL_COLOR&&(A.selectionForeground=void 0),l.color.isOpaque(A.selectionBackgroundTransparent)&&(A.selectionBackgroundTransparent=l.color.opacity(A.selectionBackgroundTransparent,.3)),l.color.isOpaque(A.selectionInactiveBackgroundTransparent)&&(A.selectionInactiveBackgroundTransparent=l.color.opacity(A.selectionInactiveBackgroundTransparent,.3)),A.ansi=t.DEFAULT_ANSI_COLORS.slice(),A.ansi[0]=b(S.black,t.DEFAULT_ANSI_COLORS[0]),A.ansi[1]=b(S.red,t.DEFAULT_ANSI_COLORS[1]),A.ansi[2]=b(S.green,t.DEFAULT_ANSI_COLORS[2]),A.ansi[3]=b(S.yellow,t.DEFAULT_ANSI_COLORS[3]),A.ansi[4]=b(S.blue,t.DEFAULT_ANSI_COLORS[4]),A.ansi[5]=b(S.magenta,t.DEFAULT_ANSI_COLORS[5]),A.ansi[6]=b(S.cyan,t.DEFAULT_ANSI_COLORS[6]),A.ansi[7]=b(S.white,t.DEFAULT_ANSI_COLORS[7]),A.ansi[8]=b(S.brightBlack,t.DEFAULT_ANSI_COLORS[8]),A.ansi[9]=b(S.brightRed,t.DEFAULT_ANSI_COLORS[9]),A.ansi[10]=b(S.brightGreen,t.DEFAULT_ANSI_COLORS[10]),A.ansi[11]=b(S.brightYellow,t.DEFAULT_ANSI_COLORS[11]),A.ansi[12]=b(S.brightBlue,t.DEFAULT_ANSI_COLORS[12]),A.ansi[13]=b(S.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),A.ansi[14]=b(S.brightCyan,t.DEFAULT_ANSI_COLORS[14]),A.ansi[15]=b(S.brightWhite,t.DEFAULT_ANSI_COLORS[15]),S.extendedAnsi){let C=Math.min(A.ansi.length-16,S.extendedAnsi.length);for(let D=0;D{Object.defineProperty(t,"__esModule",{value:!0}),t.CircularList=void 0;let h=n(8460),g=n(844);class a extends g.Disposable{constructor(_){super(),this._maxLength=_,this.onDeleteEmitter=this.register(new h.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new h.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new h.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(_){if(this._maxLength===_)return;let v=new Array(_);for(let u=0;uthis._length)for(let v=this._length;v<_;v++)this._array[v]=void 0;this._length=_}get(_){return this._array[this._getCyclicIndex(_)]}set(_,v){this._array[this._getCyclicIndex(_)]=v}push(_){this._array[this._getCyclicIndex(this._length)]=_,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw new Error("Can only recycle when the buffer is full");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(_,v,...u){if(v){for(let o=_;o=_;o--)this._array[this._getCyclicIndex(o+u.length)]=this._array[this._getCyclicIndex(o)];for(let o=0;othis._maxLength){let o=this._length+u.length-this._maxLength;this._startIndex+=o,this._length=this._maxLength,this.onTrimEmitter.fire(o)}else this._length+=u.length}trimStart(_){_>this._length&&(_=this._length),this._startIndex+=_,this._length-=_,this.onTrimEmitter.fire(_)}shiftElements(_,v,u){if(!(v<=0)){if(_<0||_>=this._length)throw new Error("start argument out of range");if(_+u<0)throw new Error("Cannot shift elements in list beyond index 0");if(u>0){for(let d=v-1;d>=0;d--)this.set(_+d+u,this.get(_+d));let o=_+v+u-this._length;if(o>0)for(this._length+=o;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let o=0;o{Object.defineProperty(t,"__esModule",{value:!0}),t.clone=void 0,t.clone=function n(h,g=5){if(typeof h!="object")return h;let a=Array.isArray(h)?[]:{};for(let l in h)a[l]=g<=1?h[l]:h[l]&&n(h[l],g-1);return a}},8055:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let n=0,h=0,g=0,a=0;var l,_,v,u,o;function d(p){let y=p.toString(16);return y.length<2?"0"+y:y}function f(p,y){return p>>0},p.toColor=function(y,w,b,S){return{css:p.toCss(y,w,b,S),rgba:p.toRgba(y,w,b,S)}}}(l||(t.channels=l={})),function(p){function y(w,b){return a=Math.round(255*b),[n,h,g]=o.toChannels(w.rgba),{css:l.toCss(n,h,g,a),rgba:l.toRgba(n,h,g,a)}}p.blend=function(w,b){if(a=(255&b.rgba)/255,a===1)return{css:b.css,rgba:b.rgba};let S=b.rgba>>24&255,A=b.rgba>>16&255,C=b.rgba>>8&255,D=w.rgba>>24&255,L=w.rgba>>16&255,B=w.rgba>>8&255;return n=D+Math.round((S-D)*a),h=L+Math.round((A-L)*a),g=B+Math.round((C-B)*a),{css:l.toCss(n,h,g),rgba:l.toRgba(n,h,g)}},p.isOpaque=function(w){return(255&w.rgba)==255},p.ensureContrastRatio=function(w,b,S){let A=o.ensureContrastRatio(w.rgba,b.rgba,S);if(A)return l.toColor(A>>24&255,A>>16&255,A>>8&255)},p.opaque=function(w){let b=(255|w.rgba)>>>0;return[n,h,g]=o.toChannels(b),{css:l.toCss(n,h,g),rgba:b}},p.opacity=y,p.multiplyOpacity=function(w,b){return a=255&w.rgba,y(w,a*b/255)},p.toColorRGB=function(w){return[w.rgba>>24&255,w.rgba>>16&255,w.rgba>>8&255]}}(_||(t.color=_={})),function(p){let y,w;try{let b=document.createElement("canvas");b.width=1,b.height=1;let S=b.getContext("2d",{willReadFrequently:!0});S&&(y=S,y.globalCompositeOperation="copy",w=y.createLinearGradient(0,0,1,1))}catch{}p.toColor=function(b){if(b.match(/#[\da-f]{3,8}/i))switch(b.length){case 4:return n=parseInt(b.slice(1,2).repeat(2),16),h=parseInt(b.slice(2,3).repeat(2),16),g=parseInt(b.slice(3,4).repeat(2),16),l.toColor(n,h,g);case 5:return n=parseInt(b.slice(1,2).repeat(2),16),h=parseInt(b.slice(2,3).repeat(2),16),g=parseInt(b.slice(3,4).repeat(2),16),a=parseInt(b.slice(4,5).repeat(2),16),l.toColor(n,h,g,a);case 7:return{css:b,rgba:(parseInt(b.slice(1),16)<<8|255)>>>0};case 9:return{css:b,rgba:parseInt(b.slice(1),16)>>>0}}let S=b.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(S)return n=parseInt(S[1]),h=parseInt(S[2]),g=parseInt(S[3]),a=Math.round(255*(S[5]===void 0?1:parseFloat(S[5]))),l.toColor(n,h,g,a);if(!y||!w)throw new Error("css.toColor: Unsupported css format");if(y.fillStyle=w,y.fillStyle=b,typeof y.fillStyle!="string")throw new Error("css.toColor: Unsupported css format");if(y.fillRect(0,0,1,1),[n,h,g,a]=y.getImageData(0,0,1,1).data,a!==255)throw new Error("css.toColor: Unsupported css format");return{rgba:l.toRgba(n,h,g,a),css:b}}}(v||(t.css=v={})),function(p){function y(w,b,S){let A=w/255,C=b/255,D=S/255;return .2126*(A<=.03928?A/12.92:Math.pow((A+.055)/1.055,2.4))+.7152*(C<=.03928?C/12.92:Math.pow((C+.055)/1.055,2.4))+.0722*(D<=.03928?D/12.92:Math.pow((D+.055)/1.055,2.4))}p.relativeLuminance=function(w){return y(w>>16&255,w>>8&255,255&w)},p.relativeLuminance2=y}(u||(t.rgb=u={})),function(p){function y(b,S,A){let C=b>>24&255,D=b>>16&255,L=b>>8&255,B=S>>24&255,R=S>>16&255,F=S>>8&255,Q=f(u.relativeLuminance2(B,R,F),u.relativeLuminance2(C,D,L));for(;Q0||R>0||F>0);)B-=Math.max(0,Math.ceil(.1*B)),R-=Math.max(0,Math.ceil(.1*R)),F-=Math.max(0,Math.ceil(.1*F)),Q=f(u.relativeLuminance2(B,R,F),u.relativeLuminance2(C,D,L));return(B<<24|R<<16|F<<8|255)>>>0}function w(b,S,A){let C=b>>24&255,D=b>>16&255,L=b>>8&255,B=S>>24&255,R=S>>16&255,F=S>>8&255,Q=f(u.relativeLuminance2(B,R,F),u.relativeLuminance2(C,D,L));for(;Q>>0}p.blend=function(b,S){if(a=(255&S)/255,a===1)return S;let A=S>>24&255,C=S>>16&255,D=S>>8&255,L=b>>24&255,B=b>>16&255,R=b>>8&255;return n=L+Math.round((A-L)*a),h=B+Math.round((C-B)*a),g=R+Math.round((D-R)*a),l.toRgba(n,h,g)},p.ensureContrastRatio=function(b,S,A){let C=u.relativeLuminance(b>>8),D=u.relativeLuminance(S>>8);if(f(C,D)>8));if(Ff(C,u.relativeLuminance(Q>>8))?R:Q}return R}let L=w(b,S,A),B=f(C,u.relativeLuminance(L>>8));if(Bf(C,u.relativeLuminance(R>>8))?L:R}return L}},p.reduceLuminance=y,p.increaseLuminance=w,p.toChannels=function(b){return[b>>24&255,b>>16&255,b>>8&255,255&b]}}(o||(t.rgba=o={})),t.toPaddedHex=d,t.contrastRatio=f},8969:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CoreTerminal=void 0;let h=n(844),g=n(2585),a=n(4348),l=n(7866),_=n(744),v=n(7302),u=n(6975),o=n(8460),d=n(1753),f=n(1480),p=n(7994),y=n(9282),w=n(5435),b=n(5981),S=n(2660),A=!1;class C extends h.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new o.EventEmitter),this._onScroll.event(L=>{this._onScrollApi?.fire(L.position)})),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(L){for(let B in L)this.optionsService.options[B]=L[B]}constructor(L){super(),this._windowsWrappingHeuristics=this.register(new h.MutableDisposable),this._onBinary=this.register(new o.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new o.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new o.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new o.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new o.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new o.EventEmitter),this._instantiationService=new a.InstantiationService,this.optionsService=this.register(new v.OptionsService(L)),this._instantiationService.setService(g.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(_.BufferService)),this._instantiationService.setService(g.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(l.LogService)),this._instantiationService.setService(g.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(u.CoreService)),this._instantiationService.setService(g.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(g.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(f.UnicodeService)),this._instantiationService.setService(g.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(p.CharsetService),this._instantiationService.setService(g.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(S.OscLinkService),this._instantiationService.setService(g.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new w.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,o.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,o.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,o.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,o.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom(()=>this.scrollToBottom())),this.register(this.coreService.onUserInput(()=>this._writeBuffer.handleUserInput())),this.register(this.optionsService.onMultipleOptionChange(["windowsMode","windowsPty"],()=>this._handleWindowsPtyOptionChange())),this.register(this._bufferService.onScroll(B=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)})),this.register(this._inputHandler.onScroll(B=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)})),this._writeBuffer=this.register(new b.WriteBuffer((B,R)=>this._inputHandler.parse(B,R))),this.register((0,o.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(L,B){this._writeBuffer.write(L,B)}writeSync(L,B){this._logService.logLevel<=g.LogLevelEnum.WARN&&!A&&(this._logService.warn("writeSync is unreliable and will be removed soon."),A=!0),this._writeBuffer.writeSync(L,B)}input(L,B=!0){this.coreService.triggerDataEvent(L,B)}resize(L,B){isNaN(L)||isNaN(B)||(L=Math.max(L,_.MINIMUM_COLS),B=Math.max(B,_.MINIMUM_ROWS),this._bufferService.resize(L,B))}scroll(L,B=!1){this._bufferService.scroll(L,B)}scrollLines(L,B,R){this._bufferService.scrollLines(L,B,R)}scrollPages(L){this.scrollLines(L*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(L){let B=L-this._bufferService.buffer.ydisp;B!==0&&this.scrollLines(B)}registerEscHandler(L,B){return this._inputHandler.registerEscHandler(L,B)}registerDcsHandler(L,B){return this._inputHandler.registerDcsHandler(L,B)}registerCsiHandler(L,B){return this._inputHandler.registerCsiHandler(L,B)}registerOscHandler(L,B){return this._inputHandler.registerOscHandler(L,B)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let L=!1,B=this.optionsService.rawOptions.windowsPty;B&&B.buildNumber!==void 0&&B.buildNumber!==void 0?L=B.backend==="conpty"&&B.buildNumber<21376:this.optionsService.rawOptions.windowsMode&&(L=!0),L?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){let L=[];L.push(this.onLineFeed(y.updateWindowsModeWrappedState.bind(null,this._bufferService))),L.push(this.registerCsiHandler({final:"H"},()=>((0,y.updateWindowsModeWrappedState)(this._bufferService),!1))),this._windowsWrappingHeuristics.value=(0,h.toDisposable)(()=>{for(let B of L)B.dispose()})}}}t.CoreTerminal=C},8460:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=n=>(this._listeners.push(n),{dispose:()=>{if(!this._disposed){for(let h=0;hh.fire(g))},t.runAndSubscribe=function(n,h){return h(void 0),n(g=>h(g))}},5435:function(c,t,n){var h=this&&this.__decorate||function(k,m,x,E){var I,M=arguments.length,X=M<3?m:E===null?E=Object.getOwnPropertyDescriptor(m,x):E;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")X=Reflect.decorate(k,m,x,E);else for(var $=k.length-1;$>=0;$--)(I=k[$])&&(X=(M<3?I(X):M>3?I(m,x,X):I(m,x))||X);return M>3&&X&&Object.defineProperty(m,x,X),X},g=this&&this.__param||function(k,m){return function(x,E){m(x,E,k)}};Object.defineProperty(t,"__esModule",{value:!0}),t.InputHandler=t.WindowsOptionsReportType=void 0;let a=n(2584),l=n(7116),_=n(2015),v=n(844),u=n(482),o=n(8437),d=n(8460),f=n(643),p=n(511),y=n(3734),w=n(2585),b=n(1480),S=n(6242),A=n(6351),C=n(5941),D={"(":0,")":1,"*":2,"+":3,"-":1,".":2},L=131072;function B(k,m){if(k>24)return m.setWinLines||!1;switch(k){case 1:return!!m.restoreWin;case 2:return!!m.minimizeWin;case 3:return!!m.setWinPosition;case 4:return!!m.setWinSizePixels;case 5:return!!m.raiseWin;case 6:return!!m.lowerWin;case 7:return!!m.refreshWin;case 8:return!!m.setWinSizeChars;case 9:return!!m.maximizeWin;case 10:return!!m.fullscreenWin;case 11:return!!m.getWinState;case 13:return!!m.getWinPosition;case 14:return!!m.getWinSizePixels;case 15:return!!m.getScreenSizePixels;case 16:return!!m.getCellSizePixels;case 18:return!!m.getWinSizeChars;case 19:return!!m.getScreenSizeChars;case 20:return!!m.getIconTitle;case 21:return!!m.getWinTitle;case 22:return!!m.pushTitle;case 23:return!!m.popTitle;case 24:return!!m.setWinLines}return!1}var R;(function(k){k[k.GET_WIN_SIZE_PIXELS=0]="GET_WIN_SIZE_PIXELS",k[k.GET_CELL_SIZE_PIXELS=1]="GET_CELL_SIZE_PIXELS"})(R||(t.WindowsOptionsReportType=R={}));let F=0;class Q extends v.Disposable{getAttrData(){return this._curAttrData}constructor(m,x,E,I,M,X,$,W,P=new _.EscapeSequenceParser){super(),this._bufferService=m,this._charsetService=x,this._coreService=E,this._logService=I,this._optionsService=M,this._oscLinkService=X,this._coreMouseService=$,this._unicodeService=W,this._parser=P,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new u.StringToUtf32,this._utf8Decoder=new u.Utf8ToUtf32,this._workCell=new p.CellData,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=o.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=o.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new d.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new d.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new d.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new d.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new d.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new d.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new d.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new d.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new d.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new d.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new d.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new d.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new d.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new K(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate(T=>this._activeBuffer=T.activeBuffer)),this._parser.setCsiHandlerFallback((T,U)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(T),params:U.toArray()})}),this._parser.setEscHandlerFallback(T=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(T)})}),this._parser.setExecuteHandlerFallback(T=>{this._logService.debug("Unknown EXECUTE code: ",{code:T})}),this._parser.setOscHandlerFallback((T,U,Z)=>{this._logService.debug("Unknown OSC code: ",{identifier:T,action:U,data:Z})}),this._parser.setDcsHandlerFallback((T,U,Z)=>{U==="HOOK"&&(Z=Z.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(T),action:U,payload:Z})}),this._parser.setPrintHandler((T,U,Z)=>this.print(T,U,Z)),this._parser.registerCsiHandler({final:"@"},T=>this.insertChars(T)),this._parser.registerCsiHandler({intermediates:" ",final:"@"},T=>this.scrollLeft(T)),this._parser.registerCsiHandler({final:"A"},T=>this.cursorUp(T)),this._parser.registerCsiHandler({intermediates:" ",final:"A"},T=>this.scrollRight(T)),this._parser.registerCsiHandler({final:"B"},T=>this.cursorDown(T)),this._parser.registerCsiHandler({final:"C"},T=>this.cursorForward(T)),this._parser.registerCsiHandler({final:"D"},T=>this.cursorBackward(T)),this._parser.registerCsiHandler({final:"E"},T=>this.cursorNextLine(T)),this._parser.registerCsiHandler({final:"F"},T=>this.cursorPrecedingLine(T)),this._parser.registerCsiHandler({final:"G"},T=>this.cursorCharAbsolute(T)),this._parser.registerCsiHandler({final:"H"},T=>this.cursorPosition(T)),this._parser.registerCsiHandler({final:"I"},T=>this.cursorForwardTab(T)),this._parser.registerCsiHandler({final:"J"},T=>this.eraseInDisplay(T,!1)),this._parser.registerCsiHandler({prefix:"?",final:"J"},T=>this.eraseInDisplay(T,!0)),this._parser.registerCsiHandler({final:"K"},T=>this.eraseInLine(T,!1)),this._parser.registerCsiHandler({prefix:"?",final:"K"},T=>this.eraseInLine(T,!0)),this._parser.registerCsiHandler({final:"L"},T=>this.insertLines(T)),this._parser.registerCsiHandler({final:"M"},T=>this.deleteLines(T)),this._parser.registerCsiHandler({final:"P"},T=>this.deleteChars(T)),this._parser.registerCsiHandler({final:"S"},T=>this.scrollUp(T)),this._parser.registerCsiHandler({final:"T"},T=>this.scrollDown(T)),this._parser.registerCsiHandler({final:"X"},T=>this.eraseChars(T)),this._parser.registerCsiHandler({final:"Z"},T=>this.cursorBackwardTab(T)),this._parser.registerCsiHandler({final:"`"},T=>this.charPosAbsolute(T)),this._parser.registerCsiHandler({final:"a"},T=>this.hPositionRelative(T)),this._parser.registerCsiHandler({final:"b"},T=>this.repeatPrecedingCharacter(T)),this._parser.registerCsiHandler({final:"c"},T=>this.sendDeviceAttributesPrimary(T)),this._parser.registerCsiHandler({prefix:">",final:"c"},T=>this.sendDeviceAttributesSecondary(T)),this._parser.registerCsiHandler({final:"d"},T=>this.linePosAbsolute(T)),this._parser.registerCsiHandler({final:"e"},T=>this.vPositionRelative(T)),this._parser.registerCsiHandler({final:"f"},T=>this.hVPosition(T)),this._parser.registerCsiHandler({final:"g"},T=>this.tabClear(T)),this._parser.registerCsiHandler({final:"h"},T=>this.setMode(T)),this._parser.registerCsiHandler({prefix:"?",final:"h"},T=>this.setModePrivate(T)),this._parser.registerCsiHandler({final:"l"},T=>this.resetMode(T)),this._parser.registerCsiHandler({prefix:"?",final:"l"},T=>this.resetModePrivate(T)),this._parser.registerCsiHandler({final:"m"},T=>this.charAttributes(T)),this._parser.registerCsiHandler({final:"n"},T=>this.deviceStatus(T)),this._parser.registerCsiHandler({prefix:"?",final:"n"},T=>this.deviceStatusPrivate(T)),this._parser.registerCsiHandler({intermediates:"!",final:"p"},T=>this.softReset(T)),this._parser.registerCsiHandler({intermediates:" ",final:"q"},T=>this.setCursorStyle(T)),this._parser.registerCsiHandler({final:"r"},T=>this.setScrollRegion(T)),this._parser.registerCsiHandler({final:"s"},T=>this.saveCursor(T)),this._parser.registerCsiHandler({final:"t"},T=>this.windowOptions(T)),this._parser.registerCsiHandler({final:"u"},T=>this.restoreCursor(T)),this._parser.registerCsiHandler({intermediates:"'",final:"}"},T=>this.insertColumns(T)),this._parser.registerCsiHandler({intermediates:"'",final:"~"},T=>this.deleteColumns(T)),this._parser.registerCsiHandler({intermediates:'"',final:"q"},T=>this.selectProtected(T)),this._parser.registerCsiHandler({intermediates:"$",final:"p"},T=>this.requestMode(T,!0)),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},T=>this.requestMode(T,!1)),this._parser.setExecuteHandler(a.C0.BEL,()=>this.bell()),this._parser.setExecuteHandler(a.C0.LF,()=>this.lineFeed()),this._parser.setExecuteHandler(a.C0.VT,()=>this.lineFeed()),this._parser.setExecuteHandler(a.C0.FF,()=>this.lineFeed()),this._parser.setExecuteHandler(a.C0.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler(a.C0.BS,()=>this.backspace()),this._parser.setExecuteHandler(a.C0.HT,()=>this.tab()),this._parser.setExecuteHandler(a.C0.SO,()=>this.shiftOut()),this._parser.setExecuteHandler(a.C0.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(a.C1.IND,()=>this.index()),this._parser.setExecuteHandler(a.C1.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(a.C1.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new S.OscHandler(T=>(this.setTitle(T),this.setIconName(T),!0))),this._parser.registerOscHandler(1,new S.OscHandler(T=>this.setIconName(T))),this._parser.registerOscHandler(2,new S.OscHandler(T=>this.setTitle(T))),this._parser.registerOscHandler(4,new S.OscHandler(T=>this.setOrReportIndexedColor(T))),this._parser.registerOscHandler(8,new S.OscHandler(T=>this.setHyperlink(T))),this._parser.registerOscHandler(10,new S.OscHandler(T=>this.setOrReportFgColor(T))),this._parser.registerOscHandler(11,new S.OscHandler(T=>this.setOrReportBgColor(T))),this._parser.registerOscHandler(12,new S.OscHandler(T=>this.setOrReportCursorColor(T))),this._parser.registerOscHandler(104,new S.OscHandler(T=>this.restoreIndexedColor(T))),this._parser.registerOscHandler(110,new S.OscHandler(T=>this.restoreFgColor(T))),this._parser.registerOscHandler(111,new S.OscHandler(T=>this.restoreBgColor(T))),this._parser.registerOscHandler(112,new S.OscHandler(T=>this.restoreCursorColor(T))),this._parser.registerEscHandler({final:"7"},()=>this.saveCursor()),this._parser.registerEscHandler({final:"8"},()=>this.restoreCursor()),this._parser.registerEscHandler({final:"D"},()=>this.index()),this._parser.registerEscHandler({final:"E"},()=>this.nextLine()),this._parser.registerEscHandler({final:"H"},()=>this.tabSet()),this._parser.registerEscHandler({final:"M"},()=>this.reverseIndex()),this._parser.registerEscHandler({final:"="},()=>this.keypadApplicationMode()),this._parser.registerEscHandler({final:">"},()=>this.keypadNumericMode()),this._parser.registerEscHandler({final:"c"},()=>this.fullReset()),this._parser.registerEscHandler({final:"n"},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:"o"},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:"|"},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:"}"},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:"~"},()=>this.setgLevel(1)),this._parser.registerEscHandler({intermediates:"%",final:"@"},()=>this.selectDefaultCharset()),this._parser.registerEscHandler({intermediates:"%",final:"G"},()=>this.selectDefaultCharset());for(let T in l.CHARSETS)this._parser.registerEscHandler({intermediates:"(",final:T},()=>this.selectCharset("("+T)),this._parser.registerEscHandler({intermediates:")",final:T},()=>this.selectCharset(")"+T)),this._parser.registerEscHandler({intermediates:"*",final:T},()=>this.selectCharset("*"+T)),this._parser.registerEscHandler({intermediates:"+",final:T},()=>this.selectCharset("+"+T)),this._parser.registerEscHandler({intermediates:"-",final:T},()=>this.selectCharset("-"+T)),this._parser.registerEscHandler({intermediates:".",final:T},()=>this.selectCharset("."+T)),this._parser.registerEscHandler({intermediates:"/",final:T},()=>this.selectCharset("/"+T));this._parser.registerEscHandler({intermediates:"#",final:"8"},()=>this.screenAlignmentPattern()),this._parser.setErrorHandler(T=>(this._logService.error("Parsing error: ",T),T)),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new A.DcsHandler((T,U)=>this.requestStatusString(T,U)))}_preserveStack(m,x,E,I){this._parseStack.paused=!0,this._parseStack.cursorStartX=m,this._parseStack.cursorStartY=x,this._parseStack.decodedLength=E,this._parseStack.position=I}_logSlowResolvingAsync(m){this._logService.logLevel<=w.LogLevelEnum.WARN&&Promise.race([m,new Promise((x,E)=>setTimeout(()=>E("#SLOW_TIMEOUT"),5e3))]).catch(x=>{if(x!=="#SLOW_TIMEOUT")throw x;console.warn("async parser handler taking longer than 5000 ms")})}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(m,x){let E,I=this._activeBuffer.x,M=this._activeBuffer.y,X=0,$=this._parseStack.paused;if($){if(E=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,x))return this._logSlowResolvingAsync(E),E;I=this._parseStack.cursorStartX,M=this._parseStack.cursorStartY,this._parseStack.paused=!1,m.length>L&&(X=this._parseStack.position+L)}if(this._logService.logLevel<=w.LogLevelEnum.DEBUG&&this._logService.debug("parsing data"+(typeof m=="string"?` "${m}"`:` "${Array.prototype.map.call(m,T=>String.fromCharCode(T)).join("")}"`),typeof m=="string"?m.split("").map(T=>T.charCodeAt(0)):m),this._parseBuffer.lengthL)for(let T=X;T0&&Z.getWidth(this._activeBuffer.x-1)===2&&Z.setCellFromCodepoint(this._activeBuffer.x-1,0,1,U);let te=this._parser.precedingJoinState;for(let ee=x;eeW){if(P){let he=Z,ne=this._activeBuffer.x-ye;for(this._activeBuffer.x=ye,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),Z=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),ye>0&&Z instanceof o.BufferLine&&Z.copyCellsFrom(he,ne,0,ye,!1);ne=0;)Z.setCellFromCodepoint(this._activeBuffer.x++,0,0,U)}else if(T&&(Z.insertCells(this._activeBuffer.x,M-ye,this._activeBuffer.getNullCell(U)),Z.getWidth(W-1)===2&&Z.setCellFromCodepoint(W-1,f.NULL_CELL_CODE,f.NULL_CELL_WIDTH,U)),Z.setCellFromCodepoint(this._activeBuffer.x++,I,M,U),M>0)for(;--M;)Z.setCellFromCodepoint(this._activeBuffer.x++,0,0,U)}this._parser.precedingJoinState=te,this._activeBuffer.x0&&Z.getWidth(this._activeBuffer.x)===0&&!Z.hasContent(this._activeBuffer.x)&&Z.setCellFromCodepoint(this._activeBuffer.x,0,1,U),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(m,x){return m.final!=="t"||m.prefix||m.intermediates?this._parser.registerCsiHandler(m,x):this._parser.registerCsiHandler(m,E=>!B(E.params[0],this._optionsService.rawOptions.windowOptions)||x(E))}registerDcsHandler(m,x){return this._parser.registerDcsHandler(m,new A.DcsHandler(x))}registerEscHandler(m,x){return this._parser.registerEscHandler(m,x)}registerOscHandler(m,x){return this._parser.registerOscHandler(m,new S.OscHandler(x))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(this._activeBuffer.x===0&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;let m=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);m.hasWidth(this._activeBuffer.x)&&!m.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let m=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-m),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(m=this._bufferService.cols-1){this._activeBuffer.x=Math.min(m,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(m,x){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=m,this._activeBuffer.y=this._activeBuffer.scrollTop+x):(this._activeBuffer.x=m,this._activeBuffer.y=x),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(m,x){this._restrictCursor(),this._setCursor(this._activeBuffer.x+m,this._activeBuffer.y+x)}cursorUp(m){let x=this._activeBuffer.y-this._activeBuffer.scrollTop;return x>=0?this._moveCursor(0,-Math.min(x,m.params[0]||1)):this._moveCursor(0,-(m.params[0]||1)),!0}cursorDown(m){let x=this._activeBuffer.scrollBottom-this._activeBuffer.y;return x>=0?this._moveCursor(0,Math.min(x,m.params[0]||1)):this._moveCursor(0,m.params[0]||1),!0}cursorForward(m){return this._moveCursor(m.params[0]||1,0),!0}cursorBackward(m){return this._moveCursor(-(m.params[0]||1),0),!0}cursorNextLine(m){return this.cursorDown(m),this._activeBuffer.x=0,!0}cursorPrecedingLine(m){return this.cursorUp(m),this._activeBuffer.x=0,!0}cursorCharAbsolute(m){return this._setCursor((m.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(m){return this._setCursor(m.length>=2?(m.params[1]||1)-1:0,(m.params[0]||1)-1),!0}charPosAbsolute(m){return this._setCursor((m.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(m){return this._moveCursor(m.params[0]||1,0),!0}linePosAbsolute(m){return this._setCursor(this._activeBuffer.x,(m.params[0]||1)-1),!0}vPositionRelative(m){return this._moveCursor(0,m.params[0]||1),!0}hVPosition(m){return this.cursorPosition(m),!0}tabClear(m){let x=m.params[0];return x===0?delete this._activeBuffer.tabs[this._activeBuffer.x]:x===3&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(m){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let x=m.params[0]||1;for(;x--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(m){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let x=m.params[0]||1;for(;x--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(m){let x=m.params[0];return x===1&&(this._curAttrData.bg|=536870912),x!==2&&x!==0||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(m,x,E,I=!1,M=!1){let X=this._activeBuffer.lines.get(this._activeBuffer.ybase+m);X.replaceCells(x,E,this._activeBuffer.getNullCell(this._eraseAttrData()),M),I&&(X.isWrapped=!1)}_resetBufferLine(m,x=!1){let E=this._activeBuffer.lines.get(this._activeBuffer.ybase+m);E&&(E.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),x),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+m),E.isWrapped=!1)}eraseInDisplay(m,x=!1){let E;switch(this._restrictCursor(this._bufferService.cols),m.params[0]){case 0:for(E=this._activeBuffer.y,this._dirtyRowTracker.markDirty(E),this._eraseInBufferLine(E++,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,x);E=this._bufferService.cols&&(this._activeBuffer.lines.get(E+1).isWrapped=!1);E--;)this._resetBufferLine(E,x);this._dirtyRowTracker.markDirty(0);break;case 2:for(E=this._bufferService.rows,this._dirtyRowTracker.markDirty(E-1);E--;)this._resetBufferLine(E,x);this._dirtyRowTracker.markDirty(0);break;case 3:let I=this._activeBuffer.lines.length-this._bufferService.rows;I>0&&(this._activeBuffer.lines.trimStart(I),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-I,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-I,0),this._onScroll.fire(0))}return!0}eraseInLine(m,x=!1){switch(this._restrictCursor(this._bufferService.cols),m.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,x);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,x);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,x)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(m){this._restrictCursor();let x=m.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.ythis._activeBuffer.scrollBottom||this._activeBuffer.y65535?2:1}let P=W;for(let T=1;T0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(a.C0.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(a.C0.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(m){return m.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(a.C0.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(a.C0.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(m.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(a.C0.ESC+"[>83;40003;0c")),!0}_is(m){return(this._optionsService.rawOptions.termName+"").indexOf(m)===0}setMode(m){for(let x=0;xbe?1:2,te=m.params[0];return ee=te,le=x?te===2?4:te===4?Z(X.modes.insertMode):te===12?3:te===20?Z(U.convertEol):0:te===1?Z(E.applicationCursorKeys):te===3?U.windowOptions.setWinLines?W===80?2:W===132?1:0:0:te===6?Z(E.origin):te===7?Z(E.wraparound):te===8?3:te===9?Z(I==="X10"):te===12?Z(U.cursorBlink):te===25?Z(!X.isCursorHidden):te===45?Z(E.reverseWraparound):te===66?Z(E.applicationKeypad):te===67?4:te===1e3?Z(I==="VT200"):te===1002?Z(I==="DRAG"):te===1003?Z(I==="ANY"):te===1004?Z(E.sendFocus):te===1005?4:te===1006?Z(M==="SGR"):te===1015?4:te===1016?Z(M==="SGR_PIXELS"):te===1048?1:te===47||te===1047||te===1049?Z(P===T):te===2004?Z(E.bracketedPasteMode):0,X.triggerDataEvent(`${a.C0.ESC}[${x?"":"?"}${ee};${le}$y`),!0;var ee,le}_updateAttrColor(m,x,E,I,M){return x===2?(m|=50331648,m&=-16777216,m|=y.AttributeData.fromColorRGB([E,I,M])):x===5&&(m&=-50331904,m|=33554432|255&E),m}_extractColor(m,x,E){let I=[0,0,-1,0,0,0],M=0,X=0;do{if(I[X+M]=m.params[x+X],m.hasSubParams(x+X)){let $=m.getSubParams(x+X),W=0;do I[1]===5&&(M=1),I[X+W+1+M]=$[W];while(++W<$.length&&W+X+1+M=2||I[1]===2&&X+M>=5)break;I[1]&&(M=1)}while(++X+x5)&&(m=1),x.extended.underlineStyle=m,x.fg|=268435456,m===0&&(x.fg&=-268435457),x.updateExtended()}_processSGR0(m){m.fg=o.DEFAULT_ATTR_DATA.fg,m.bg=o.DEFAULT_ATTR_DATA.bg,m.extended=m.extended.clone(),m.extended.underlineStyle=0,m.extended.underlineColor&=-67108864,m.updateExtended()}charAttributes(m){if(m.length===1&&m.params[0]===0)return this._processSGR0(this._curAttrData),!0;let x=m.length,E,I=this._curAttrData;for(let M=0;M=30&&E<=37?(I.fg&=-50331904,I.fg|=16777216|E-30):E>=40&&E<=47?(I.bg&=-50331904,I.bg|=16777216|E-40):E>=90&&E<=97?(I.fg&=-50331904,I.fg|=16777224|E-90):E>=100&&E<=107?(I.bg&=-50331904,I.bg|=16777224|E-100):E===0?this._processSGR0(I):E===1?I.fg|=134217728:E===3?I.bg|=67108864:E===4?(I.fg|=268435456,this._processUnderline(m.hasSubParams(M)?m.getSubParams(M)[0]:1,I)):E===5?I.fg|=536870912:E===7?I.fg|=67108864:E===8?I.fg|=1073741824:E===9?I.fg|=2147483648:E===2?I.bg|=134217728:E===21?this._processUnderline(2,I):E===22?(I.fg&=-134217729,I.bg&=-134217729):E===23?I.bg&=-67108865:E===24?(I.fg&=-268435457,this._processUnderline(0,I)):E===25?I.fg&=-536870913:E===27?I.fg&=-67108865:E===28?I.fg&=-1073741825:E===29?I.fg&=2147483647:E===39?(I.fg&=-67108864,I.fg|=16777215&o.DEFAULT_ATTR_DATA.fg):E===49?(I.bg&=-67108864,I.bg|=16777215&o.DEFAULT_ATTR_DATA.bg):E===38||E===48||E===58?M+=this._extractColor(m,M,I):E===53?I.bg|=1073741824:E===55?I.bg&=-1073741825:E===59?(I.extended=I.extended.clone(),I.extended.underlineColor=-1,I.updateExtended()):E===100?(I.fg&=-67108864,I.fg|=16777215&o.DEFAULT_ATTR_DATA.fg,I.bg&=-67108864,I.bg|=16777215&o.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",E);return!0}deviceStatus(m){switch(m.params[0]){case 5:this._coreService.triggerDataEvent(`${a.C0.ESC}[0n`);break;case 6:let x=this._activeBuffer.y+1,E=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${a.C0.ESC}[${x};${E}R`)}return!0}deviceStatusPrivate(m){if(m.params[0]===6){let x=this._activeBuffer.y+1,E=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${a.C0.ESC}[?${x};${E}R`)}return!0}softReset(m){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=o.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(m){let x=m.params[0]||1;switch(x){case 1:case 2:this._optionsService.options.cursorStyle="block";break;case 3:case 4:this._optionsService.options.cursorStyle="underline";break;case 5:case 6:this._optionsService.options.cursorStyle="bar"}let E=x%2==1;return this._optionsService.options.cursorBlink=E,!0}setScrollRegion(m){let x=m.params[0]||1,E;return(m.length<2||(E=m.params[1])>this._bufferService.rows||E===0)&&(E=this._bufferService.rows),E>x&&(this._activeBuffer.scrollTop=x-1,this._activeBuffer.scrollBottom=E-1,this._setCursor(0,0)),!0}windowOptions(m){if(!B(m.params[0],this._optionsService.rawOptions.windowOptions))return!0;let x=m.length>1?m.params[1]:0;switch(m.params[0]){case 14:x!==2&&this._onRequestWindowsOptionsReport.fire(R.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(R.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${a.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:x!==0&&x!==2||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),x!==0&&x!==1||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:x!==0&&x!==2||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),x!==0&&x!==1||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(m){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(m){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(m){return this._windowTitle=m,this._onTitleChange.fire(m),!0}setIconName(m){return this._iconName=m,!0}setOrReportIndexedColor(m){let x=[],E=m.split(";");for(;E.length>1;){let I=E.shift(),M=E.shift();if(/^\d+$/.exec(I)){let X=parseInt(I);if(N(X))if(M==="?")x.push({type:0,index:X});else{let $=(0,C.parseColor)(M);$&&x.push({type:1,index:X,color:$})}}}return x.length&&this._onColor.fire(x),!0}setHyperlink(m){let x=m.split(";");return!(x.length<2)&&(x[1]?this._createHyperlink(x[0],x[1]):!x[0]&&this._finishHyperlink())}_createHyperlink(m,x){this._getCurrentLinkId()&&this._finishHyperlink();let E=m.split(":"),I,M=E.findIndex(X=>X.startsWith("id="));return M!==-1&&(I=E[M].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:I,uri:x}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(m,x){let E=m.split(";");for(let I=0;I=this._specialColors.length);++I,++x)if(E[I]==="?")this._onColor.fire([{type:0,index:this._specialColors[x]}]);else{let M=(0,C.parseColor)(E[I]);M&&this._onColor.fire([{type:1,index:this._specialColors[x],color:M}])}return!0}setOrReportFgColor(m){return this._setOrReportSpecialColor(m,0)}setOrReportBgColor(m){return this._setOrReportSpecialColor(m,1)}setOrReportCursorColor(m){return this._setOrReportSpecialColor(m,2)}restoreIndexedColor(m){if(!m)return this._onColor.fire([{type:2}]),!0;let x=[],E=m.split(";");for(let I=0;I=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){let m=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,m,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=o.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=o.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(m){return this._charsetService.setgLevel(m),!0}screenAlignmentPattern(){let m=new p.CellData;m.content=4194373,m.fg=this._curAttrData.fg,m.bg=this._curAttrData.bg,this._setCursor(0,0);for(let x=0;x(this._coreService.triggerDataEvent(`${a.C0.ESC}${M}${a.C0.ESC}\\`),!0))(m==='"q'?`P1$r${this._curAttrData.isProtected()?1:0}"q`:m==='"p'?'P1$r61;1"p':m==="r"?`P1$r${E.scrollTop+1};${E.scrollBottom+1}r`:m==="m"?"P1$r0m":m===" q"?`P1$r${{block:2,underline:4,bar:6}[I.cursorStyle]-(I.cursorBlink?1:0)} q`:"P0$r")}markRangeDirty(m,x){this._dirtyRowTracker.markRangeDirty(m,x)}}t.InputHandler=Q;let K=class{constructor(k){this._bufferService=k,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(k){kthis.end&&(this.end=k)}markRangeDirty(k,m){k>m&&(F=k,k=m,m=F),kthis.end&&(this.end=m)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function N(k){return 0<=k&&k<256}K=h([g(0,w.IBufferService)],K)},844:(c,t)=>{function n(h){for(let g of h)g.dispose();h.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(let h of this._disposables)h.dispose();this._disposables.length=0}register(h){return this._disposables.push(h),h}unregister(h){let g=this._disposables.indexOf(h);g!==-1&&this._disposables.splice(g,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(h){this._isDisposed||h===this._value||(this._value?.dispose(),this._value=h)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(h){return{dispose:h}},t.disposeArray=n,t.getDisposeArrayDisposable=function(h){return{dispose:()=>n(h)}}},1505:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class n{constructor(){this._data={}}set(g,a,l){this._data[g]||(this._data[g]={}),this._data[g][a]=l}get(g,a){return this._data[g]?this._data[g][a]:void 0}clear(){this._data={}}}t.TwoKeyMap=n,t.FourKeyMap=class{constructor(){this._data=new n}set(h,g,a,l,_){this._data.get(h,g)||this._data.set(h,g,new n),this._data.get(h,g).set(a,l,_)}get(h,g,a,l){return this._data.get(h,g)?.get(a,l)}clear(){this._data.clear()}}},6114:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode=typeof process<"u"&&"title"in process;let n=t.isNode?"node":navigator.userAgent,h=t.isNode?"node":navigator.platform;t.isFirefox=n.includes("Firefox"),t.isLegacyEdge=n.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(n),t.getSafariVersion=function(){if(!t.isSafari)return 0;let g=n.match(/Version\/(\d+)/);return g===null||g.length<2?0:parseInt(g[1])},t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(h),t.isIpad=h==="iPad",t.isIphone=h==="iPhone",t.isWindows=["Windows","Win16","Win32","WinCE"].includes(h),t.isLinux=h.indexOf("Linux")>=0,t.isChromeOS=/\bCrOS\b/.test(n)},6106:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SortedList=void 0;let n=0;t.SortedList=class{constructor(h){this._getKey=h,this._array=[]}clear(){this._array.length=0}insert(h){this._array.length!==0?(n=this._search(this._getKey(h)),this._array.splice(n,0,h)):this._array.push(h)}delete(h){if(this._array.length===0)return!1;let g=this._getKey(h);if(g===void 0||(n=this._search(g),n===-1)||this._getKey(this._array[n])!==g)return!1;do if(this._array[n]===h)return this._array.splice(n,1),!0;while(++n=this._array.length)&&this._getKey(this._array[n])===h))do yield this._array[n];while(++n=this._array.length)&&this._getKey(this._array[n])===h))do g(this._array[n]);while(++n=g;){let l=g+a>>1,_=this._getKey(this._array[l]);if(_>h)a=l-1;else{if(!(_0&&this._getKey(this._array[l-1])===h;)l--;return l}g=l+1}}return g}}},7226:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;let h=n(6114);class g{constructor(){this._tasks=[],this._i=0}enqueue(_){this._tasks.push(_),this._start()}flush(){for(;this._id)return o-v<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(o-v))}ms`),void this._start();o=d}this.clear()}}class a extends g{_requestCallback(_){return setTimeout(()=>_(this._createDeadline(16)))}_cancelCallback(_){clearTimeout(_)}_createDeadline(_){let v=Date.now()+_;return{timeRemaining:()=>Math.max(0,v-Date.now())}}}t.PriorityTaskQueue=a,t.IdleTaskQueue=!h.isNode&&"requestIdleCallback"in window?class extends g{_requestCallback(l){return requestIdleCallback(l)}_cancelCallback(l){cancelIdleCallback(l)}}:a,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(l){this._queue.clear(),this._queue.enqueue(l)}flush(){this._queue.flush()}}},9282:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.updateWindowsModeWrappedState=void 0;let h=n(643);t.updateWindowsModeWrappedState=function(g){let a=g.buffer.lines.get(g.buffer.ybase+g.buffer.y-1),l=a?.get(g.cols-1),_=g.buffer.lines.get(g.buffer.ybase+g.buffer.y);_&&l&&(_.isWrapped=l[h.CHAR_DATA_CODE_INDEX]!==h.NULL_CELL_CODE&&l[h.CHAR_DATA_CODE_INDEX]!==h.WHITESPACE_CELL_CODE)}},3734:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class n{constructor(){this.fg=0,this.bg=0,this.extended=new h}static toColorRGB(a){return[a>>>16&255,a>>>8&255,255&a]}static fromColorRGB(a){return(255&a[0])<<16|(255&a[1])<<8|255&a[2]}clone(){let a=new n;return a.fg=this.fg,a.bg=this.bg,a.extended=this.extended.clone(),a}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return(50331648&this.fg)==50331648}isBgRGB(){return(50331648&this.bg)==50331648}isFgPalette(){return(50331648&this.fg)==16777216||(50331648&this.fg)==33554432}isBgPalette(){return(50331648&this.bg)==16777216||(50331648&this.bg)==33554432}isFgDefault(){return(50331648&this.fg)==0}isBgDefault(){return(50331648&this.bg)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==16777216||(50331648&this.extended.underlineColor)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==0:this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}t.AttributeData=n;class h{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(a){this._ext=a}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(a){this._ext&=-469762049,this._ext|=a<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(a){this._ext&=-67108864,this._ext|=67108863&a}get urlId(){return this._urlId}set urlId(a){this._urlId=a}get underlineVariantOffset(){let a=(3758096384&this._ext)>>29;return a<0?4294967288^a:a}set underlineVariantOffset(a){this._ext&=536870911,this._ext|=a<<29&3758096384}constructor(a=0,l=0){this._ext=0,this._urlId=0,this._ext=a,this._urlId=l}clone(){return new h(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}}t.ExtendedAttrs=h},9092:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Buffer=t.MAX_BUFFER_SIZE=void 0;let h=n(6349),g=n(7226),a=n(3734),l=n(8437),_=n(4634),v=n(511),u=n(643),o=n(4863),d=n(7116);t.MAX_BUFFER_SIZE=4294967295,t.Buffer=class{constructor(f,p,y){this._hasScrollback=f,this._optionsService=p,this._bufferService=y,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=l.DEFAULT_ATTR_DATA.clone(),this.savedCharset=d.DEFAULT_CHARSET,this.markers=[],this._nullCell=v.CellData.fromCharData([0,u.NULL_CELL_CHAR,u.NULL_CELL_WIDTH,u.NULL_CELL_CODE]),this._whitespaceCell=v.CellData.fromCharData([0,u.WHITESPACE_CELL_CHAR,u.WHITESPACE_CELL_WIDTH,u.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new g.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new h.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(f){return f?(this._nullCell.fg=f.fg,this._nullCell.bg=f.bg,this._nullCell.extended=f.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new a.ExtendedAttrs),this._nullCell}getWhitespaceCell(f){return f?(this._whitespaceCell.fg=f.fg,this._whitespaceCell.bg=f.bg,this._whitespaceCell.extended=f.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new a.ExtendedAttrs),this._whitespaceCell}getBlankLine(f,p){return new l.BufferLine(this._bufferService.cols,this.getNullCell(f),p)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){let f=this.ybase+this.y-this.ydisp;return f>=0&&ft.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:p}fillViewportRows(f){if(this.lines.length===0){f===void 0&&(f=l.DEFAULT_ATTR_DATA);let p=this._rows;for(;p--;)this.lines.push(this.getBlankLine(f))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new h.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(f,p){let y=this.getNullCell(l.DEFAULT_ATTR_DATA),w=0,b=this._getCorrectBufferLength(p);if(b>this.lines.maxLength&&(this.lines.maxLength=b),this.lines.length>0){if(this._cols0&&this.lines.length<=this.ybase+this.y+S+1?(this.ybase--,S++,this.ydisp>0&&this.ydisp--):this.lines.push(new l.BufferLine(f,y)));else for(let A=this._rows;A>p;A--)this.lines.length>p+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(b0&&(this.lines.trimStart(A),this.ybase=Math.max(this.ybase-A,0),this.ydisp=Math.max(this.ydisp-A,0),this.savedY=Math.max(this.savedY-A,0)),this.lines.maxLength=b}this.x=Math.min(this.x,f-1),this.y=Math.min(this.y,p-1),S&&(this.y+=S),this.savedX=Math.min(this.savedX,f-1),this.scrollTop=0}if(this.scrollBottom=p-1,this._isReflowEnabled&&(this._reflow(f,p),this._cols>f))for(let S=0;S.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue(()=>this._batchedMemoryCleanup()))}_batchedMemoryCleanup(){let f=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,f=!1);let p=0;for(;this._memoryCleanupPosition100)return!0;return f}get _isReflowEnabled(){let f=this._optionsService.rawOptions.windowsPty;return f&&f.buildNumber?this._hasScrollback&&f.backend==="conpty"&&f.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(f,p){this._cols!==f&&(f>this._cols?this._reflowLarger(f,p):this._reflowSmaller(f,p))}_reflowLarger(f,p){let y=(0,_.reflowLargerGetLinesToRemove)(this.lines,this._cols,f,this.ybase+this.y,this.getNullCell(l.DEFAULT_ATTR_DATA));if(y.length>0){let w=(0,_.reflowLargerCreateNewLayout)(this.lines,y);(0,_.reflowLargerApplyNewLayout)(this.lines,w.layout),this._reflowLargerAdjustViewport(f,p,w.countRemoved)}}_reflowLargerAdjustViewport(f,p,y){let w=this.getNullCell(l.DEFAULT_ATTR_DATA),b=y;for(;b-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length=0;S--){let A=this.lines.get(S);if(!A||!A.isWrapped&&A.getTrimmedLength()<=f)continue;let C=[A];for(;A.isWrapped&&S>0;)A=this.lines.get(--S),C.unshift(A);let D=this.ybase+this.y;if(D>=S&&D0&&(w.push({start:S+C.length+b,newLines:Q}),b+=Q.length),C.push(...Q);let K=B.length-1,N=B[K];N===0&&(K--,N=B[K]);let k=C.length-R-1,m=L;for(;k>=0;){let E=Math.min(m,N);if(C[K]===void 0)break;if(C[K].copyCellsFrom(C[k],m-E,N-E,E,!0),N-=E,N===0&&(K--,N=B[K]),m-=E,m===0){k--;let I=Math.max(k,0);m=(0,_.getWrappedLineTrimmedLength)(C,I,this._cols)}}for(let E=0;E0;)this.ybase===0?this.y0){let S=[],A=[];for(let K=0;K=0;K--)if(B&&B.start>D+R){for(let N=B.newLines.length-1;N>=0;N--)this.lines.set(K--,B.newLines[N]);K++,S.push({index:D+1,amount:B.newLines.length}),R+=B.newLines.length,B=w[++L]}else this.lines.set(K,A[D--]);let F=0;for(let K=S.length-1;K>=0;K--)S[K].index+=F,this.lines.onInsertEmitter.fire(S[K]),F+=S[K].amount;let Q=Math.max(0,C+b-this.lines.maxLength);Q>0&&this.lines.onTrimEmitter.fire(Q)}}translateBufferLineToString(f,p,y=0,w){let b=this.lines.get(f);return b?b.translateToString(p,y,w):""}getWrappedRangeForLine(f){let p=f,y=f;for(;p>0&&this.lines.get(p).isWrapped;)p--;for(;y+10;);return f>=this._cols?this._cols-1:f<0?0:f}nextStop(f){for(f==null&&(f=this.x);!this.tabs[++f]&&f=this._cols?this._cols-1:f<0?0:f}clearMarkers(f){this._isClearing=!0;for(let p=0;p{p.line-=y,p.line<0&&p.dispose()})),p.register(this.lines.onInsert(y=>{p.line>=y.index&&(p.line+=y.amount)})),p.register(this.lines.onDelete(y=>{p.line>=y.index&&p.liney.index&&(p.line-=y.amount)})),p.register(p.onDispose(()=>this._removeMarker(p))),p}_removeMarker(f){this._isClearing||this.markers.splice(this.markers.indexOf(f),1)}}},8437:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLine=t.DEFAULT_ATTR_DATA=void 0;let h=n(3734),g=n(511),a=n(643),l=n(482);t.DEFAULT_ATTR_DATA=Object.freeze(new h.AttributeData);let _=0;class v{constructor(o,d,f=!1){this.isWrapped=f,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*o);let p=d||g.CellData.fromCharData([0,a.NULL_CELL_CHAR,a.NULL_CELL_WIDTH,a.NULL_CELL_CODE]);for(let y=0;y>22,2097152&d?this._combined[o].charCodeAt(this._combined[o].length-1):f]}set(o,d){this._data[3*o+1]=d[a.CHAR_DATA_ATTR_INDEX],d[a.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[o]=d[1],this._data[3*o+0]=2097152|o|d[a.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*o+0]=d[a.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|d[a.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(o){return this._data[3*o+0]>>22}hasWidth(o){return 12582912&this._data[3*o+0]}getFg(o){return this._data[3*o+1]}getBg(o){return this._data[3*o+2]}hasContent(o){return 4194303&this._data[3*o+0]}getCodePoint(o){let d=this._data[3*o+0];return 2097152&d?this._combined[o].charCodeAt(this._combined[o].length-1):2097151&d}isCombined(o){return 2097152&this._data[3*o+0]}getString(o){let d=this._data[3*o+0];return 2097152&d?this._combined[o]:2097151&d?(0,l.stringFromCodePoint)(2097151&d):""}isProtected(o){return 536870912&this._data[3*o+2]}loadCell(o,d){return _=3*o,d.content=this._data[_+0],d.fg=this._data[_+1],d.bg=this._data[_+2],2097152&d.content&&(d.combinedData=this._combined[o]),268435456&d.bg&&(d.extended=this._extendedAttrs[o]),d}setCell(o,d){2097152&d.content&&(this._combined[o]=d.combinedData),268435456&d.bg&&(this._extendedAttrs[o]=d.extended),this._data[3*o+0]=d.content,this._data[3*o+1]=d.fg,this._data[3*o+2]=d.bg}setCellFromCodepoint(o,d,f,p){268435456&p.bg&&(this._extendedAttrs[o]=p.extended),this._data[3*o+0]=d|f<<22,this._data[3*o+1]=p.fg,this._data[3*o+2]=p.bg}addCodepointToCell(o,d,f){let p=this._data[3*o+0];2097152&p?this._combined[o]+=(0,l.stringFromCodePoint)(d):2097151&p?(this._combined[o]=(0,l.stringFromCodePoint)(2097151&p)+(0,l.stringFromCodePoint)(d),p&=-2097152,p|=2097152):p=d|4194304,f&&(p&=-12582913,p|=f<<22),this._data[3*o+0]=p}insertCells(o,d,f){if((o%=this.length)&&this.getWidth(o-1)===2&&this.setCellFromCodepoint(o-1,0,1,f),d=0;--y)this.setCell(o+d+y,this.loadCell(o+y,p));for(let y=0;ythis.length){if(this._data.buffer.byteLength>=4*f)this._data=new Uint32Array(this._data.buffer,0,f);else{let p=new Uint32Array(f);p.set(this._data),this._data=p}for(let p=this.length;p=o&&delete this._combined[b]}let y=Object.keys(this._extendedAttrs);for(let w=0;w=o&&delete this._extendedAttrs[b]}}return this.length=o,4*f*2=0;--o)if(4194303&this._data[3*o+0])return o+(this._data[3*o+0]>>22);return 0}getNoBgTrimmedLength(){for(let o=this.length-1;o>=0;--o)if(4194303&this._data[3*o+0]||50331648&this._data[3*o+2])return o+(this._data[3*o+0]>>22);return 0}copyCellsFrom(o,d,f,p,y){let w=o._data;if(y)for(let S=p-1;S>=0;S--){for(let A=0;A<3;A++)this._data[3*(f+S)+A]=w[3*(d+S)+A];268435456&w[3*(d+S)+2]&&(this._extendedAttrs[f+S]=o._extendedAttrs[d+S])}else for(let S=0;S=d&&(this._combined[A-d+f]=o._combined[A])}}translateToString(o,d,f,p){d=d??0,f=f??this.length,o&&(f=Math.min(f,this.getTrimmedLength())),p&&(p.length=0);let y="";for(;d>22||1}return p&&p.push(d),y}}t.BufferLine=v},4841:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getRangeLength=void 0,t.getRangeLength=function(n,h){if(n.start.y>n.end.y)throw new Error(`Buffer range end (${n.end.x}, ${n.end.y}) cannot be before start (${n.start.x}, ${n.start.y})`);return h*(n.end.y-n.start.y)+(n.end.x-n.start.x+1)}},4634:(c,t)=>{function n(h,g,a){if(g===h.length-1)return h[g].getTrimmedLength();let l=!h[g].hasContent(a-1)&&h[g].getWidth(a-1)===1,_=h[g+1].getWidth(0)===2;return l&&_?a-1:a}Object.defineProperty(t,"__esModule",{value:!0}),t.getWrappedLineTrimmedLength=t.reflowSmallerGetNewLineLengths=t.reflowLargerApplyNewLayout=t.reflowLargerCreateNewLayout=t.reflowLargerGetLinesToRemove=void 0,t.reflowLargerGetLinesToRemove=function(h,g,a,l,_){let v=[];for(let u=0;u=u&&l0&&(A>p||f[A].getTrimmedLength()===0);A--)S++;S>0&&(v.push(u+f.length-S),v.push(S)),u+=f.length-1}return v},t.reflowLargerCreateNewLayout=function(h,g){let a=[],l=0,_=g[l],v=0;for(let u=0;un(h,f,g)).reduce((d,f)=>d+f),v=0,u=0,o=0;for(;o<_;){if(_-od&&(v-=d,u++);let f=h[u].getWidth(v-1)===2;f&&v--;let p=f?a-1:a;l.push(p),o+=p}return l},t.getWrappedLineTrimmedLength=n},5295:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferSet=void 0;let h=n(8460),g=n(844),a=n(9092);class l extends g.Disposable{constructor(v,u){super(),this._optionsService=v,this._bufferService=u,this._onBufferActivate=this.register(new h.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange("scrollback",()=>this.resize(this._bufferService.cols,this._bufferService.rows))),this.register(this._optionsService.onSpecificOptionChange("tabStopWidth",()=>this.setupTabStops()))}reset(){this._normal=new a.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new a.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(v){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(v),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(v,u){this._normal.resize(v,u),this._alt.resize(v,u),this.setupTabStops(v)}setupTabStops(v){this._normal.setupTabStops(v),this._alt.setupTabStops(v)}}t.BufferSet=l},511:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;let h=n(482),g=n(643),a=n(3734);class l extends a.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new a.ExtendedAttrs,this.combinedData=""}static fromCharData(v){let u=new l;return u.setFromCharData(v),u}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,h.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(v){this.fg=v[g.CHAR_DATA_ATTR_INDEX],this.bg=0;let u=!1;if(v[g.CHAR_DATA_CHAR_INDEX].length>2)u=!0;else if(v[g.CHAR_DATA_CHAR_INDEX].length===2){let o=v[g.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=o&&o<=56319){let d=v[g.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=d&&d<=57343?this.content=1024*(o-55296)+d-56320+65536|v[g.CHAR_DATA_WIDTH_INDEX]<<22:u=!0}else u=!0}else this.content=v[g.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|v[g.CHAR_DATA_WIDTH_INDEX]<<22;u&&(this.combinedData=v[g.CHAR_DATA_CHAR_INDEX],this.content=2097152|v[g.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=l},643:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},4863:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Marker=void 0;let h=n(8460),g=n(844);class a{get id(){return this._id}constructor(_){this.line=_,this.isDisposed=!1,this._disposables=[],this._id=a._nextId++,this._onDispose=this.register(new h.EventEmitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,g.disposeArray)(this._disposables),this._disposables.length=0)}register(_){return this._disposables.push(_),_}}t.Marker=a,a._nextId=1},7116:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_CHARSET=t.CHARSETS=void 0,t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={"`":"\u25C6",a:"\u2592",b:"\u2409",c:"\u240C",d:"\u240D",e:"\u240A",f:"\xB0",g:"\xB1",h:"\u2424",i:"\u240B",j:"\u2518",k:"\u2510",l:"\u250C",m:"\u2514",n:"\u253C",o:"\u23BA",p:"\u23BB",q:"\u2500",r:"\u23BC",s:"\u23BD",t:"\u251C",u:"\u2524",v:"\u2534",w:"\u252C",x:"\u2502",y:"\u2264",z:"\u2265","{":"\u03C0","|":"\u2260","}":"\xA3","~":"\xB7"},t.CHARSETS.A={"#":"\xA3"},t.CHARSETS.B=void 0,t.CHARSETS[4]={"#":"\xA3","@":"\xBE","[":"ij","\\":"\xBD","]":"|","{":"\xA8","|":"f","}":"\xBC","~":"\xB4"},t.CHARSETS.C=t.CHARSETS[5]={"[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"},t.CHARSETS.R={"#":"\xA3","@":"\xE0","[":"\xB0","\\":"\xE7","]":"\xA7","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xA8"},t.CHARSETS.Q={"@":"\xE0","[":"\xE2","\\":"\xE7","]":"\xEA","^":"\xEE","`":"\xF4","{":"\xE9","|":"\xF9","}":"\xE8","~":"\xFB"},t.CHARSETS.K={"@":"\xA7","[":"\xC4","\\":"\xD6","]":"\xDC","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xDF"},t.CHARSETS.Y={"#":"\xA3","@":"\xA7","[":"\xB0","\\":"\xE7","]":"\xE9","`":"\xF9","{":"\xE0","|":"\xF2","}":"\xE8","~":"\xEC"},t.CHARSETS.E=t.CHARSETS[6]={"@":"\xC4","[":"\xC6","\\":"\xD8","]":"\xC5","^":"\xDC","`":"\xE4","{":"\xE6","|":"\xF8","}":"\xE5","~":"\xFC"},t.CHARSETS.Z={"#":"\xA3","@":"\xA7","[":"\xA1","\\":"\xD1","]":"\xBF","{":"\xB0","|":"\xF1","}":"\xE7"},t.CHARSETS.H=t.CHARSETS[7]={"@":"\xC9","[":"\xC4","\\":"\xD6","]":"\xC5","^":"\xDC","`":"\xE9","{":"\xE4","|":"\xF6","}":"\xE5","~":"\xFC"},t.CHARSETS["="]={"#":"\xF9","@":"\xE0","[":"\xE9","\\":"\xE7","]":"\xEA","^":"\xEE",_:"\xE8","`":"\xF4","{":"\xE4","|":"\xF6","}":"\xFC","~":"\xFB"}},2584:(c,t)=>{var n,h,g;Object.defineProperty(t,"__esModule",{value:!0}),t.C1_ESCAPED=t.C1=t.C0=void 0,function(a){a.NUL="\0",a.SOH="",a.STX="",a.ETX="",a.EOT="",a.ENQ="",a.ACK="",a.BEL="\x07",a.BS="\b",a.HT=" ",a.LF=` +`,a.VT="\v",a.FF="\f",a.CR="\r",a.SO="",a.SI="",a.DLE="",a.DC1="",a.DC2="",a.DC3="",a.DC4="",a.NAK="",a.SYN="",a.ETB="",a.CAN="",a.EM="",a.SUB="",a.ESC="\x1B",a.FS="",a.GS="",a.RS="",a.US="",a.SP=" ",a.DEL="\x7F"}(n||(t.C0=n={})),function(a){a.PAD="\x80",a.HOP="\x81",a.BPH="\x82",a.NBH="\x83",a.IND="\x84",a.NEL="\x85",a.SSA="\x86",a.ESA="\x87",a.HTS="\x88",a.HTJ="\x89",a.VTS="\x8A",a.PLD="\x8B",a.PLU="\x8C",a.RI="\x8D",a.SS2="\x8E",a.SS3="\x8F",a.DCS="\x90",a.PU1="\x91",a.PU2="\x92",a.STS="\x93",a.CCH="\x94",a.MW="\x95",a.SPA="\x96",a.EPA="\x97",a.SOS="\x98",a.SGCI="\x99",a.SCI="\x9A",a.CSI="\x9B",a.ST="\x9C",a.OSC="\x9D",a.PM="\x9E",a.APC="\x9F"}(h||(t.C1=h={})),function(a){a.ST=`${n.ESC}\\`}(g||(t.C1_ESCAPED=g={}))},7399:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.evaluateKeyboardEvent=void 0;let h=n(2584),g={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};t.evaluateKeyboardEvent=function(a,l,_,v){let u={type:0,cancel:!1,key:void 0},o=(a.shiftKey?1:0)|(a.altKey?2:0)|(a.ctrlKey?4:0)|(a.metaKey?8:0);switch(a.keyCode){case 0:a.key==="UIKeyInputUpArrow"?u.key=l?h.C0.ESC+"OA":h.C0.ESC+"[A":a.key==="UIKeyInputLeftArrow"?u.key=l?h.C0.ESC+"OD":h.C0.ESC+"[D":a.key==="UIKeyInputRightArrow"?u.key=l?h.C0.ESC+"OC":h.C0.ESC+"[C":a.key==="UIKeyInputDownArrow"&&(u.key=l?h.C0.ESC+"OB":h.C0.ESC+"[B");break;case 8:u.key=a.ctrlKey?"\b":h.C0.DEL,a.altKey&&(u.key=h.C0.ESC+u.key);break;case 9:if(a.shiftKey){u.key=h.C0.ESC+"[Z";break}u.key=h.C0.HT,u.cancel=!0;break;case 13:u.key=a.altKey?h.C0.ESC+h.C0.CR:h.C0.CR,u.cancel=!0;break;case 27:u.key=h.C0.ESC,a.altKey&&(u.key=h.C0.ESC+h.C0.ESC),u.cancel=!0;break;case 37:if(a.metaKey)break;o?(u.key=h.C0.ESC+"[1;"+(o+1)+"D",u.key===h.C0.ESC+"[1;3D"&&(u.key=h.C0.ESC+(_?"b":"[1;5D"))):u.key=l?h.C0.ESC+"OD":h.C0.ESC+"[D";break;case 39:if(a.metaKey)break;o?(u.key=h.C0.ESC+"[1;"+(o+1)+"C",u.key===h.C0.ESC+"[1;3C"&&(u.key=h.C0.ESC+(_?"f":"[1;5C"))):u.key=l?h.C0.ESC+"OC":h.C0.ESC+"[C";break;case 38:if(a.metaKey)break;o?(u.key=h.C0.ESC+"[1;"+(o+1)+"A",_||u.key!==h.C0.ESC+"[1;3A"||(u.key=h.C0.ESC+"[1;5A")):u.key=l?h.C0.ESC+"OA":h.C0.ESC+"[A";break;case 40:if(a.metaKey)break;o?(u.key=h.C0.ESC+"[1;"+(o+1)+"B",_||u.key!==h.C0.ESC+"[1;3B"||(u.key=h.C0.ESC+"[1;5B")):u.key=l?h.C0.ESC+"OB":h.C0.ESC+"[B";break;case 45:a.shiftKey||a.ctrlKey||(u.key=h.C0.ESC+"[2~");break;case 46:u.key=o?h.C0.ESC+"[3;"+(o+1)+"~":h.C0.ESC+"[3~";break;case 36:u.key=o?h.C0.ESC+"[1;"+(o+1)+"H":l?h.C0.ESC+"OH":h.C0.ESC+"[H";break;case 35:u.key=o?h.C0.ESC+"[1;"+(o+1)+"F":l?h.C0.ESC+"OF":h.C0.ESC+"[F";break;case 33:a.shiftKey?u.type=2:a.ctrlKey?u.key=h.C0.ESC+"[5;"+(o+1)+"~":u.key=h.C0.ESC+"[5~";break;case 34:a.shiftKey?u.type=3:a.ctrlKey?u.key=h.C0.ESC+"[6;"+(o+1)+"~":u.key=h.C0.ESC+"[6~";break;case 112:u.key=o?h.C0.ESC+"[1;"+(o+1)+"P":h.C0.ESC+"OP";break;case 113:u.key=o?h.C0.ESC+"[1;"+(o+1)+"Q":h.C0.ESC+"OQ";break;case 114:u.key=o?h.C0.ESC+"[1;"+(o+1)+"R":h.C0.ESC+"OR";break;case 115:u.key=o?h.C0.ESC+"[1;"+(o+1)+"S":h.C0.ESC+"OS";break;case 116:u.key=o?h.C0.ESC+"[15;"+(o+1)+"~":h.C0.ESC+"[15~";break;case 117:u.key=o?h.C0.ESC+"[17;"+(o+1)+"~":h.C0.ESC+"[17~";break;case 118:u.key=o?h.C0.ESC+"[18;"+(o+1)+"~":h.C0.ESC+"[18~";break;case 119:u.key=o?h.C0.ESC+"[19;"+(o+1)+"~":h.C0.ESC+"[19~";break;case 120:u.key=o?h.C0.ESC+"[20;"+(o+1)+"~":h.C0.ESC+"[20~";break;case 121:u.key=o?h.C0.ESC+"[21;"+(o+1)+"~":h.C0.ESC+"[21~";break;case 122:u.key=o?h.C0.ESC+"[23;"+(o+1)+"~":h.C0.ESC+"[23~";break;case 123:u.key=o?h.C0.ESC+"[24;"+(o+1)+"~":h.C0.ESC+"[24~";break;default:if(!a.ctrlKey||a.shiftKey||a.altKey||a.metaKey)if(_&&!v||!a.altKey||a.metaKey)!_||a.altKey||a.ctrlKey||a.shiftKey||!a.metaKey?a.key&&!a.ctrlKey&&!a.altKey&&!a.metaKey&&a.keyCode>=48&&a.key.length===1?u.key=a.key:a.key&&a.ctrlKey&&(a.key==="_"&&(u.key=h.C0.US),a.key==="@"&&(u.key=h.C0.NUL)):a.keyCode===65&&(u.type=1);else{let d=g[a.keyCode],f=d?.[a.shiftKey?1:0];if(f)u.key=h.C0.ESC+f;else if(a.keyCode>=65&&a.keyCode<=90){let p=a.ctrlKey?a.keyCode-64:a.keyCode+32,y=String.fromCharCode(p);a.shiftKey&&(y=y.toUpperCase()),u.key=h.C0.ESC+y}else if(a.keyCode===32)u.key=h.C0.ESC+(a.ctrlKey?h.C0.NUL:" ");else if(a.key==="Dead"&&a.code.startsWith("Key")){let p=a.code.slice(3,4);a.shiftKey||(p=p.toLowerCase()),u.key=h.C0.ESC+p,u.cancel=!0}}else a.keyCode>=65&&a.keyCode<=90?u.key=String.fromCharCode(a.keyCode-64):a.keyCode===32?u.key=h.C0.NUL:a.keyCode>=51&&a.keyCode<=55?u.key=String.fromCharCode(a.keyCode-51+27):a.keyCode===56?u.key=h.C0.DEL:a.keyCode===219?u.key=h.C0.ESC:a.keyCode===220?u.key=h.C0.FS:a.keyCode===221&&(u.key=h.C0.GS)}return u}},482:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(n){return n>65535?(n-=65536,String.fromCharCode(55296+(n>>10))+String.fromCharCode(n%1024+56320)):String.fromCharCode(n)},t.utf32ToString=function(n,h=0,g=n.length){let a="";for(let l=h;l65535?(_-=65536,a+=String.fromCharCode(55296+(_>>10))+String.fromCharCode(_%1024+56320)):a+=String.fromCharCode(_)}return a},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(n,h){let g=n.length;if(!g)return 0;let a=0,l=0;if(this._interim){let _=n.charCodeAt(l++);56320<=_&&_<=57343?h[a++]=1024*(this._interim-55296)+_-56320+65536:(h[a++]=this._interim,h[a++]=_),this._interim=0}for(let _=l;_=g)return this._interim=v,a;let u=n.charCodeAt(_);56320<=u&&u<=57343?h[a++]=1024*(v-55296)+u-56320+65536:(h[a++]=v,h[a++]=u)}else v!==65279&&(h[a++]=v)}return a}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(n,h){let g=n.length;if(!g)return 0;let a,l,_,v,u=0,o=0,d=0;if(this.interim[0]){let y=!1,w=this.interim[0];w&=(224&w)==192?31:(240&w)==224?15:7;let b,S=0;for(;(b=63&this.interim[++S])&&S<4;)w<<=6,w|=b;let A=(224&this.interim[0])==192?2:(240&this.interim[0])==224?3:4,C=A-S;for(;d=g)return 0;if(b=n[d++],(192&b)!=128){d--,y=!0;break}this.interim[S++]=b,w<<=6,w|=63&b}y||(A===2?w<128?d--:h[u++]=w:A===3?w<2048||w>=55296&&w<=57343||w===65279||(h[u++]=w):w<65536||w>1114111||(h[u++]=w)),this.interim.fill(0)}let f=g-4,p=d;for(;p=g)return this.interim[0]=a,u;if(l=n[p++],(192&l)!=128){p--;continue}if(o=(31&a)<<6|63&l,o<128){p--;continue}h[u++]=o}else if((240&a)==224){if(p>=g)return this.interim[0]=a,u;if(l=n[p++],(192&l)!=128){p--;continue}if(p>=g)return this.interim[0]=a,this.interim[1]=l,u;if(_=n[p++],(192&_)!=128){p--;continue}if(o=(15&a)<<12|(63&l)<<6|63&_,o<2048||o>=55296&&o<=57343||o===65279)continue;h[u++]=o}else if((248&a)==240){if(p>=g)return this.interim[0]=a,u;if(l=n[p++],(192&l)!=128){p--;continue}if(p>=g)return this.interim[0]=a,this.interim[1]=l,u;if(_=n[p++],(192&_)!=128){p--;continue}if(p>=g)return this.interim[0]=a,this.interim[1]=l,this.interim[2]=_,u;if(v=n[p++],(192&v)!=128){p--;continue}if(o=(7&a)<<18|(63&l)<<12|(63&_)<<6|63&v,o<65536||o>1114111)continue;h[u++]=o}}return u}}},225:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV6=void 0;let h=n(1480),g=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],a=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],l;t.UnicodeV6=class{constructor(){if(this.version="6",!l){l=new Uint8Array(65536),l.fill(1),l[0]=0,l.fill(0,1,32),l.fill(0,127,160),l.fill(2,4352,4448),l[9001]=2,l[9002]=2,l.fill(2,11904,42192),l[12351]=1,l.fill(2,44032,55204),l.fill(2,63744,64256),l.fill(2,65040,65050),l.fill(2,65072,65136),l.fill(2,65280,65377),l.fill(2,65504,65511);for(let _=0;_u[f][1])return!1;for(;f>=d;)if(o=d+f>>1,v>u[o][1])d=o+1;else{if(!(v=131072&&_<=196605||_>=196608&&_<=262141?2:1}charProperties(_,v){let u=this.wcwidth(_),o=u===0&&v!==0;if(o){let d=h.UnicodeService.extractWidth(v);d===0?o=!1:d>u&&(u=d)}return h.UnicodeService.createPropertyValue(0,u,o)}}},5981:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WriteBuffer=void 0;let h=n(8460),g=n(844);class a extends g.Disposable{constructor(_){super(),this._action=_,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new h.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(_,v){if(v!==void 0&&this._syncCalls>v)return void(this._syncCalls=0);if(this._pendingData+=_.length,this._writeBuffer.push(_),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let u;for(this._isSyncWriting=!0;u=this._writeBuffer.shift();){this._action(u);let o=this._callbacks.shift();o&&o()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(_,v){if(this._pendingData>5e7)throw new Error("write data discarded, use flow control to avoid losing data");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=_.length,this._writeBuffer.push(_),this._callbacks.push(v),void this._innerWrite();setTimeout(()=>this._innerWrite())}this._pendingData+=_.length,this._writeBuffer.push(_),this._callbacks.push(v)}_innerWrite(_=0,v=!0){let u=_||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){let o=this._writeBuffer[this._bufferOffset],d=this._action(o,v);if(d){let p=y=>Date.now()-u>=12?setTimeout(()=>this._innerWrite(0,y)):this._innerWrite(u,y);return void d.catch(y=>(queueMicrotask(()=>{throw y}),Promise.resolve(!1))).then(p)}let f=this._callbacks[this._bufferOffset];if(f&&f(),this._bufferOffset++,this._pendingData-=o.length,Date.now()-u>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout(()=>this._innerWrite())):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}t.WriteBuffer=a},5941:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.toRgbString=t.parseColor=void 0;let n=/^([\da-f])\/([\da-f])\/([\da-f])$|^([\da-f]{2})\/([\da-f]{2})\/([\da-f]{2})$|^([\da-f]{3})\/([\da-f]{3})\/([\da-f]{3})$|^([\da-f]{4})\/([\da-f]{4})\/([\da-f]{4})$/,h=/^[\da-f]+$/;function g(a,l){let _=a.toString(16),v=_.length<2?"0"+_:_;switch(l){case 4:return _[0];case 8:return v;case 12:return(v+v).slice(0,3);default:return v+v}}t.parseColor=function(a){if(!a)return;let l=a.toLowerCase();if(l.indexOf("rgb:")===0){l=l.slice(4);let _=n.exec(l);if(_){let v=_[1]?15:_[4]?255:_[7]?4095:65535;return[Math.round(parseInt(_[1]||_[4]||_[7]||_[10],16)/v*255),Math.round(parseInt(_[2]||_[5]||_[8]||_[11],16)/v*255),Math.round(parseInt(_[3]||_[6]||_[9]||_[12],16)/v*255)]}}else if(l.indexOf("#")===0&&(l=l.slice(1),h.exec(l)&&[3,6,9,12].includes(l.length))){let _=l.length/3,v=[0,0,0];for(let u=0;u<3;++u){let o=parseInt(l.slice(_*u,_*u+_),16);v[u]=_===1?o<<4:_===2?o:_===3?o>>4:o>>8}return v}},t.toRgbString=function(a,l=16){let[_,v,u]=a;return`rgb:${g(_,l)}/${g(v,l)}/${g(u,l)}`}},5770:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PAYLOAD_LIMIT=void 0,t.PAYLOAD_LIMIT=1e7},6351:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DcsHandler=t.DcsParser=void 0;let h=n(482),g=n(8742),a=n(5770),l=[];t.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=l,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=l}registerHandler(v,u){this._handlers[v]===void 0&&(this._handlers[v]=[]);let o=this._handlers[v];return o.push(u),{dispose:()=>{let d=o.indexOf(u);d!==-1&&o.splice(d,1)}}}clearHandler(v){this._handlers[v]&&delete this._handlers[v]}setHandlerFallback(v){this._handlerFb=v}reset(){if(this._active.length)for(let v=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;v>=0;--v)this._active[v].unhook(!1);this._stack.paused=!1,this._active=l,this._ident=0}hook(v,u){if(this.reset(),this._ident=v,this._active=this._handlers[v]||l,this._active.length)for(let o=this._active.length-1;o>=0;o--)this._active[o].hook(u);else this._handlerFb(this._ident,"HOOK",u)}put(v,u,o){if(this._active.length)for(let d=this._active.length-1;d>=0;d--)this._active[d].put(v,u,o);else this._handlerFb(this._ident,"PUT",(0,h.utf32ToString)(v,u,o))}unhook(v,u=!0){if(this._active.length){let o=!1,d=this._active.length-1,f=!1;if(this._stack.paused&&(d=this._stack.loopPosition-1,o=u,f=this._stack.fallThrough,this._stack.paused=!1),!f&&o===!1){for(;d>=0&&(o=this._active[d].unhook(v),o!==!0);d--)if(o instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=d,this._stack.fallThrough=!1,o;d--}for(;d>=0;d--)if(o=this._active[d].unhook(!1),o instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=d,this._stack.fallThrough=!0,o}else this._handlerFb(this._ident,"UNHOOK",v);this._active=l,this._ident=0}};let _=new g.Params;_.addParam(0),t.DcsHandler=class{constructor(v){this._handler=v,this._data="",this._params=_,this._hitLimit=!1}hook(v){this._params=v.length>1||v.params[0]?v.clone():_,this._data="",this._hitLimit=!1}put(v,u,o){this._hitLimit||(this._data+=(0,h.utf32ToString)(v,u,o),this._data.length>a.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}unhook(v){let u=!1;if(this._hitLimit)u=!1;else if(v&&(u=this._handler(this._data,this._params),u instanceof Promise))return u.then(o=>(this._params=_,this._data="",this._hitLimit=!1,o));return this._params=_,this._data="",this._hitLimit=!1,u}}},2015:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceParser=t.VT500_TRANSITION_TABLE=t.TransitionTable=void 0;let h=n(844),g=n(8742),a=n(6242),l=n(6351);class _{constructor(d){this.table=new Uint8Array(d)}setDefault(d,f){this.table.fill(d<<4|f)}add(d,f,p,y){this.table[f<<8|d]=p<<4|y}addMany(d,f,p,y){for(let w=0;wA),f=(S,A)=>d.slice(S,A),p=f(32,127),y=f(0,24);y.push(25),y.push.apply(y,f(28,32));let w=f(0,14),b;for(b in o.setDefault(1,0),o.addMany(p,0,2,0),w)o.addMany([24,26,153,154],b,3,0),o.addMany(f(128,144),b,3,0),o.addMany(f(144,152),b,3,0),o.add(156,b,0,0),o.add(27,b,11,1),o.add(157,b,4,8),o.addMany([152,158,159],b,0,7),o.add(155,b,11,3),o.add(144,b,11,9);return o.addMany(y,0,3,0),o.addMany(y,1,3,1),o.add(127,1,0,1),o.addMany(y,8,0,8),o.addMany(y,3,3,3),o.add(127,3,0,3),o.addMany(y,4,3,4),o.add(127,4,0,4),o.addMany(y,6,3,6),o.addMany(y,5,3,5),o.add(127,5,0,5),o.addMany(y,2,3,2),o.add(127,2,0,2),o.add(93,1,4,8),o.addMany(p,8,5,8),o.add(127,8,5,8),o.addMany([156,27,24,26,7],8,6,0),o.addMany(f(28,32),8,0,8),o.addMany([88,94,95],1,0,7),o.addMany(p,7,0,7),o.addMany(y,7,0,7),o.add(156,7,0,0),o.add(127,7,0,7),o.add(91,1,11,3),o.addMany(f(64,127),3,7,0),o.addMany(f(48,60),3,8,4),o.addMany([60,61,62,63],3,9,4),o.addMany(f(48,60),4,8,4),o.addMany(f(64,127),4,7,0),o.addMany([60,61,62,63],4,0,6),o.addMany(f(32,64),6,0,6),o.add(127,6,0,6),o.addMany(f(64,127),6,0,0),o.addMany(f(32,48),3,9,5),o.addMany(f(32,48),5,9,5),o.addMany(f(48,64),5,0,6),o.addMany(f(64,127),5,7,0),o.addMany(f(32,48),4,9,5),o.addMany(f(32,48),1,9,2),o.addMany(f(32,48),2,9,2),o.addMany(f(48,127),2,10,0),o.addMany(f(48,80),1,10,0),o.addMany(f(81,88),1,10,0),o.addMany([89,90,92],1,10,0),o.addMany(f(96,127),1,10,0),o.add(80,1,11,9),o.addMany(y,9,0,9),o.add(127,9,0,9),o.addMany(f(28,32),9,0,9),o.addMany(f(32,48),9,9,12),o.addMany(f(48,60),9,8,10),o.addMany([60,61,62,63],9,9,10),o.addMany(y,11,0,11),o.addMany(f(32,128),11,0,11),o.addMany(f(28,32),11,0,11),o.addMany(y,10,0,10),o.add(127,10,0,10),o.addMany(f(28,32),10,0,10),o.addMany(f(48,60),10,8,10),o.addMany([60,61,62,63],10,0,11),o.addMany(f(32,48),10,9,12),o.addMany(y,12,0,12),o.add(127,12,0,12),o.addMany(f(28,32),12,0,12),o.addMany(f(32,48),12,9,12),o.addMany(f(48,64),12,0,11),o.addMany(f(64,127),12,12,13),o.addMany(f(64,127),10,12,13),o.addMany(f(64,127),9,12,13),o.addMany(y,13,13,13),o.addMany(p,13,13,13),o.add(127,13,0,13),o.addMany([27,156,24,26],13,14,0),o.add(v,0,2,0),o.add(v,8,5,8),o.add(v,6,0,6),o.add(v,11,0,11),o.add(v,13,13,13),o}();class u extends h.Disposable{constructor(d=t.VT500_TRANSITION_TABLE){super(),this._transitions=d,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new g.Params,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(f,p,y)=>{},this._executeHandlerFb=f=>{},this._csiHandlerFb=(f,p)=>{},this._escHandlerFb=f=>{},this._errorHandlerFb=f=>f,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,h.toDisposable)(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this.register(new a.OscParser),this._dcsParser=this.register(new l.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},()=>!0)}_identifier(d,f=[64,126]){let p=0;if(d.prefix){if(d.prefix.length>1)throw new Error("only one byte as prefix supported");if(p=d.prefix.charCodeAt(0),p&&60>p||p>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(d.intermediates){if(d.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let w=0;wb||b>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");p<<=8,p|=b}}if(d.final.length!==1)throw new Error("final must be a single byte");let y=d.final.charCodeAt(0);if(f[0]>y||y>f[1])throw new Error(`final must be in range ${f[0]} .. ${f[1]}`);return p<<=8,p|=y,p}identToString(d){let f=[];for(;d;)f.push(String.fromCharCode(255&d)),d>>=8;return f.reverse().join("")}setPrintHandler(d){this._printHandler=d}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(d,f){let p=this._identifier(d,[48,126]);this._escHandlers[p]===void 0&&(this._escHandlers[p]=[]);let y=this._escHandlers[p];return y.push(f),{dispose:()=>{let w=y.indexOf(f);w!==-1&&y.splice(w,1)}}}clearEscHandler(d){this._escHandlers[this._identifier(d,[48,126])]&&delete this._escHandlers[this._identifier(d,[48,126])]}setEscHandlerFallback(d){this._escHandlerFb=d}setExecuteHandler(d,f){this._executeHandlers[d.charCodeAt(0)]=f}clearExecuteHandler(d){this._executeHandlers[d.charCodeAt(0)]&&delete this._executeHandlers[d.charCodeAt(0)]}setExecuteHandlerFallback(d){this._executeHandlerFb=d}registerCsiHandler(d,f){let p=this._identifier(d);this._csiHandlers[p]===void 0&&(this._csiHandlers[p]=[]);let y=this._csiHandlers[p];return y.push(f),{dispose:()=>{let w=y.indexOf(f);w!==-1&&y.splice(w,1)}}}clearCsiHandler(d){this._csiHandlers[this._identifier(d)]&&delete this._csiHandlers[this._identifier(d)]}setCsiHandlerFallback(d){this._csiHandlerFb=d}registerDcsHandler(d,f){return this._dcsParser.registerHandler(this._identifier(d),f)}clearDcsHandler(d){this._dcsParser.clearHandler(this._identifier(d))}setDcsHandlerFallback(d){this._dcsParser.setHandlerFallback(d)}registerOscHandler(d,f){return this._oscParser.registerHandler(d,f)}clearOscHandler(d){this._oscParser.clearHandler(d)}setOscHandlerFallback(d){this._oscParser.setHandlerFallback(d)}setErrorHandler(d){this._errorHandler=d}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._parseStack.state!==0&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(d,f,p,y,w){this._parseStack.state=d,this._parseStack.handlers=f,this._parseStack.handlerPos=p,this._parseStack.transition=y,this._parseStack.chunkPos=w}parse(d,f,p){let y,w=0,b=0,S=0;if(this._parseStack.state)if(this._parseStack.state===2)this._parseStack.state=0,S=this._parseStack.chunkPos+1;else{if(p===void 0||this._parseStack.state===1)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");let A=this._parseStack.handlers,C=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(p===!1&&C>-1){for(;C>=0&&(y=A[C](this._params),y!==!0);C--)if(y instanceof Promise)return this._parseStack.handlerPos=C,y}this._parseStack.handlers=[];break;case 4:if(p===!1&&C>-1){for(;C>=0&&(y=A[C](),y!==!0);C--)if(y instanceof Promise)return this._parseStack.handlerPos=C,y}this._parseStack.handlers=[];break;case 6:if(w=d[this._parseStack.chunkPos],y=this._dcsParser.unhook(w!==24&&w!==26,p),y)return y;w===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(w=d[this._parseStack.chunkPos],y=this._oscParser.end(w!==24&&w!==26,p),y)return y;w===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,S=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=15&this._parseStack.transition}for(let A=S;A>4){case 2:for(let R=A+1;;++R){if(R>=f||(w=d[R])<32||w>126&&w=f||(w=d[R])<32||w>126&&w=f||(w=d[R])<32||w>126&&w=f||(w=d[R])<32||w>126&&w=0&&(y=C[D](this._params),y!==!0);D--)if(y instanceof Promise)return this._preserveStack(3,C,D,b,A),y;D<0&&this._csiHandlerFb(this._collect<<8|w,this._params),this.precedingJoinState=0;break;case 8:do switch(w){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(w-48)}while(++A47&&w<60);A--;break;case 9:this._collect<<=8,this._collect|=w;break;case 10:let L=this._escHandlers[this._collect<<8|w],B=L?L.length-1:-1;for(;B>=0&&(y=L[B](),y!==!0);B--)if(y instanceof Promise)return this._preserveStack(4,L,B,b,A),y;B<0&&this._escHandlerFb(this._collect<<8|w),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|w,this._params);break;case 13:for(let R=A+1;;++R)if(R>=f||(w=d[R])===24||w===26||w===27||w>127&&w=f||(w=d[R])<32||w>127&&w{Object.defineProperty(t,"__esModule",{value:!0}),t.OscHandler=t.OscParser=void 0;let h=n(5770),g=n(482),a=[];t.OscParser=class{constructor(){this._state=0,this._active=a,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(l,_){this._handlers[l]===void 0&&(this._handlers[l]=[]);let v=this._handlers[l];return v.push(_),{dispose:()=>{let u=v.indexOf(_);u!==-1&&v.splice(u,1)}}}clearHandler(l){this._handlers[l]&&delete this._handlers[l]}setHandlerFallback(l){this._handlerFb=l}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=a}reset(){if(this._state===2)for(let l=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;l>=0;--l)this._active[l].end(!1);this._stack.paused=!1,this._active=a,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||a,this._active.length)for(let l=this._active.length-1;l>=0;l--)this._active[l].start();else this._handlerFb(this._id,"START")}_put(l,_,v){if(this._active.length)for(let u=this._active.length-1;u>=0;u--)this._active[u].put(l,_,v);else this._handlerFb(this._id,"PUT",(0,g.utf32ToString)(l,_,v))}start(){this.reset(),this._state=1}put(l,_,v){if(this._state!==3){if(this._state===1)for(;_0&&this._put(l,_,v)}}end(l,_=!0){if(this._state!==0){if(this._state!==3)if(this._state===1&&this._start(),this._active.length){let v=!1,u=this._active.length-1,o=!1;if(this._stack.paused&&(u=this._stack.loopPosition-1,v=_,o=this._stack.fallThrough,this._stack.paused=!1),!o&&v===!1){for(;u>=0&&(v=this._active[u].end(l),v!==!0);u--)if(v instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=u,this._stack.fallThrough=!1,v;u--}for(;u>=0;u--)if(v=this._active[u].end(!1),v instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=u,this._stack.fallThrough=!0,v}else this._handlerFb(this._id,"END",l);this._active=a,this._id=-1,this._state=0}}},t.OscHandler=class{constructor(l){this._handler=l,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(l,_,v){this._hitLimit||(this._data+=(0,g.utf32ToString)(l,_,v),this._data.length>h.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}end(l){let _=!1;if(this._hitLimit)_=!1;else if(l&&(_=this._handler(this._data),_ instanceof Promise))return _.then(v=>(this._data="",this._hitLimit=!1,v));return this._data="",this._hitLimit=!1,_}}},8742:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Params=void 0;let n=2147483647;class h{static fromArray(a){let l=new h;if(!a.length)return l;for(let _=Array.isArray(a[0])?1:0;_256)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(a),this.length=0,this._subParams=new Int32Array(l),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(a),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){let a=new h(this.maxLength,this.maxSubParamsLength);return a.params.set(this.params),a.length=this.length,a._subParams.set(this._subParams),a._subParamsLength=this._subParamsLength,a._subParamsIdx.set(this._subParamsIdx),a._rejectDigits=this._rejectDigits,a._rejectSubDigits=this._rejectSubDigits,a._digitIsSub=this._digitIsSub,a}toArray(){let a=[];for(let l=0;l>8,v=255&this._subParamsIdx[l];v-_>0&&a.push(Array.prototype.slice.call(this._subParams,_,v))}return a}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(a){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(a<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=a>n?n:a}}addSubParam(a){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(a<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=a>n?n:a,this._subParamsIdx[this.length-1]++}}hasSubParams(a){return(255&this._subParamsIdx[a])-(this._subParamsIdx[a]>>8)>0}getSubParams(a){let l=this._subParamsIdx[a]>>8,_=255&this._subParamsIdx[a];return _-l>0?this._subParams.subarray(l,_):null}getSubParamsAll(){let a={};for(let l=0;l>8,v=255&this._subParamsIdx[l];v-_>0&&(a[l]=this._subParams.slice(_,v))}return a}addDigit(a){let l;if(this._rejectDigits||!(l=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let _=this._digitIsSub?this._subParams:this.params,v=_[l-1];_[l-1]=~v?Math.min(10*v+a,n):a}}t.Params=h},5741:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AddonManager=void 0,t.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let n=this._addons.length-1;n>=0;n--)this._addons[n].instance.dispose()}loadAddon(n,h){let g={instance:h,dispose:h.dispose,isDisposed:!1};this._addons.push(g),h.dispose=()=>this._wrappedAddonDispose(g),h.activate(n)}_wrappedAddonDispose(n){if(n.isDisposed)return;let h=-1;for(let g=0;g{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferApiView=void 0;let h=n(3785),g=n(511);t.BufferApiView=class{constructor(a,l){this._buffer=a,this.type=l}init(a){return this._buffer=a,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(a){let l=this._buffer.lines.get(a);if(l)return new h.BufferLineApiView(l)}getNullCell(){return new g.CellData}}},3785:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferLineApiView=void 0;let h=n(511);t.BufferLineApiView=class{constructor(g){this._line=g}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(g,a){if(!(g<0||g>=this._line.length))return a?(this._line.loadCell(g,a),a):this._line.loadCell(g,new h.CellData)}translateToString(g,a,l){return this._line.translateToString(g,a,l)}}},8285:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BufferNamespaceApi=void 0;let h=n(8771),g=n(8460),a=n(844);class l extends a.Disposable{constructor(v){super(),this._core=v,this._onBufferChange=this.register(new g.EventEmitter),this.onBufferChange=this._onBufferChange.event,this._normal=new h.BufferApiView(this._core.buffers.normal,"normal"),this._alternate=new h.BufferApiView(this._core.buffers.alt,"alternate"),this._core.buffers.onBufferActivate(()=>this._onBufferChange.fire(this.active))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error("Active buffer is neither normal nor alternate")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}t.BufferNamespaceApi=l},7975:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ParserApi=void 0,t.ParserApi=class{constructor(n){this._core=n}registerCsiHandler(n,h){return this._core.registerCsiHandler(n,g=>h(g.toArray()))}addCsiHandler(n,h){return this.registerCsiHandler(n,h)}registerDcsHandler(n,h){return this._core.registerDcsHandler(n,(g,a)=>h(g,a.toArray()))}addDcsHandler(n,h){return this.registerDcsHandler(n,h)}registerEscHandler(n,h){return this._core.registerEscHandler(n,h)}addEscHandler(n,h){return this.registerEscHandler(n,h)}registerOscHandler(n,h){return this._core.registerOscHandler(n,h)}addOscHandler(n,h){return this.registerOscHandler(n,h)}}},7090:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeApi=void 0,t.UnicodeApi=class{constructor(n){this._core=n}register(n){this._core.unicodeService.register(n)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(n){this._core.unicodeService.activeVersion=n}}},744:function(c,t,n){var h=this&&this.__decorate||function(o,d,f,p){var y,w=arguments.length,b=w<3?d:p===null?p=Object.getOwnPropertyDescriptor(d,f):p;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(o,d,f,p);else for(var S=o.length-1;S>=0;S--)(y=o[S])&&(b=(w<3?y(b):w>3?y(d,f,b):y(d,f))||b);return w>3&&b&&Object.defineProperty(d,f,b),b},g=this&&this.__param||function(o,d){return function(f,p){d(f,p,o)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BufferService=t.MINIMUM_ROWS=t.MINIMUM_COLS=void 0;let a=n(8460),l=n(844),_=n(5295),v=n(2585);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;let u=t.BufferService=class extends l.Disposable{get buffer(){return this.buffers.active}constructor(o){super(),this.isUserScrolling=!1,this._onResize=this.register(new a.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new a.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(o.rawOptions.cols||0,t.MINIMUM_COLS),this.rows=Math.max(o.rawOptions.rows||0,t.MINIMUM_ROWS),this.buffers=this.register(new _.BufferSet(o,this))}resize(o,d){this.cols=o,this.rows=d,this.buffers.resize(o,d),this._onResize.fire({cols:o,rows:d})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(o,d=!1){let f=this.buffer,p;p=this._cachedBlankLine,p&&p.length===this.cols&&p.getFg(0)===o.fg&&p.getBg(0)===o.bg||(p=f.getBlankLine(o,d),this._cachedBlankLine=p),p.isWrapped=d;let y=f.ybase+f.scrollTop,w=f.ybase+f.scrollBottom;if(f.scrollTop===0){let b=f.lines.isFull;w===f.lines.length-1?b?f.lines.recycle().copyFrom(p):f.lines.push(p.clone()):f.lines.splice(w+1,0,p.clone()),b?this.isUserScrolling&&(f.ydisp=Math.max(f.ydisp-1,0)):(f.ybase++,this.isUserScrolling||f.ydisp++)}else{let b=w-y+1;f.lines.shiftElements(y+1,b-1,-1),f.lines.set(w,p.clone())}this.isUserScrolling||(f.ydisp=f.ybase),this._onScroll.fire(f.ydisp)}scrollLines(o,d,f){let p=this.buffer;if(o<0){if(p.ydisp===0)return;this.isUserScrolling=!0}else o+p.ydisp>=p.ybase&&(this.isUserScrolling=!1);let y=p.ydisp;p.ydisp=Math.max(Math.min(p.ydisp+o,p.ybase),0),y!==p.ydisp&&(d||this._onScroll.fire(p.ydisp))}};t.BufferService=u=h([g(0,v.IOptionsService)],u)},7994:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CharsetService=void 0,t.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(n){this.glevel=n,this.charset=this._charsets[n]}setgCharset(n,h){this._charsets[n]=h,this.glevel===n&&(this.charset=h)}}},1753:function(c,t,n){var h=this&&this.__decorate||function(p,y,w,b){var S,A=arguments.length,C=A<3?y:b===null?b=Object.getOwnPropertyDescriptor(y,w):b;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")C=Reflect.decorate(p,y,w,b);else for(var D=p.length-1;D>=0;D--)(S=p[D])&&(C=(A<3?S(C):A>3?S(y,w,C):S(y,w))||C);return A>3&&C&&Object.defineProperty(y,w,C),C},g=this&&this.__param||function(p,y){return function(w,b){y(w,b,p)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreMouseService=void 0;let a=n(2585),l=n(8460),_=n(844),v={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:p=>p.button!==4&&p.action===1&&(p.ctrl=!1,p.alt=!1,p.shift=!1,!0)},VT200:{events:19,restrict:p=>p.action!==32},DRAG:{events:23,restrict:p=>p.action!==32||p.button!==3},ANY:{events:31,restrict:p=>!0}};function u(p,y){let w=(p.ctrl?16:0)|(p.shift?4:0)|(p.alt?8:0);return p.button===4?(w|=64,w|=p.action):(w|=3&p.button,4&p.button&&(w|=64),8&p.button&&(w|=128),p.action===32?w|=32:p.action!==0||y||(w|=3)),w}let o=String.fromCharCode,d={DEFAULT:p=>{let y=[u(p,!1)+32,p.col+32,p.row+32];return y[0]>255||y[1]>255||y[2]>255?"":`\x1B[M${o(y[0])}${o(y[1])}${o(y[2])}`},SGR:p=>{let y=p.action===0&&p.button!==4?"m":"M";return`\x1B[<${u(p,!0)};${p.col};${p.row}${y}`},SGR_PIXELS:p=>{let y=p.action===0&&p.button!==4?"m":"M";return`\x1B[<${u(p,!0)};${p.x};${p.y}${y}`}},f=t.CoreMouseService=class extends _.Disposable{constructor(p,y){super(),this._bufferService=p,this._coreService=y,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._onProtocolChange=this.register(new l.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(let w of Object.keys(v))this.addProtocol(w,v[w]);for(let w of Object.keys(d))this.addEncoding(w,d[w]);this.reset()}addProtocol(p,y){this._protocols[p]=y}addEncoding(p,y){this._encodings[p]=y}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return this._protocols[this._activeProtocol].events!==0}set activeProtocol(p){if(!this._protocols[p])throw new Error(`unknown protocol "${p}"`);this._activeProtocol=p,this._onProtocolChange.fire(this._protocols[p].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(p){if(!this._encodings[p])throw new Error(`unknown encoding "${p}"`);this._activeEncoding=p}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null}triggerMouseEvent(p){if(p.col<0||p.col>=this._bufferService.cols||p.row<0||p.row>=this._bufferService.rows||p.button===4&&p.action===32||p.button===3&&p.action!==32||p.button!==4&&(p.action===2||p.action===3)||(p.col++,p.row++,p.action===32&&this._lastEvent&&this._equalEvents(this._lastEvent,p,this._activeEncoding==="SGR_PIXELS"))||!this._protocols[this._activeProtocol].restrict(p))return!1;let y=this._encodings[this._activeEncoding](p);return y&&(this._activeEncoding==="DEFAULT"?this._coreService.triggerBinaryEvent(y):this._coreService.triggerDataEvent(y,!0)),this._lastEvent=p,!0}explainEvents(p){return{down:!!(1&p),up:!!(2&p),drag:!!(4&p),move:!!(8&p),wheel:!!(16&p)}}_equalEvents(p,y,w){if(w){if(p.x!==y.x||p.y!==y.y)return!1}else if(p.col!==y.col||p.row!==y.row)return!1;return p.button===y.button&&p.action===y.action&&p.ctrl===y.ctrl&&p.alt===y.alt&&p.shift===y.shift}};t.CoreMouseService=f=h([g(0,a.IBufferService),g(1,a.ICoreService)],f)},6975:function(c,t,n){var h=this&&this.__decorate||function(f,p,y,w){var b,S=arguments.length,A=S<3?p:w===null?w=Object.getOwnPropertyDescriptor(p,y):w;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")A=Reflect.decorate(f,p,y,w);else for(var C=f.length-1;C>=0;C--)(b=f[C])&&(A=(S<3?b(A):S>3?b(p,y,A):b(p,y))||A);return S>3&&A&&Object.defineProperty(p,y,A),A},g=this&&this.__param||function(f,p){return function(y,w){p(y,w,f)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreService=void 0;let a=n(1439),l=n(8460),_=n(844),v=n(2585),u=Object.freeze({insertMode:!1}),o=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0}),d=t.CoreService=class extends _.Disposable{constructor(f,p,y){super(),this._bufferService=f,this._logService=p,this._optionsService=y,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new l.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new l.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new l.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new l.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,a.clone)(u),this.decPrivateModes=(0,a.clone)(o)}reset(){this.modes=(0,a.clone)(u),this.decPrivateModes=(0,a.clone)(o)}triggerDataEvent(f,p=!1){if(this._optionsService.rawOptions.disableStdin)return;let y=this._bufferService.buffer;p&&this._optionsService.rawOptions.scrollOnUserInput&&y.ybase!==y.ydisp&&this._onRequestScrollToBottom.fire(),p&&this._onUserInput.fire(),this._logService.debug(`sending data "${f}"`,()=>f.split("").map(w=>w.charCodeAt(0))),this._onData.fire(f)}triggerBinaryEvent(f){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${f}"`,()=>f.split("").map(p=>p.charCodeAt(0))),this._onBinary.fire(f))}};t.CoreService=d=h([g(0,v.IBufferService),g(1,v.ILogService),g(2,v.IOptionsService)],d)},9074:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DecorationService=void 0;let h=n(8055),g=n(8460),a=n(844),l=n(6106),_=0,v=0;class u extends a.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new l.SortedList(f=>f?.marker.line),this._onDecorationRegistered=this.register(new g.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new g.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,a.toDisposable)(()=>this.reset()))}registerDecoration(f){if(f.marker.isDisposed)return;let p=new o(f);if(p){let y=p.marker.onDispose(()=>p.dispose());p.onDispose(()=>{p&&(this._decorations.delete(p)&&this._onDecorationRemoved.fire(p),y.dispose())}),this._decorations.insert(p),this._onDecorationRegistered.fire(p)}return p}reset(){for(let f of this._decorations.values())f.dispose();this._decorations.clear()}*getDecorationsAtCell(f,p,y){let w=0,b=0;for(let S of this._decorations.getKeyIterator(p))w=S.options.x??0,b=w+(S.options.width??1),f>=w&&f{_=b.options.x??0,v=_+(b.options.width??1),f>=_&&f{Object.defineProperty(t,"__esModule",{value:!0}),t.InstantiationService=t.ServiceCollection=void 0;let h=n(2585),g=n(8343);class a{constructor(..._){this._entries=new Map;for(let[v,u]of _)this.set(v,u)}set(_,v){let u=this._entries.get(_);return this._entries.set(_,v),u}forEach(_){for(let[v,u]of this._entries.entries())_(v,u)}has(_){return this._entries.has(_)}get(_){return this._entries.get(_)}}t.ServiceCollection=a,t.InstantiationService=class{constructor(){this._services=new a,this._services.set(h.IInstantiationService,this)}setService(l,_){this._services.set(l,_)}getService(l){return this._services.get(l)}createInstance(l,..._){let v=(0,g.getServiceDependencies)(l).sort((d,f)=>d.index-f.index),u=[];for(let d of v){let f=this._services.get(d.id);if(!f)throw new Error(`[createInstance] ${l.name} depends on UNKNOWN service ${d.id}.`);u.push(f)}let o=v.length>0?v[0].index:_.length;if(_.length!==o)throw new Error(`[createInstance] First service dependency of ${l.name} at position ${o+1} conflicts with ${_.length} static arguments`);return new l(..._,...u)}}},7866:function(c,t,n){var h=this&&this.__decorate||function(o,d,f,p){var y,w=arguments.length,b=w<3?d:p===null?p=Object.getOwnPropertyDescriptor(d,f):p;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(o,d,f,p);else for(var S=o.length-1;S>=0;S--)(y=o[S])&&(b=(w<3?y(b):w>3?y(d,f,b):y(d,f))||b);return w>3&&b&&Object.defineProperty(d,f,b),b},g=this&&this.__param||function(o,d){return function(f,p){d(f,p,o)}};Object.defineProperty(t,"__esModule",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;let a=n(844),l=n(2585),_={trace:l.LogLevelEnum.TRACE,debug:l.LogLevelEnum.DEBUG,info:l.LogLevelEnum.INFO,warn:l.LogLevelEnum.WARN,error:l.LogLevelEnum.ERROR,off:l.LogLevelEnum.OFF},v,u=t.LogService=class extends a.Disposable{get logLevel(){return this._logLevel}constructor(o){super(),this._optionsService=o,this._logLevel=l.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel())),v=this}_updateLogLevel(){this._logLevel=_[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(o){for(let d=0;dJSON.stringify(b)).join(", ")})`);let w=p.apply(this,y);return v.trace(`GlyphRenderer#${p.name} return`,w),w}}},7302:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsService=t.DEFAULT_OPTIONS=void 0;let h=n(8460),g=n(844),a=n(6114);t.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",cursorWidth:1,cursorInactiveStyle:"outline",customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:"info",logger:null,scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rescaleOverlappingGlyphs:!1,rightClickSelectsWord:a.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRulerWidth:0};let l=["normal","bold","100","200","300","400","500","600","700","800","900"];class _ extends g.Disposable{constructor(u){super(),this._onOptionChange=this.register(new h.EventEmitter),this.onOptionChange=this._onOptionChange.event;let o={...t.DEFAULT_OPTIONS};for(let d in u)if(d in o)try{let f=u[d];o[d]=this._sanitizeAndValidateOption(d,f)}catch(f){console.error(f)}this.rawOptions=o,this.options={...o},this._setupOptions(),this.register((0,g.toDisposable)(()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null}))}onSpecificOptionChange(u,o){return this.onOptionChange(d=>{d===u&&o(this.rawOptions[u])})}onMultipleOptionChange(u,o){return this.onOptionChange(d=>{u.indexOf(d)!==-1&&o()})}_setupOptions(){let u=d=>{if(!(d in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${d}"`);return this.rawOptions[d]},o=(d,f)=>{if(!(d in t.DEFAULT_OPTIONS))throw new Error(`No option with key "${d}"`);f=this._sanitizeAndValidateOption(d,f),this.rawOptions[d]!==f&&(this.rawOptions[d]=f,this._onOptionChange.fire(d))};for(let d in this.rawOptions){let f={get:u.bind(this,d),set:o.bind(this,d)};Object.defineProperty(this.options,d,f)}}_sanitizeAndValidateOption(u,o){switch(u){case"cursorStyle":if(o||(o=t.DEFAULT_OPTIONS[u]),!function(d){return d==="block"||d==="underline"||d==="bar"}(o))throw new Error(`"${o}" is not a valid value for ${u}`);break;case"wordSeparator":o||(o=t.DEFAULT_OPTIONS[u]);break;case"fontWeight":case"fontWeightBold":if(typeof o=="number"&&1<=o&&o<=1e3)break;o=l.includes(o)?o:t.DEFAULT_OPTIONS[u];break;case"cursorWidth":o=Math.floor(o);case"lineHeight":case"tabStopWidth":if(o<1)throw new Error(`${u} cannot be less than 1, value: ${o}`);break;case"minimumContrastRatio":o=Math.max(1,Math.min(21,Math.round(10*o)/10));break;case"scrollback":if((o=Math.min(o,4294967295))<0)throw new Error(`${u} cannot be less than 0, value: ${o}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(o<=0)throw new Error(`${u} cannot be less than or equal to 0, value: ${o}`);break;case"rows":case"cols":if(!o&&o!==0)throw new Error(`${u} must be numeric, value: ${o}`);break;case"windowsPty":o=o??{}}return o}}t.OptionsService=_},2660:function(c,t,n){var h=this&&this.__decorate||function(_,v,u,o){var d,f=arguments.length,p=f<3?v:o===null?o=Object.getOwnPropertyDescriptor(v,u):o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")p=Reflect.decorate(_,v,u,o);else for(var y=_.length-1;y>=0;y--)(d=_[y])&&(p=(f<3?d(p):f>3?d(v,u,p):d(v,u))||p);return f>3&&p&&Object.defineProperty(v,u,p),p},g=this&&this.__param||function(_,v){return function(u,o){v(u,o,_)}};Object.defineProperty(t,"__esModule",{value:!0}),t.OscLinkService=void 0;let a=n(2585),l=t.OscLinkService=class{constructor(_){this._bufferService=_,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(_){let v=this._bufferService.buffer;if(_.id===void 0){let y=v.addMarker(v.ybase+v.y),w={data:_,id:this._nextId++,lines:[y]};return y.onDispose(()=>this._removeMarkerFromLink(w,y)),this._dataByLinkId.set(w.id,w),w.id}let u=_,o=this._getEntryIdKey(u),d=this._entriesWithId.get(o);if(d)return this.addLineToLink(d.id,v.ybase+v.y),d.id;let f=v.addMarker(v.ybase+v.y),p={id:this._nextId++,key:this._getEntryIdKey(u),data:u,lines:[f]};return f.onDispose(()=>this._removeMarkerFromLink(p,f)),this._entriesWithId.set(p.key,p),this._dataByLinkId.set(p.id,p),p.id}addLineToLink(_,v){let u=this._dataByLinkId.get(_);if(u&&u.lines.every(o=>o.line!==v)){let o=this._bufferService.buffer.addMarker(v);u.lines.push(o),o.onDispose(()=>this._removeMarkerFromLink(u,o))}}getLinkData(_){return this._dataByLinkId.get(_)?.data}_getEntryIdKey(_){return`${_.id};;${_.uri}`}_removeMarkerFromLink(_,v){let u=_.lines.indexOf(v);u!==-1&&(_.lines.splice(u,1),_.lines.length===0&&(_.data.id!==void 0&&this._entriesWithId.delete(_.key),this._dataByLinkId.delete(_.id)))}};t.OscLinkService=l=h([g(0,a.IBufferService)],l)},8343:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;let n="di$target",h="di$dependencies";t.serviceRegistry=new Map,t.getServiceDependencies=function(g){return g[h]||[]},t.createDecorator=function(g){if(t.serviceRegistry.has(g))return t.serviceRegistry.get(g);let a=function(l,_,v){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");(function(u,o,d){o[n]===o?o[h].push({id:u,index:d}):(o[h]=[{id:u,index:d}],o[n]=o)})(a,l,v)};return a.toString=()=>g,t.serviceRegistry.set(g,a),a}},2585:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;let h=n(8343);var g;t.IBufferService=(0,h.createDecorator)("BufferService"),t.ICoreMouseService=(0,h.createDecorator)("CoreMouseService"),t.ICoreService=(0,h.createDecorator)("CoreService"),t.ICharsetService=(0,h.createDecorator)("CharsetService"),t.IInstantiationService=(0,h.createDecorator)("InstantiationService"),function(a){a[a.TRACE=0]="TRACE",a[a.DEBUG=1]="DEBUG",a[a.INFO=2]="INFO",a[a.WARN=3]="WARN",a[a.ERROR=4]="ERROR",a[a.OFF=5]="OFF"}(g||(t.LogLevelEnum=g={})),t.ILogService=(0,h.createDecorator)("LogService"),t.IOptionsService=(0,h.createDecorator)("OptionsService"),t.IOscLinkService=(0,h.createDecorator)("OscLinkService"),t.IUnicodeService=(0,h.createDecorator)("UnicodeService"),t.IDecorationService=(0,h.createDecorator)("DecorationService")},1480:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeService=void 0;let h=n(8460),g=n(225);class a{static extractShouldJoin(_){return(1&_)!=0}static extractWidth(_){return _>>1&3}static extractCharKind(_){return _>>3}static createPropertyValue(_,v,u=!1){return(16777215&_)<<3|(3&v)<<1|(u?1:0)}constructor(){this._providers=Object.create(null),this._active="",this._onChange=new h.EventEmitter,this.onChange=this._onChange.event;let _=new g.UnicodeV6;this.register(_),this._active=_.version,this._activeProvider=_}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(_){if(!this._providers[_])throw new Error(`unknown Unicode version "${_}"`);this._active=_,this._activeProvider=this._providers[_],this._onChange.fire(_)}register(_){this._providers[_.version]=_}wcwidth(_){return this._activeProvider.wcwidth(_)}getStringCellWidth(_){let v=0,u=0,o=_.length;for(let d=0;d=o)return v+this.wcwidth(f);let w=_.charCodeAt(d);56320<=w&&w<=57343?f=1024*(f-55296)+w-56320+65536:v+=this.wcwidth(w)}let p=this.charProperties(f,u),y=a.extractWidth(p);a.extractShouldJoin(p)&&(y-=a.extractWidth(u)),v+=y,u=p}return v}charProperties(_,v){return this._activeProvider.charProperties(_,v)}}t.UnicodeService=a}},i={};function r(c){var t=i[c];if(t!==void 0)return t.exports;var n=i[c]={exports:{}};return e[c].call(n.exports,n,n.exports,r),n.exports}var s={};return(()=>{var c=s;Object.defineProperty(c,"__esModule",{value:!0}),c.Terminal=void 0;let t=r(9042),n=r(3236),h=r(844),g=r(5741),a=r(8285),l=r(7975),_=r(7090),v=["cols","rows"];class u extends h.Disposable{constructor(d){super(),this._core=this.register(new n.Terminal(d)),this._addonManager=this.register(new g.AddonManager),this._publicOptions={...this._core.options};let f=y=>this._core.options[y],p=(y,w)=>{this._checkReadonlyOptions(y),this._core.options[y]=w};for(let y in this._core.options){let w={get:f.bind(this,y),set:p.bind(this,y)};Object.defineProperty(this._publicOptions,y,w)}}_checkReadonlyOptions(d){if(v.includes(d))throw new Error(`Option "${d}" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error("You must set the allowProposedApi option to true to use proposed API")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new l.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new _.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this.register(new a.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let d=this._core.coreService.decPrivateModes,f="none";switch(this._core.coreMouseService.activeProtocol){case"X10":f="x10";break;case"VT200":f="vt200";break;case"DRAG":f="drag";break;case"ANY":f="any"}return{applicationCursorKeysMode:d.applicationCursorKeys,applicationKeypadMode:d.applicationKeypad,bracketedPasteMode:d.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:f,originMode:d.origin,reverseWraparoundMode:d.reverseWraparound,sendFocusMode:d.sendFocus,wraparoundMode:d.wraparound}}get options(){return this._publicOptions}set options(d){for(let f in d)this._publicOptions[f]=d[f]}blur(){this._core.blur()}focus(){this._core.focus()}input(d,f=!0){this._core.input(d,f)}resize(d,f){this._verifyIntegers(d,f),this._core.resize(d,f)}open(d){this._core.open(d)}attachCustomKeyEventHandler(d){this._core.attachCustomKeyEventHandler(d)}attachCustomWheelEventHandler(d){this._core.attachCustomWheelEventHandler(d)}registerLinkProvider(d){return this._core.registerLinkProvider(d)}registerCharacterJoiner(d){return this._checkProposedApi(),this._core.registerCharacterJoiner(d)}deregisterCharacterJoiner(d){this._checkProposedApi(),this._core.deregisterCharacterJoiner(d)}registerMarker(d=0){return this._verifyIntegers(d),this._core.registerMarker(d)}registerDecoration(d){return this._checkProposedApi(),this._verifyPositiveIntegers(d.x??0,d.width??0,d.height??0),this._core.registerDecoration(d)}hasSelection(){return this._core.hasSelection()}select(d,f,p){this._verifyIntegers(d,f,p),this._core.select(d,f,p)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(d,f){this._verifyIntegers(d,f),this._core.selectLines(d,f)}dispose(){super.dispose()}scrollLines(d){this._verifyIntegers(d),this._core.scrollLines(d)}scrollPages(d){this._verifyIntegers(d),this._core.scrollPages(d)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(d){this._verifyIntegers(d),this._core.scrollToLine(d)}clear(){this._core.clear()}write(d,f){this._core.write(d,f)}writeln(d,f){this._core.write(d),this._core.write(`\r +`,f)}paste(d){this._core.paste(d)}refresh(d,f){this._verifyIntegers(d,f),this._core.refresh(d,f)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(d){this._addonManager.loadAddon(this,d)}static get strings(){return t}_verifyIntegers(...d){for(let f of d)if(f===1/0||isNaN(f)||f%1!=0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...d){for(let f of d)if(f&&(f===1/0||isNaN(f)||f%1!=0||f<0))throw new Error("This API only accepts positive integers")}}c.Terminal=u})(),s})())});var Gc=re((Cs,_o)=>{(function(e,i){typeof Cs=="object"&&typeof _o=="object"?_o.exports=i():typeof define=="function"&&define.amd?define([],i):typeof Cs=="object"?Cs.FitAddon=i():e.FitAddon=i()})(self,()=>(()=>{"use strict";var e={};return(()=>{var i=e;Object.defineProperty(i,"__esModule",{value:!0}),i.FitAddon=void 0,i.FitAddon=class{activate(r){this._terminal=r}dispose(){}fit(){let r=this.proposeDimensions();if(!r||!this._terminal||isNaN(r.cols)||isNaN(r.rows))return;let s=this._terminal._core;this._terminal.rows===r.rows&&this._terminal.cols===r.cols||(s._renderService.clear(),this._terminal.resize(r.cols,r.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let r=this._terminal._core,s=r._renderService.dimensions;if(s.css.cell.width===0||s.css.cell.height===0)return;let c=this._terminal.options.scrollback===0?0:r.viewport.scrollBarWidth,t=window.getComputedStyle(this._terminal.element.parentElement),n=parseInt(t.getPropertyValue("height")),h=Math.max(0,parseInt(t.getPropertyValue("width"))),g=window.getComputedStyle(this._terminal.element),a=n-(parseInt(g.getPropertyValue("padding-top"))+parseInt(g.getPropertyValue("padding-bottom"))),l=h-(parseInt(g.getPropertyValue("padding-right"))+parseInt(g.getPropertyValue("padding-left")))-c;return{cols:Math.max(2,Math.floor(l/s.css.cell.width)),rows:Math.max(1,Math.floor(a/s.css.cell.height))}}}})(),e})())});var zc=re((xs,go)=>{(function(e,i){typeof xs=="object"&&typeof go=="object"?go.exports=i():typeof define=="function"&&define.amd?define([],i):typeof xs=="object"?xs.WebglAddon=i():e.WebglAddon=i()})(self,()=>(()=>{"use strict";var e={965:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.GlyphRenderer=void 0;let h=n(374),g=n(509),a=n(855),l=n(859),_=n(381),v=11,u=v*Float32Array.BYTES_PER_ELEMENT,o,d=0,f=0,p=0;class y extends l.Disposable{constructor(b,S,A){super(),this._terminal=b,this._gl=S,this._dimensions=A,this._activeBuffer=0,this._vertices={count:0,attributes:new Float32Array(0),attributesBuffers:[new Float32Array(0),new Float32Array(0)]};let C=this._gl;g.TextureAtlas.maxAtlasPages===void 0&&(g.TextureAtlas.maxAtlasPages=Math.min(32,(0,h.throwIfFalsy)(C.getParameter(C.MAX_TEXTURE_IMAGE_UNITS))),g.TextureAtlas.maxTextureSize=(0,h.throwIfFalsy)(C.getParameter(C.MAX_TEXTURE_SIZE))),this._program=(0,h.throwIfFalsy)((0,_.createProgram)(C,`#version 300 es layout (location = 0) in vec2 a_unitquad; layout (location = 1) in vec2 a_cellpos; layout (location = 2) in vec2 a_offset; @@ -26,21 +35,21 @@ void main() { gl_Position = u_projection * vec4(zeroToOne, 0.0, 1.0); v_texpage = int(a_texpage); v_texcoord = a_texcoord + a_unitquad * a_texsize; -}`,function(D){let M="";for(let B=1;Bg.deleteProgram(this._program))),this._projectionLocation=(0,l.throwIfFalsy)(g.getUniformLocation(this._program,"u_projection")),this._resolutionLocation=(0,l.throwIfFalsy)(g.getUniformLocation(this._program,"u_resolution")),this._textureLocation=(0,l.throwIfFalsy)(g.getUniformLocation(this._program,"u_texture")),this._vertexArrayObject=g.createVertexArray(),g.bindVertexArray(this._vertexArrayObject);let w=new Float32Array([0,0,1,0,0,1,1,1]),C=g.createBuffer();this.register((0,h.toDisposable)(()=>g.deleteBuffer(C))),g.bindBuffer(g.ARRAY_BUFFER,C),g.bufferData(g.ARRAY_BUFFER,w,g.STATIC_DRAW),g.enableVertexAttribArray(0),g.vertexAttribPointer(0,2,this._gl.FLOAT,!1,0,0);let m=new Uint8Array([0,1,2,3]),L=g.createBuffer();this.register((0,h.toDisposable)(()=>g.deleteBuffer(L))),g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,L),g.bufferData(g.ELEMENT_ARRAY_BUFFER,m,g.STATIC_DRAW),this._attributesBuffer=(0,l.throwIfFalsy)(g.createBuffer()),this.register((0,h.toDisposable)(()=>g.deleteBuffer(this._attributesBuffer))),g.bindBuffer(g.ARRAY_BUFFER,this._attributesBuffer),g.enableVertexAttribArray(2),g.vertexAttribPointer(2,2,g.FLOAT,!1,o,0),g.vertexAttribDivisor(2,1),g.enableVertexAttribArray(3),g.vertexAttribPointer(3,2,g.FLOAT,!1,o,2*Float32Array.BYTES_PER_ELEMENT),g.vertexAttribDivisor(3,1),g.enableVertexAttribArray(4),g.vertexAttribPointer(4,1,g.FLOAT,!1,o,4*Float32Array.BYTES_PER_ELEMENT),g.vertexAttribDivisor(4,1),g.enableVertexAttribArray(5),g.vertexAttribPointer(5,2,g.FLOAT,!1,o,5*Float32Array.BYTES_PER_ELEMENT),g.vertexAttribDivisor(5,1),g.enableVertexAttribArray(6),g.vertexAttribPointer(6,2,g.FLOAT,!1,o,7*Float32Array.BYTES_PER_ELEMENT),g.vertexAttribDivisor(6,1),g.enableVertexAttribArray(1),g.vertexAttribPointer(1,2,g.FLOAT,!1,o,9*Float32Array.BYTES_PER_ELEMENT),g.vertexAttribDivisor(1,1),g.useProgram(this._program);let A=new Int32Array(u.TextureAtlas.maxAtlasPages);for(let D=0;Dg.deleteTexture(M.texture))),g.activeTexture(g.TEXTURE0+D),g.bindTexture(g.TEXTURE_2D,M.texture),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),g.texImage2D(g.TEXTURE_2D,0,g.RGBA,1,1,0,g.RGBA,g.UNSIGNED_BYTE,new Uint8Array([255,0,0,255])),this._atlasTextures[D]=M}g.enable(g.BLEND),g.blendFunc(g.SRC_ALPHA,g.ONE_MINUS_SRC_ALPHA),this.handleResize()}beginFrame(){return!this._atlas||this._atlas.beginFrame()}updateCell(p,S,c,g,w,C,m,L){this._updateCell(this._vertices.attributes,p,S,c,g,w,C,m,L)}_updateCell(p,S,c,g,w,C,m,L,A){i=(c*this._terminal.cols+S)*_,g!==r.NULL_CELL_CODE&&g!==void 0?this._atlas&&(e=L&&L.length>1?this._atlas.getRasterizedGlyphCombinedChar(L,w,C,m,!1):this._atlas.getRasterizedGlyph(g,w,C,m,!1),s=Math.floor((this._dimensions.device.cell.width-this._dimensions.device.char.width)/2),w!==A&&e.offset.x>s?(n=e.offset.x-s,p[i]=-(e.offset.x-n)+this._dimensions.device.char.left,p[i+1]=-e.offset.y+this._dimensions.device.char.top,p[i+2]=(e.size.x-n)/this._dimensions.device.canvas.width,p[i+3]=e.size.y/this._dimensions.device.canvas.height,p[i+4]=e.texturePage,p[i+5]=e.texturePositionClipSpace.x+n/this._atlas.pages[e.texturePage].canvas.width,p[i+6]=e.texturePositionClipSpace.y,p[i+7]=e.sizeClipSpace.x-n/this._atlas.pages[e.texturePage].canvas.width,p[i+8]=e.sizeClipSpace.y):(p[i]=-e.offset.x+this._dimensions.device.char.left,p[i+1]=-e.offset.y+this._dimensions.device.char.top,p[i+2]=e.size.x/this._dimensions.device.canvas.width,p[i+3]=e.size.y/this._dimensions.device.canvas.height,p[i+4]=e.texturePage,p[i+5]=e.texturePositionClipSpace.x,p[i+6]=e.texturePositionClipSpace.y,p[i+7]=e.sizeClipSpace.x,p[i+8]=e.sizeClipSpace.y)):p.fill(0,i,i+_-1-2)}clear(){let p=this._terminal,S=p.cols*p.rows*_;this._vertices.count!==S?this._vertices.attributes=new Float32Array(S):this._vertices.attributes.fill(0);let c=0;for(;c{Object.defineProperty(t,"__esModule",{value:!0}),t.RectangleRenderer=void 0;let l=a(374),u=a(859),r=a(310),h=a(381),d=8*Float32Array.BYTES_PER_ELEMENT;class _{constructor(){this.attributes=new Float32Array(160),this.count=0}}let o=0,e=0,i=0,s=0,n=0,f=0,v=0;class p extends u.Disposable{constructor(c,g,w,C){super(),this._terminal=c,this._gl=g,this._dimensions=w,this._themeService=C,this._vertices=new _,this._verticesCursor=new _;let m=this._gl;this._program=(0,l.throwIfFalsy)((0,h.createProgram)(m,`#version 300 es + } ${K} +}`}(g.TextureAtlas.maxAtlasPages))),this.register((0,l.toDisposable)(()=>C.deleteProgram(this._program))),this._projectionLocation=(0,h.throwIfFalsy)(C.getUniformLocation(this._program,"u_projection")),this._resolutionLocation=(0,h.throwIfFalsy)(C.getUniformLocation(this._program,"u_resolution")),this._textureLocation=(0,h.throwIfFalsy)(C.getUniformLocation(this._program,"u_texture")),this._vertexArrayObject=C.createVertexArray(),C.bindVertexArray(this._vertexArrayObject);let D=new Float32Array([0,0,1,0,0,1,1,1]),L=C.createBuffer();this.register((0,l.toDisposable)(()=>C.deleteBuffer(L))),C.bindBuffer(C.ARRAY_BUFFER,L),C.bufferData(C.ARRAY_BUFFER,D,C.STATIC_DRAW),C.enableVertexAttribArray(0),C.vertexAttribPointer(0,2,this._gl.FLOAT,!1,0,0);let B=new Uint8Array([0,1,2,3]),R=C.createBuffer();this.register((0,l.toDisposable)(()=>C.deleteBuffer(R))),C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,R),C.bufferData(C.ELEMENT_ARRAY_BUFFER,B,C.STATIC_DRAW),this._attributesBuffer=(0,h.throwIfFalsy)(C.createBuffer()),this.register((0,l.toDisposable)(()=>C.deleteBuffer(this._attributesBuffer))),C.bindBuffer(C.ARRAY_BUFFER,this._attributesBuffer),C.enableVertexAttribArray(2),C.vertexAttribPointer(2,2,C.FLOAT,!1,u,0),C.vertexAttribDivisor(2,1),C.enableVertexAttribArray(3),C.vertexAttribPointer(3,2,C.FLOAT,!1,u,2*Float32Array.BYTES_PER_ELEMENT),C.vertexAttribDivisor(3,1),C.enableVertexAttribArray(4),C.vertexAttribPointer(4,1,C.FLOAT,!1,u,4*Float32Array.BYTES_PER_ELEMENT),C.vertexAttribDivisor(4,1),C.enableVertexAttribArray(5),C.vertexAttribPointer(5,2,C.FLOAT,!1,u,5*Float32Array.BYTES_PER_ELEMENT),C.vertexAttribDivisor(5,1),C.enableVertexAttribArray(6),C.vertexAttribPointer(6,2,C.FLOAT,!1,u,7*Float32Array.BYTES_PER_ELEMENT),C.vertexAttribDivisor(6,1),C.enableVertexAttribArray(1),C.vertexAttribPointer(1,2,C.FLOAT,!1,u,9*Float32Array.BYTES_PER_ELEMENT),C.vertexAttribDivisor(1,1),C.useProgram(this._program);let F=new Int32Array(g.TextureAtlas.maxAtlasPages);for(let Q=0;QC.deleteTexture(K.texture))),C.activeTexture(C.TEXTURE0+Q),C.bindTexture(C.TEXTURE_2D,K.texture),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_S,C.CLAMP_TO_EDGE),C.texParameteri(C.TEXTURE_2D,C.TEXTURE_WRAP_T,C.CLAMP_TO_EDGE),C.texImage2D(C.TEXTURE_2D,0,C.RGBA,1,1,0,C.RGBA,C.UNSIGNED_BYTE,new Uint8Array([255,0,0,255])),this._atlasTextures[Q]=K}C.enable(C.BLEND),C.blendFunc(C.SRC_ALPHA,C.ONE_MINUS_SRC_ALPHA),this.handleResize()}beginFrame(){return!this._atlas||this._atlas.beginFrame()}updateCell(b,S,A,C,D,L,B,R){this._updateCell(this._vertices.attributes,b,S,A,C,D,L,B,R)}_updateCell(b,S,A,C,D,L,B,R,F){d=(A*this._terminal.cols+S)*v,C!==a.NULL_CELL_CODE&&C!==void 0?this._atlas&&(o=R&&R.length>1?this._atlas.getRasterizedGlyphCombinedChar(R,D,L,B,!1):this._atlas.getRasterizedGlyph(C,D,L,B,!1),f=Math.floor((this._dimensions.device.cell.width-this._dimensions.device.char.width)/2),D!==F&&o.offset.x>f?(p=o.offset.x-f,b[d]=-(o.offset.x-p)+this._dimensions.device.char.left,b[d+1]=-o.offset.y+this._dimensions.device.char.top,b[d+2]=(o.size.x-p)/this._dimensions.device.canvas.width,b[d+3]=o.size.y/this._dimensions.device.canvas.height,b[d+4]=o.texturePage,b[d+5]=o.texturePositionClipSpace.x+p/this._atlas.pages[o.texturePage].canvas.width,b[d+6]=o.texturePositionClipSpace.y,b[d+7]=o.sizeClipSpace.x-p/this._atlas.pages[o.texturePage].canvas.width,b[d+8]=o.sizeClipSpace.y):(b[d]=-o.offset.x+this._dimensions.device.char.left,b[d+1]=-o.offset.y+this._dimensions.device.char.top,b[d+2]=o.size.x/this._dimensions.device.canvas.width,b[d+3]=o.size.y/this._dimensions.device.canvas.height,b[d+4]=o.texturePage,b[d+5]=o.texturePositionClipSpace.x,b[d+6]=o.texturePositionClipSpace.y,b[d+7]=o.sizeClipSpace.x,b[d+8]=o.sizeClipSpace.y)):b.fill(0,d,d+v-1-2)}clear(){let b=this._terminal,S=b.cols*b.rows*v;this._vertices.count!==S?this._vertices.attributes=new Float32Array(S):this._vertices.attributes.fill(0);let A=0;for(;A{Object.defineProperty(t,"__esModule",{value:!0}),t.RectangleRenderer=void 0;let h=n(374),g=n(859),a=n(310),l=n(381),_=8*Float32Array.BYTES_PER_ELEMENT;class v{constructor(){this.attributes=new Float32Array(160),this.count=0}}let u=0,o=0,d=0,f=0,p=0,y=0,w=0;class b extends g.Disposable{constructor(A,C,D,L){super(),this._terminal=A,this._gl=C,this._dimensions=D,this._themeService=L,this._vertices=new v,this._verticesCursor=new v;let B=this._gl;this._program=(0,h.throwIfFalsy)((0,l.createProgram)(B,`#version 300 es layout (location = 0) in vec2 a_position; layout (location = 1) in vec2 a_size; layout (location = 2) in vec4 a_color; @@ -63,4 +72,122 @@ out vec4 outColor; void main() { outColor = v_color; -}`)),this.register((0,u.toDisposable)(()=>m.deleteProgram(this._program))),this._projectionLocation=(0,l.throwIfFalsy)(m.getUniformLocation(this._program,"u_projection")),this._vertexArrayObject=m.createVertexArray(),m.bindVertexArray(this._vertexArrayObject);let L=new Float32Array([0,0,1,0,0,1,1,1]),A=m.createBuffer();this.register((0,u.toDisposable)(()=>m.deleteBuffer(A))),m.bindBuffer(m.ARRAY_BUFFER,A),m.bufferData(m.ARRAY_BUFFER,L,m.STATIC_DRAW),m.enableVertexAttribArray(3),m.vertexAttribPointer(3,2,this._gl.FLOAT,!1,0,0);let D=new Uint8Array([0,1,2,3]),M=m.createBuffer();this.register((0,u.toDisposable)(()=>m.deleteBuffer(M))),m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,M),m.bufferData(m.ELEMENT_ARRAY_BUFFER,D,m.STATIC_DRAW),this._attributesBuffer=(0,l.throwIfFalsy)(m.createBuffer()),this.register((0,u.toDisposable)(()=>m.deleteBuffer(this._attributesBuffer))),m.bindBuffer(m.ARRAY_BUFFER,this._attributesBuffer),m.enableVertexAttribArray(0),m.vertexAttribPointer(0,2,m.FLOAT,!1,d,0),m.vertexAttribDivisor(0,1),m.enableVertexAttribArray(1),m.vertexAttribPointer(1,2,m.FLOAT,!1,d,2*Float32Array.BYTES_PER_ELEMENT),m.vertexAttribDivisor(1,1),m.enableVertexAttribArray(2),m.vertexAttribPointer(2,4,m.FLOAT,!1,d,4*Float32Array.BYTES_PER_ELEMENT),m.vertexAttribDivisor(2,1),this._updateCachedColors(C.colors),this.register(this._themeService.onChangeColors(B=>{this._updateCachedColors(B),this._updateViewportRectangle()}))}renderBackgrounds(){this._renderVertices(this._vertices)}renderCursor(){this._renderVertices(this._verticesCursor)}_renderVertices(c){let g=this._gl;g.useProgram(this._program),g.bindVertexArray(this._vertexArrayObject),g.uniformMatrix4fv(this._projectionLocation,!1,h.PROJECTION_MATRIX),g.bindBuffer(g.ARRAY_BUFFER,this._attributesBuffer),g.bufferData(g.ARRAY_BUFFER,c.attributes,g.DYNAMIC_DRAW),g.drawElementsInstanced(this._gl.TRIANGLE_STRIP,4,g.UNSIGNED_BYTE,0,c.count)}handleResize(){this._updateViewportRectangle()}setDimensions(c){this._dimensions=c}_updateCachedColors(c){this._bgFloat=this._colorToFloat32Array(c.background),this._cursorFloat=this._colorToFloat32Array(c.cursor)}_updateViewportRectangle(){this._addRectangleFloat(this._vertices.attributes,0,0,0,this._terminal.cols*this._dimensions.device.cell.width,this._terminal.rows*this._dimensions.device.cell.height,this._bgFloat)}updateBackgrounds(c){let g=this._terminal,w=this._vertices,C,m,L,A,D,M,B,b,E,x,k,P=1;for(C=0;C>24&255)/255,n=(o>>16&255)/255,f=(o>>8&255)/255,v=1,this._addRectangle(c.attributes,g,e,i,(L-m)*this._dimensions.device.cell.width,this._dimensions.device.cell.height,s,n,f,v)}_addRectangle(c,g,w,C,m,L,A,D,M,B){c[g]=w/this._dimensions.device.canvas.width,c[g+1]=C/this._dimensions.device.canvas.height,c[g+2]=m/this._dimensions.device.canvas.width,c[g+3]=L/this._dimensions.device.canvas.height,c[g+4]=A,c[g+5]=D,c[g+6]=M,c[g+7]=B}_addRectangleFloat(c,g,w,C,m,L,A){c[g]=w/this._dimensions.device.canvas.width,c[g+1]=C/this._dimensions.device.canvas.height,c[g+2]=m/this._dimensions.device.canvas.width,c[g+3]=L/this._dimensions.device.canvas.height,c[g+4]=A[0],c[g+5]=A[1],c[g+6]=A[2],c[g+7]=A[3]}_colorToFloat32Array(c){return new Float32Array([(c.rgba>>24&255)/255,(c.rgba>>16&255)/255,(c.rgba>>8&255)/255,(255&c.rgba)/255])}}t.RectangleRenderer=p},310:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RenderModel=t.COMBINED_CHAR_BIT_MASK=t.RENDER_MODEL_EXT_OFFSET=t.RENDER_MODEL_FG_OFFSET=t.RENDER_MODEL_BG_OFFSET=t.RENDER_MODEL_INDICIES_PER_CELL=void 0;let l=a(296);t.RENDER_MODEL_INDICIES_PER_CELL=4,t.RENDER_MODEL_BG_OFFSET=1,t.RENDER_MODEL_FG_OFFSET=2,t.RENDER_MODEL_EXT_OFFSET=3,t.COMBINED_CHAR_BIT_MASK=2147483648,t.RenderModel=class{constructor(){this.cells=new Uint32Array(0),this.lineLengths=new Uint32Array(0),this.selection=(0,l.createSelectionRenderModel)()}resize(u,r){let h=u*r*t.RENDER_MODEL_INDICIES_PER_CELL;h!==this.cells.length&&(this.cells=new Uint32Array(h),this.lineLengths=new Uint32Array(r))}clear(){this.cells.fill(0,0),this.lineLengths.fill(0,0)}}},666:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.JoinedCellData=t.WebglRenderer=void 0;let l=a(820),u=a(274),r=a(627),h=a(457),d=a(56),_=a(374),o=a(345),e=a(859),i=a(147),s=a(782),n=a(855),f=a(965),v=a(742),p=a(310),S=a(733);class c extends e.Disposable{constructor(m,L,A,D,M,B,b,E,x){super(),this._terminal=m,this._characterJoinerService=L,this._charSizeService=A,this._coreBrowserService=D,this._coreService=M,this._decorationService=B,this._optionsService=b,this._themeService=E,this._cursorBlinkStateManager=new e.MutableDisposable,this._charAtlasDisposable=this.register(new e.MutableDisposable),this._model=new p.RenderModel,this._workCell=new s.CellData,this._rectangleRenderer=this.register(new e.MutableDisposable),this._glyphRenderer=this.register(new e.MutableDisposable),this._onChangeTextureAtlas=this.register(new o.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new o.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this.register(new o.EventEmitter),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onRequestRedraw=this.register(new o.EventEmitter),this.onRequestRedraw=this._onRequestRedraw.event,this._onContextLoss=this.register(new o.EventEmitter),this.onContextLoss=this._onContextLoss.event,this.register(this._themeService.onChangeColors(()=>this._handleColorChange())),this._cellColorResolver=new u.CellColorResolver(this._terminal,this._model.selection,this._decorationService,this._coreBrowserService,this._themeService),this._core=this._terminal._core,this._renderLayers=[new S.LinkRenderLayer(this._core.screenElement,2,this._terminal,this._core.linkifier2,this._coreBrowserService,b,this._themeService)],this.dimensions=(0,_.createRenderDimensions)(),this._devicePixelRatio=this._coreBrowserService.dpr,this._updateDimensions(),this._updateCursorBlink(),this.register(b.onOptionChange(()=>this._handleOptionsChanged())),this._canvas=this._coreBrowserService.mainDocument.createElement("canvas");let k={antialias:!1,depth:!1,preserveDrawingBuffer:x};if(this._gl=this._canvas.getContext("webgl2",k),!this._gl)throw new Error("WebGL2 not supported "+this._gl);this.register((0,l.addDisposableDomListener)(this._canvas,"webglcontextlost",P=>{console.log("webglcontextlost event received"),P.preventDefault(),this._contextRestorationTimeout=setTimeout(()=>{this._contextRestorationTimeout=void 0,console.warn("webgl context not restored; firing onContextLoss"),this._onContextLoss.fire(P)},3e3)})),this.register((0,l.addDisposableDomListener)(this._canvas,"webglcontextrestored",P=>{console.warn("webglcontextrestored event received"),clearTimeout(this._contextRestorationTimeout),this._contextRestorationTimeout=void 0,(0,r.removeTerminalFromCache)(this._terminal),this._initializeWebGLState(),this._requestRedrawViewport()})),this.register((0,d.observeDevicePixelDimensions)(this._canvas,this._coreBrowserService.window,(P,N)=>this._setCanvasDevicePixelDimensions(P,N))),this._core.screenElement.appendChild(this._canvas),[this._rectangleRenderer.value,this._glyphRenderer.value]=this._initializeWebGLState(),this._isAttached=this._coreBrowserService.window.document.body.contains(this._core.screenElement),this.register((0,e.toDisposable)(()=>{for(let P of this._renderLayers)P.dispose();this._canvas.parentElement?.removeChild(this._canvas),(0,r.removeTerminalFromCache)(this._terminal)}))}get textureAtlas(){return this._charAtlas?.pages[0].canvas}_handleColorChange(){this._refreshCharAtlas(),this._clearModel(!0)}handleDevicePixelRatioChange(){this._devicePixelRatio!==this._coreBrowserService.dpr&&(this._devicePixelRatio=this._coreBrowserService.dpr,this.handleResize(this._terminal.cols,this._terminal.rows))}handleResize(m,L){this._updateDimensions(),this._model.resize(this._terminal.cols,this._terminal.rows);for(let A of this._renderLayers)A.resize(this._terminal,this.dimensions);this._canvas.width=this.dimensions.device.canvas.width,this._canvas.height=this.dimensions.device.canvas.height,this._canvas.style.width=`${this.dimensions.css.canvas.width}px`,this._canvas.style.height=`${this.dimensions.css.canvas.height}px`,this._core.screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._core.screenElement.style.height=`${this.dimensions.css.canvas.height}px`,this._rectangleRenderer.value?.setDimensions(this.dimensions),this._rectangleRenderer.value?.handleResize(),this._glyphRenderer.value?.setDimensions(this.dimensions),this._glyphRenderer.value?.handleResize(),this._refreshCharAtlas(),this._clearModel(!1)}handleCharSizeChanged(){this.handleResize(this._terminal.cols,this._terminal.rows)}handleBlur(){for(let m of this._renderLayers)m.handleBlur(this._terminal);this._cursorBlinkStateManager.value?.pause(),this._requestRedrawViewport()}handleFocus(){for(let m of this._renderLayers)m.handleFocus(this._terminal);this._cursorBlinkStateManager.value?.resume(),this._requestRedrawViewport()}handleSelectionChanged(m,L,A){for(let D of this._renderLayers)D.handleSelectionChanged(this._terminal,m,L,A);this._model.selection.update(this._terminal,m,L,A),this._requestRedrawViewport()}handleCursorMove(){for(let m of this._renderLayers)m.handleCursorMove(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation()}_handleOptionsChanged(){this._updateDimensions(),this._refreshCharAtlas(),this._updateCursorBlink()}_initializeWebGLState(){return this._rectangleRenderer.value=new v.RectangleRenderer(this._terminal,this._gl,this.dimensions,this._themeService),this._glyphRenderer.value=new f.GlyphRenderer(this._terminal,this._gl,this.dimensions),this.handleCharSizeChanged(),[this._rectangleRenderer.value,this._glyphRenderer.value]}_refreshCharAtlas(){if(this.dimensions.device.char.width<=0&&this.dimensions.device.char.height<=0)return void(this._isAttached=!1);let m=(0,r.acquireTextureAtlas)(this._terminal,this._optionsService.rawOptions,this._themeService.colors,this.dimensions.device.cell.width,this.dimensions.device.cell.height,this.dimensions.device.char.width,this.dimensions.device.char.height,this._coreBrowserService.dpr);this._charAtlas!==m&&(this._onChangeTextureAtlas.fire(m.pages[0].canvas),this._charAtlasDisposable.value=(0,e.getDisposeArrayDisposable)([(0,o.forwardEvent)(m.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas),(0,o.forwardEvent)(m.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)])),this._charAtlas=m,this._charAtlas.warmUp(),this._glyphRenderer.value?.setAtlas(this._charAtlas)}_clearModel(m){this._model.clear(),m&&this._glyphRenderer.value?.clear()}clearTextureAtlas(){this._charAtlas?.clearTexture(),this._clearModel(!0),this._requestRedrawViewport()}clear(){this._clearModel(!0);for(let m of this._renderLayers)m.reset(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation(),this._updateCursorBlink()}registerCharacterJoiner(m){return-1}deregisterCharacterJoiner(m){return!1}renderRows(m,L){if(!this._isAttached){if(!(this._coreBrowserService.window.document.body.contains(this._core.screenElement)&&this._charSizeService.width&&this._charSizeService.height))return;this._updateDimensions(),this._refreshCharAtlas(),this._isAttached=!0}for(let A of this._renderLayers)A.handleGridChanged(this._terminal,m,L);this._glyphRenderer.value&&this._rectangleRenderer.value&&(this._glyphRenderer.value.beginFrame()?(this._clearModel(!0),this._updateModel(0,this._terminal.rows-1)):this._updateModel(m,L),this._rectangleRenderer.value.renderBackgrounds(),this._glyphRenderer.value.render(this._model),this._cursorBlinkStateManager.value&&!this._cursorBlinkStateManager.value.isCursorVisible||this._rectangleRenderer.value.renderCursor())}_updateCursorBlink(){this._terminal.options.cursorBlink?this._cursorBlinkStateManager.value=new h.CursorBlinkStateManager(()=>{this._requestRedrawCursor()},this._coreBrowserService):this._cursorBlinkStateManager.clear(),this._requestRedrawCursor()}_updateModel(m,L){let A=this._core,D,M,B,b,E,x,k,P,N,U,W,G,y,O=this._workCell;m=w(m,A.rows-1,0),L=w(L,A.rows-1,0);let $=this._terminal.buffer.active.baseY+this._terminal.buffer.active.cursorY,F=Math.min(this._terminal.buffer.active.cursorX,A.cols-1),K=-1,z=this._coreService.isCursorInitialized&&!this._coreService.isCursorHidden&&(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible);this._model.cursor=void 0;let ee=!1;for(M=m;M<=L;M++)for(B=M+A.buffer.ydisp,b=A.buffer.lines.get(B),this._model.lineLengths[M]=0,E=this._characterJoinerService.getJoinedCharacters(B),G=0;G0&&G===E[0][0]&&(x=!0,P=E.shift(),O=new g(O,b.translateToString(!0,P[0],P[1]),P[1]-P[0]),k=P[1]-1),N=O.getChars(),U=O.getCode(),W=(M*A.cols+G)*p.RENDER_MODEL_INDICIES_PER_CELL,this._cellColorResolver.resolve(O,G,B),z&&B===$&&(G===F&&(this._model.cursor={x:F,y:this._terminal.buffer.active.cursorY,width:O.getWidth(),style:this._coreBrowserService.isFocused?A.options.cursorStyle||"block":A.options.cursorInactiveStyle,cursorWidth:A.options.cursorWidth,dpr:this._devicePixelRatio},K=F+O.getWidth()-1),G>=F&&G<=K&&(this._coreBrowserService.isFocused&&(A.options.cursorStyle||"block")==="block"||this._coreBrowserService.isFocused===!1&&A.options.cursorInactiveStyle==="block")&&(this._cellColorResolver.result.fg=50331648|this._themeService.colors.cursorAccent.rgba>>8&16777215,this._cellColorResolver.result.bg=50331648|this._themeService.colors.cursor.rgba>>8&16777215)),U!==n.NULL_CELL_CODE&&(this._model.lineLengths[M]=G+1),(this._model.cells[W]!==U||this._model.cells[W+p.RENDER_MODEL_BG_OFFSET]!==this._cellColorResolver.result.bg||this._model.cells[W+p.RENDER_MODEL_FG_OFFSET]!==this._cellColorResolver.result.fg||this._model.cells[W+p.RENDER_MODEL_EXT_OFFSET]!==this._cellColorResolver.result.ext)&&(ee=!0,N.length>1&&(U|=p.COMBINED_CHAR_BIT_MASK),this._model.cells[W]=U,this._model.cells[W+p.RENDER_MODEL_BG_OFFSET]=this._cellColorResolver.result.bg,this._model.cells[W+p.RENDER_MODEL_FG_OFFSET]=this._cellColorResolver.result.fg,this._model.cells[W+p.RENDER_MODEL_EXT_OFFSET]=this._cellColorResolver.result.ext,this._glyphRenderer.value.updateCell(G,M,U,this._cellColorResolver.result.bg,this._cellColorResolver.result.fg,this._cellColorResolver.result.ext,N,D),x))for(O=this._workCell,G++;G{Object.defineProperty(t,"__esModule",{value:!0}),t.GLTexture=t.expandFloat32Array=t.createShader=t.createProgram=t.PROJECTION_MATRIX=void 0;let l=a(374);function u(r,h,d){let _=(0,l.throwIfFalsy)(r.createShader(h));if(r.shaderSource(_,d),r.compileShader(_),r.getShaderParameter(_,r.COMPILE_STATUS))return _;console.error(r.getShaderInfoLog(_)),r.deleteShader(_)}t.PROJECTION_MATRIX=new Float32Array([2,0,0,0,0,-2,0,0,0,0,1,0,-1,1,0,1]),t.createProgram=function(r,h,d){let _=(0,l.throwIfFalsy)(r.createProgram());if(r.attachShader(_,(0,l.throwIfFalsy)(u(r,r.VERTEX_SHADER,h))),r.attachShader(_,(0,l.throwIfFalsy)(u(r,r.FRAGMENT_SHADER,d))),r.linkProgram(_),r.getProgramParameter(_,r.LINK_STATUS))return _;console.error(r.getProgramInfoLog(_)),r.deleteProgram(_)},t.createShader=u,t.expandFloat32Array=function(r,h){let d=Math.min(2*r.length,h),_=new Float32Array(d);for(let o=0;o{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseRenderLayer=void 0;let l=a(627),u=a(237),r=a(374),h=a(859);class d extends h.Disposable{constructor(o,e,i,s,n,f,v,p){super(),this._container=e,this._alpha=n,this._coreBrowserService=f,this._optionsService=v,this._themeService=p,this._deviceCharWidth=0,this._deviceCharHeight=0,this._deviceCellWidth=0,this._deviceCellHeight=0,this._deviceCharLeft=0,this._deviceCharTop=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add(`xterm-${i}-layer`),this._canvas.style.zIndex=s.toString(),this._initCanvas(),this._container.appendChild(this._canvas),this.register(this._themeService.onChangeColors(S=>{this._refreshCharAtlas(o,S),this.reset(o)})),this.register((0,h.toDisposable)(()=>{this._canvas.remove()}))}_initCanvas(){this._ctx=(0,r.throwIfFalsy)(this._canvas.getContext("2d",{alpha:this._alpha})),this._alpha||this._clearAll()}handleBlur(o){}handleFocus(o){}handleCursorMove(o){}handleGridChanged(o,e,i){}handleSelectionChanged(o,e,i,s=!1){}_setTransparency(o,e){if(e===this._alpha)return;let i=this._canvas;this._alpha=e,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,i),this._refreshCharAtlas(o,this._themeService.colors),this.handleGridChanged(o,0,o.rows-1)}_refreshCharAtlas(o,e){this._deviceCharWidth<=0&&this._deviceCharHeight<=0||(this._charAtlas=(0,l.acquireTextureAtlas)(o,this._optionsService.rawOptions,e,this._deviceCellWidth,this._deviceCellHeight,this._deviceCharWidth,this._deviceCharHeight,this._coreBrowserService.dpr),this._charAtlas.warmUp())}resize(o,e){this._deviceCellWidth=e.device.cell.width,this._deviceCellHeight=e.device.cell.height,this._deviceCharWidth=e.device.char.width,this._deviceCharHeight=e.device.char.height,this._deviceCharLeft=e.device.char.left,this._deviceCharTop=e.device.char.top,this._canvas.width=e.device.canvas.width,this._canvas.height=e.device.canvas.height,this._canvas.style.width=`${e.css.canvas.width}px`,this._canvas.style.height=`${e.css.canvas.height}px`,this._alpha||this._clearAll(),this._refreshCharAtlas(o,this._themeService.colors)}_fillBottomLineAtCells(o,e,i=1){this._ctx.fillRect(o*this._deviceCellWidth,(e+1)*this._deviceCellHeight-this._coreBrowserService.dpr-1,i*this._deviceCellWidth,this._coreBrowserService.dpr)}_clearAll(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))}_clearCells(o,e,i,s){this._alpha?this._ctx.clearRect(o*this._deviceCellWidth,e*this._deviceCellHeight,i*this._deviceCellWidth,s*this._deviceCellHeight):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(o*this._deviceCellWidth,e*this._deviceCellHeight,i*this._deviceCellWidth,s*this._deviceCellHeight))}_fillCharTrueColor(o,e,i,s){this._ctx.font=this._getFont(o,!1,!1),this._ctx.textBaseline=u.TEXT_BASELINE,this._clipCell(i,s,e.getWidth()),this._ctx.fillText(e.getChars(),i*this._deviceCellWidth+this._deviceCharLeft,s*this._deviceCellHeight+this._deviceCharTop+this._deviceCharHeight)}_clipCell(o,e,i){this._ctx.beginPath(),this._ctx.rect(o*this._deviceCellWidth,e*this._deviceCellHeight,i*this._deviceCellWidth,this._deviceCellHeight),this._ctx.clip()}_getFont(o,e,i){return`${i?"italic":""} ${e?o.options.fontWeightBold:o.options.fontWeight} ${o.options.fontSize*this._coreBrowserService.dpr}px ${o.options.fontFamily}`}}t.BaseRenderLayer=d},733:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkRenderLayer=void 0;let l=a(197),u=a(237),r=a(592);class h extends r.BaseRenderLayer{constructor(_,o,e,i,s,n,f){super(e,_,"link",o,!0,s,n,f),this.register(i.onShowLinkUnderline(v=>this._handleShowLinkUnderline(v))),this.register(i.onHideLinkUnderline(v=>this._handleHideLinkUnderline(v)))}resize(_,o){super.resize(_,o),this._state=void 0}reset(_){this._clearCurrentLink()}_clearCurrentLink(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);let _=this._state.y2-this._state.y1-1;_>0&&this._clearCells(0,this._state.y1+1,this._state.cols,_),this._clearCells(0,this._state.y2,this._state.x2,1),this._state=void 0}}_handleShowLinkUnderline(_){if(_.fg===u.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._themeService.colors.background.css:_.fg!==void 0&&(0,l.is256Color)(_.fg)?this._ctx.fillStyle=this._themeService.colors.ansi[_.fg].css:this._ctx.fillStyle=this._themeService.colors.foreground.css,_.y1===_.y2)this._fillBottomLineAtCells(_.x1,_.y1,_.x2-_.x1);else{this._fillBottomLineAtCells(_.x1,_.y1,_.cols-_.x1);for(let o=_.y1+1;o<_.y2;o++)this._fillBottomLineAtCells(0,o,_.cols);this._fillBottomLineAtCells(0,_.y2,_.x2)}this._state=_}_handleHideLinkUnderline(_){this._clearCurrentLink()}}t.LinkRenderLayer=h},820:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(a,l,u,r){a.addEventListener(l,u,r);let h=!1;return{dispose:()=>{h||(h=!0,a.removeEventListener(l,u,r))}}}},274:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellColorResolver=void 0;let a,l=0,u=0,r=!1,h=!1,d=!1;t.CellColorResolver=class{constructor(_,o,e,i,s){this._terminal=_,this._selectionRenderModel=o,this._decorationService=e,this._coreBrowserService=i,this._themeService=s,this.result={fg:0,bg:0,ext:0}}resolve(_,o,e){this.result.bg=_.bg,this.result.fg=_.fg,this.result.ext=268435456&_.bg?_.extended.ext:0,u=0,l=0,h=!1,r=!1,d=!1,a=this._themeService.colors,this._decorationService.forEachDecorationAtCell(o,e,"bottom",i=>{i.backgroundColorRGB&&(u=i.backgroundColorRGB.rgba>>8&16777215,h=!0),i.foregroundColorRGB&&(l=i.foregroundColorRGB.rgba>>8&16777215,r=!0)}),d=this._selectionRenderModel.isCellSelected(this._terminal,o,e),d&&(u=(this._coreBrowserService.isFocused?a.selectionBackgroundOpaque:a.selectionInactiveBackgroundOpaque).rgba>>8&16777215,h=!0,a.selectionForeground&&(l=a.selectionForeground.rgba>>8&16777215,r=!0)),this._decorationService.forEachDecorationAtCell(o,e,"top",i=>{i.backgroundColorRGB&&(u=i.backgroundColorRGB.rgba>>8&16777215,h=!0),i.foregroundColorRGB&&(l=i.foregroundColorRGB.rgba>>8&16777215,r=!0)}),h&&(u=d?-16777216&_.bg&-134217729|u|50331648:-16777216&_.bg|u|50331648),r&&(l=-16777216&_.fg&-67108865|l|50331648),67108864&this.result.fg&&(h&&!r&&(l=50331648&this.result.bg?-134217728&this.result.fg|67108863&this.result.bg:-134217728&this.result.fg|16777215&a.background.rgba>>8|50331648,r=!0),!h&&r&&(u=50331648&this.result.fg?-67108864&this.result.bg|67108863&this.result.fg:-67108864&this.result.bg|16777215&a.foreground.rgba>>8|50331648,h=!0)),a=void 0,this.result.bg=h?u:this.result.bg,this.result.fg=r?l:this.result.fg}}},627:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.removeTerminalFromCache=t.acquireTextureAtlas=void 0;let l=a(509),u=a(197),r=[];t.acquireTextureAtlas=function(h,d,_,o,e,i,s,n){let f=(0,u.generateConfig)(o,e,i,s,d,_,n);for(let S=0;S=0){if((0,u.configEquals)(c.config,f))return c.atlas;c.ownedBy.length===1?(c.atlas.dispose(),r.splice(S,1)):c.ownedBy.splice(g,1);break}}for(let S=0;S{Object.defineProperty(t,"__esModule",{value:!0}),t.is256Color=t.configEquals=t.generateConfig=void 0;let l=a(160);t.generateConfig=function(u,r,h,d,_,o,e){let i={foreground:o.foreground,background:o.background,cursor:l.NULL_COLOR,cursorAccent:l.NULL_COLOR,selectionForeground:l.NULL_COLOR,selectionBackgroundTransparent:l.NULL_COLOR,selectionBackgroundOpaque:l.NULL_COLOR,selectionInactiveBackgroundTransparent:l.NULL_COLOR,selectionInactiveBackgroundOpaque:l.NULL_COLOR,ansi:o.ansi.slice(),contrastCache:o.contrastCache,halfContrastCache:o.halfContrastCache};return{customGlyphs:_.customGlyphs,devicePixelRatio:e,letterSpacing:_.letterSpacing,lineHeight:_.lineHeight,deviceCellWidth:u,deviceCellHeight:r,deviceCharWidth:h,deviceCharHeight:d,fontFamily:_.fontFamily,fontSize:_.fontSize,fontWeight:_.fontWeight,fontWeightBold:_.fontWeightBold,allowTransparency:_.allowTransparency,drawBoldTextInBrightColors:_.drawBoldTextInBrightColors,minimumContrastRatio:_.minimumContrastRatio,colors:i}},t.configEquals=function(u,r){for(let h=0;h{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;let l=a(399);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=l.isFirefox||l.isLegacyEdge?"bottom":"ideographic"},457:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CursorBlinkStateManager=void 0,t.CursorBlinkStateManager=class{constructor(a,l){this._renderCallback=a,this._coreBrowserService=l,this.isCursorVisible=!0,this._coreBrowserService.isFocused&&this._restartInterval()}get isPaused(){return!(this._blinkStartTimeout||this._blinkInterval)}dispose(){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}restartBlinkAnimation(){this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0})))}_restartInterval(a=600){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout=this._coreBrowserService.window.setTimeout(()=>{if(this._animationTimeRestarted){let l=600-(Date.now()-this._animationTimeRestarted);if(this._animationTimeRestarted=void 0,l>0)return void this._restartInterval(l)}this.isCursorVisible=!1,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0}),this._blinkInterval=this._coreBrowserService.window.setInterval(()=>{if(this._animationTimeRestarted){let l=600-(Date.now()-this._animationTimeRestarted);return this._animationTimeRestarted=void 0,void this._restartInterval(l)}this.isCursorVisible=!this.isCursorVisible,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0})},600)},a)}pause(){this.isCursorVisible=!0,this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}resume(){this.pause(),this._animationTimeRestarted=void 0,this._restartInterval(),this.restartBlinkAnimation()}}},860:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tryDrawCustomChar=t.powerlineDefinitions=t.boxDrawingDefinitions=t.blockElementDefinitions=void 0;let l=a(374);t.blockElementDefinitions={"\u2580":[{x:0,y:0,w:8,h:4}],"\u2581":[{x:0,y:7,w:8,h:1}],"\u2582":[{x:0,y:6,w:8,h:2}],"\u2583":[{x:0,y:5,w:8,h:3}],"\u2584":[{x:0,y:4,w:8,h:4}],"\u2585":[{x:0,y:3,w:8,h:5}],"\u2586":[{x:0,y:2,w:8,h:6}],"\u2587":[{x:0,y:1,w:8,h:7}],"\u2588":[{x:0,y:0,w:8,h:8}],"\u2589":[{x:0,y:0,w:7,h:8}],"\u258A":[{x:0,y:0,w:6,h:8}],"\u258B":[{x:0,y:0,w:5,h:8}],"\u258C":[{x:0,y:0,w:4,h:8}],"\u258D":[{x:0,y:0,w:3,h:8}],"\u258E":[{x:0,y:0,w:2,h:8}],"\u258F":[{x:0,y:0,w:1,h:8}],"\u2590":[{x:4,y:0,w:4,h:8}],"\u2594":[{x:0,y:0,w:8,h:1}],"\u2595":[{x:7,y:0,w:1,h:8}],"\u2596":[{x:0,y:4,w:4,h:4}],"\u2597":[{x:4,y:4,w:4,h:4}],"\u2598":[{x:0,y:0,w:4,h:4}],"\u2599":[{x:0,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"\u259A":[{x:0,y:0,w:4,h:4},{x:4,y:4,w:4,h:4}],"\u259B":[{x:0,y:0,w:4,h:8},{x:4,y:0,w:4,h:4}],"\u259C":[{x:0,y:0,w:8,h:4},{x:4,y:0,w:4,h:8}],"\u259D":[{x:4,y:0,w:4,h:4}],"\u259E":[{x:4,y:0,w:4,h:4},{x:0,y:4,w:4,h:4}],"\u259F":[{x:4,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"\u{1FB70}":[{x:1,y:0,w:1,h:8}],"\u{1FB71}":[{x:2,y:0,w:1,h:8}],"\u{1FB72}":[{x:3,y:0,w:1,h:8}],"\u{1FB73}":[{x:4,y:0,w:1,h:8}],"\u{1FB74}":[{x:5,y:0,w:1,h:8}],"\u{1FB75}":[{x:6,y:0,w:1,h:8}],"\u{1FB76}":[{x:0,y:1,w:8,h:1}],"\u{1FB77}":[{x:0,y:2,w:8,h:1}],"\u{1FB78}":[{x:0,y:3,w:8,h:1}],"\u{1FB79}":[{x:0,y:4,w:8,h:1}],"\u{1FB7A}":[{x:0,y:5,w:8,h:1}],"\u{1FB7B}":[{x:0,y:6,w:8,h:1}],"\u{1FB7C}":[{x:0,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"\u{1FB7D}":[{x:0,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"\u{1FB7E}":[{x:7,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"\u{1FB7F}":[{x:7,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"\u{1FB80}":[{x:0,y:0,w:8,h:1},{x:0,y:7,w:8,h:1}],"\u{1FB81}":[{x:0,y:0,w:8,h:1},{x:0,y:2,w:8,h:1},{x:0,y:4,w:8,h:1},{x:0,y:7,w:8,h:1}],"\u{1FB82}":[{x:0,y:0,w:8,h:2}],"\u{1FB83}":[{x:0,y:0,w:8,h:3}],"\u{1FB84}":[{x:0,y:0,w:8,h:5}],"\u{1FB85}":[{x:0,y:0,w:8,h:6}],"\u{1FB86}":[{x:0,y:0,w:8,h:7}],"\u{1FB87}":[{x:6,y:0,w:2,h:8}],"\u{1FB88}":[{x:5,y:0,w:3,h:8}],"\u{1FB89}":[{x:3,y:0,w:5,h:8}],"\u{1FB8A}":[{x:2,y:0,w:6,h:8}],"\u{1FB8B}":[{x:1,y:0,w:7,h:8}],"\u{1FB95}":[{x:0,y:0,w:2,h:2},{x:4,y:0,w:2,h:2},{x:2,y:2,w:2,h:2},{x:6,y:2,w:2,h:2},{x:0,y:4,w:2,h:2},{x:4,y:4,w:2,h:2},{x:2,y:6,w:2,h:2},{x:6,y:6,w:2,h:2}],"\u{1FB96}":[{x:2,y:0,w:2,h:2},{x:6,y:0,w:2,h:2},{x:0,y:2,w:2,h:2},{x:4,y:2,w:2,h:2},{x:2,y:4,w:2,h:2},{x:6,y:4,w:2,h:2},{x:0,y:6,w:2,h:2},{x:4,y:6,w:2,h:2}],"\u{1FB97}":[{x:0,y:2,w:8,h:2},{x:0,y:6,w:8,h:2}]};let u={"\u2591":[[1,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],"\u2592":[[1,0],[0,0],[0,1],[0,0]],"\u2593":[[0,1],[1,1],[1,0],[1,1]]};t.boxDrawingDefinitions={"\u2500":{1:"M0,.5 L1,.5"},"\u2501":{3:"M0,.5 L1,.5"},"\u2502":{1:"M.5,0 L.5,1"},"\u2503":{3:"M.5,0 L.5,1"},"\u250C":{1:"M0.5,1 L.5,.5 L1,.5"},"\u250F":{3:"M0.5,1 L.5,.5 L1,.5"},"\u2510":{1:"M0,.5 L.5,.5 L.5,1"},"\u2513":{3:"M0,.5 L.5,.5 L.5,1"},"\u2514":{1:"M.5,0 L.5,.5 L1,.5"},"\u2517":{3:"M.5,0 L.5,.5 L1,.5"},"\u2518":{1:"M.5,0 L.5,.5 L0,.5"},"\u251B":{3:"M.5,0 L.5,.5 L0,.5"},"\u251C":{1:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u2523":{3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u2524":{1:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u252B":{3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u252C":{1:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2533":{3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2534":{1:"M0,.5 L1,.5 M.5,.5 L.5,0"},"\u253B":{3:"M0,.5 L1,.5 M.5,.5 L.5,0"},"\u253C":{1:"M0,.5 L1,.5 M.5,0 L.5,1"},"\u254B":{3:"M0,.5 L1,.5 M.5,0 L.5,1"},"\u2574":{1:"M.5,.5 L0,.5"},"\u2578":{3:"M.5,.5 L0,.5"},"\u2575":{1:"M.5,.5 L.5,0"},"\u2579":{3:"M.5,.5 L.5,0"},"\u2576":{1:"M.5,.5 L1,.5"},"\u257A":{3:"M.5,.5 L1,.5"},"\u2577":{1:"M.5,.5 L.5,1"},"\u257B":{3:"M.5,.5 L.5,1"},"\u2550":{1:(o,e)=>`M0,${.5-e} L1,${.5-e} M0,${.5+e} L1,${.5+e}`},"\u2551":{1:(o,e)=>`M${.5-o},0 L${.5-o},1 M${.5+o},0 L${.5+o},1`},"\u2552":{1:(o,e)=>`M.5,1 L.5,${.5-e} L1,${.5-e} M.5,${.5+e} L1,${.5+e}`},"\u2553":{1:(o,e)=>`M${.5-o},1 L${.5-o},.5 L1,.5 M${.5+o},.5 L${.5+o},1`},"\u2554":{1:(o,e)=>`M1,${.5-e} L${.5-o},${.5-e} L${.5-o},1 M1,${.5+e} L${.5+o},${.5+e} L${.5+o},1`},"\u2555":{1:(o,e)=>`M0,${.5-e} L.5,${.5-e} L.5,1 M0,${.5+e} L.5,${.5+e}`},"\u2556":{1:(o,e)=>`M${.5+o},1 L${.5+o},.5 L0,.5 M${.5-o},.5 L${.5-o},1`},"\u2557":{1:(o,e)=>`M0,${.5+e} L${.5-o},${.5+e} L${.5-o},1 M0,${.5-e} L${.5+o},${.5-e} L${.5+o},1`},"\u2558":{1:(o,e)=>`M.5,0 L.5,${.5+e} L1,${.5+e} M.5,${.5-e} L1,${.5-e}`},"\u2559":{1:(o,e)=>`M1,.5 L${.5-o},.5 L${.5-o},0 M${.5+o},.5 L${.5+o},0`},"\u255A":{1:(o,e)=>`M1,${.5-e} L${.5+o},${.5-e} L${.5+o},0 M1,${.5+e} L${.5-o},${.5+e} L${.5-o},0`},"\u255B":{1:(o,e)=>`M0,${.5+e} L.5,${.5+e} L.5,0 M0,${.5-e} L.5,${.5-e}`},"\u255C":{1:(o,e)=>`M0,.5 L${.5+o},.5 L${.5+o},0 M${.5-o},.5 L${.5-o},0`},"\u255D":{1:(o,e)=>`M0,${.5-e} L${.5-o},${.5-e} L${.5-o},0 M0,${.5+e} L${.5+o},${.5+e} L${.5+o},0`},"\u255E":{1:(o,e)=>`M.5,0 L.5,1 M.5,${.5-e} L1,${.5-e} M.5,${.5+e} L1,${.5+e}`},"\u255F":{1:(o,e)=>`M${.5-o},0 L${.5-o},1 M${.5+o},0 L${.5+o},1 M${.5+o},.5 L1,.5`},"\u2560":{1:(o,e)=>`M${.5-o},0 L${.5-o},1 M1,${.5+e} L${.5+o},${.5+e} L${.5+o},1 M1,${.5-e} L${.5+o},${.5-e} L${.5+o},0`},"\u2561":{1:(o,e)=>`M.5,0 L.5,1 M0,${.5-e} L.5,${.5-e} M0,${.5+e} L.5,${.5+e}`},"\u2562":{1:(o,e)=>`M0,.5 L${.5-o},.5 M${.5-o},0 L${.5-o},1 M${.5+o},0 L${.5+o},1`},"\u2563":{1:(o,e)=>`M${.5+o},0 L${.5+o},1 M0,${.5+e} L${.5-o},${.5+e} L${.5-o},1 M0,${.5-e} L${.5-o},${.5-e} L${.5-o},0`},"\u2564":{1:(o,e)=>`M0,${.5-e} L1,${.5-e} M0,${.5+e} L1,${.5+e} M.5,${.5+e} L.5,1`},"\u2565":{1:(o,e)=>`M0,.5 L1,.5 M${.5-o},.5 L${.5-o},1 M${.5+o},.5 L${.5+o},1`},"\u2566":{1:(o,e)=>`M0,${.5-e} L1,${.5-e} M0,${.5+e} L${.5-o},${.5+e} L${.5-o},1 M1,${.5+e} L${.5+o},${.5+e} L${.5+o},1`},"\u2567":{1:(o,e)=>`M.5,0 L.5,${.5-e} M0,${.5-e} L1,${.5-e} M0,${.5+e} L1,${.5+e}`},"\u2568":{1:(o,e)=>`M0,.5 L1,.5 M${.5-o},.5 L${.5-o},0 M${.5+o},.5 L${.5+o},0`},"\u2569":{1:(o,e)=>`M0,${.5+e} L1,${.5+e} M0,${.5-e} L${.5-o},${.5-e} L${.5-o},0 M1,${.5-e} L${.5+o},${.5-e} L${.5+o},0`},"\u256A":{1:(o,e)=>`M.5,0 L.5,1 M0,${.5-e} L1,${.5-e} M0,${.5+e} L1,${.5+e}`},"\u256B":{1:(o,e)=>`M0,.5 L1,.5 M${.5-o},0 L${.5-o},1 M${.5+o},0 L${.5+o},1`},"\u256C":{1:(o,e)=>`M0,${.5+e} L${.5-o},${.5+e} L${.5-o},1 M1,${.5+e} L${.5+o},${.5+e} L${.5+o},1 M0,${.5-e} L${.5-o},${.5-e} L${.5-o},0 M1,${.5-e} L${.5+o},${.5-e} L${.5+o},0`},"\u2571":{1:"M1,0 L0,1"},"\u2572":{1:"M0,0 L1,1"},"\u2573":{1:"M1,0 L0,1 M0,0 L1,1"},"\u257C":{1:"M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u257D":{1:"M.5,.5 L.5,0",3:"M.5,.5 L.5,1"},"\u257E":{1:"M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u257F":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u250D":{1:"M.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"\u250E":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2511":{1:"M.5,.5 L.5,1",3:"M.5,.5 L0,.5"},"\u2512":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"\u2515":{1:"M.5,.5 L.5,0",3:"M.5,.5 L1,.5"},"\u2516":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u2519":{1:"M.5,.5 L.5,0",3:"M.5,.5 L0,.5"},"\u251A":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,0"},"\u251D":{1:"M.5,0 L.5,1",3:"M.5,.5 L1,.5"},"\u251E":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u251F":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2520":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1"},"\u2521":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"\u2522":{1:"M.5,.5 L.5,0",3:"M0.5,1 L.5,.5 L1,.5"},"\u2525":{1:"M.5,0 L.5,1",3:"M.5,.5 L0,.5"},"\u2526":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u2527":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"\u2528":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1"},"\u2529":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L0,.5"},"\u252A":{1:"M.5,.5 L.5,0",3:"M0,.5 L.5,.5 L.5,1"},"\u252D":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u252E":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"\u252F":{1:"M.5,.5 L.5,1",3:"M0,.5 L1,.5"},"\u2530":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2531":{1:"M.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"\u2532":{1:"M.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"\u2535":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u2536":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u2537":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5"},"\u2538":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u2539":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"\u253A":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,.5 L1,.5"},"\u253D":{1:"M.5,0 L.5,1 M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u253E":{1:"M.5,0 L.5,1 M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u253F":{1:"M.5,0 L.5,1",3:"M0,.5 L1,.5"},"\u2540":{1:"M0,.5 L1,.5 M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u2541":{1:"M.5,.5 L.5,0 M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2542":{1:"M0,.5 L1,.5",3:"M.5,0 L.5,1"},"\u2543":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"\u2544":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"\u2545":{1:"M.5,0 L.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"\u2546":{1:"M.5,0 L.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"\u2547":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0 M0,.5 L1,.5"},"\u2548":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2549":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u254A":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u254C":{1:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"\u254D":{3:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"\u2504":{1:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"\u2505":{3:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"\u2508":{1:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"\u2509":{3:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"\u254E":{1:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"\u254F":{3:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"\u2506":{1:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"\u2507":{3:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"\u250A":{1:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"\u250B":{3:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"\u256D":{1:(o,e)=>`M.5,1 L.5,${.5+e/.15*.5} C.5,${.5+e/.15*.5},.5,.5,1,.5`},"\u256E":{1:(o,e)=>`M.5,1 L.5,${.5+e/.15*.5} C.5,${.5+e/.15*.5},.5,.5,0,.5`},"\u256F":{1:(o,e)=>`M.5,0 L.5,${.5-e/.15*.5} C.5,${.5-e/.15*.5},.5,.5,0,.5`},"\u2570":{1:(o,e)=>`M.5,0 L.5,${.5-e/.15*.5} C.5,${.5-e/.15*.5},.5,.5,1,.5`}},t.powerlineDefinitions={"\uE0B0":{d:"M0,0 L1,.5 L0,1",type:0,rightPadding:2},"\uE0B1":{d:"M-1,-.5 L1,.5 L-1,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0B2":{d:"M1,0 L0,.5 L1,1",type:0,leftPadding:2},"\uE0B3":{d:"M2,-.5 L0,.5 L2,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0B4":{d:"M0,0 L0,1 C0.552,1,1,0.776,1,.5 C1,0.224,0.552,0,0,0",type:0,rightPadding:1},"\uE0B5":{d:"M.2,1 C.422,1,.8,.826,.78,.5 C.8,.174,0.422,0,.2,0",type:1,rightPadding:1},"\uE0B6":{d:"M1,0 L1,1 C0.448,1,0,0.776,0,.5 C0,0.224,0.448,0,1,0",type:0,leftPadding:1},"\uE0B7":{d:"M.8,1 C0.578,1,0.2,.826,.22,.5 C0.2,0.174,0.578,0,0.8,0",type:1,leftPadding:1},"\uE0B8":{d:"M-.5,-.5 L1.5,1.5 L-.5,1.5",type:0},"\uE0B9":{d:"M-.5,-.5 L1.5,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0BA":{d:"M1.5,-.5 L-.5,1.5 L1.5,1.5",type:0},"\uE0BC":{d:"M1.5,-.5 L-.5,1.5 L-.5,-.5",type:0},"\uE0BD":{d:"M1.5,-.5 L-.5,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0BE":{d:"M-.5,-.5 L1.5,1.5 L1.5,-.5",type:0}},t.powerlineDefinitions["\uE0BB"]=t.powerlineDefinitions["\uE0BD"],t.powerlineDefinitions["\uE0BF"]=t.powerlineDefinitions["\uE0B9"],t.tryDrawCustomChar=function(o,e,i,s,n,f,v,p){let S=t.blockElementDefinitions[e];if(S)return function(C,m,L,A,D,M){for(let B=0;B7&&parseInt(b.slice(7,9),16)||1;else{if(!b.startsWith("rgba"))throw new Error(`Unexpected fillStyle color format "${b}" when drawing pattern glyph`);[W,G,y,O]=b.substring(5,b.length-1).split(",").map($=>parseFloat($))}for(let $=0;$o.bezierCurveTo(e[0],e[1],e[2],e[3],e[4],e[5]),L:(o,e)=>o.lineTo(e[0],e[1]),M:(o,e)=>o.moveTo(e[0],e[1])};function _(o,e,i,s,n,f,v,p=0,S=0){let c=o.map(g=>parseFloat(g)||parseInt(g));if(c.length<2)throw new Error("Too few arguments for instruction");for(let g=0;g{Object.defineProperty(t,"__esModule",{value:!0}),t.observeDevicePixelDimensions=void 0;let l=a(859);t.observeDevicePixelDimensions=function(u,r,h){let d=new r.ResizeObserver(_=>{let o=_.find(s=>s.target===u);if(!o)return;if(!("devicePixelContentBoxSize"in o))return d?.disconnect(),void(d=void 0);let e=o.devicePixelContentBoxSize[0].inlineSize,i=o.devicePixelContentBoxSize[0].blockSize;e>0&&i>0&&h(e,i)});try{d.observe(u,{box:["device-pixel-content-box"]})}catch{d.disconnect(),d=void 0}return(0,l.toDisposable)(()=>d?.disconnect())}},374:(R,t)=>{function a(l){return 57508<=l&&l<=57558}Object.defineProperty(t,"__esModule",{value:!0}),t.createRenderDimensions=t.excludeFromContrastRatioDemands=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(l){if(!l)throw new Error("value must not be falsy");return l},t.isPowerlineGlyph=a,t.isRestrictedPowerlineGlyph=function(l){return 57520<=l&&l<=57527},t.excludeFromContrastRatioDemands=function(l){return a(l)||function(u){return 9472<=u&&u<=9631}(l)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}}},296:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createSelectionRenderModel=void 0;class a{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(u,r,h,d=!1){if(this.selectionStart=r,this.selectionEnd=h,!r||!h||r[0]===h[0]&&r[1]===h[1])return void this.clear();let _=r[1]-u.buffer.active.viewportY,o=h[1]-u.buffer.active.viewportY,e=Math.max(_,0),i=Math.min(o,u.rows-1);e>=u.rows||i<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=d,this.viewportStartRow=_,this.viewportEndRow=o,this.viewportCappedStartRow=e,this.viewportCappedEndRow=i,this.startCol=r[0],this.endCol=h[0])}isCellSelected(u,r,h){return!!this.hasSelection&&(h-=u.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?r>=this.startCol&&h>=this.viewportCappedStartRow&&r=this.viewportCappedStartRow&&r>=this.endCol&&h<=this.viewportCappedEndRow:h>this.viewportStartRow&&h=this.startCol&&r=this.startCol)}}t.createSelectionRenderModel=function(){return new a}},509:function(R,t,a){var l=this&&this.__decorate||function(w,C,m,L){var A,D=arguments.length,M=D<3?C:L===null?L=Object.getOwnPropertyDescriptor(C,m):L;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")M=Reflect.decorate(w,C,m,L);else for(var B=w.length-1;B>=0;B--)(A=w[B])&&(M=(D<3?A(M):D>3?A(C,m,M):A(C,m))||M);return D>3&&M&&Object.defineProperty(C,m,M),M};Object.defineProperty(t,"__esModule",{value:!0}),t.TextureAtlas=void 0;let u=a(237),r=a(860),h=a(374),d=a(160),_=a(345),o=a(485),e=a(385),i=a(147),s=a(855),n=a(776),f={texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},offset:{x:0,y:0},size:{x:0,y:0},sizeClipSpace:{x:0,y:0}},v;class p{get pages(){return this._pages}constructor(C,m,L){this._document=C,this._config=m,this._unicodeService=L,this._didWarmUp=!1,this._cacheMap=new o.FourKeyMap,this._cacheMapCombined=new o.FourKeyMap,this._pages=[],this._activePages=[],this._workBoundingBox={top:0,left:0,bottom:0,right:0},this._workAttributeData=new i.AttributeData,this._textureSize=512,this._onAddTextureAtlasCanvas=new _.EventEmitter,this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=new _.EventEmitter,this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._requestClearModel=!1,this._createNewPage(),this._tmpCanvas=g(C,4*this._config.deviceCellWidth+4,this._config.deviceCellHeight+4),this._tmpCtx=(0,h.throwIfFalsy)(this._tmpCanvas.getContext("2d",{alpha:this._config.allowTransparency,willReadFrequently:!0}))}dispose(){for(let C of this.pages)C.canvas.remove();this._onAddTextureAtlasCanvas.dispose()}warmUp(){this._didWarmUp||(this._doWarmUp(),this._didWarmUp=!0)}_doWarmUp(){let C=new e.IdleTaskQueue;for(let m=33;m<126;m++)C.enqueue(()=>{if(!this._cacheMap.get(m,s.DEFAULT_COLOR,s.DEFAULT_COLOR,s.DEFAULT_EXT)){let L=this._drawToCache(m,s.DEFAULT_COLOR,s.DEFAULT_COLOR,s.DEFAULT_EXT);this._cacheMap.set(m,s.DEFAULT_COLOR,s.DEFAULT_COLOR,s.DEFAULT_EXT,L)}})}beginFrame(){return this._requestClearModel}clearTexture(){if(this._pages[0].currentRow.x!==0||this._pages[0].currentRow.y!==0){for(let C of this._pages)C.clear();this._cacheMap.clear(),this._cacheMapCombined.clear(),this._didWarmUp=!1}}_createNewPage(){if(p.maxAtlasPages&&this._pages.length>=Math.max(4,p.maxAtlasPages)){let m=this._pages.filter(E=>2*E.canvas.width<=(p.maxTextureSize||4096)).sort((E,x)=>x.canvas.width!==E.canvas.width?x.canvas.width-E.canvas.width:x.percentageUsed-E.percentageUsed),L=-1,A=0;for(let E=0;EE.glyphs[0].texturePage).sort((E,x)=>E>x?1:-1),B=this.pages.length-D.length,b=this._mergePages(D,B);b.version++;for(let E=M.length-1;E>=0;E--)this._deletePage(M[E]);this.pages.push(b),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(b.canvas)}let C=new S(this._document,this._textureSize);return this._pages.push(C),this._activePages.push(C),this._onAddTextureAtlasCanvas.fire(C.canvas),C}_mergePages(C,m){let L=2*C[0].canvas.width,A=new S(this._document,L,C);for(let[D,M]of C.entries()){let B=D*M.canvas.width%L,b=Math.floor(D/2)*M.canvas.height;A.ctx.drawImage(M.canvas,B,b);for(let x of M.glyphs)x.texturePage=m,x.sizeClipSpace.x=x.size.x/L,x.sizeClipSpace.y=x.size.y/L,x.texturePosition.x+=B,x.texturePosition.y+=b,x.texturePositionClipSpace.x=x.texturePosition.x/L,x.texturePositionClipSpace.y=x.texturePosition.y/L;this._onRemoveTextureAtlasCanvas.fire(M.canvas);let E=this._activePages.indexOf(M);E!==-1&&this._activePages.splice(E,1)}return A}_deletePage(C){this._pages.splice(C,1);for(let m=C;m=this._config.colors.ansi.length)throw new Error("No color found for idx "+C);return this._config.colors.ansi[C]}_getBackgroundColor(C,m,L,A){if(this._config.allowTransparency)return d.NULL_COLOR;let D;switch(C){case 16777216:case 33554432:D=this._getColorFromAnsiIndex(m);break;case 50331648:let M=i.AttributeData.toColorRGB(m);D=d.rgba.toColor(M[0],M[1],M[2]);break;default:D=L?d.color.opaque(this._config.colors.foreground):this._config.colors.background}return D}_getForegroundColor(C,m,L,A,D,M,B,b,E,x){let k=this._getMinimumContrastColor(C,m,L,A,D,M,B,E,b,x);if(k)return k;let P;switch(D){case 16777216:case 33554432:this._config.drawBoldTextInBrightColors&&E&&M<8&&(M+=8),P=this._getColorFromAnsiIndex(M);break;case 50331648:let N=i.AttributeData.toColorRGB(M);P=d.rgba.toColor(N[0],N[1],N[2]);break;default:P=B?this._config.colors.background:this._config.colors.foreground}return this._config.allowTransparency&&(P=d.color.opaque(P)),b&&(P=d.color.multiplyOpacity(P,u.DIM_OPACITY)),P}_resolveBackgroundRgba(C,m,L){switch(C){case 16777216:case 33554432:return this._getColorFromAnsiIndex(m).rgba;case 50331648:return m<<8;default:return L?this._config.colors.foreground.rgba:this._config.colors.background.rgba}}_resolveForegroundRgba(C,m,L,A){switch(C){case 16777216:case 33554432:return this._config.drawBoldTextInBrightColors&&A&&m<8&&(m+=8),this._getColorFromAnsiIndex(m).rgba;case 50331648:return m<<8;default:return L?this._config.colors.background.rgba:this._config.colors.foreground.rgba}}_getMinimumContrastColor(C,m,L,A,D,M,B,b,E,x){if(this._config.minimumContrastRatio===1||x)return;let k=this._getContrastCache(E),P=k.getColor(C,A);if(P!==void 0)return P||void 0;let N=this._resolveBackgroundRgba(m,L,B),U=this._resolveForegroundRgba(D,M,B,b),W=d.rgba.ensureContrastRatio(N,U,this._config.minimumContrastRatio/(E?2:1));if(!W)return void k.setColor(C,A,null);let G=d.rgba.toColor(W>>24&255,W>>16&255,W>>8&255);return k.setColor(C,A,G),G}_getContrastCache(C){return C?this._config.colors.halfContrastCache:this._config.colors.contrastCache}_drawToCache(C,m,L,A,D=!1){let M=typeof C=="number"?String.fromCharCode(C):C,B=Math.min(this._config.deviceCellWidth*Math.max(M.length,2)+4,this._textureSize);this._tmpCanvas.width=12&&!this._config.allowTransparency&&M!==" "){this._tmpCtx.save(),this._tmpCtx.textBaseline="alphabetic";let ce=this._tmpCtx.measureText(M);if(this._tmpCtx.restore(),"actualBoundingBoxDescent"in ce&&ce.actualBoundingBoxDescent>0){this._tmpCtx.save();let Z=new Path2D;Z.rect(de,re-Math.ceil(X/2),this._config.deviceCellWidth*fe,ue-re+Math.ceil(X/2)),this._tmpCtx.clip(Z),this._tmpCtx.lineWidth=3*this._config.devicePixelRatio,this._tmpCtx.strokeStyle=F.css,this._tmpCtx.strokeText(M,se,se+this._config.deviceCharHeight),this._tmpCtx.restore()}}}if(W){let X=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),ie=X%2==1?.5:0;this._tmpCtx.lineWidth=X,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(se,se+ie),this._tmpCtx.lineTo(se+this._config.deviceCharWidth*fe,se+ie),this._tmpCtx.stroke()}if(J||this._tmpCtx.fillText(M,se,se+this._config.deviceCharHeight),M==="_"&&!this._config.allowTransparency){let X=c(this._tmpCtx.getImageData(se,se,this._config.deviceCellWidth,this._config.deviceCellHeight),F,le,ge);if(X)for(let ie=1;ie<=5&&(this._tmpCtx.save(),this._tmpCtx.fillStyle=F.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.restore(),this._tmpCtx.fillText(M,se,se+this._config.deviceCharHeight-ie),X=c(this._tmpCtx.getImageData(se,se,this._config.deviceCellWidth,this._config.deviceCellHeight),F,le,ge),X);ie++);}if(U){let X=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/10)),ie=this._tmpCtx.lineWidth%2==1?.5:0;this._tmpCtx.lineWidth=X,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(se,se+Math.floor(this._config.deviceCharHeight/2)-ie),this._tmpCtx.lineTo(se+this._config.deviceCharWidth*fe,se+Math.floor(this._config.deviceCharHeight/2)-ie),this._tmpCtx.stroke()}this._tmpCtx.restore();let pe=this._tmpCtx.getImageData(0,0,this._tmpCanvas.width,this._tmpCanvas.height),Ce;if(Ce=this._config.allowTransparency?function(X){for(let ie=0;ie0)return!1;return!0}(pe):c(pe,F,le,ge),Ce)return f;let te=this._findGlyphBoundingBox(pe,this._workBoundingBox,B,ae,J,se),Y,Q;for(;;){if(this._activePages.length===0){let X=this._createNewPage();Y=X,Q=X.currentRow,Q.height=te.size.y;break}Y=this._activePages[this._activePages.length-1],Q=Y.currentRow;for(let X of this._activePages)te.size.y<=X.currentRow.height&&(Y=X,Q=X.currentRow);for(let X=this._activePages.length-1;X>=0;X--)for(let ie of this._activePages[X].fixedRows)ie.height<=Q.height&&te.size.y<=ie.height&&(Y=this._activePages[X],Q=ie);if(Q.y+te.size.y>=Y.canvas.height||Q.height>te.size.y+2){let X=!1;if(Y.currentRow.y+Y.currentRow.height+te.size.y>=Y.canvas.height){let ie;for(let de of this._activePages)if(de.currentRow.y+de.currentRow.height+te.size.y=p.maxAtlasPages&&Q.y+te.size.y<=Y.canvas.height&&Q.height>=te.size.y&&Q.x+te.size.x<=Y.canvas.width)X=!0;else{let de=this._createNewPage();Y=de,Q=de.currentRow,Q.height=te.size.y,X=!0}}X||(Y.currentRow.height>0&&Y.fixedRows.push(Y.currentRow),Q={x:0,y:Y.currentRow.y+Y.currentRow.height,height:te.size.y},Y.fixedRows.push(Q),Y.currentRow={x:0,y:Q.y+Q.height,height:0})}if(Q.x+te.size.x<=Y.canvas.width)break;Q===Y.currentRow?(Q.x=0,Q.y+=Q.height,Q.height=0):Y.fixedRows.splice(Y.fixedRows.indexOf(Q),1)}return te.texturePage=this._pages.indexOf(Y),te.texturePosition.x=Q.x,te.texturePosition.y=Q.y,te.texturePositionClipSpace.x=Q.x/Y.canvas.width,te.texturePositionClipSpace.y=Q.y/Y.canvas.height,te.sizeClipSpace.x/=Y.canvas.width,te.sizeClipSpace.y/=Y.canvas.height,Q.height=Math.max(Q.height,te.size.y),Q.x+=te.size.x,Y.ctx.putImageData(pe,te.texturePosition.x-this._workBoundingBox.left,te.texturePosition.y-this._workBoundingBox.top,this._workBoundingBox.left,this._workBoundingBox.top,te.size.x,te.size.y),Y.addGlyph(te),Y.version++,te}_findGlyphBoundingBox(C,m,L,A,D,M){m.top=0;let B=A?this._config.deviceCellHeight:this._tmpCanvas.height,b=A?this._config.deviceCellWidth:L,E=!1;for(let x=0;x=M;x--){for(let k=0;k=0;x--){for(let k=0;k>>24,D=C.rgba>>>16&255,M=C.rgba>>>8&255,B=m.rgba>>>24,b=m.rgba>>>16&255,E=m.rgba>>>8&255,x=Math.floor((Math.abs(A-B)+Math.abs(D-b)+Math.abs(M-E))/12),k=!0;for(let P=0;P{Object.defineProperty(t,"__esModule",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let l=a(399),u=0,r=0,h=0,d=0;var _,o,e,i,s;function n(v){let p=v.toString(16);return p.length<2?"0"+p:p}function f(v,p){return v>>0}}(_||(t.channels=_={})),function(v){function p(S,c){return d=Math.round(255*c),[u,r,h]=s.toChannels(S.rgba),{css:_.toCss(u,r,h,d),rgba:_.toRgba(u,r,h,d)}}v.blend=function(S,c){if(d=(255&c.rgba)/255,d===1)return{css:c.css,rgba:c.rgba};let g=c.rgba>>24&255,w=c.rgba>>16&255,C=c.rgba>>8&255,m=S.rgba>>24&255,L=S.rgba>>16&255,A=S.rgba>>8&255;return u=m+Math.round((g-m)*d),r=L+Math.round((w-L)*d),h=A+Math.round((C-A)*d),{css:_.toCss(u,r,h),rgba:_.toRgba(u,r,h)}},v.isOpaque=function(S){return(255&S.rgba)==255},v.ensureContrastRatio=function(S,c,g){let w=s.ensureContrastRatio(S.rgba,c.rgba,g);if(w)return s.toColor(w>>24&255,w>>16&255,w>>8&255)},v.opaque=function(S){let c=(255|S.rgba)>>>0;return[u,r,h]=s.toChannels(c),{css:_.toCss(u,r,h),rgba:c}},v.opacity=p,v.multiplyOpacity=function(S,c){return d=255&S.rgba,p(S,d*c/255)},v.toColorRGB=function(S){return[S.rgba>>24&255,S.rgba>>16&255,S.rgba>>8&255]}}(o||(t.color=o={})),function(v){let p,S;if(!l.isNode){let c=document.createElement("canvas");c.width=1,c.height=1;let g=c.getContext("2d",{willReadFrequently:!0});g&&(p=g,p.globalCompositeOperation="copy",S=p.createLinearGradient(0,0,1,1))}v.toColor=function(c){if(c.match(/#[\da-f]{3,8}/i))switch(c.length){case 4:return u=parseInt(c.slice(1,2).repeat(2),16),r=parseInt(c.slice(2,3).repeat(2),16),h=parseInt(c.slice(3,4).repeat(2),16),s.toColor(u,r,h);case 5:return u=parseInt(c.slice(1,2).repeat(2),16),r=parseInt(c.slice(2,3).repeat(2),16),h=parseInt(c.slice(3,4).repeat(2),16),d=parseInt(c.slice(4,5).repeat(2),16),s.toColor(u,r,h,d);case 7:return{css:c,rgba:(parseInt(c.slice(1),16)<<8|255)>>>0};case 9:return{css:c,rgba:parseInt(c.slice(1),16)>>>0}}let g=c.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(g)return u=parseInt(g[1]),r=parseInt(g[2]),h=parseInt(g[3]),d=Math.round(255*(g[5]===void 0?1:parseFloat(g[5]))),s.toColor(u,r,h,d);if(!p||!S)throw new Error("css.toColor: Unsupported css format");if(p.fillStyle=S,p.fillStyle=c,typeof p.fillStyle!="string")throw new Error("css.toColor: Unsupported css format");if(p.fillRect(0,0,1,1),[u,r,h,d]=p.getImageData(0,0,1,1).data,d!==255)throw new Error("css.toColor: Unsupported css format");return{rgba:_.toRgba(u,r,h,d),css:c}}}(e||(t.css=e={})),function(v){function p(S,c,g){let w=S/255,C=c/255,m=g/255;return .2126*(w<=.03928?w/12.92:Math.pow((w+.055)/1.055,2.4))+.7152*(C<=.03928?C/12.92:Math.pow((C+.055)/1.055,2.4))+.0722*(m<=.03928?m/12.92:Math.pow((m+.055)/1.055,2.4))}v.relativeLuminance=function(S){return p(S>>16&255,S>>8&255,255&S)},v.relativeLuminance2=p}(i||(t.rgb=i={})),function(v){function p(c,g,w){let C=c>>24&255,m=c>>16&255,L=c>>8&255,A=g>>24&255,D=g>>16&255,M=g>>8&255,B=f(i.relativeLuminance2(A,D,M),i.relativeLuminance2(C,m,L));for(;B0||D>0||M>0);)A-=Math.max(0,Math.ceil(.1*A)),D-=Math.max(0,Math.ceil(.1*D)),M-=Math.max(0,Math.ceil(.1*M)),B=f(i.relativeLuminance2(A,D,M),i.relativeLuminance2(C,m,L));return(A<<24|D<<16|M<<8|255)>>>0}function S(c,g,w){let C=c>>24&255,m=c>>16&255,L=c>>8&255,A=g>>24&255,D=g>>16&255,M=g>>8&255,B=f(i.relativeLuminance2(A,D,M),i.relativeLuminance2(C,m,L));for(;B>>0}v.ensureContrastRatio=function(c,g,w){let C=i.relativeLuminance(c>>8),m=i.relativeLuminance(g>>8);if(f(C,m)>8));if(Mf(C,i.relativeLuminance(B>>8))?D:B}return D}let L=S(c,g,w),A=f(C,i.relativeLuminance(L>>8));if(Af(C,i.relativeLuminance(D>>8))?L:D}return L}},v.reduceLuminance=p,v.increaseLuminance=S,v.toChannels=function(c){return[c>>24&255,c>>16&255,c>>8&255,255&c]},v.toColor=function(c,g,w,C){return{css:_.toCss(c,g,w,C),rgba:_.toRgba(c,g,w,C)}}}(s||(t.rgba=s={})),t.toPaddedHex=n,t.contrastRatio=f},345:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=a=>(this._listeners.push(a),{dispose:()=>{if(!this._disposed){for(let l=0;ll.fire(u))},t.runAndSubscribe=function(a,l){return l(void 0),a(u=>l(u))}},859:(R,t)=>{function a(l){for(let u of l)u.dispose();l.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(let l of this._disposables)l.dispose();this._disposables.length=0}register(l){return this._disposables.push(l),l}unregister(l){let u=this._disposables.indexOf(l);u!==-1&&this._disposables.splice(u,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(l){this._isDisposed||l===this._value||(this._value?.dispose(),this._value=l)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(l){return{dispose:l}},t.disposeArray=a,t.getDisposeArrayDisposable=function(l){return{dispose:()=>a(l)}}},485:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class a{constructor(){this._data={}}set(u,r,h){this._data[u]||(this._data[u]={}),this._data[u][r]=h}get(u,r){return this._data[u]?this._data[u][r]:void 0}clear(){this._data={}}}t.TwoKeyMap=a,t.FourKeyMap=class{constructor(){this._data=new a}set(l,u,r,h,d){this._data.get(l,u)||this._data.set(l,u,new a),this._data.get(l,u).set(r,h,d)}get(l,u,r,h){return this._data.get(l,u)?.get(r,h)}clear(){this._data.clear()}}},399:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode=typeof process<"u";let a=t.isNode?"node":navigator.userAgent,l=t.isNode?"node":navigator.platform;t.isFirefox=a.includes("Firefox"),t.isLegacyEdge=a.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(a),t.getSafariVersion=function(){if(!t.isSafari)return 0;let u=a.match(/Version\/(\d+)/);return u===null||u.length<2?0:parseInt(u[1])},t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(l),t.isIpad=l==="iPad",t.isIphone=l==="iPhone",t.isWindows=["Windows","Win16","Win32","WinCE"].includes(l),t.isLinux=l.indexOf("Linux")>=0,t.isChromeOS=/\bCrOS\b/.test(a)},385:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;let l=a(399);class u{constructor(){this._tasks=[],this._i=0}enqueue(d){this._tasks.push(d),this._start()}flush(){for(;this._ii)return e-_<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(e-_))}ms`),void this._start();e=i}this.clear()}}class r extends u{_requestCallback(d){return setTimeout(()=>d(this._createDeadline(16)))}_cancelCallback(d){clearTimeout(d)}_createDeadline(d){let _=Date.now()+d;return{timeRemaining:()=>Math.max(0,_-Date.now())}}}t.PriorityTaskQueue=r,t.IdleTaskQueue=!l.isNode&&"requestIdleCallback"in window?class extends u{_requestCallback(h){return requestIdleCallback(h)}_cancelCallback(h){cancelIdleCallback(h)}}:r,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(h){this._queue.clear(),this._queue.enqueue(h)}flush(){this._queue.flush()}}},147:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class a{constructor(){this.fg=0,this.bg=0,this.extended=new l}static toColorRGB(r){return[r>>>16&255,r>>>8&255,255&r]}static fromColorRGB(r){return(255&r[0])<<16|(255&r[1])<<8|255&r[2]}clone(){let r=new a;return r.fg=this.fg,r.bg=this.bg,r.extended=this.extended.clone(),r}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return(50331648&this.fg)==50331648}isBgRGB(){return(50331648&this.bg)==50331648}isFgPalette(){return(50331648&this.fg)==16777216||(50331648&this.fg)==33554432}isBgPalette(){return(50331648&this.bg)==16777216||(50331648&this.bg)==33554432}isFgDefault(){return(50331648&this.fg)==0}isBgDefault(){return(50331648&this.bg)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==16777216||(50331648&this.extended.underlineColor)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==0:this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}}t.AttributeData=a;class l{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(r){this._ext=r}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(r){this._ext&=-469762049,this._ext|=r<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(r){this._ext&=-67108864,this._ext|=67108863&r}get urlId(){return this._urlId}set urlId(r){this._urlId=r}constructor(r=0,h=0){this._ext=0,this._urlId=0,this._ext=r,this._urlId=h}clone(){return new l(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}}t.ExtendedAttrs=l},782:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;let l=a(133),u=a(855),r=a(147);class h extends r.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new r.ExtendedAttrs,this.combinedData=""}static fromCharData(_){let o=new h;return o.setFromCharData(_),o}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,l.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(_){this.fg=_[u.CHAR_DATA_ATTR_INDEX],this.bg=0;let o=!1;if(_[u.CHAR_DATA_CHAR_INDEX].length>2)o=!0;else if(_[u.CHAR_DATA_CHAR_INDEX].length===2){let e=_[u.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=e&&e<=56319){let i=_[u.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=i&&i<=57343?this.content=1024*(e-55296)+i-56320+65536|_[u.CHAR_DATA_WIDTH_INDEX]<<22:o=!0}else o=!0}else this.content=_[u.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|_[u.CHAR_DATA_WIDTH_INDEX]<<22;o&&(this.combinedData=_[u.CHAR_DATA_CHAR_INDEX],this.content=2097152|_[u.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=h},855:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},133:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(a){return a>65535?(a-=65536,String.fromCharCode(55296+(a>>10))+String.fromCharCode(a%1024+56320)):String.fromCharCode(a)},t.utf32ToString=function(a,l=0,u=a.length){let r="";for(let h=l;h65535?(d-=65536,r+=String.fromCharCode(55296+(d>>10))+String.fromCharCode(d%1024+56320)):r+=String.fromCharCode(d)}return r},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(a,l){let u=a.length;if(!u)return 0;let r=0,h=0;if(this._interim){let d=a.charCodeAt(h++);56320<=d&&d<=57343?l[r++]=1024*(this._interim-55296)+d-56320+65536:(l[r++]=this._interim,l[r++]=d),this._interim=0}for(let d=h;d=u)return this._interim=_,r;let o=a.charCodeAt(d);56320<=o&&o<=57343?l[r++]=1024*(_-55296)+o-56320+65536:(l[r++]=_,l[r++]=o)}else _!==65279&&(l[r++]=_)}return r}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(a,l){let u=a.length;if(!u)return 0;let r,h,d,_,o=0,e=0,i=0;if(this.interim[0]){let f=!1,v=this.interim[0];v&=(224&v)==192?31:(240&v)==224?15:7;let p,S=0;for(;(p=63&this.interim[++S])&&S<4;)v<<=6,v|=p;let c=(224&this.interim[0])==192?2:(240&this.interim[0])==224?3:4,g=c-S;for(;i=u)return 0;if(p=a[i++],(192&p)!=128){i--,f=!0;break}this.interim[S++]=p,v<<=6,v|=63&p}f||(c===2?v<128?i--:l[o++]=v:c===3?v<2048||v>=55296&&v<=57343||v===65279||(l[o++]=v):v<65536||v>1114111||(l[o++]=v)),this.interim.fill(0)}let s=u-4,n=i;for(;n=u)return this.interim[0]=r,o;if(h=a[n++],(192&h)!=128){n--;continue}if(e=(31&r)<<6|63&h,e<128){n--;continue}l[o++]=e}else if((240&r)==224){if(n>=u)return this.interim[0]=r,o;if(h=a[n++],(192&h)!=128){n--;continue}if(n>=u)return this.interim[0]=r,this.interim[1]=h,o;if(d=a[n++],(192&d)!=128){n--;continue}if(e=(15&r)<<12|(63&h)<<6|63&d,e<2048||e>=55296&&e<=57343||e===65279)continue;l[o++]=e}else if((248&r)==240){if(n>=u)return this.interim[0]=r,o;if(h=a[n++],(192&h)!=128){n--;continue}if(n>=u)return this.interim[0]=r,this.interim[1]=h,o;if(d=a[n++],(192&d)!=128){n--;continue}if(n>=u)return this.interim[0]=r,this.interim[1]=h,this.interim[2]=d,o;if(_=a[n++],(192&_)!=128){n--;continue}if(e=(7&r)<<18|(63&h)<<12|(63&d)<<6|63&_,e<65536||e>1114111)continue;l[o++]=e}}return o}}},776:function(R,t,a){var l=this&&this.__decorate||function(e,i,s,n){var f,v=arguments.length,p=v<3?i:n===null?n=Object.getOwnPropertyDescriptor(i,s):n;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")p=Reflect.decorate(e,i,s,n);else for(var S=e.length-1;S>=0;S--)(f=e[S])&&(p=(v<3?f(p):v>3?f(i,s,p):f(i,s))||p);return v>3&&p&&Object.defineProperty(i,s,p),p},u=this&&this.__param||function(e,i){return function(s,n){i(s,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;let r=a(859),h=a(97),d={trace:h.LogLevelEnum.TRACE,debug:h.LogLevelEnum.DEBUG,info:h.LogLevelEnum.INFO,warn:h.LogLevelEnum.WARN,error:h.LogLevelEnum.ERROR,off:h.LogLevelEnum.OFF},_,o=t.LogService=class extends r.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=h.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel())),_=this}_updateLogLevel(){this._logLevel=d[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let i=0;iJSON.stringify(p)).join(", ")})`);let v=n.apply(this,f);return _.trace(`GlyphRenderer#${n.name} return`,v),v}}},726:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;let a="di$target",l="di$dependencies";t.serviceRegistry=new Map,t.getServiceDependencies=function(u){return u[l]||[]},t.createDecorator=function(u){if(t.serviceRegistry.has(u))return t.serviceRegistry.get(u);let r=function(h,d,_){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");(function(o,e,i){e[a]===e?e[l].push({id:o,index:i}):(e[l]=[{id:o,index:i}],e[a]=e)})(r,h,_)};return r.toString=()=>u,t.serviceRegistry.set(u,r),r}},97:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;let l=a(726);var u;t.IBufferService=(0,l.createDecorator)("BufferService"),t.ICoreMouseService=(0,l.createDecorator)("CoreMouseService"),t.ICoreService=(0,l.createDecorator)("CoreService"),t.ICharsetService=(0,l.createDecorator)("CharsetService"),t.IInstantiationService=(0,l.createDecorator)("InstantiationService"),function(r){r[r.TRACE=0]="TRACE",r[r.DEBUG=1]="DEBUG",r[r.INFO=2]="INFO",r[r.WARN=3]="WARN",r[r.ERROR=4]="ERROR",r[r.OFF=5]="OFF"}(u||(t.LogLevelEnum=u={})),t.ILogService=(0,l.createDecorator)("LogService"),t.IOptionsService=(0,l.createDecorator)("OptionsService"),t.IOscLinkService=(0,l.createDecorator)("OscLinkService"),t.IUnicodeService=(0,l.createDecorator)("UnicodeService"),t.IDecorationService=(0,l.createDecorator)("DecorationService")}},T={};function I(R){var t=T[R];if(t!==void 0)return t.exports;var a=T[R]={exports:{}};return V[R].call(a.exports,a,a.exports,I),a.exports}var H={};return(()=>{var R=H;Object.defineProperty(R,"__esModule",{value:!0}),R.WebglAddon=void 0;let t=I(345),a=I(859),l=I(399),u=I(666),r=I(776);class h extends a.Disposable{constructor(_){if(l.isSafari&&(0,l.getSafariVersion)()<16)throw new Error("Webgl2 is only supported on Safari 16 and above");super(),this._preserveDrawingBuffer=_,this._onChangeTextureAtlas=this.register(new t.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new t.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this.register(new t.EventEmitter),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onContextLoss=this.register(new t.EventEmitter),this.onContextLoss=this._onContextLoss.event}activate(_){let o=_._core;if(!_.element)return void this.register(o.onWillOpen(()=>this.activate(_)));this._terminal=_;let e=o.coreService,i=o.optionsService,s=o,n=s._renderService,f=s._characterJoinerService,v=s._charSizeService,p=s._coreBrowserService,S=s._decorationService,c=s._logService,g=s._themeService;(0,r.setTraceLogger)(c),this._renderer=this.register(new u.WebglRenderer(_,f,v,p,e,S,i,g,this._preserveDrawingBuffer)),this.register((0,t.forwardEvent)(this._renderer.onContextLoss,this._onContextLoss)),this.register((0,t.forwardEvent)(this._renderer.onChangeTextureAtlas,this._onChangeTextureAtlas)),this.register((0,t.forwardEvent)(this._renderer.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas)),this.register((0,t.forwardEvent)(this._renderer.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)),n.setRenderer(this._renderer),this.register((0,a.toDisposable)(()=>{let w=this._terminal._core._renderService;w.setRenderer(this._terminal._core._createRenderer()),w.handleResize(_.cols,_.rows)}))}get textureAtlas(){return this._renderer?.textureAtlas}clearTextureAtlas(){this._renderer?.clearTextureAtlas()}}R.WebglAddon=h})(),H})())});var ot=me((Te,Ne)=>{(function(V,T){typeof Te=="object"&&typeof Ne=="object"?Ne.exports=T():typeof define=="function"&&define.amd?define([],T):typeof Te=="object"?Te.WebLinksAddon=T():V.WebLinksAddon=T()})(self,()=>(()=>{"use strict";var V={6:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkComputer=t.WebLinkProvider=void 0,t.WebLinkProvider=class{constructor(l,u,r,h={}){this._terminal=l,this._regex=u,this._handler=r,this._options=h}provideLinks(l,u){let r=a.computeLink(l,this._regex,this._terminal,this._handler);u(this._addCallbacks(r))}_addCallbacks(l){return l.map(u=>(u.leave=this._options.leave,u.hover=(r,h)=>{if(this._options.hover){let{range:d}=u;this._options.hover(r,h,d)}},u))}};class a{static computeLink(u,r,h,d){let _=new RegExp(r.source,(r.flags||"")+"g"),[o,e]=a._getWindowedLineStrings(u-1,h),i=o.join(""),s,n=[];for(;s=_.exec(i);){let f=s[0];try{let w=new URL(f),C=decodeURI(w.toString());if(f!==C&&f+"/"!==C)continue}catch{continue}let[v,p]=a._mapStrIdx(h,e,0,s.index),[S,c]=a._mapStrIdx(h,v,p,f.length);if(v===-1||p===-1||S===-1||c===-1)continue;let g={start:{x:p+1,y:v+1},end:{x:c,y:S+1}};n.push({range:g,text:f,activate:d})}return n}static _getWindowedLineStrings(u,r){let h,d=u,_=u,o=0,e="",i=[];if(h=r.buffer.active.getLine(u)){let s=h.translateToString(!0);if(h.isWrapped&&s[0]!==" "){for(o=0;(h=r.buffer.active.getLine(--d))&&o<2048&&(e=h.translateToString(!0),o+=e.length,i.push(e),h.isWrapped&&e.indexOf(" ")===-1););i.reverse()}for(i.push(s),o=0;(h=r.buffer.active.getLine(++_))&&h.isWrapped&&o<2048&&(e=h.translateToString(!0),o+=e.length,i.push(e),e.indexOf(" ")===-1););}return[i,d]}static _mapStrIdx(u,r,h,d){let _=u.buffer.active,o=_.getNullCell(),e=h;for(;d;){let i=_.getLine(r);if(!i)return[-1,-1];for(let s=e;s{var R=H;Object.defineProperty(R,"__esModule",{value:!0}),R.WebLinksAddon=void 0;let t=I(6),a=/https?:[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function l(u,r){let h=window.open();if(h){try{h.opener=null}catch{}h.location.href=r}else console.warn("Opening link blocked as opener could not be cleared")}R.WebLinksAddon=class{constructor(u=l,r={}){this._handler=u,this._options=r}activate(u){this._terminal=u;let r=this._options,h=r.urlRegex||a;this._linkProvider=this._terminal.registerLinkProvider(new t.WebLinkProvider(this._terminal,h,this._handler,r))}dispose(){this._linkProvider?.dispose()}}})(),H})())});var at=me((be,We)=>{(function(V,T){typeof be=="object"&&typeof We=="object"?We.exports=T():typeof define=="function"&&define.amd?define([],T):typeof be=="object"?be.Unicode11Addon=T():V.Unicode11Addon=T()})(be,()=>(()=>{"use strict";var V={433:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV11=void 0;let l=a(938),u=[[768,879],[1155,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1541],[1552,1562],[1564,1564],[1611,1631],[1648,1648],[1750,1757],[1759,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2045,2045],[2070,2073],[2075,2083],[2085,2087],[2089,2093],[2137,2139],[2259,2306],[2362,2362],[2364,2364],[2369,2376],[2381,2381],[2385,2391],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2558,2558],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2641,2641],[2672,2673],[2677,2677],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2810,2815],[2817,2817],[2876,2876],[2879,2879],[2881,2884],[2893,2893],[2902,2902],[2914,2915],[2946,2946],[3008,3008],[3021,3021],[3072,3072],[3076,3076],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3170,3171],[3201,3201],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3328,3329],[3387,3388],[3393,3396],[3405,3405],[3426,3427],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3981,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4151],[4153,4154],[4157,4158],[4184,4185],[4190,4192],[4209,4212],[4226,4226],[4229,4230],[4237,4237],[4253,4253],[4448,4607],[4957,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6158],[6277,6278],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6683,6683],[6742,6742],[6744,6750],[6752,6752],[6754,6754],[6757,6764],[6771,6780],[6783,6783],[6832,6846],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7040,7041],[7074,7077],[7080,7081],[7083,7085],[7142,7142],[7144,7145],[7149,7149],[7151,7153],[7212,7219],[7222,7223],[7376,7378],[7380,7392],[7394,7400],[7405,7405],[7412,7412],[7416,7417],[7616,7673],[7675,7679],[8203,8207],[8234,8238],[8288,8292],[8294,8303],[8400,8432],[11503,11505],[11647,11647],[11744,11775],[12330,12333],[12441,12442],[42607,42610],[42612,42621],[42654,42655],[42736,42737],[43010,43010],[43014,43014],[43019,43019],[43045,43046],[43204,43205],[43232,43249],[43263,43263],[43302,43309],[43335,43345],[43392,43394],[43443,43443],[43446,43449],[43452,43453],[43493,43493],[43561,43566],[43569,43570],[43573,43574],[43587,43587],[43596,43596],[43644,43644],[43696,43696],[43698,43700],[43703,43704],[43710,43711],[43713,43713],[43756,43757],[43766,43766],[44005,44005],[44008,44008],[44013,44013],[64286,64286],[65024,65039],[65056,65071],[65279,65279],[65529,65531]],r=[[66045,66045],[66272,66272],[66422,66426],[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[68325,68326],[68900,68903],[69446,69456],[69633,69633],[69688,69702],[69759,69761],[69811,69814],[69817,69818],[69821,69821],[69837,69837],[69888,69890],[69927,69931],[69933,69940],[70003,70003],[70016,70017],[70070,70078],[70089,70092],[70191,70193],[70196,70196],[70198,70199],[70206,70206],[70367,70367],[70371,70378],[70400,70401],[70459,70460],[70464,70464],[70502,70508],[70512,70516],[70712,70719],[70722,70724],[70726,70726],[70750,70750],[70835,70840],[70842,70842],[70847,70848],[70850,70851],[71090,71093],[71100,71101],[71103,71104],[71132,71133],[71219,71226],[71229,71229],[71231,71232],[71339,71339],[71341,71341],[71344,71349],[71351,71351],[71453,71455],[71458,71461],[71463,71467],[71727,71735],[71737,71738],[72148,72151],[72154,72155],[72160,72160],[72193,72202],[72243,72248],[72251,72254],[72263,72263],[72273,72278],[72281,72283],[72330,72342],[72344,72345],[72752,72758],[72760,72765],[72767,72767],[72850,72871],[72874,72880],[72882,72883],[72885,72886],[73009,73014],[73018,73018],[73020,73021],[73023,73029],[73031,73031],[73104,73105],[73109,73109],[73111,73111],[73459,73460],[78896,78904],[92912,92916],[92976,92982],[94031,94031],[94095,94098],[113821,113822],[113824,113827],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[121344,121398],[121403,121452],[121461,121461],[121476,121476],[121499,121503],[121505,121519],[122880,122886],[122888,122904],[122907,122913],[122915,122916],[122918,122922],[123184,123190],[123628,123631],[125136,125142],[125252,125258],[917505,917505],[917536,917631],[917760,917999]],h=[[4352,4447],[8986,8987],[9001,9002],[9193,9196],[9200,9200],[9203,9203],[9725,9726],[9748,9749],[9800,9811],[9855,9855],[9875,9875],[9889,9889],[9898,9899],[9917,9918],[9924,9925],[9934,9934],[9940,9940],[9962,9962],[9970,9971],[9973,9973],[9978,9978],[9981,9981],[9989,9989],[9994,9995],[10024,10024],[10060,10060],[10062,10062],[10067,10069],[10071,10071],[10133,10135],[10160,10160],[10175,10175],[11035,11036],[11088,11088],[11093,11093],[11904,11929],[11931,12019],[12032,12245],[12272,12283],[12288,12329],[12334,12350],[12353,12438],[12443,12543],[12549,12591],[12593,12686],[12688,12730],[12736,12771],[12784,12830],[12832,12871],[12880,19903],[19968,42124],[42128,42182],[43360,43388],[44032,55203],[63744,64255],[65040,65049],[65072,65106],[65108,65126],[65128,65131],[65281,65376],[65504,65510]],d=[[94176,94179],[94208,100343],[100352,101106],[110592,110878],[110928,110930],[110948,110951],[110960,111355],[126980,126980],[127183,127183],[127374,127374],[127377,127386],[127488,127490],[127504,127547],[127552,127560],[127568,127569],[127584,127589],[127744,127776],[127789,127797],[127799,127868],[127870,127891],[127904,127946],[127951,127955],[127968,127984],[127988,127988],[127992,128062],[128064,128064],[128066,128252],[128255,128317],[128331,128334],[128336,128359],[128378,128378],[128405,128406],[128420,128420],[128507,128591],[128640,128709],[128716,128716],[128720,128722],[128725,128725],[128747,128748],[128756,128762],[128992,129003],[129293,129393],[129395,129398],[129402,129442],[129445,129450],[129454,129482],[129485,129535],[129648,129651],[129656,129658],[129664,129666],[129680,129685],[131072,196605],[196608,262141]],_;function o(e,i){let s,n=0,f=i.length-1;if(ei[f][1])return!1;for(;f>=n;)if(s=n+f>>1,e>i[s][1])n=s+1;else{if(!(es&&(s=f)}return l.UnicodeService.createPropertyValue(0,s,n)}}},345:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=a=>(this._listeners.push(a),{dispose:()=>{if(!this._disposed){for(let l=0;ll.fire(u))},t.runAndSubscribe=function(a,l){return l(void 0),a(u=>l(u))}},490:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV6=void 0;let l=a(938),u=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],r=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],h;t.UnicodeV6=class{constructor(){if(this.version="6",!h){h=new Uint8Array(65536),h.fill(1),h[0]=0,h.fill(0,1,32),h.fill(0,127,160),h.fill(2,4352,4448),h[9001]=2,h[9002]=2,h.fill(2,11904,42192),h[12351]=1,h.fill(2,44032,55204),h.fill(2,63744,64256),h.fill(2,65040,65050),h.fill(2,65072,65136),h.fill(2,65280,65377),h.fill(2,65504,65511);for(let d=0;do[s][1])return!1;for(;s>=i;)if(e=i+s>>1,_>o[e][1])i=e+1;else{if(!(_=131072&&d<=196605||d>=196608&&d<=262141?2:1}charProperties(d,_){let o=this.wcwidth(d),e=o===0&&_!==0;if(e){let i=l.UnicodeService.extractWidth(_);i===0?e=!1:i>o&&(o=i)}return l.UnicodeService.createPropertyValue(0,o,e)}}},938:(R,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeService=void 0;let l=a(345),u=a(490);class r{static extractShouldJoin(d){return(1&d)!=0}static extractWidth(d){return d>>1&3}static extractCharKind(d){return d>>3}static createPropertyValue(d,_,o=!1){return(16777215&d)<<3|(3&_)<<1|(o?1:0)}constructor(){this._providers=Object.create(null),this._active="",this._onChange=new l.EventEmitter,this.onChange=this._onChange.event;let d=new u.UnicodeV6;this.register(d),this._active=d.version,this._activeProvider=d}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(d){if(!this._providers[d])throw new Error(`unknown Unicode version "${d}"`);this._active=d,this._activeProvider=this._providers[d],this._onChange.fire(d)}register(d){this._providers[d.version]=d}wcwidth(d){return this._activeProvider.wcwidth(d)}getStringCellWidth(d){let _=0,o=0,e=d.length;for(let i=0;i=e)return _+this.wcwidth(s);let v=d.charCodeAt(i);56320<=v&&v<=57343?s=1024*(s-55296)+v-56320+65536:_+=this.wcwidth(v)}let n=this.charProperties(s,o),f=r.extractWidth(n);r.extractShouldJoin(n)&&(f-=r.extractWidth(o)),_+=f,o=n}return _}charProperties(d,_){return this._activeProvider.charProperties(d,_)}}t.UnicodeService=r}},T={};function I(R){var t=T[R];if(t!==void 0)return t.exports;var a=T[R]={exports:{}};return V[R](a,a.exports,I),a.exports}var H={};return(()=>{var R=H;Object.defineProperty(R,"__esModule",{value:!0}),R.Unicode11Addon=void 0;let t=I(433);R.Unicode11Addon=class{activate(a){a.unicode.register(new t.UnicodeV11)}dispose(){}}})(),H})())});var ht=me((Be,Ue)=>{(function(V,T){typeof Be=="object"&&typeof Ue=="object"?Ue.exports=T():typeof define=="function"&&define.amd?define([],T):typeof Be=="object"?Be.AttachAddon=T():V.AttachAddon=T()})(self,()=>(()=>{"use strict";var V={};return(()=>{var T=V;function I(H,R,t){return H.addEventListener(R,t),{dispose:()=>{t&&H.removeEventListener(R,t)}}}Object.defineProperty(T,"__esModule",{value:!0}),T.AttachAddon=void 0,T.AttachAddon=class{constructor(H,R){this._disposables=[],this._socket=H,this._socket.binaryType="arraybuffer",this._bidirectional=!(R&&R.bidirectional===!1)}activate(H){this._disposables.push(I(this._socket,"message",R=>{let t=R.data;H.write(typeof t=="string"?t:new Uint8Array(t))})),this._bidirectional&&(this._disposables.push(H.onData(R=>this._sendData(R))),this._disposables.push(H.onBinary(R=>this._sendBinary(R)))),this._disposables.push(I(this._socket,"close",()=>this.dispose())),this._disposables.push(I(this._socket,"error",()=>this.dispose()))}dispose(){for(let H of this._disposables)H.dispose()}_sendData(H){this._checkOpenSocket()&&this._socket.send(H)}_sendBinary(H){if(!this._checkOpenSocket())return;let R=new Uint8Array(H.length);for(let t=0;t{(function(V,T){typeof Ie=="object"&&typeof ze=="object"?ze.exports=T():typeof define=="function"&&define.amd?define([],T):typeof Ie=="object"?Ie.SearchAddon=T():V.SearchAddon=T()})(self,()=>(()=>{"use strict";var V={345:(R,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=a=>(this._listeners.push(a),{dispose:()=>{if(!this._disposed){for(let l=0;ll.fire(u))},t.runAndSubscribe=function(a,l){return l(void 0),a(u=>l(u))}},859:(R,t)=>{function a(l){for(let u of l)u.dispose();l.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(let l of this._disposables)l.dispose();this._disposables.length=0}register(l){return this._disposables.push(l),l}unregister(l){let u=this._disposables.indexOf(l);u!==-1&&this._disposables.splice(u,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(l){this._isDisposed||l===this._value||(this._value?.dispose(),this._value=l)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(l){return{dispose:l}},t.disposeArray=a,t.getDisposeArrayDisposable=function(l){return{dispose:()=>a(l)}}}},T={};function I(R){var t=T[R];if(t!==void 0)return t.exports;var a=T[R]={exports:{}};return V[R](a,a.exports,I),a.exports}var H={};return(()=>{var R=H;Object.defineProperty(R,"__esModule",{value:!0}),R.SearchAddon=void 0;let t=I(345),a=I(859),l=" ~!@#$%^&*()+`-=[]{}|\\;:\"',./<>?";class u extends a.Disposable{constructor(h){super(),this._highlightedLines=new Set,this._highlightDecorations=[],this._selectedDecoration=this.register(new a.MutableDisposable),this._linesCacheTimeoutId=0,this._onDidChangeResults=this.register(new t.EventEmitter),this.onDidChangeResults=this._onDidChangeResults.event,this._highlightLimit=h?.highlightLimit??1e3}activate(h){this._terminal=h,this.register(this._terminal.onWriteParsed(()=>this._updateMatches())),this.register(this._terminal.onResize(()=>this._updateMatches())),this.register((0,a.toDisposable)(()=>this.clearDecorations()))}_updateMatches(){this._highlightTimeout&&window.clearTimeout(this._highlightTimeout),this._cachedSearchTerm&&this._lastSearchOptions?.decorations&&(this._highlightTimeout=setTimeout(()=>{let h=this._cachedSearchTerm;this._cachedSearchTerm=void 0,this.findPrevious(h,{...this._lastSearchOptions,incremental:!0,noScroll:!0})},200))}clearDecorations(h){this._selectedDecoration.clear(),(0,a.disposeArray)(this._highlightDecorations),this._highlightDecorations=[],this._highlightedLines.clear(),h||(this._cachedSearchTerm=void 0)}clearActiveDecoration(){this._selectedDecoration.clear()}findNext(h,d){if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");let _=!this._lastSearchOptions||this._didOptionsChange(this._lastSearchOptions,d);this._lastSearchOptions=d,d?.decorations&&(this._cachedSearchTerm===void 0||h!==this._cachedSearchTerm||_)&&this._highlightAllMatches(h,d);let o=this._findNextAndSelect(h,d);return this._fireResults(d),this._cachedSearchTerm=h,o}_highlightAllMatches(h,d){if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");if(!h||h.length===0)return void this.clearDecorations();d=d||{},this.clearDecorations(!0);let _=[],o,e=this._find(h,0,0,d);for(;e&&(o?.row!==e.row||o?.col!==e.col)&&!(_.length>=this._highlightLimit);)o=e,_.push(o),e=this._find(h,o.col+o.term.length>=this._terminal.cols?o.row+1:o.row,o.col+o.term.length>=this._terminal.cols?0:o.col+1,d);for(let i of _){let s=this._createResultDecoration(i,d.decorations);s&&(this._highlightedLines.add(s.marker.line),this._highlightDecorations.push({decoration:s,match:i,dispose(){s.dispose()}}))}}_find(h,d,_,o){if(!this._terminal||!h||h.length===0)return this._terminal?.clearSelection(),void this.clearDecorations();if(_>this._terminal.cols)throw new Error(`Invalid col: ${_} to search in terminal of ${this._terminal.cols} cols`);let e;this._initLinesCache();let i={startRow:d,startCol:_};if(e=this._findInLine(h,i,o),!e)for(let s=d+1;s=0&&(s.startRow=f,n=this._findInLine(h,s,d,i),!n);f--);}if(!n&&o!==this._terminal.buffer.active.baseY+this._terminal.rows-1)for(let f=this._terminal.buffer.active.baseY+this._terminal.rows-1;f>=o&&(s.startRow=f,n=this._findInLine(h,s,d,i),!n);f--);return this._selectResult(n,d?.decorations,d?.noScroll)}_initLinesCache(){let h=this._terminal;this._linesCache||(this._linesCache=new Array(h.buffer.active.length),this._cursorMoveListener=h.onCursorMove(()=>this._destroyLinesCache()),this._resizeListener=h.onResize(()=>this._destroyLinesCache())),window.clearTimeout(this._linesCacheTimeoutId),this._linesCacheTimeoutId=window.setTimeout(()=>this._destroyLinesCache(),15e3)}_destroyLinesCache(){this._linesCache=void 0,this._cursorMoveListener&&(this._cursorMoveListener.dispose(),this._cursorMoveListener=void 0),this._resizeListener&&(this._resizeListener.dispose(),this._resizeListener=void 0),this._linesCacheTimeoutId&&(window.clearTimeout(this._linesCacheTimeoutId),this._linesCacheTimeoutId=0)}_isWholeWord(h,d,_){return(h===0||l.includes(d[h-1]))&&(h+_.length===d.length||l.includes(d[h+_.length]))}_findInLine(h,d,_={},o=!1){let e=this._terminal,i=d.startRow,s=d.startCol;if(e.buffer.active.getLine(i)?.isWrapped)return o?void(d.startCol+=e.cols):(d.startRow--,d.startCol+=e.cols,this._findInLine(h,d,_));let f=this._linesCache?.[i];f||(f=this._translateBufferLineToStringWithWrap(i,!0),this._linesCache&&(this._linesCache[i]=f));let[v,p]=f,S=this._bufferColsToStringOffset(i,s),c=_.caseSensitive?h:h.toLowerCase(),g=_.caseSensitive?v:v.toLowerCase(),w=-1;if(_.regex){let C=RegExp(c,"g"),m;if(o)for(;m=C.exec(g.slice(0,S));)w=C.lastIndex-m[0].length,h=m[0],C.lastIndex-=h.length-1;else m=C.exec(g.slice(S)),m&&m[0].length>0&&(w=S+(C.lastIndex-m[0].length),h=m[0])}else o?S-c.length>=0&&(w=g.lastIndexOf(c,S-c.length)):w=g.indexOf(c,S);if(w>=0){if(_.wholeWord&&!this._isWholeWord(w,g,h))return;let C=0;for(;C=p[C+1];)C++;let m=C;for(;m=p[m+1];)m++;let L=w-p[C],A=w+h.length-p[m],D=this._stringLengthToBufferSize(i+C,L);return{term:h,col:D,row:i+C,size:this._stringLengthToBufferSize(i+m,A)-D+e.cols*(m-C)}}}_stringLengthToBufferSize(h,d){let _=this._terminal.buffer.active.getLine(h);if(!_)return 0;for(let o=0;o1&&(d-=i.length-1);let s=_.getCell(o+1);s&&s.getWidth()===0&&d++}return d}_bufferColsToStringOffset(h,d){let _=this._terminal,o=h,e=0,i=_.buffer.active.getLine(o);for(;d>0&&i;){for(let s=0;sthis._applyStyles(n,d.activeMatchBorder,!0))),s.push(i.onDispose(()=>(0,a.disposeArray)(s))),this._selectedDecoration.value={decoration:i,match:h,dispose(){i.dispose()}}}}}if(!_&&(h.row>=o.buffer.active.viewportY+o.rows||h.rowthis._applyStyles(s,d.matchBorder,!1))),i.push(e.onDispose(()=>(0,a.disposeArray)(i)))}return e}}R.SearchAddon=u})(),H})())});var j={id:"bajrangcoder.acodex",name:"AcodeX - Terminal",main:"dist/main.js",version:"3.1.0",readme:"readme.md",icon:"icon.png",files:[],minVersionCode:290,author:{name:"Raunak Raj",email:"bajrangcoders@gmail.com",url:"https://github.com/bajrangCoder/acode-plugin-acodex",github:"bajrangCoder"}};var ne={snazzy:{background:"#282A36",foreground:"#EFF0EB",cursor:"#EFF0EB",black:"#0C0D13",red:"#FF5C57",green:"#5AF78E",yellow:"#F3F99D",blue:"#57C7FF",magenta:"#FF6AC1",cyan:"#9AEDFE",white:"#EFF0EB",brightBlack:"#686868",brightRed:"#FF5C57",brightGreen:"#5AF78E",brightYellow:"#F3F99D",brightBlue:"#57C7FF",brightMagenta:"#FF6AC1",brightCyan:"#9AEDFE",brightWhite:"#EFF0EB"},xterm:{foreground:"#F8F8F8",background:"#2D2E2C",selectionBackground:"#5DA5D533",black:"#1E1E1D",brightBlack:"#262625",red:"#CE5C5C",brightRed:"#FF7272",green:"#5BCC5B",brightGreen:"#72FF72",yellow:"#CCCC5B",brightYellow:"#FFFF72",blue:"#5D5DD3",brightBlue:"#7279FF",magenta:"#BC5ED1",brightMagenta:"#E572FF",cyan:"#5DA5D5",brightCyan:"#72F0FF",white:"#F8F8F8",brightWhite:"#FFFFFF"},sapphire:{background:"#1c2431",foreground:"#cccccc",selectionBackground:"#399ef440",black:"#666666",blue:"#399ef4",brightBlack:"#666666",brightBlue:"#399ef4",brightCyan:"#21c5c7",brightGreen:"#4eb071",brightMagenta:"#b168df",brightRed:"#da6771",brightWhite:"#efefef",brightYellow:"#fff099",cyan:"#21c5c7",green:"#4eb071",magenta:"#b168df",red:"#da6771",white:"#efefef",yellow:"#fff099"},light:{background:"#ffffff",foreground:"#333333",cursor:"#333333",cursorAccent:"#ffffff",selectionBackground:"#add6ff",black:"#000000",blue:"#0451a5",brightBlack:"#666666",brightBlue:"#0451a5",brightCyan:"#0598bc",brightGreen:"#14ce14",brightMagenta:"#bc05bc",brightRed:"#cd3131",brightWhite:"#a5a5a5",brightYellow:"#b5ba00",cyan:"#0598bc",green:"#00bc00",magenta:"#bc05bc",red:"#cd3131",white:"#555555",yellow:"#949800"},custom:{background:"#1c2431",foreground:"#cccccc",cursor:"#ffffff",cursorAccent:"#fff",selectionBackground:"#399ef440",black:"#666666",blue:"#399ef4",brightBlack:"#666666",brightBlue:"#399ef4",brightCyan:"#21c5c7",brightGreen:"#4eb071",brightMagenta:"#b168df",brightRed:"#da6771",brightWhite:"#efefef",brightYellow:"#fff099",cyan:"#21c5c7",green:"#4eb071",magenta:"#b168df",red:"#da6771",white:"#efefef",yellow:"#fff099"},ayuDark:{background:"#090D13",foreground:"#FEFEFE",cursor:"#E96B72",black:"#00050D",red:"#E96B72",green:"#90B261",yellow:"#F8AE4E",blue:"#52BCF9",magenta:"#F9E893",cyan:"#8FE0C5",white:"#C6C6C6",brightBlack:"#676767",brightRed:"#EF7077",brightGreen:"#C1D84B",brightYellow:"#FEB353",brightBlue:"#58C1FE",brightMagenta:"#FEED98",brightCyan:"#94E5CA",brightWhite:"#FEFEFE"},catppuccin:{background:"#1E1D2F",foreground:"#D9E0EE",cursor:"#D9E0EE",black:"#6E6C7E",red:"#F28FAD",green:"#ABE9B3",yellow:"#FAE3B0",blue:"#96CDFB",magenta:"#F5C2E7",cyan:"#89DCEB",white:"#C3BAC6",brightBlack:"#988BA2",brightRed:"#F28FAD",brightGreen:"#ABE9B3",brightYellow:"#FAE3B0",brightBlue:"#96CDFB",brightMagenta:"#F5C2E7",brightCyan:"#89DCEB",brightWhite:"#D9E0EE"},oneDark:{background:"#1E2127",foreground:"#5C6370",cursor:"#5C6370",black:"#000000",red:"#E06C75",green:"#98C379",yellow:"#D19A66",blue:"#61AFEF",magenta:"#C678DD",cyan:"#56B6C2",white:"#ABB2BF",brightBlack:"#5C6370",brightRed:"#E06C75",brightGreen:"#98C379",brightYellow:"#D19A66",brightBlue:"#61AFEF",brightMagenta:"#C678DD",brightCyan:"#56B6C2",brightWhite:"#FFFEFE"},material:{background:"#1E282C",foreground:"#C3C7D1",cursor:"#657B83",black:"#073641",red:"#EB606B",green:"#C3E88D",yellow:"#F7EB95",blue:"#80CBC3",magenta:"#FF2490",cyan:"#AEDDFF",white:"#FFFFFF",brightBlack:"#002B36",brightRed:"#EB606B",brightGreen:"#C3E88D",brightYellow:"#F7EB95",brightBlue:"#7DC6BF",brightMagenta:"#6C71C3",brightCyan:"#34434D",brightWhite:"#FFFFFF"},nekonakoDjancoeg:{background:"#2a2c3a",foreground:"#eeeeee",cursor:"#fd6b85",black:"#2f343f",red:"#fd6b85",green:"#63e0be",yellow:"#fed270",blue:"#67d4f2",magenta:"#ff8167",cyan:"#63e0be",white:"#eeeeee",brightBlack:"#4f4f5b",brightRed:"#fd6b85",brightGreen:"#63e0be",brightYellow:"#fed270",brightBlue:"#67d4f2",brightMagenta:"#ff8167",brightCyan:"#63e0be",brightWhite:"#eeeeee"},dracula:{background:"#282a36",foreground:"#94A3A5",cursor:"#94A3A5",black:"#44475a",red:"#ff5555",green:"#50fa7b",yellow:"#ffb86c",blue:"#8be9fd",magenta:"#bd93f9",cyan:"#ff79c6",white:"#94A3A5",brightBlack:"#000000",brightRed:"#ff5555",brightGreen:"#50fa7b",brightYellow:"#ffb86c",brightBlue:"#8be9fd",brightMagenta:"#bd93f9",brightCyan:"#ff79c6",brightWhite:"#ffffff"},ayuMirage:{background:"#1F2430",foreground:"#E5E0CE",cursor:"#E96B72",black:"#00050D",red:"#E96B72",green:"#90B261",yellow:"#F8AE4E",blue:"#52BCF9",magenta:"#F9E893",cyan:"#8FE0C5",white:"#C6C6C6",brightBlack:"#676767",brightRed:"#EF7077",brightGreen:"#C1D84B",brightYellow:"#FEB353",brightBlue:"#58C1FE",brightMagenta:"#FEED98",brightCyan:"#94E5CA",brightWhite:"#FEFEFE"},siduckOneDark:{background:"#1e222a",foreground:"#c8ccd4",cursor:"#e06c75",black:"#1e222a",red:"#e06c75",green:"#98c379",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#56b6c2",white:"#D8DEE9",brightBlack:"#545862",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#c8ccd4"},elementary:{background:"#101010",foreground:"#f2f2f2",cursor:"#f2f2f2",black:"#303030",red:"#e1321a",green:"#6ab017",yellow:"#ffc005",blue:"#004f9e",magenta:"#ec0048",cyan:"#2aa7e7",white:"#f2f2f2",brightBlack:"#5d5d5d",brightRed:"#ff361e",brightGreen:"#7bc91f",brightYellow:"#ffd00a",brightBlue:"#0071ff",brightMagenta:"#ff1d62",brightCyan:"#4bb8fd",brightWhite:"#a020f0"},ayuLight:{background:"#FEFEFE",foreground:"#090D13",cursor:"#E96B72",black:"#00050D",red:"#E96B72",green:"#90B261",yellow:"#F8AE4E",blue:"#52BCF9",magenta:"#F9E893",cyan:"#8FE0C5",white:"#c6c6c694",brightBlack:"#676767",brightRed:"#EF7077",brightGreen:"#C1D84B",brightYellow:"#FEB353",brightBlue:"#58C1FE",brightMagenta:"#FEED98",brightCyan:"#94E5CA",brightWhite:"#dacaca"},everblush:{name:"Everblush",background:"#141b1e",foreground:"#dadada",cursor:"#3b4244",black:"#232a2d",red:"#e57474",green:"#8ccf7e",yellow:"#e5c76b",blue:"#67b0e8",magenta:"#c47fd5",cyan:"#6cbfbf",white:"#b3b9b8",brightBlack:"#2d3437",brightRed:"#ef7e7e",brightGreen:"#96d988",brightYellow:"#f4d67a",brightBlue:"#71baf2",brightMagenta:"#ce89df",brightCyan:"#67cbe7",brightWhite:"#bdc3c2"}};var Xe=acode.require("settings"),Ve=!1,Ke=!0;var Ee=["block","underline","bar"],xe=["outline","block","bar","underline","none"],Ye=11,Je=Xe.get("editorFont"),Ae=["normal","bold","100","200","300","400","500","600","700","800","900"],Ze=1e3,Qe=1e3;var oe="catppuccin",ke=["ayuDark","ayuLight","ayuMirage","catppuccin","dracula","elementary","everblush","light","material","nekonakoDjancoeg","oneDark","sapphire","siduckOneDark","snazzy","xterm","custom"],et=[[Xe.get("editorFont"),"Default Editor Font","file file_type_font",!0],["Fira Code Bold Nerd Font","Fira Code Bold Nerd Font","file file_type_font",!0],["Fira Code Medium Nerd Font","Fira Code Medium Nerd Font","file file_type_font",!0],["JetBrains Mono Bold Nerd Font","JetBrains Mono Bold Nerd Font","file file_type_font",!0],["JetBrains Mono Medium Nerd Font","JetBrains Mono Medium Nerd Font","file file_type_font",!0],["VictorMonoNerdFont Bold","VictorMonoNerdFont Bold","file file_type_font",!0],["VictorMonoNerdFont BoldItalic","VictorMonoNerdFont BoldItalic","file file_type_font",!0],["VictorMonoNerdFont Medium","VictorMonoNerdFont Medium","file file_type_font",!0],["VictorMonoNerdFont Italic","VictorMonoNerdFont Italic","file file_type_font",!0],["SauceCodeProNerdFont Bold","SauceCodeProNerdFont Bold","file file_type_font",!0],["SauceCodeProNerdFont Medium","SauceCodeProNerdFont Medium","file file_type_font",!0],["MesloLGS NF Bold Italic","MesloLGS NF Bold Italic","file file_type_font",!0],["MesloLGS NF Bold","MesloLGS NF Bold","file file_type_font",!0],["MesloLGS NF Italic","MesloLGS NF Italic","file file_type_font",!0],["MesloLGS NF Regular","MesloLGS NF Regular","file file_type_font",!0]];var q=acode.require("settings"),Pe=[{key:"port",text:"Server Port",value:q.value[j.id].port,info:"Port which is displayed on termux when starting the server",prompt:"Server Port",promptType:"number",promptOption:[{required:!0}]},{key:"serverHost",text:"Server Host Name",value:q.value[j.id].serverHost,info:"Hostname which is displayed on termux when starting the server",prompt:"Server Host Name",promptType:"text",promptOption:[{required:!0}]},{key:"fontWeight",text:"Font Weight",value:q.value[j.id].fontWeight,info:"The font weight used to render non-bold text.",select:Ae},{key:"showTerminalBtnSize",text:"Show Terminal button size",value:q.value[j.id].showTerminalBtnSize,info:"Size of terminal show button (in px)",prompt:"Show Terminal button size",promptType:"number",promptOption:[{required:!0}]},{key:"blurValue",text:"Blur Value(in px)",value:q.value[j.id].blurValue,info:"Blur value for terminal in transparent mode",prompt:"Blur Value",promptType:"text",promptOption:[{required:!0}]},{key:"clearCache",text:"Clear Cache",info:"Helps in clearing cache which contains session details in case of any problems or bug"},{key:"transparency",text:"Allow Transparent Terminal",info:"Makes terminal transparent but it will also led to slightly performance decrement",checkbox:!!q.value[j.id].transparency},{index:7,key:"customFontStyleSheet",text:"Custom Font Stylesheet file",info:"Select css file in which you have to define about your custom font.",value:q.value[j.id].customFontStyleSheet},{index:0,key:"cursorBlink",text:"Cursor Blink",info:"Whether the cursor blinks.",checkbox:!!q.value[j.id].cursorBlink},{index:1,key:"cursorStyle",text:"Cursor Style",value:q.value[j.id].cursorStyle,info:"The style of the cursor.",select:Ee},{key:"cursorInactiveStyle",text:"Cursor Inactive Style",value:q.value[j.id].cursorInactiveStyle,info:"The style of the cursor when the terminal is not focused.",select:xe},{index:2,key:"fontSize",text:"Font Size",value:q.value[j.id].fontSize,info:"The font size used to render text.",prompt:"Font Size",promptType:"text",promptOption:[{match:/^[0-9]+$/,required:!0}]},{index:3,key:"fontFamily",text:"Font Family",value:q.value[j.id].fontFamily,info:"The font family used to render text.",select:et},{index:4,key:"scrollBack",text:"Scroll Back",value:q.value[j.id].scrollBack,info:"The amount of scrollback in the terminal. Scrollback is the amount of rows that are retained when lines are scrolled beyond the initial viewport.",prompt:"Scroll Back",promptType:"number",promptOption:[{match:/^[0-9]+$/,required:!0}]},{index:5,key:"scrollSensitivity",text:"Scroll Sensitivity",value:q.value[j.id].scrollSensitivity,info:"The scrolling speed multiplier used for adjusting normal scrolling speed.",prompt:"Scroll Sensitivity",promptType:"number",promptOption:[{match:/^[0-9]+$/,required:!0}]},{index:6,key:"theme",text:"Theme",value:q.value[j.id].theme,info:"Theme of terminal.",select:ke}],tt=[{index:8,key:"background",text:"Background Color",value:q.value[j.id].background,color:q.value[j.id].background},{index:9,key:"foreground",text:"Foreground Color",value:q.value[j.id].foreground,color:q.value[j.id].foreground},{index:10,key:"selectionBackground",text:"Selection Background Color",value:q.value[j.id].selectionBackground,color:q.value[j.id].selectionBackground},{index:11,key:"cursor",text:"Cursor Color",value:q.value[j.id].cursor,color:q.value[j.id].cursor},{index:12,key:"cursorAccent",text:"Cursor Accent Color",value:q.value[j.id].cursorAccent,color:q.value[j.id].cursorAccent},{index:13,key:"black",text:"Black Color",value:q.value[j.id].black,color:q.value[j.id].black},{index:14,key:"blue",text:"Blue Color",value:q.value[j.id].blue,color:q.value[j.id].blue},{index:15,key:"brightBlack",text:"Bright Black Color",value:q.value[j.id].brightBlack,color:q.value[j.id].brightBlack},{index:16,key:"brightBlue",text:"Bright Blue Color",value:q.value[j.id].brightBlue,color:q.value[j.id].brightBlue},{index:17,key:"brightCyan",text:"Bright Cyan Color",value:q.value[j.id].brightCyan,color:q.value[j.id].brightCyan},{index:18,key:"brightGreen",text:"Bright Green Color",value:q.value[j.id].brightGreen,color:q.value[j.id].brightGreen},{index:19,key:"brightMagenta",text:"Bright Magenta Color",value:q.value[j.id].brightMagenta,color:q.value[j.id].brightMagenta},{index:20,key:"brightRed",text:"Bright Red Color",value:q.value[j.id].brightRed,color:q.value[j.id].brightRed},{index:21,key:"brightWhite",text:"Bright White Color",value:q.value[j.id].brightWhite,color:q.value[j.id].brightWhite},{index:22,key:"brightYellow",text:"Bright Yellow Color",value:q.value[j.id].brightYellow,color:q.value[j.id].brightYellow},{index:23,key:"cyan",text:"Cyan Color",value:q.value[j.id].cyan,color:q.value[j.id].cyan},{index:24,key:"green",text:"Green Color",value:q.value[j.id].green,color:q.value[j.id].green},{index:25,key:"magenta",text:"Magenta Color",value:q.value[j.id].magenta,color:q.value[j.id].magenta},{index:26,key:"red",text:"Red Color",value:q.value[j.id].red,color:q.value[j.id].red},{index:27,key:"white",text:"White Color",value:q.value[j.id].white,color:q.value[j.id].white},{index:28,key:"yellow",text:"Yellow Color",value:q.value[j.id].yellow,color:q.value[j.id].yellow}];var _t=Se(st()),ft=Se(rt()),gt=Se(nt()),vt=Se(ot()),pt=Se(at()),mt=Se(ht()),St=Se(lt()),ct=acode.require("confirm"),he=acode.require("settings"),we=acode.require("fsOperation"),At=acode.require("toInternalUrl"),kt=acode.require("select"),dt=acode.require("loader"),{clipboard:ut}=cordova.plugins,je=class{isDragging=!1;startY;startHeight;isFlotBtnDragging=!1;btnStartPosX;btnStartPosY;isTerminalMinimized=!1;isTerminalOpened=!1;previousTerminalHeight;pid;terminal=null;socket=null;$fitAddon=void 0;constructor(){he.value[j.id]?this.settings.serverHost||(delete he.value[j.id],he.update(!1),this._saveSetting()):this._saveSetting()}async init(T,I,H){try{await we(window.DATA_STORAGE+"acodex_fonts").exists()||this.downloadFont(),this.xtermCss=tag("link",{rel:"stylesheet",href:this.baseUrl+"xterm.css"}),this.$style=tag("link",{rel:"stylesheet",href:this.baseUrl+"main.css"}),this._loadCustomFontStyleSheet(),document.head.append(this.xtermCss,this.$style),editorManager.editor.commands.addCommand({name:"acodex:open_terminal",description:"Open Terminal",bindKey:{win:"Ctrl-K"},exec:()=>{this.openTerminalPanel(270,this.settings.port)}}),editorManager.editor.commands.addCommand({name:"acodex:close_terminal",description:"Close Terminal",bindKey:{win:"Ctrl-J"},exec:this.closeTerminal.bind(this)}),this.$terminalContainer=tag("div",{className:"terminal-panel"}),this.$terminalHeader=tag("div",{className:"terminal-title-bar"});let R=tag("div",{className:"session-info"}),t=tag("div",{className:"pointer-indicator"});this.$terminalTitle=tag("h3",{textContent:"AcodeX 1",className:"session-name"}),R.append(t,this.$terminalTitle);let a=tag("div",{className:"action-buttons"}),l=tag("button",{className:"action-button new-session",title:"New Session"});l.innerHTML='',this.$searchBtn=tag("button",{className:"action-button search-btn",title:"Search"}),this.$searchBtn.innerHTML='',this.$cdBtn=tag("button",{className:"action-button folder-icon",title:"Navigate to Folder"}),this.$cdBtn.innerHTML='',this.$minimizeBtn=tag("button",{className:"action-button minimize",title:"Minimize"}),this.$minimizeBtn.innerHTML='',this.$closeTermBtn=tag("button",{className:"action-button close",title:"Close Terminal"}),this.$closeTermBtn.innerHTML='',this.$searchInputContainer=tag("div",{className:"search-input-container"}),this.$searchInputContainer.append(tag("button",{className:"action-button find-previous",title:"Find Previous",innerHTML:'',onclick:this._findPreviousMatchofSearch.bind(this)}),tag("input",{type:"text",placeholder:"Find...",oninput:u=>{this.$searchAddon?.findNext(u.target.value)}}),tag("button",{className:"action-button find-next",title:"Find Next",innerHTML:'',onclick:this._findNextMatchofSearch.bind(this)})),a.append(l,this.$searchBtn,this.$cdBtn,this.$minimizeBtn,this.$closeTermBtn,this.$searchInputContainer),this.$terminalHeader.append(R,a),this.$terminalContent=tag("div",{className:"terminal-content"}),this.$terminalContainer.append(this.$terminalHeader,this.$terminalContent),this.$showTermBtn=tag("button",{className:"show-terminal-btn",innerHTML:''}),app.get("main")&&app.get("main").append(this.$terminalContainer,this.$showTermBtn),this.$showTermBtn.classList.add("hide"),this.$terminalContainer.classList.add("hide"),this.settings.showTerminalBtnSize&&(this.$showTermBtn.style.height=this.settings.showTerminalBtnSize+"px",this.$showTermBtn.style.width=this.settings.showTerminalBtnSize+"px"),this.$cacheFile=I,this.$terminalHeader.addEventListener("mousedown",this.startDragging.bind(this)),this.$terminalHeader.addEventListener("touchstart",this.startDragging.bind(this)),l.addEventListener("click",this.createSession.bind(this)),this.$searchBtn.addEventListener("click",()=>{let u=this.$searchInputContainer.querySelector("input");this.$searchInputContainer.classList.toggle("show"),this.$searchInputContainer.classList.contains("show")?(u.style.maxWidth="150px",l.style.display="none",this.$cdBtn.style.display="none",this.$minimizeBtn.style.display="none",this.$closeTermBtn.style.display="none",u.addEventListener("click",()=>{u.focus()})):(u.style.maxWidth="0",this.$searchAddon?.clearDecorations(),this.$searchAddon?.clearActiveDecoration(),l.style.display="block",this.$cdBtn.style.display="block",this.$minimizeBtn.style.display="block",this.$closeTermBtn.style.display="block")}),this.$terminalTitle.addEventListener("click",async u=>{let r,h=await this.$cacheFile.readFile("utf8"),d=JSON.parse(h);Array.isArray(d)?r=d.map(e=>e.name):r=[];let _={hideOnSelect:!0,default:localStorage.getItem("AcodeX_Current_Session")},o=await kt("AcodeX Sessions",r,_);o&&this.changeSession(o)}),this.$closeTermBtn.addEventListener("click",this.closeTerminal.bind(this)),this.$minimizeBtn.addEventListener("click",this.minimise.bind(this)),this.$cdBtn.addEventListener("click",this._cdToActiveDir.bind(this)),this.$showTermBtn.addEventListener("mousedown",this.startDraggingFlotingBtn.bind(this)),document.addEventListener("mousemove",this.dragFlotButton.bind(this)),document.addEventListener("mouseup",this.stopDraggingFlotBtn.bind(this)),this.$showTermBtn.addEventListener("touchstart",this.startDraggingFlotingBtn.bind(this)),document.addEventListener("touchmove",this.dragFlotButton.bind(this)),document.addEventListener("touchend",this.stopDraggingFlotBtn.bind(this)),this.$showTermBtn.addEventListener("click",this.maxmise.bind(this)),window.addEventListener("mousemove",this.drag.bind(this)),window.addEventListener("touchmove",this.drag.bind(this)),window.addEventListener("mouseup",this.stopDragging.bind(this)),window.addEventListener("touchend",this.stopDragging.bind(this)),window.addEventListener("resize",()=>{if(this.$terminalContainer&&!this.$terminalContainer.classList.contains("hide")){let u=document.querySelector("#root header")?.offsetHeight,r=document.querySelector("#root ul")?.offsetHeight||0,h=u+r,d=document.querySelector("#quick-tools")?.offsetHeight||0,_=window.innerHeight-(h+d),o=parseInt(this.$terminalContainer.style.height),e=Math.min(o,_);this.$terminalContainer.style.height=e+"px",localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight)}if(this.$showTermBtn&&!this.$showTermBtn.classList.contains("hide")){let u=document.querySelector("#root header")?.offsetHeight,r=document.querySelector("#root ul")?.offsetHeight||0,h=u+r,d=window.innerHeight-h-this.$showTermBtn.offsetHeight,_=parseInt(this.$showTermBtn.style.bottom);this.$showTermBtn.style.bottom=Math.max(0,Math.min(d,_))+"px"}}),localStorage.getItem("AcodeX_Is_Opened")==="true"&&localStorage.getItem("AcodeX_Current_Session")&&await this.openTerminalPanel(localStorage.getItem("AcodeX_Terminal_Cont_Height")||270,this.settings.port),acode.define("acodex",{execute:u=>{try{if(!this.isTerminalOpened)return;this.socket.send(u+"\r")}catch(r){throw Error(r)}},isMinimized:()=>this.isTerminalMinimized,isTerminalOpened:()=>this.isTerminalOpened,maximiseTerminal:()=>{this.isTerminalOpened&&this.isTerminalMinimized&&this.maxmise()},openTerminal:(u=270,r=this.settings.port)=>{this.isTerminalOpened||this.openTerminalPanel(u,r)},createSession:()=>{this.isTerminalOpened&&this.createSession()},closeTerminal:()=>{this.isTerminalOpened&&this.closeTerminal()},convertAcodeUriToTermReadable:u=>this._convertPath(u),addTheme:(u,r)=>{ke.push(u),ne[u]=r},applyTheme:u=>{this.settings.theme=u,he.update()}})}catch(R){console.log(R)}}async openTerminalPanel(T,I){I&&(document.querySelector(".terminal-panel")||app.get("main").append(this.$terminalContainer,this.$showTermBtn),this.settings.port=I,he.update(!1),this.$terminalContainer.classList.remove("hide"),this.isTerminalOpened=!0,this.$terminalContainer.style.height=T+"px",this.$terminalContent.style.width="100%",this.$terminalContent.style.height=`calc(100% - ${this.$terminalContainer.offsetHeight}px)`,this.settings.transparency?(this.$terminalContainer.style.background="transparent",this.$terminalContainer.style.backdropFilter=`blur(${this.settings.blurValue})`,this.$terminalHeader.style.background=this.transparentColor(this.$terminalHeader),this.$terminalHeader.style.backdropFilter=`blur(${this.settings.blurValue})`):(this.$terminalContainer.style.background="var(--popup-background-color)",this.$terminalHeader.style.background="var(--primary-color)"),localStorage.getItem("AcodeX_Current_Session")?this.changeSession(localStorage.getItem("AcodeX_Current_Session"),!0):(this.$terminalContent.innerHTML="",this.createSession()))}transparentColor(T){var H=window.getComputedStyle(T).backgroundColor.match(/\d+/g),R=parseFloat(H[3])||1;return`rgba(${H[0]}, ${H[1]}, ${H[2]}, 0.5)`}async createXtermTerminal(T){if(this.$terminal=this.terminalObj,this.$fitAddon=new ft.FitAddon,this.$webglAddon=new gt.WebglAddon,this.$unicode11Addon=new pt.Unicode11Addon,this.$webLinkAddon=new vt.WebLinksAddon(async(I,H)=>{await ct("AcodeX Link",`Do you want to open ${H} in browser?`)&&system.openInBrowser(H)}),this.$searchAddon=new St.SearchAddon,this.$terminal.loadAddon(this.$fitAddon),this.$terminal.loadAddon(this.$unicode11Addon),this.$terminal.loadAddon(this.$webLinkAddon),this.$terminal.loadAddon(this.$searchAddon),this.fitTerminal(),this.$webglAddon)try{this.$terminal.loadAddon(this.$webglAddon),this.$terminal.open(this.$terminalContent)}catch(I){window.toast("error during loading webgl addon: "+I,4e3),this.$webglAddon.dispose(),this.$webglAddon=void 0}this.$terminal.element||this.$terminal.open(this.$terminalContent),this.$terminal.focus(),this._updateTerminalHeight()}async attachSocketToXterm(T,I){this.$terminal.onResize(async H=>{if(!I)return;let R=H.cols.toString(),t=H.rows.toString(),a=`http://${this.settings.serverHost}:${T}/terminals/${I}/resize`;await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cols:R,rows:t})})}),this.socket=new WebSocket(`ws://${this.settings.serverHost}:${T}/terminals/${I}`),this.socket.onopen=()=>{this.$attachAddon=new mt.AttachAddon(this.socket),this.$terminal.loadAddon(this.$attachAddon),this.$terminal.unicode.activeVersion="11",this._updateTerminalHeight(),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),localStorage.getItem("AcodeX_Terminal_Is_Minimised")==="true"&&this.minimise(),this.$terminal.focus(),this._updateTerminalHeight()},this.socket.onerror=H=>{acode.alert("AcodeX Error",JSON.stringify(H))},this.$terminal.attachCustomKeyEventHandler(async H=>{if(H.type==="keydown"){let R=await this.$cacheFile.readFile("utf8"),t=R?JSON.parse(R):[];if(H.ctrlKey&&(H.key==="N"||H.key==="n"))return this.createSession(),!1;if(H.ctrlKey&&(H.key==="W"||H.key==="w"))return this.closeTerminal(),!1;if(H.ctrlKey&&H.shiftKey&&(H.key==="V"||H.key==="v"))return ut.paste(a=>{this.$terminal?.paste(a)}),!1;if(H.ctrlKey&&H.keyCode>=49&&H.keyCode<=53){let a=H.keyCode-49;if(t.length>a){let l=t[a];return this.changeSession(l.name),!1}}else if(H.ctrlKey&&H.key==="ArrowLeft"){let a=t.findIndex(l=>l.name===localStorage.getItem("AcodeX_Current_Session"));if(a>0){let l=t[a-1];return this.changeSession(l.name),!1}}else if(H.ctrlKey&&H.key==="ArrowRight"){let a=t.findIndex(l=>l.name===localStorage.getItem("AcodeX_Current_Session"));if(a{let h=u.name.match(/^AcodeX(\d+)$/);if(h){let d=parseInt(h[1],10);return Math.max(l,d)}return l},0)+1}`;if(this.createXtermTerminal(this.settings.port),T=await this._generateProcessId(),!T)return;H.push({name:a,pid:T})}await Promise.all([this.$cacheFile.writeFile(H),this.attachSocketToXterm(this.settings.port,T)]),this._updateTerminalHeight(),localStorage.setItem("AcodeX_Current_Session",H[H.length-1].name),this.$terminalTitle.textContent=H[H.length-1].name,window.toast(`Created Session: ${H[H.length-1].name}`,3e3)}_hideTerminalSession(){this.$attachAddon.dispose(),this.$fitAddon.dispose(),this.$unicode11Addon.dispose(),this.$webLinkAddon.dispose(),this.$searchAddon.dispose(),this.$webglAddon.dispose(),this.$terminal.dispose(),this.socket.close(),this.socket=null,this.$terminal=void 0,this.$attachAddon=void 0,this.$fitAddon=void 0,this.$unicode11Addon=void 0,this.$webLinkAddon=void 0,this.$searchAddon=void 0,this.$webglAddon=void 0,this.$terminalContent.innerHTML=""}async _generateProcessId(){try{let T=this.$terminal.cols.toString(),I=this.$terminal.rows.toString(),H=await fetch(`http://${this.settings.serverHost}:${this.settings.port}/terminals`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cols:T,rows:I})});if(!H.ok)throw new Error("Failed to create terminal");return await H.text()}catch{this.$terminalContainer.classList.contains("hide")||this.$terminalContainer.classList.add("hide"),this.$showTermBtn.classList.contains("hide")||this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,this.isTerminalOpened=!1,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),this.$terminalContainer.style.height=this.previousTerminalHeight,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),localStorage.removeItem("AcodeX_Current_Session"),window.toast("Start the acodex server in termux first!",4e3)}}async changeSession(T,I=!1){if(I){this.createXtermTerminal(this.settings.port);let H=await this._getPidBySessionName(T);if(!H){this.$terminalContainer.classList.contains("hide")||this.$terminalContainer.classList.add("hide"),this.$showTermBtn.classList.contains("hide")||this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,this.isTerminalOpened=!1,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),this.$terminalContainer.style.height=this.previousTerminalHeight,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),localStorage.removeItem("AcodeX_Current_Session"),window.toast("Oops! Something went wrong in the Core \u{1F614}",4e3);return}this.attachSocketToXterm(this.settings.port,H),localStorage.setItem("AcodeX_Current_Session",T),this.$terminalTitle.textContent=T}else{if(T===localStorage.getItem("AcodeX_Current_Session"))return;let H=await this._getPidBySessionName(T);if(!H)return;this._hideTerminalSession(),this.createXtermTerminal(this.settings.port),this.attachSocketToXterm(this.settings.port,H),localStorage.setItem("AcodeX_Current_Session",T),this.$terminalTitle.textContent=T}}async _getPidBySessionName(T){let I=await this.$cacheFile.readFile("utf8"),H=I?JSON.parse(I):[];if(Array.isArray(H)){let R=H.find(t=>t.name===T);return R?R.pid:(console.log(`Error: Session '${T}' not found in JSON file.`),null)}else return console.log("Error: Sessions data is not an array in JSON file."),null}_saveSetting(){he.value[j.id]={port:8767,serverHost:"localhost",transparency:Ve,showTerminalBtnSize,blurValue:"4px",cursorBlink:Ke,cursorStyle:Ee[0],cursorInactiveStyle:xe[0],fontSize:Ye,fontFamily:Je,fontWeight:Ae[0],customFontStyleSheet:"",scrollBack:Ze,scrollSensitivity:Qe,theme:oe,background:ne[oe].background,foreground:ne[oe].foreground,cursor:ne[oe].cursor||"",cursorAccent:ne[oe].cursorAccent||"",selectionBackground:ne[oe].selectionBackground,black:ne[oe].black,blue:ne[oe].blue,brightBlack:ne[oe].brightBlack,brightBlue:ne[oe].brightBlue,brightCyan:ne[oe].brightCyan,brightGreen:ne[oe].brightGreen,brightMagenta:ne[oe].brightMagenta,brightRed:ne[oe].brightWhite,brightWhite:ne[oe].brightWhite,brightYellow:ne[oe].brightYellow,cyan:ne[oe].cyan,green:ne[oe].green,magenta:ne[oe].magenta,red:ne[oe].red,white:ne[oe].white,yellow:ne[oe].yellow},he.update(!1)}_loadCustomFontStyleSheet(){if(this.settings.customFontStyleSheet!="")if(document.querySelector("#customFontAcodeXStyleSheet"))document.querySelector("#customFontAcodeXStyleSheet").href=this.settings.customFontStyleSheet;else{let T=tag("link",{href:this.settings.customFontStyleSheet,rel:"stylesheet",id:"customFontAcodeXStyleSheet"});document.head.append(T)}}_updateTerminalHeight(){let T=this.$terminalHeader.offsetHeight;this.$terminalContent.style.height=`calc(100vh - ${T+1}px)`,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),this.fitTerminal()}fitTerminal(){let T=this.$fitAddon.proposeDimensions();T&&this.$terminal.resize(T.cols+2,T.rows+1)}async _getLastSessionName(){try{let T=await this.$cacheFile.readFile("utf8"),I=T?JSON.parse(T):[];return Array.isArray(I)&&I.length>0?I[I.length-1].name:(console.error("Error: No sessions found in JSON file or sessions data is not an array."),null)}catch(T){return console.error("Error reading or parsing JSON file:",T),null}}async closeTerminal(){if(await ct("Warning","Are you sure ?")&&this.$terminal!=null&&localStorage.getItem("AcodeX_Current_Session")){let I=await this._getPidBySessionName(localStorage.getItem("AcodeX_Current_Session"));if(!I)return;fetch(`http://${this.settings.serverHost}:${this.settings.port}/terminals/${I}/terminate`,{method:"POST"}).then(async H=>{if(H.ok){let R=await this.$cacheFile.readFile("utf8"),t=R?JSON.parse(R):[];if(t=t.filter(a=>a.name!==localStorage.getItem("AcodeX_Current_Session")),await this.$cacheFile.writeFile(t),t.length>0){let a=await this._getLastSessionName();this.changeSession(a)}else this._hideTerminalSession(),this.$terminalContainer.classList.contains("hide")||this.$terminalContainer.classList.add("hide"),this.$showTermBtn.classList.contains("hide")||this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,this.isTerminalOpened=!1,localStorage.removeItem("AcodeX_Current_Session"),localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),this.$terminalContainer.style.height=this.previousTerminalHeight,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight)}else acode.alert("AcodeX Error",`Failed to close terminal ${this.pid}.`)}).catch(async H=>{this.$terminalContainer.classList.contains("hide")||(this.$terminalContainer.style.opacity=1),this.$terminalContainer.classList.add("hide"),this.$showTermBtn.classList.contains("hide")||this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,this.isTerminalOpened=!1,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),this.$terminalContainer.style.height=this.previousTerminalHeight,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),localStorage.removeItem("AcodeX_Current_Session"),await this.$cacheFile.writeFile(""),acode.alert("AcodeX Server","Disconnected from server because server gets closed \u{1F61E}!"),console.error(`Error while closing terminal ${this.pid}: ${H}`)})}}startDraggingFlotingBtn(T){try{this.isFlotBtnDragging=!0,this.$showTermBtn.style.border="2px solid #fff",T.type==="touchstart"?(this.btnStartPosX=T.touches[0].clientX,this.btnStartPosY=T.touches[0].clientY):(this.btnStartPosX=T.clientX,this.btnStartPosY=T.clientY)}catch(I){window.alert(I)}}dragFlotButton(T){try{if(!this.isFlotBtnDragging)return;T.preventDefault();let I,H;T.type==="touchmove"?(I=T.touches[0].clientX,H=T.touches[0].clientY):(I=T.clientX,H=T.clientY);let R=this.btnStartPosX-I,t=this.btnStartPosY-H;this.btnStartPosX=I,this.btnStartPosY=H;let a=window.innerHeight-(this.$showTermBtn.offsetTop+this.$showTermBtn.offsetHeight)+t,l=this.$showTermBtn.offsetLeft-R,u=document.querySelector("#root header")?.offsetHeight,r=document.querySelector("#root ul")?.offsetHeight||0,h=u+r,d=window.innerWidth-this.$showTermBtn.offsetWidth,_=window.innerHeight-h-this.$showTermBtn.offsetHeight;this.$showTermBtn.style.bottom=Math.max(0,Math.min(_,a))+"px",this.$showTermBtn.style.left=Math.max(0,Math.min(d,l))+"px"}catch(I){window.alert(I)}}stopDraggingFlotBtn(){try{this.isFlotBtnDragging=!1,this.$showTermBtn.style.border="none"}catch(T){window.alert(T)}}startDragging(T){T.type==="touchstart"?this.startY=T.touches[0].clientY:(T.preventDefault(),this.startY=T.clientY),this.startHeight=this.$terminalContainer.clientHeight,this.isDragging=!0,this.$terminalContainer.style.borderTop="1px solid var(--link-text-color)"}drag(T){if(!this.isDragging)return;T.preventDefault();let I;T.type==="touchmove"?I=T.touches[0].clientY:I=T.clientY;let H=I-this.startY,R=this.startHeight-H,t=document.querySelector("#root header")?.offsetHeight,a=document.querySelector("#root ul")?.offsetHeight||0,l=t+a,u=document.querySelector("#quick-tools")?.offsetHeight||0,r=window.innerHeight-(l+u);R=Math.max(100,Math.min(R,r)),this.$terminalContainer.style.height=R+"px",localStorage.setItem("AcodeX_Terminal_Cont_Height",R),this._updateTerminalHeight()}stopDragging(T){this.isDragging=!1,this.$terminalContainer.style.borderTop="1px solid var(--popup-border-color)"}minimise(){try{this.isTerminalMinimized||(this.previousTerminalHeight=window.getComputedStyle(this.$terminalContainer).height,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),this.$terminalContainer.style.height="0px",this.$terminalContainer.classList.add("hide"),this.isTerminalMinimized=!0,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),this.$showTermBtn.classList.remove("hide"))}catch(T){window.alert(T)}}maxmise(){this.isTerminalMinimized&&(parseInt(localStorage.getItem("AcodeX_Terminal_Cont_Height"))<=50?this.$terminalContainer.style.height="50px":this.$terminalContainer.style.height=localStorage.getItem("AcodeX_Terminal_Cont_Height")+"px",this.$terminalContainer.classList.remove("hide"),this.$terminalContent.style.height=`calc(100% - ${this.$terminalContainer.offsetHeight}px)`,this.fitTerminal(),localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),this._updateTerminalHeight())}_findPreviousMatchofSearch(){let T=document.querySelector(".search-input-container input").value;this.$searchAddon?.findPrevious(T)}_findNextMatchofSearch(){let T=document.querySelector(".search-input-container input").value;this.$searchAddon?.findNext(T)}_convertPath(T){return T.startsWith("content://com.termux.documents/tree")?T.split("::")[1].substring(0,T.split("::")[1].lastIndexOf("/")).replace(/^\/data\/data\/com\.termux\/files\/home/,"$HOME"):T.startsWith("file:///storage/emulated/0/")?"/sdcard"+T.substr(26).replace(/\.[^/.]+$/,"").split("/").slice(0,-1).join("/")+"/":T.startsWith("content://com.android.externalstorage.documents/tree/primary")?"/sdcard/"+T.split("::primary:")[1].substring(0,T.split("::primary:")[1].lastIndexOf("/")):!1}async _cdToActiveDir(){let{activeFile:T}=editorManager,I=this._convertPath(T.uri);if(!I){window.toast("unsupported path type.",3e3);return}this.socket.send(`cd "${I}"\r`)}async destroy(){this.$style.remove(),this.xtermCss.remove(),await we(window.DATA_STORAGE+"acodex_fonts").delete(),editorManager.editor.commands.removeCommand("terminal:open_terminal"),editorManager.editor.commands.removeCommand("terminal:close_terminal"),this.$terminalContainer.remove(),this.$showTermBtn.remove(),document.removeEventListener("mousemove",this.dragFlotButton.bind(this)),document.removeEventListener("mouseup",this.stopDraggingFlotBtn.bind(this)),document.removeEventListener("touchmove",this.dragFlotButton.bind(this)),document.removeEventListener("touchend",this.stopDraggingFlotBtn.bind(this)),window.removeEventListener("mousemove",this.drag),window.removeEventListener("touchmove",this.drag),window.removeEventListener("mouseup",this.stopDragging),window.removeEventListener("touchend",this.stopDragging),localStorage.removeItem("AcodeX_Terminal_Is_Minimised"),localStorage.removeItem("AcodeX_Current_Session"),localStorage.removeItem("AcodeX_Terminal_Cont_Height"),localStorage.removeItem("AcodeX_Is_Opened")}async setCustomFontFile(){let{url:T}=await acode.fileBrowser("file","select custom font stylesheet");if(!T)return;let I=this._convertPath(T);if(I.startsWith("/sdcard"))I=I.replace("/sdcard","file:///storage/emulated/0");else if(I.startsWith("$HOME"))return;let H=T.split("/"),R=H[H.length-1];I=I+"/"+R;let t=await At(I);this.settings.customFontStyleSheet=t,he.update()}async applyTheme(T){let I=ne[T];this.settings.theme=T,this.settings.background=I.background,this.settings.foreground=I.foreground,this.settings.cursor=I.cursor||"#fff",this.settings.cursorAccent=I.cursorAccent||"#fff",this.settings.selectionBackground=I.selectionBackground,this.settings.black=I.black,this.settings.blue=I.blue,this.settings.brightBlack=I.brightBlack,this.settings.brightBlue=I.brightBlue,this.settings.brightCyan=I.brightCyan,this.settings.brightGreen=I.brightGreen,this.settings.brightMagenta=I.brightMagenta,this.settings.brightRed=I.brightRed,this.settings.brightWhite=I.brightWhite,this.settings.brightYellow=I.brightYellow,this.settings.cyan=I.cyan,this.settings.green=I.green,this.settings.magenta=I.magenta,this.settings.red=I.red,this.settings.white=I.white,this.settings.yellow=I.yellow,he.update()}hexToTransparentRGBA(T,I){T=T.replace("#","");let H=parseInt(T.substring(0,2),16),R=parseInt(T.substring(2,4),16),t=parseInt(T.substring(4,6),16);return`rgba(${H}, ${R}, ${t}, ${I})`}get terminalThemeObj(){return{background:this.settings.transparency?this.hexToTransparentRGBA(this.settings.background,.5):this.settings.background,foreground:this.settings.foreground,selectionBackground:this.settings.selectionBackground,cursor:this.settings.cursor,cursorAccent:this.settings.cursorAccent,black:this.settings.black,blue:this.settings.blue,brightBlack:this.settings.brightBlack,brightBlue:this.settings.brightBlue,brightCyan:this.settings.brightCyan,brightGreen:this.settings.brightGreen,brightMagenta:this.settings.brightMagenta,brightRed:this.settings.brightRed,brightWhite:this.settings.brightWhite,brightYellow:this.settings.brightYellow,cyan:this.settings.cyan,green:this.settings.green,magenta:this.settings.magenta,red:this.settings.red,white:this.settings.white,yellow:this.settings.yellow}}get terminalObj(){return new _t.Terminal({allowTransparency:this.settings.transparency,allowProposedApi:!0,scrollOnUserInput:!0,cursorBlink:this.settings.cursorBlink,cursorStyle:this.settings.cursorStyle,cursorInactiveStyle:this.settings.cursorInactiveStyle,scrollBack:this.settings.scrollBack,scrollSensitivity:this.settings.scrollSensitivity,fontSize:this.settings.fontSize,fontFamily:this.settings.fontFamily,fontWeight:this.settings.fontWeight,theme:this.terminalThemeObj})}async clearCache(){await this.$cacheFile.writeFile(""),window.toast("Cache cleared \u{1F525}",3e3)}get fontsList(){return[[he.get("editorFont"),"Default Editor Font","file file_type_font",!0],["Fira Code Bold Nerd Font","Fira Code Bold Nerd Font","file file_type_font",!0],["Fira Code Medium Nerd Font","Fira Code Medium Nerd Font","file file_type_font",!0],["JetBrains Mono Bold Nerd Font","JetBrains Mono Bold Nerd Font","file file_type_font",!0],["JetBrains Mono Medium Nerd Font","JetBrains Mono Medium Nerd Font","file file_type_font",!0],["VictorMonoNerdFont Bold","VictorMonoNerdFont Bold","file file_type_font",!0],["VictorMonoNerdFont BoldItalic","VictorMonoNerdFont BoldItalic","file file_type_font",!0],["VictorMonoNerdFont Medium","VictorMonoNerdFont Medium","file file_type_font",!0],["VictorMonoNerdFont Italic","VictorMonoNerdFont Italic","file file_type_font",!0],["SauceCodeProNerdFont Bold","SauceCodeProNerdFont Bold","file file_type_font",!0],["SauceCodeProNerdFont Medium","SauceCodeProNerdFont Medium","file file_type_font",!0],["MesloLGS NF Bold Italic","MesloLGS NF Bold Italic","file file_type_font",!0],["MesloLGS NF Bold","MesloLGS NF Bold","file file_type_font",!0],["MesloLGS NF Italic","MesloLGS NF Italic","file file_type_font",!0],["MesloLGS NF Regular","MesloLGS NF Regular","file file_type_font",!0]]}async downloadFont(){try{let T=window.DATA_STORAGE+"acodex_fonts",I="https://cdn.jsdelivr.net/gh/bajrangCoder/acode-plugin-acodex@main/fonts/",H=[I+"Fira Code Bold Nerd Font.ttf",I+"Fira Code Medium Nerd Font Complete Mono.ttf",I+"JetBrains Mono Bold Nerd Font Complete.ttf",I+"JetBrains Mono Medium Nerd Font Complete.ttf",I+"MesloLGS NF Bold Italic.ttf",I+"MesloLGS NF Bold.ttf",I+"MesloLGS NF Italic.ttf",I+"MesloLGS NF Regular.ttf",I+"SauceCodeProNerdFont-Bold.ttf",I+"SauceCodeProNerdFont-Medium.ttf",I+"VictorMonoNerdFont-Bold.ttf",I+"VictorMonoNerdFont-BoldItalic.ttf",I+"VictorMonoNerdFont-Italic.ttf",I+"VictorMonoNerdFont-Medium.ttf"];if(!await we(T).exists()){await we(window.DATA_STORAGE).createDirectory("acodex_fonts");let R=dt.create("AcodeX","Downloading Fonts...");for(let t of H){let a=t.split("/").pop();R.setMessage(`Downloading Font: ${a}`),fetch(t).then(l=>l.blob()).then(async l=>{await we(T).createFile(a,l)}).catch(l=>{R.destroy(),window.toast(`Error fetching font file: ${l.toString()}`,4e3)})}R.destroy(),window.toast("Fonts Downloaded successfully \u{1F4A5}",3e3)}}catch(T){console.log(T),dt.destroy()}}get settingsObj(){return this.settings.theme==="custom"?{list:Pe.concat(tt),cb:(T,I)=>this.settingsSaveCallback(T,I)}:{list:Pe,cb:(T,I)=>this.settingsSaveCallback(T,I)}}settingsSaveCallback(T,I){switch(T){case"customFontStyleSheet":this.setCustomFontFile();break;case"theme":this.applyTheme(I),I==="custom"&&acode.alert("AcodeX Warning","Restart the app please"),this.$terminal&&(this.$terminal.options.theme=this.terminalThemeObj);break;case"clearCache":this.clearCache();break;case"showTerminalBtnSize":this.$showTermBtn&&(this.$showTermBtn.style.height=I+"px",this.$showTermBtn.style.width=I+"px");case"fontSize":this.$terminal&&(this.$terminal.options.fontSize=I),this.settings[T]=I,he.update();break;case"fontFamily":this.$terminal&&(this.$terminal.options.fontFamily=I),this.settings[T]=I,he.update();break;case"fontWeight":this.$terminal&&(this.$terminal.options.fontWeight=I),this.settings[T]=I,he.update();break;case"cursorBlink":this.$terminal&&(this.$terminal.options.cursorBlink=I),this.settings[T]=I,he.update();break;case"cursorStyle":this.$terminal&&(this.$terminal.options.cursorStyle=I),this.settings[T]=I,he.update();break;case"cursorInactiveStyle":this.$terminal&&(this.$terminal.options.cursorInactiveStyle=I),this.settings[T]=I,he.update();break;default:this.settings[T]=I,he.update()}}get settings(){return he.value[j.id]}};if(window.acode){let V=new je;acode.setPluginInit(j.id,async(T,I,{cacheFileUrl:H,cacheFile:R})=>{T.endsWith("/")||(T+="/"),V.baseUrl=T,await V.init(I,R,H)},V.settingsObj),acode.setPluginUnmount(j.id,()=>{V.destroy()})}})(); +}`)),this.register((0,g.toDisposable)(()=>B.deleteProgram(this._program))),this._projectionLocation=(0,h.throwIfFalsy)(B.getUniformLocation(this._program,"u_projection")),this._vertexArrayObject=B.createVertexArray(),B.bindVertexArray(this._vertexArrayObject);let R=new Float32Array([0,0,1,0,0,1,1,1]),F=B.createBuffer();this.register((0,g.toDisposable)(()=>B.deleteBuffer(F))),B.bindBuffer(B.ARRAY_BUFFER,F),B.bufferData(B.ARRAY_BUFFER,R,B.STATIC_DRAW),B.enableVertexAttribArray(3),B.vertexAttribPointer(3,2,this._gl.FLOAT,!1,0,0);let Q=new Uint8Array([0,1,2,3]),K=B.createBuffer();this.register((0,g.toDisposable)(()=>B.deleteBuffer(K))),B.bindBuffer(B.ELEMENT_ARRAY_BUFFER,K),B.bufferData(B.ELEMENT_ARRAY_BUFFER,Q,B.STATIC_DRAW),this._attributesBuffer=(0,h.throwIfFalsy)(B.createBuffer()),this.register((0,g.toDisposable)(()=>B.deleteBuffer(this._attributesBuffer))),B.bindBuffer(B.ARRAY_BUFFER,this._attributesBuffer),B.enableVertexAttribArray(0),B.vertexAttribPointer(0,2,B.FLOAT,!1,_,0),B.vertexAttribDivisor(0,1),B.enableVertexAttribArray(1),B.vertexAttribPointer(1,2,B.FLOAT,!1,_,2*Float32Array.BYTES_PER_ELEMENT),B.vertexAttribDivisor(1,1),B.enableVertexAttribArray(2),B.vertexAttribPointer(2,4,B.FLOAT,!1,_,4*Float32Array.BYTES_PER_ELEMENT),B.vertexAttribDivisor(2,1),this._updateCachedColors(L.colors),this.register(this._themeService.onChangeColors(N=>{this._updateCachedColors(N),this._updateViewportRectangle()}))}renderBackgrounds(){this._renderVertices(this._vertices)}renderCursor(){this._renderVertices(this._verticesCursor)}_renderVertices(A){let C=this._gl;C.useProgram(this._program),C.bindVertexArray(this._vertexArrayObject),C.uniformMatrix4fv(this._projectionLocation,!1,l.PROJECTION_MATRIX),C.bindBuffer(C.ARRAY_BUFFER,this._attributesBuffer),C.bufferData(C.ARRAY_BUFFER,A.attributes,C.DYNAMIC_DRAW),C.drawElementsInstanced(this._gl.TRIANGLE_STRIP,4,C.UNSIGNED_BYTE,0,A.count)}handleResize(){this._updateViewportRectangle()}setDimensions(A){this._dimensions=A}_updateCachedColors(A){this._bgFloat=this._colorToFloat32Array(A.background),this._cursorFloat=this._colorToFloat32Array(A.cursor)}_updateViewportRectangle(){this._addRectangleFloat(this._vertices.attributes,0,0,0,this._terminal.cols*this._dimensions.device.cell.width,this._terminal.rows*this._dimensions.device.cell.height,this._bgFloat)}updateBackgrounds(A){let C=this._terminal,D=this._vertices,L,B,R,F,Q,K,N,k,m,x,E,I=1;for(L=0;L>24&255)/255,p=(u>>16&255)/255,y=(u>>8&255)/255,w=1,this._addRectangle(A.attributes,C,o,d,(R-B)*this._dimensions.device.cell.width,this._dimensions.device.cell.height,f,p,y,w)}_addRectangle(A,C,D,L,B,R,F,Q,K,N){A[C]=D/this._dimensions.device.canvas.width,A[C+1]=L/this._dimensions.device.canvas.height,A[C+2]=B/this._dimensions.device.canvas.width,A[C+3]=R/this._dimensions.device.canvas.height,A[C+4]=F,A[C+5]=Q,A[C+6]=K,A[C+7]=N}_addRectangleFloat(A,C,D,L,B,R,F){A[C]=D/this._dimensions.device.canvas.width,A[C+1]=L/this._dimensions.device.canvas.height,A[C+2]=B/this._dimensions.device.canvas.width,A[C+3]=R/this._dimensions.device.canvas.height,A[C+4]=F[0],A[C+5]=F[1],A[C+6]=F[2],A[C+7]=F[3]}_colorToFloat32Array(A){return new Float32Array([(A.rgba>>24&255)/255,(A.rgba>>16&255)/255,(A.rgba>>8&255)/255,(255&A.rgba)/255])}}t.RectangleRenderer=b},310:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RenderModel=t.COMBINED_CHAR_BIT_MASK=t.RENDER_MODEL_EXT_OFFSET=t.RENDER_MODEL_FG_OFFSET=t.RENDER_MODEL_BG_OFFSET=t.RENDER_MODEL_INDICIES_PER_CELL=void 0;let h=n(296);t.RENDER_MODEL_INDICIES_PER_CELL=4,t.RENDER_MODEL_BG_OFFSET=1,t.RENDER_MODEL_FG_OFFSET=2,t.RENDER_MODEL_EXT_OFFSET=3,t.COMBINED_CHAR_BIT_MASK=2147483648,t.RenderModel=class{constructor(){this.cells=new Uint32Array(0),this.lineLengths=new Uint32Array(0),this.selection=(0,h.createSelectionRenderModel)()}resize(g,a){let l=g*a*t.RENDER_MODEL_INDICIES_PER_CELL;l!==this.cells.length&&(this.cells=new Uint32Array(l),this.lineLengths=new Uint32Array(a))}clear(){this.cells.fill(0,0),this.lineLengths.fill(0,0)}}},666:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.JoinedCellData=t.WebglRenderer=void 0;let h=n(820),g=n(274),a=n(627),l=n(457),_=n(56),v=n(374),u=n(345),o=n(859),d=n(147),f=n(782),p=n(855),y=n(965),w=n(742),b=n(310),S=n(733);class A extends o.Disposable{constructor(B,R,F,Q,K,N,k,m,x){super(),this._terminal=B,this._characterJoinerService=R,this._charSizeService=F,this._coreBrowserService=Q,this._coreService=K,this._decorationService=N,this._optionsService=k,this._themeService=m,this._cursorBlinkStateManager=new o.MutableDisposable,this._charAtlasDisposable=this.register(new o.MutableDisposable),this._model=new b.RenderModel,this._workCell=new f.CellData,this._rectangleRenderer=this.register(new o.MutableDisposable),this._glyphRenderer=this.register(new o.MutableDisposable),this._onChangeTextureAtlas=this.register(new u.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new u.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this.register(new u.EventEmitter),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onRequestRedraw=this.register(new u.EventEmitter),this.onRequestRedraw=this._onRequestRedraw.event,this._onContextLoss=this.register(new u.EventEmitter),this.onContextLoss=this._onContextLoss.event,this.register(this._themeService.onChangeColors(()=>this._handleColorChange())),this._cellColorResolver=new g.CellColorResolver(this._terminal,this._model.selection,this._decorationService,this._coreBrowserService,this._themeService),this._core=this._terminal._core,this._renderLayers=[new S.LinkRenderLayer(this._core.screenElement,2,this._terminal,this._core.linkifier2,this._coreBrowserService,k,this._themeService)],this.dimensions=(0,v.createRenderDimensions)(),this._devicePixelRatio=this._coreBrowserService.dpr,this._updateDimensions(),this._updateCursorBlink(),this.register(k.onOptionChange(()=>this._handleOptionsChanged())),this._canvas=this._coreBrowserService.mainDocument.createElement("canvas");let E={antialias:!1,depth:!1,preserveDrawingBuffer:x};if(this._gl=this._canvas.getContext("webgl2",E),!this._gl)throw new Error("WebGL2 not supported "+this._gl);this.register((0,h.addDisposableDomListener)(this._canvas,"webglcontextlost",I=>{console.log("webglcontextlost event received"),I.preventDefault(),this._contextRestorationTimeout=setTimeout(()=>{this._contextRestorationTimeout=void 0,console.warn("webgl context not restored; firing onContextLoss"),this._onContextLoss.fire(I)},3e3)})),this.register((0,h.addDisposableDomListener)(this._canvas,"webglcontextrestored",I=>{console.warn("webglcontextrestored event received"),clearTimeout(this._contextRestorationTimeout),this._contextRestorationTimeout=void 0,(0,a.removeTerminalFromCache)(this._terminal),this._initializeWebGLState(),this._requestRedrawViewport()})),this.register((0,_.observeDevicePixelDimensions)(this._canvas,this._coreBrowserService.window,(I,M)=>this._setCanvasDevicePixelDimensions(I,M))),this._core.screenElement.appendChild(this._canvas),[this._rectangleRenderer.value,this._glyphRenderer.value]=this._initializeWebGLState(),this._isAttached=this._coreBrowserService.window.document.body.contains(this._core.screenElement),this.register((0,o.toDisposable)(()=>{for(let I of this._renderLayers)I.dispose();this._canvas.parentElement?.removeChild(this._canvas),(0,a.removeTerminalFromCache)(this._terminal)}))}get textureAtlas(){return this._charAtlas?.pages[0].canvas}_handleColorChange(){this._refreshCharAtlas(),this._clearModel(!0)}handleDevicePixelRatioChange(){this._devicePixelRatio!==this._coreBrowserService.dpr&&(this._devicePixelRatio=this._coreBrowserService.dpr,this.handleResize(this._terminal.cols,this._terminal.rows))}handleResize(B,R){this._updateDimensions(),this._model.resize(this._terminal.cols,this._terminal.rows);for(let F of this._renderLayers)F.resize(this._terminal,this.dimensions);this._canvas.width=this.dimensions.device.canvas.width,this._canvas.height=this.dimensions.device.canvas.height,this._canvas.style.width=`${this.dimensions.css.canvas.width}px`,this._canvas.style.height=`${this.dimensions.css.canvas.height}px`,this._core.screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._core.screenElement.style.height=`${this.dimensions.css.canvas.height}px`,this._rectangleRenderer.value?.setDimensions(this.dimensions),this._rectangleRenderer.value?.handleResize(),this._glyphRenderer.value?.setDimensions(this.dimensions),this._glyphRenderer.value?.handleResize(),this._refreshCharAtlas(),this._clearModel(!1)}handleCharSizeChanged(){this.handleResize(this._terminal.cols,this._terminal.rows)}handleBlur(){for(let B of this._renderLayers)B.handleBlur(this._terminal);this._cursorBlinkStateManager.value?.pause(),this._requestRedrawViewport()}handleFocus(){for(let B of this._renderLayers)B.handleFocus(this._terminal);this._cursorBlinkStateManager.value?.resume(),this._requestRedrawViewport()}handleSelectionChanged(B,R,F){for(let Q of this._renderLayers)Q.handleSelectionChanged(this._terminal,B,R,F);this._model.selection.update(this._terminal,B,R,F),this._requestRedrawViewport()}handleCursorMove(){for(let B of this._renderLayers)B.handleCursorMove(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation()}_handleOptionsChanged(){this._updateDimensions(),this._refreshCharAtlas(),this._updateCursorBlink()}_initializeWebGLState(){return this._rectangleRenderer.value=new w.RectangleRenderer(this._terminal,this._gl,this.dimensions,this._themeService),this._glyphRenderer.value=new y.GlyphRenderer(this._terminal,this._gl,this.dimensions),this.handleCharSizeChanged(),[this._rectangleRenderer.value,this._glyphRenderer.value]}_refreshCharAtlas(){if(this.dimensions.device.char.width<=0&&this.dimensions.device.char.height<=0)return void(this._isAttached=!1);let B=(0,a.acquireTextureAtlas)(this._terminal,this._optionsService.rawOptions,this._themeService.colors,this.dimensions.device.cell.width,this.dimensions.device.cell.height,this.dimensions.device.char.width,this.dimensions.device.char.height,this._coreBrowserService.dpr);this._charAtlas!==B&&(this._onChangeTextureAtlas.fire(B.pages[0].canvas),this._charAtlasDisposable.value=(0,o.getDisposeArrayDisposable)([(0,u.forwardEvent)(B.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas),(0,u.forwardEvent)(B.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)])),this._charAtlas=B,this._charAtlas.warmUp(),this._glyphRenderer.value?.setAtlas(this._charAtlas)}_clearModel(B){this._model.clear(),B&&this._glyphRenderer.value?.clear()}clearTextureAtlas(){this._charAtlas?.clearTexture(),this._clearModel(!0),this._requestRedrawViewport()}clear(){this._clearModel(!0);for(let B of this._renderLayers)B.reset(this._terminal);this._cursorBlinkStateManager.value?.restartBlinkAnimation(),this._updateCursorBlink()}registerCharacterJoiner(B){return-1}deregisterCharacterJoiner(B){return!1}renderRows(B,R){if(!this._isAttached){if(!(this._coreBrowserService.window.document.body.contains(this._core.screenElement)&&this._charSizeService.width&&this._charSizeService.height))return;this._updateDimensions(),this._refreshCharAtlas(),this._isAttached=!0}for(let F of this._renderLayers)F.handleGridChanged(this._terminal,B,R);this._glyphRenderer.value&&this._rectangleRenderer.value&&(this._glyphRenderer.value.beginFrame()?(this._clearModel(!0),this._updateModel(0,this._terminal.rows-1)):this._updateModel(B,R),this._rectangleRenderer.value.renderBackgrounds(),this._glyphRenderer.value.render(this._model),this._cursorBlinkStateManager.value&&!this._cursorBlinkStateManager.value.isCursorVisible||this._rectangleRenderer.value.renderCursor())}_updateCursorBlink(){this._terminal.options.cursorBlink?this._cursorBlinkStateManager.value=new l.CursorBlinkStateManager(()=>{this._requestRedrawCursor()},this._coreBrowserService):this._cursorBlinkStateManager.clear(),this._requestRedrawCursor()}_updateModel(B,R){let F=this._core,Q,K,N,k,m,x,E,I,M,X,$,W,P,T=this._workCell;B=D(B,F.rows-1,0),R=D(R,F.rows-1,0);let U=this._terminal.buffer.active.baseY+this._terminal.buffer.active.cursorY,Z=Math.min(this._terminal.buffer.active.cursorX,F.cols-1),te=-1,ee=this._coreService.isCursorInitialized&&!this._coreService.isCursorHidden&&(!this._cursorBlinkStateManager.value||this._cursorBlinkStateManager.value.isCursorVisible);this._model.cursor=void 0;let le=!1;for(K=B;K<=R;K++)for(N=K+F.buffer.ydisp,k=F.buffer.lines.get(N),this._model.lineLengths[K]=0,m=this._characterJoinerService.getJoinedCharacters(N),W=0;W0&&W===m[0][0]&&(x=!0,I=m.shift(),T=new C(T,k.translateToString(!0,I[0],I[1]),I[1]-I[0]),E=I[1]-1),M=T.getChars(),X=T.getCode(),$=(K*F.cols+W)*b.RENDER_MODEL_INDICIES_PER_CELL,this._cellColorResolver.resolve(T,W,N),ee&&N===U&&(W===Z&&(this._model.cursor={x:Z,y:this._terminal.buffer.active.cursorY,width:T.getWidth(),style:this._coreBrowserService.isFocused?F.options.cursorStyle||"block":F.options.cursorInactiveStyle,cursorWidth:F.options.cursorWidth,dpr:this._devicePixelRatio},te=Z+T.getWidth()-1),W>=Z&&W<=te&&(this._coreBrowserService.isFocused&&(F.options.cursorStyle||"block")==="block"||this._coreBrowserService.isFocused===!1&&F.options.cursorInactiveStyle==="block")&&(this._cellColorResolver.result.fg=50331648|this._themeService.colors.cursorAccent.rgba>>8&16777215,this._cellColorResolver.result.bg=50331648|this._themeService.colors.cursor.rgba>>8&16777215)),X!==p.NULL_CELL_CODE&&(this._model.lineLengths[K]=W+1),(this._model.cells[$]!==X||this._model.cells[$+b.RENDER_MODEL_BG_OFFSET]!==this._cellColorResolver.result.bg||this._model.cells[$+b.RENDER_MODEL_FG_OFFSET]!==this._cellColorResolver.result.fg||this._model.cells[$+b.RENDER_MODEL_EXT_OFFSET]!==this._cellColorResolver.result.ext)&&(le=!0,M.length>1&&(X|=b.COMBINED_CHAR_BIT_MASK),this._model.cells[$]=X,this._model.cells[$+b.RENDER_MODEL_BG_OFFSET]=this._cellColorResolver.result.bg,this._model.cells[$+b.RENDER_MODEL_FG_OFFSET]=this._cellColorResolver.result.fg,this._model.cells[$+b.RENDER_MODEL_EXT_OFFSET]=this._cellColorResolver.result.ext,this._glyphRenderer.value.updateCell(W,K,X,this._cellColorResolver.result.bg,this._cellColorResolver.result.fg,this._cellColorResolver.result.ext,M,Q),x))for(T=this._workCell,W++;W{Object.defineProperty(t,"__esModule",{value:!0}),t.GLTexture=t.expandFloat32Array=t.createShader=t.createProgram=t.PROJECTION_MATRIX=void 0;let h=n(374);function g(a,l,_){let v=(0,h.throwIfFalsy)(a.createShader(l));if(a.shaderSource(v,_),a.compileShader(v),a.getShaderParameter(v,a.COMPILE_STATUS))return v;console.error(a.getShaderInfoLog(v)),a.deleteShader(v)}t.PROJECTION_MATRIX=new Float32Array([2,0,0,0,0,-2,0,0,0,0,1,0,-1,1,0,1]),t.createProgram=function(a,l,_){let v=(0,h.throwIfFalsy)(a.createProgram());if(a.attachShader(v,(0,h.throwIfFalsy)(g(a,a.VERTEX_SHADER,l))),a.attachShader(v,(0,h.throwIfFalsy)(g(a,a.FRAGMENT_SHADER,_))),a.linkProgram(v),a.getProgramParameter(v,a.LINK_STATUS))return v;console.error(a.getProgramInfoLog(v)),a.deleteProgram(v)},t.createShader=g,t.expandFloat32Array=function(a,l){let _=Math.min(2*a.length,l),v=new Float32Array(_);for(let u=0;u{Object.defineProperty(t,"__esModule",{value:!0}),t.BaseRenderLayer=void 0;let h=n(627),g=n(237),a=n(374),l=n(859);class _ extends l.Disposable{constructor(u,o,d,f,p,y,w,b){super(),this._container=o,this._alpha=p,this._coreBrowserService=y,this._optionsService=w,this._themeService=b,this._deviceCharWidth=0,this._deviceCharHeight=0,this._deviceCellWidth=0,this._deviceCellHeight=0,this._deviceCharLeft=0,this._deviceCharTop=0,this._canvas=this._coreBrowserService.mainDocument.createElement("canvas"),this._canvas.classList.add(`xterm-${d}-layer`),this._canvas.style.zIndex=f.toString(),this._initCanvas(),this._container.appendChild(this._canvas),this.register(this._themeService.onChangeColors(S=>{this._refreshCharAtlas(u,S),this.reset(u)})),this.register((0,l.toDisposable)(()=>{this._canvas.remove()}))}_initCanvas(){this._ctx=(0,a.throwIfFalsy)(this._canvas.getContext("2d",{alpha:this._alpha})),this._alpha||this._clearAll()}handleBlur(u){}handleFocus(u){}handleCursorMove(u){}handleGridChanged(u,o,d){}handleSelectionChanged(u,o,d,f=!1){}_setTransparency(u,o){if(o===this._alpha)return;let d=this._canvas;this._alpha=o,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,d),this._refreshCharAtlas(u,this._themeService.colors),this.handleGridChanged(u,0,u.rows-1)}_refreshCharAtlas(u,o){this._deviceCharWidth<=0&&this._deviceCharHeight<=0||(this._charAtlas=(0,h.acquireTextureAtlas)(u,this._optionsService.rawOptions,o,this._deviceCellWidth,this._deviceCellHeight,this._deviceCharWidth,this._deviceCharHeight,this._coreBrowserService.dpr),this._charAtlas.warmUp())}resize(u,o){this._deviceCellWidth=o.device.cell.width,this._deviceCellHeight=o.device.cell.height,this._deviceCharWidth=o.device.char.width,this._deviceCharHeight=o.device.char.height,this._deviceCharLeft=o.device.char.left,this._deviceCharTop=o.device.char.top,this._canvas.width=o.device.canvas.width,this._canvas.height=o.device.canvas.height,this._canvas.style.width=`${o.css.canvas.width}px`,this._canvas.style.height=`${o.css.canvas.height}px`,this._alpha||this._clearAll(),this._refreshCharAtlas(u,this._themeService.colors)}_fillBottomLineAtCells(u,o,d=1){this._ctx.fillRect(u*this._deviceCellWidth,(o+1)*this._deviceCellHeight-this._coreBrowserService.dpr-1,d*this._deviceCellWidth,this._coreBrowserService.dpr)}_clearAll(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))}_clearCells(u,o,d,f){this._alpha?this._ctx.clearRect(u*this._deviceCellWidth,o*this._deviceCellHeight,d*this._deviceCellWidth,f*this._deviceCellHeight):(this._ctx.fillStyle=this._themeService.colors.background.css,this._ctx.fillRect(u*this._deviceCellWidth,o*this._deviceCellHeight,d*this._deviceCellWidth,f*this._deviceCellHeight))}_fillCharTrueColor(u,o,d,f){this._ctx.font=this._getFont(u,!1,!1),this._ctx.textBaseline=g.TEXT_BASELINE,this._clipCell(d,f,o.getWidth()),this._ctx.fillText(o.getChars(),d*this._deviceCellWidth+this._deviceCharLeft,f*this._deviceCellHeight+this._deviceCharTop+this._deviceCharHeight)}_clipCell(u,o,d){this._ctx.beginPath(),this._ctx.rect(u*this._deviceCellWidth,o*this._deviceCellHeight,d*this._deviceCellWidth,this._deviceCellHeight),this._ctx.clip()}_getFont(u,o,d){return`${d?"italic":""} ${o?u.options.fontWeightBold:u.options.fontWeight} ${u.options.fontSize*this._coreBrowserService.dpr}px ${u.options.fontFamily}`}}t.BaseRenderLayer=_},733:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkRenderLayer=void 0;let h=n(197),g=n(237),a=n(592);class l extends a.BaseRenderLayer{constructor(v,u,o,d,f,p,y){super(o,v,"link",u,!0,f,p,y),this.register(d.onShowLinkUnderline(w=>this._handleShowLinkUnderline(w))),this.register(d.onHideLinkUnderline(w=>this._handleHideLinkUnderline(w)))}resize(v,u){super.resize(v,u),this._state=void 0}reset(v){this._clearCurrentLink()}_clearCurrentLink(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);let v=this._state.y2-this._state.y1-1;v>0&&this._clearCells(0,this._state.y1+1,this._state.cols,v),this._clearCells(0,this._state.y2,this._state.x2,1),this._state=void 0}}_handleShowLinkUnderline(v){if(v.fg===g.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._themeService.colors.background.css:v.fg!==void 0&&(0,h.is256Color)(v.fg)?this._ctx.fillStyle=this._themeService.colors.ansi[v.fg].css:this._ctx.fillStyle=this._themeService.colors.foreground.css,v.y1===v.y2)this._fillBottomLineAtCells(v.x1,v.y1,v.x2-v.x1);else{this._fillBottomLineAtCells(v.x1,v.y1,v.cols-v.x1);for(let u=v.y1+1;u{Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(n,h,g,a){n.addEventListener(h,g,a);let l=!1;return{dispose:()=>{l||(l=!0,n.removeEventListener(h,g,a))}}}},274:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellColorResolver=void 0;let n,h=0,g=0,a=!1,l=!1,_=!1;t.CellColorResolver=class{constructor(v,u,o,d,f){this._terminal=v,this._selectionRenderModel=u,this._decorationService=o,this._coreBrowserService=d,this._themeService=f,this.result={fg:0,bg:0,ext:0}}resolve(v,u,o){this.result.bg=v.bg,this.result.fg=v.fg,this.result.ext=268435456&v.bg?v.extended.ext:0,g=0,h=0,l=!1,a=!1,_=!1,n=this._themeService.colors,this._decorationService.forEachDecorationAtCell(u,o,"bottom",d=>{d.backgroundColorRGB&&(g=d.backgroundColorRGB.rgba>>8&16777215,l=!0),d.foregroundColorRGB&&(h=d.foregroundColorRGB.rgba>>8&16777215,a=!0)}),_=this._selectionRenderModel.isCellSelected(this._terminal,u,o),_&&(g=(this._coreBrowserService.isFocused?n.selectionBackgroundOpaque:n.selectionInactiveBackgroundOpaque).rgba>>8&16777215,l=!0,n.selectionForeground&&(h=n.selectionForeground.rgba>>8&16777215,a=!0)),this._decorationService.forEachDecorationAtCell(u,o,"top",d=>{d.backgroundColorRGB&&(g=d.backgroundColorRGB.rgba>>8&16777215,l=!0),d.foregroundColorRGB&&(h=d.foregroundColorRGB.rgba>>8&16777215,a=!0)}),l&&(g=_?-16777216&v.bg&-134217729|g|50331648:-16777216&v.bg|g|50331648),a&&(h=-16777216&v.fg&-67108865|h|50331648),67108864&this.result.fg&&(l&&!a&&(h=50331648&this.result.bg?-134217728&this.result.fg|67108863&this.result.bg:-134217728&this.result.fg|16777215&n.background.rgba>>8|50331648,a=!0),!l&&a&&(g=50331648&this.result.fg?-67108864&this.result.bg|67108863&this.result.fg:-67108864&this.result.bg|16777215&n.foreground.rgba>>8|50331648,l=!0)),n=void 0,this.result.bg=l?g:this.result.bg,this.result.fg=a?h:this.result.fg}}},627:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.removeTerminalFromCache=t.acquireTextureAtlas=void 0;let h=n(509),g=n(197),a=[];t.acquireTextureAtlas=function(l,_,v,u,o,d,f,p){let y=(0,g.generateConfig)(u,o,d,f,_,v,p);for(let S=0;S=0){if((0,g.configEquals)(A.config,y))return A.atlas;A.ownedBy.length===1?(A.atlas.dispose(),a.splice(S,1)):A.ownedBy.splice(C,1);break}}for(let S=0;S{Object.defineProperty(t,"__esModule",{value:!0}),t.is256Color=t.configEquals=t.generateConfig=void 0;let h=n(160);t.generateConfig=function(g,a,l,_,v,u,o){let d={foreground:u.foreground,background:u.background,cursor:h.NULL_COLOR,cursorAccent:h.NULL_COLOR,selectionForeground:h.NULL_COLOR,selectionBackgroundTransparent:h.NULL_COLOR,selectionBackgroundOpaque:h.NULL_COLOR,selectionInactiveBackgroundTransparent:h.NULL_COLOR,selectionInactiveBackgroundOpaque:h.NULL_COLOR,ansi:u.ansi.slice(),contrastCache:u.contrastCache,halfContrastCache:u.halfContrastCache};return{customGlyphs:v.customGlyphs,devicePixelRatio:o,letterSpacing:v.letterSpacing,lineHeight:v.lineHeight,deviceCellWidth:g,deviceCellHeight:a,deviceCharWidth:l,deviceCharHeight:_,fontFamily:v.fontFamily,fontSize:v.fontSize,fontWeight:v.fontWeight,fontWeightBold:v.fontWeightBold,allowTransparency:v.allowTransparency,drawBoldTextInBrightColors:v.drawBoldTextInBrightColors,minimumContrastRatio:v.minimumContrastRatio,colors:d}},t.configEquals=function(g,a){for(let l=0;l{Object.defineProperty(t,"__esModule",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;let h=n(399);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=h.isFirefox||h.isLegacyEdge?"bottom":"ideographic"},457:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CursorBlinkStateManager=void 0,t.CursorBlinkStateManager=class{constructor(n,h){this._renderCallback=n,this._coreBrowserService=h,this.isCursorVisible=!0,this._coreBrowserService.isFocused&&this._restartInterval()}get isPaused(){return!(this._blinkStartTimeout||this._blinkInterval)}dispose(){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}restartBlinkAnimation(){this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0})))}_restartInterval(n=600){this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout=this._coreBrowserService.window.setTimeout(()=>{if(this._animationTimeRestarted){let h=600-(Date.now()-this._animationTimeRestarted);if(this._animationTimeRestarted=void 0,h>0)return void this._restartInterval(h)}this.isCursorVisible=!1,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0}),this._blinkInterval=this._coreBrowserService.window.setInterval(()=>{if(this._animationTimeRestarted){let h=600-(Date.now()-this._animationTimeRestarted);return this._animationTimeRestarted=void 0,void this._restartInterval(h)}this.isCursorVisible=!this.isCursorVisible,this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._renderCallback(),this._animationFrame=void 0})},600)},n)}pause(){this.isCursorVisible=!0,this._blinkInterval&&(this._coreBrowserService.window.clearInterval(this._blinkInterval),this._blinkInterval=void 0),this._blinkStartTimeout&&(this._coreBrowserService.window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=void 0),this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}resume(){this.pause(),this._animationTimeRestarted=void 0,this._restartInterval(),this.restartBlinkAnimation()}}},860:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.tryDrawCustomChar=t.powerlineDefinitions=t.boxDrawingDefinitions=t.blockElementDefinitions=void 0;let h=n(374);t.blockElementDefinitions={"\u2580":[{x:0,y:0,w:8,h:4}],"\u2581":[{x:0,y:7,w:8,h:1}],"\u2582":[{x:0,y:6,w:8,h:2}],"\u2583":[{x:0,y:5,w:8,h:3}],"\u2584":[{x:0,y:4,w:8,h:4}],"\u2585":[{x:0,y:3,w:8,h:5}],"\u2586":[{x:0,y:2,w:8,h:6}],"\u2587":[{x:0,y:1,w:8,h:7}],"\u2588":[{x:0,y:0,w:8,h:8}],"\u2589":[{x:0,y:0,w:7,h:8}],"\u258A":[{x:0,y:0,w:6,h:8}],"\u258B":[{x:0,y:0,w:5,h:8}],"\u258C":[{x:0,y:0,w:4,h:8}],"\u258D":[{x:0,y:0,w:3,h:8}],"\u258E":[{x:0,y:0,w:2,h:8}],"\u258F":[{x:0,y:0,w:1,h:8}],"\u2590":[{x:4,y:0,w:4,h:8}],"\u2594":[{x:0,y:0,w:8,h:1}],"\u2595":[{x:7,y:0,w:1,h:8}],"\u2596":[{x:0,y:4,w:4,h:4}],"\u2597":[{x:4,y:4,w:4,h:4}],"\u2598":[{x:0,y:0,w:4,h:4}],"\u2599":[{x:0,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"\u259A":[{x:0,y:0,w:4,h:4},{x:4,y:4,w:4,h:4}],"\u259B":[{x:0,y:0,w:4,h:8},{x:4,y:0,w:4,h:4}],"\u259C":[{x:0,y:0,w:8,h:4},{x:4,y:0,w:4,h:8}],"\u259D":[{x:4,y:0,w:4,h:4}],"\u259E":[{x:4,y:0,w:4,h:4},{x:0,y:4,w:4,h:4}],"\u259F":[{x:4,y:0,w:4,h:8},{x:0,y:4,w:8,h:4}],"\u{1FB70}":[{x:1,y:0,w:1,h:8}],"\u{1FB71}":[{x:2,y:0,w:1,h:8}],"\u{1FB72}":[{x:3,y:0,w:1,h:8}],"\u{1FB73}":[{x:4,y:0,w:1,h:8}],"\u{1FB74}":[{x:5,y:0,w:1,h:8}],"\u{1FB75}":[{x:6,y:0,w:1,h:8}],"\u{1FB76}":[{x:0,y:1,w:8,h:1}],"\u{1FB77}":[{x:0,y:2,w:8,h:1}],"\u{1FB78}":[{x:0,y:3,w:8,h:1}],"\u{1FB79}":[{x:0,y:4,w:8,h:1}],"\u{1FB7A}":[{x:0,y:5,w:8,h:1}],"\u{1FB7B}":[{x:0,y:6,w:8,h:1}],"\u{1FB7C}":[{x:0,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"\u{1FB7D}":[{x:0,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"\u{1FB7E}":[{x:7,y:0,w:1,h:8},{x:0,y:0,w:8,h:1}],"\u{1FB7F}":[{x:7,y:0,w:1,h:8},{x:0,y:7,w:8,h:1}],"\u{1FB80}":[{x:0,y:0,w:8,h:1},{x:0,y:7,w:8,h:1}],"\u{1FB81}":[{x:0,y:0,w:8,h:1},{x:0,y:2,w:8,h:1},{x:0,y:4,w:8,h:1},{x:0,y:7,w:8,h:1}],"\u{1FB82}":[{x:0,y:0,w:8,h:2}],"\u{1FB83}":[{x:0,y:0,w:8,h:3}],"\u{1FB84}":[{x:0,y:0,w:8,h:5}],"\u{1FB85}":[{x:0,y:0,w:8,h:6}],"\u{1FB86}":[{x:0,y:0,w:8,h:7}],"\u{1FB87}":[{x:6,y:0,w:2,h:8}],"\u{1FB88}":[{x:5,y:0,w:3,h:8}],"\u{1FB89}":[{x:3,y:0,w:5,h:8}],"\u{1FB8A}":[{x:2,y:0,w:6,h:8}],"\u{1FB8B}":[{x:1,y:0,w:7,h:8}],"\u{1FB95}":[{x:0,y:0,w:2,h:2},{x:4,y:0,w:2,h:2},{x:2,y:2,w:2,h:2},{x:6,y:2,w:2,h:2},{x:0,y:4,w:2,h:2},{x:4,y:4,w:2,h:2},{x:2,y:6,w:2,h:2},{x:6,y:6,w:2,h:2}],"\u{1FB96}":[{x:2,y:0,w:2,h:2},{x:6,y:0,w:2,h:2},{x:0,y:2,w:2,h:2},{x:4,y:2,w:2,h:2},{x:2,y:4,w:2,h:2},{x:6,y:4,w:2,h:2},{x:0,y:6,w:2,h:2},{x:4,y:6,w:2,h:2}],"\u{1FB97}":[{x:0,y:2,w:8,h:2},{x:0,y:6,w:8,h:2}]};let g={"\u2591":[[1,0,0,0],[0,0,0,0],[0,0,1,0],[0,0,0,0]],"\u2592":[[1,0],[0,0],[0,1],[0,0]],"\u2593":[[0,1],[1,1],[1,0],[1,1]]};t.boxDrawingDefinitions={"\u2500":{1:"M0,.5 L1,.5"},"\u2501":{3:"M0,.5 L1,.5"},"\u2502":{1:"M.5,0 L.5,1"},"\u2503":{3:"M.5,0 L.5,1"},"\u250C":{1:"M0.5,1 L.5,.5 L1,.5"},"\u250F":{3:"M0.5,1 L.5,.5 L1,.5"},"\u2510":{1:"M0,.5 L.5,.5 L.5,1"},"\u2513":{3:"M0,.5 L.5,.5 L.5,1"},"\u2514":{1:"M.5,0 L.5,.5 L1,.5"},"\u2517":{3:"M.5,0 L.5,.5 L1,.5"},"\u2518":{1:"M.5,0 L.5,.5 L0,.5"},"\u251B":{3:"M.5,0 L.5,.5 L0,.5"},"\u251C":{1:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u2523":{3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u2524":{1:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u252B":{3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u252C":{1:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2533":{3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2534":{1:"M0,.5 L1,.5 M.5,.5 L.5,0"},"\u253B":{3:"M0,.5 L1,.5 M.5,.5 L.5,0"},"\u253C":{1:"M0,.5 L1,.5 M.5,0 L.5,1"},"\u254B":{3:"M0,.5 L1,.5 M.5,0 L.5,1"},"\u2574":{1:"M.5,.5 L0,.5"},"\u2578":{3:"M.5,.5 L0,.5"},"\u2575":{1:"M.5,.5 L.5,0"},"\u2579":{3:"M.5,.5 L.5,0"},"\u2576":{1:"M.5,.5 L1,.5"},"\u257A":{3:"M.5,.5 L1,.5"},"\u2577":{1:"M.5,.5 L.5,1"},"\u257B":{3:"M.5,.5 L.5,1"},"\u2550":{1:(u,o)=>`M0,${.5-o} L1,${.5-o} M0,${.5+o} L1,${.5+o}`},"\u2551":{1:(u,o)=>`M${.5-u},0 L${.5-u},1 M${.5+u},0 L${.5+u},1`},"\u2552":{1:(u,o)=>`M.5,1 L.5,${.5-o} L1,${.5-o} M.5,${.5+o} L1,${.5+o}`},"\u2553":{1:(u,o)=>`M${.5-u},1 L${.5-u},.5 L1,.5 M${.5+u},.5 L${.5+u},1`},"\u2554":{1:(u,o)=>`M1,${.5-o} L${.5-u},${.5-o} L${.5-u},1 M1,${.5+o} L${.5+u},${.5+o} L${.5+u},1`},"\u2555":{1:(u,o)=>`M0,${.5-o} L.5,${.5-o} L.5,1 M0,${.5+o} L.5,${.5+o}`},"\u2556":{1:(u,o)=>`M${.5+u},1 L${.5+u},.5 L0,.5 M${.5-u},.5 L${.5-u},1`},"\u2557":{1:(u,o)=>`M0,${.5+o} L${.5-u},${.5+o} L${.5-u},1 M0,${.5-o} L${.5+u},${.5-o} L${.5+u},1`},"\u2558":{1:(u,o)=>`M.5,0 L.5,${.5+o} L1,${.5+o} M.5,${.5-o} L1,${.5-o}`},"\u2559":{1:(u,o)=>`M1,.5 L${.5-u},.5 L${.5-u},0 M${.5+u},.5 L${.5+u},0`},"\u255A":{1:(u,o)=>`M1,${.5-o} L${.5+u},${.5-o} L${.5+u},0 M1,${.5+o} L${.5-u},${.5+o} L${.5-u},0`},"\u255B":{1:(u,o)=>`M0,${.5+o} L.5,${.5+o} L.5,0 M0,${.5-o} L.5,${.5-o}`},"\u255C":{1:(u,o)=>`M0,.5 L${.5+u},.5 L${.5+u},0 M${.5-u},.5 L${.5-u},0`},"\u255D":{1:(u,o)=>`M0,${.5-o} L${.5-u},${.5-o} L${.5-u},0 M0,${.5+o} L${.5+u},${.5+o} L${.5+u},0`},"\u255E":{1:(u,o)=>`M.5,0 L.5,1 M.5,${.5-o} L1,${.5-o} M.5,${.5+o} L1,${.5+o}`},"\u255F":{1:(u,o)=>`M${.5-u},0 L${.5-u},1 M${.5+u},0 L${.5+u},1 M${.5+u},.5 L1,.5`},"\u2560":{1:(u,o)=>`M${.5-u},0 L${.5-u},1 M1,${.5+o} L${.5+u},${.5+o} L${.5+u},1 M1,${.5-o} L${.5+u},${.5-o} L${.5+u},0`},"\u2561":{1:(u,o)=>`M.5,0 L.5,1 M0,${.5-o} L.5,${.5-o} M0,${.5+o} L.5,${.5+o}`},"\u2562":{1:(u,o)=>`M0,.5 L${.5-u},.5 M${.5-u},0 L${.5-u},1 M${.5+u},0 L${.5+u},1`},"\u2563":{1:(u,o)=>`M${.5+u},0 L${.5+u},1 M0,${.5+o} L${.5-u},${.5+o} L${.5-u},1 M0,${.5-o} L${.5-u},${.5-o} L${.5-u},0`},"\u2564":{1:(u,o)=>`M0,${.5-o} L1,${.5-o} M0,${.5+o} L1,${.5+o} M.5,${.5+o} L.5,1`},"\u2565":{1:(u,o)=>`M0,.5 L1,.5 M${.5-u},.5 L${.5-u},1 M${.5+u},.5 L${.5+u},1`},"\u2566":{1:(u,o)=>`M0,${.5-o} L1,${.5-o} M0,${.5+o} L${.5-u},${.5+o} L${.5-u},1 M1,${.5+o} L${.5+u},${.5+o} L${.5+u},1`},"\u2567":{1:(u,o)=>`M.5,0 L.5,${.5-o} M0,${.5-o} L1,${.5-o} M0,${.5+o} L1,${.5+o}`},"\u2568":{1:(u,o)=>`M0,.5 L1,.5 M${.5-u},.5 L${.5-u},0 M${.5+u},.5 L${.5+u},0`},"\u2569":{1:(u,o)=>`M0,${.5+o} L1,${.5+o} M0,${.5-o} L${.5-u},${.5-o} L${.5-u},0 M1,${.5-o} L${.5+u},${.5-o} L${.5+u},0`},"\u256A":{1:(u,o)=>`M.5,0 L.5,1 M0,${.5-o} L1,${.5-o} M0,${.5+o} L1,${.5+o}`},"\u256B":{1:(u,o)=>`M0,.5 L1,.5 M${.5-u},0 L${.5-u},1 M${.5+u},0 L${.5+u},1`},"\u256C":{1:(u,o)=>`M0,${.5+o} L${.5-u},${.5+o} L${.5-u},1 M1,${.5+o} L${.5+u},${.5+o} L${.5+u},1 M0,${.5-o} L${.5-u},${.5-o} L${.5-u},0 M1,${.5-o} L${.5+u},${.5-o} L${.5+u},0`},"\u2571":{1:"M1,0 L0,1"},"\u2572":{1:"M0,0 L1,1"},"\u2573":{1:"M1,0 L0,1 M0,0 L1,1"},"\u257C":{1:"M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u257D":{1:"M.5,.5 L.5,0",3:"M.5,.5 L.5,1"},"\u257E":{1:"M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u257F":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u250D":{1:"M.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"\u250E":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2511":{1:"M.5,.5 L.5,1",3:"M.5,.5 L0,.5"},"\u2512":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"\u2515":{1:"M.5,.5 L.5,0",3:"M.5,.5 L1,.5"},"\u2516":{1:"M.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u2519":{1:"M.5,.5 L.5,0",3:"M.5,.5 L0,.5"},"\u251A":{1:"M.5,.5 L0,.5",3:"M.5,.5 L.5,0"},"\u251D":{1:"M.5,0 L.5,1",3:"M.5,.5 L1,.5"},"\u251E":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u251F":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2520":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1"},"\u2521":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"\u2522":{1:"M.5,.5 L.5,0",3:"M0.5,1 L.5,.5 L1,.5"},"\u2525":{1:"M.5,0 L.5,1",3:"M.5,.5 L0,.5"},"\u2526":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u2527":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L.5,1"},"\u2528":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1"},"\u2529":{1:"M.5,.5 L.5,1",3:"M.5,0 L.5,.5 L0,.5"},"\u252A":{1:"M.5,.5 L.5,0",3:"M0,.5 L.5,.5 L.5,1"},"\u252D":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u252E":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,.5 L1,.5"},"\u252F":{1:"M.5,.5 L.5,1",3:"M0,.5 L1,.5"},"\u2530":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2531":{1:"M.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"\u2532":{1:"M.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"\u2535":{1:"M.5,0 L.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u2536":{1:"M.5,0 L.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u2537":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5"},"\u2538":{1:"M0,.5 L1,.5",3:"M.5,.5 L.5,0"},"\u2539":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"\u253A":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,.5 L1,.5"},"\u253D":{1:"M.5,0 L.5,1 M.5,.5 L1,.5",3:"M.5,.5 L0,.5"},"\u253E":{1:"M.5,0 L.5,1 M.5,.5 L0,.5",3:"M.5,.5 L1,.5"},"\u253F":{1:"M.5,0 L.5,1",3:"M0,.5 L1,.5"},"\u2540":{1:"M0,.5 L1,.5 M.5,.5 L.5,1",3:"M.5,.5 L.5,0"},"\u2541":{1:"M.5,.5 L.5,0 M0,.5 L1,.5",3:"M.5,.5 L.5,1"},"\u2542":{1:"M0,.5 L1,.5",3:"M.5,0 L.5,1"},"\u2543":{1:"M0.5,1 L.5,.5 L1,.5",3:"M.5,0 L.5,.5 L0,.5"},"\u2544":{1:"M0,.5 L.5,.5 L.5,1",3:"M.5,0 L.5,.5 L1,.5"},"\u2545":{1:"M.5,0 L.5,.5 L1,.5",3:"M0,.5 L.5,.5 L.5,1"},"\u2546":{1:"M.5,0 L.5,.5 L0,.5",3:"M0.5,1 L.5,.5 L1,.5"},"\u2547":{1:"M.5,.5 L.5,1",3:"M.5,.5 L.5,0 M0,.5 L1,.5"},"\u2548":{1:"M.5,.5 L.5,0",3:"M0,.5 L1,.5 M.5,.5 L.5,1"},"\u2549":{1:"M.5,.5 L1,.5",3:"M.5,0 L.5,1 M.5,.5 L0,.5"},"\u254A":{1:"M.5,.5 L0,.5",3:"M.5,0 L.5,1 M.5,.5 L1,.5"},"\u254C":{1:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"\u254D":{3:"M.1,.5 L.4,.5 M.6,.5 L.9,.5"},"\u2504":{1:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"\u2505":{3:"M.0667,.5 L.2667,.5 M.4,.5 L.6,.5 M.7333,.5 L.9333,.5"},"\u2508":{1:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"\u2509":{3:"M.05,.5 L.2,.5 M.3,.5 L.45,.5 M.55,.5 L.7,.5 M.8,.5 L.95,.5"},"\u254E":{1:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"\u254F":{3:"M.5,.1 L.5,.4 M.5,.6 L.5,.9"},"\u2506":{1:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"\u2507":{3:"M.5,.0667 L.5,.2667 M.5,.4 L.5,.6 M.5,.7333 L.5,.9333"},"\u250A":{1:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"\u250B":{3:"M.5,.05 L.5,.2 M.5,.3 L.5,.45 L.5,.55 M.5,.7 L.5,.95"},"\u256D":{1:(u,o)=>`M.5,1 L.5,${.5+o/.15*.5} C.5,${.5+o/.15*.5},.5,.5,1,.5`},"\u256E":{1:(u,o)=>`M.5,1 L.5,${.5+o/.15*.5} C.5,${.5+o/.15*.5},.5,.5,0,.5`},"\u256F":{1:(u,o)=>`M.5,0 L.5,${.5-o/.15*.5} C.5,${.5-o/.15*.5},.5,.5,0,.5`},"\u2570":{1:(u,o)=>`M.5,0 L.5,${.5-o/.15*.5} C.5,${.5-o/.15*.5},.5,.5,1,.5`}},t.powerlineDefinitions={"\uE0B0":{d:"M0,0 L1,.5 L0,1",type:0,rightPadding:2},"\uE0B1":{d:"M-1,-.5 L1,.5 L-1,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0B2":{d:"M1,0 L0,.5 L1,1",type:0,leftPadding:2},"\uE0B3":{d:"M2,-.5 L0,.5 L2,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0B4":{d:"M0,0 L0,1 C0.552,1,1,0.776,1,.5 C1,0.224,0.552,0,0,0",type:0,rightPadding:1},"\uE0B5":{d:"M.2,1 C.422,1,.8,.826,.78,.5 C.8,.174,0.422,0,.2,0",type:1,rightPadding:1},"\uE0B6":{d:"M1,0 L1,1 C0.448,1,0,0.776,0,.5 C0,0.224,0.448,0,1,0",type:0,leftPadding:1},"\uE0B7":{d:"M.8,1 C0.578,1,0.2,.826,.22,.5 C0.2,0.174,0.578,0,0.8,0",type:1,leftPadding:1},"\uE0B8":{d:"M-.5,-.5 L1.5,1.5 L-.5,1.5",type:0},"\uE0B9":{d:"M-.5,-.5 L1.5,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0BA":{d:"M1.5,-.5 L-.5,1.5 L1.5,1.5",type:0},"\uE0BC":{d:"M1.5,-.5 L-.5,1.5 L-.5,-.5",type:0},"\uE0BD":{d:"M1.5,-.5 L-.5,1.5",type:1,leftPadding:1,rightPadding:1},"\uE0BE":{d:"M-.5,-.5 L1.5,1.5 L1.5,-.5",type:0}},t.powerlineDefinitions["\uE0BB"]=t.powerlineDefinitions["\uE0BD"],t.powerlineDefinitions["\uE0BF"]=t.powerlineDefinitions["\uE0B9"],t.tryDrawCustomChar=function(u,o,d,f,p,y,w,b){let S=t.blockElementDefinitions[o];if(S)return function(L,B,R,F,Q,K){for(let N=0;N7&&parseInt(k.slice(7,9),16)||1;else{if(!k.startsWith("rgba"))throw new Error(`Unexpected fillStyle color format "${k}" when drawing pattern glyph`);[$,W,P,T]=k.substring(5,k.length-1).split(",").map(U=>parseFloat(U))}for(let U=0;Uu.bezierCurveTo(o[0],o[1],o[2],o[3],o[4],o[5]),L:(u,o)=>u.lineTo(o[0],o[1]),M:(u,o)=>u.moveTo(o[0],o[1])};function v(u,o,d,f,p,y,w,b=0,S=0){let A=u.map(C=>parseFloat(C)||parseInt(C));if(A.length<2)throw new Error("Too few arguments for instruction");for(let C=0;C{Object.defineProperty(t,"__esModule",{value:!0}),t.observeDevicePixelDimensions=void 0;let h=n(859);t.observeDevicePixelDimensions=function(g,a,l){let _=new a.ResizeObserver(v=>{let u=v.find(f=>f.target===g);if(!u)return;if(!("devicePixelContentBoxSize"in u))return _?.disconnect(),void(_=void 0);let o=u.devicePixelContentBoxSize[0].inlineSize,d=u.devicePixelContentBoxSize[0].blockSize;o>0&&d>0&&l(o,d)});try{_.observe(g,{box:["device-pixel-content-box"]})}catch{_.disconnect(),_=void 0}return(0,h.toDisposable)(()=>_?.disconnect())}},374:(c,t)=>{function n(h){return 57508<=h&&h<=57558}Object.defineProperty(t,"__esModule",{value:!0}),t.createRenderDimensions=t.excludeFromContrastRatioDemands=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(h){if(!h)throw new Error("value must not be falsy");return h},t.isPowerlineGlyph=n,t.isRestrictedPowerlineGlyph=function(h){return 57520<=h&&h<=57527},t.excludeFromContrastRatioDemands=function(h){return n(h)||function(g){return 9472<=g&&g<=9631}(h)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}}},296:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createSelectionRenderModel=void 0;class n{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(g,a,l,_=!1){if(this.selectionStart=a,this.selectionEnd=l,!a||!l||a[0]===l[0]&&a[1]===l[1])return void this.clear();let v=a[1]-g.buffer.active.viewportY,u=l[1]-g.buffer.active.viewportY,o=Math.max(v,0),d=Math.min(u,g.rows-1);o>=g.rows||d<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=_,this.viewportStartRow=v,this.viewportEndRow=u,this.viewportCappedStartRow=o,this.viewportCappedEndRow=d,this.startCol=a[0],this.endCol=l[0])}isCellSelected(g,a,l){return!!this.hasSelection&&(l-=g.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?a>=this.startCol&&l>=this.viewportCappedStartRow&&a=this.viewportCappedStartRow&&a>=this.endCol&&l<=this.viewportCappedEndRow:l>this.viewportStartRow&&l=this.startCol&&a=this.startCol)}}t.createSelectionRenderModel=function(){return new n}},509:function(c,t,n){var h=this&&this.__decorate||function(D,L,B,R){var F,Q=arguments.length,K=Q<3?L:R===null?R=Object.getOwnPropertyDescriptor(L,B):R;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")K=Reflect.decorate(D,L,B,R);else for(var N=D.length-1;N>=0;N--)(F=D[N])&&(K=(Q<3?F(K):Q>3?F(L,B,K):F(L,B))||K);return Q>3&&K&&Object.defineProperty(L,B,K),K};Object.defineProperty(t,"__esModule",{value:!0}),t.TextureAtlas=void 0;let g=n(237),a=n(860),l=n(374),_=n(160),v=n(345),u=n(485),o=n(385),d=n(147),f=n(855),p=n(776),y={texturePage:0,texturePosition:{x:0,y:0},texturePositionClipSpace:{x:0,y:0},offset:{x:0,y:0},size:{x:0,y:0},sizeClipSpace:{x:0,y:0}},w;class b{get pages(){return this._pages}constructor(L,B,R){this._document=L,this._config=B,this._unicodeService=R,this._didWarmUp=!1,this._cacheMap=new u.FourKeyMap,this._cacheMapCombined=new u.FourKeyMap,this._pages=[],this._activePages=[],this._workBoundingBox={top:0,left:0,bottom:0,right:0},this._workAttributeData=new d.AttributeData,this._textureSize=512,this._onAddTextureAtlasCanvas=new v.EventEmitter,this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=new v.EventEmitter,this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._requestClearModel=!1,this._createNewPage(),this._tmpCanvas=C(L,4*this._config.deviceCellWidth+4,this._config.deviceCellHeight+4),this._tmpCtx=(0,l.throwIfFalsy)(this._tmpCanvas.getContext("2d",{alpha:this._config.allowTransparency,willReadFrequently:!0}))}dispose(){for(let L of this.pages)L.canvas.remove();this._onAddTextureAtlasCanvas.dispose()}warmUp(){this._didWarmUp||(this._doWarmUp(),this._didWarmUp=!0)}_doWarmUp(){let L=new o.IdleTaskQueue;for(let B=33;B<126;B++)L.enqueue(()=>{if(!this._cacheMap.get(B,f.DEFAULT_COLOR,f.DEFAULT_COLOR,f.DEFAULT_EXT)){let R=this._drawToCache(B,f.DEFAULT_COLOR,f.DEFAULT_COLOR,f.DEFAULT_EXT);this._cacheMap.set(B,f.DEFAULT_COLOR,f.DEFAULT_COLOR,f.DEFAULT_EXT,R)}})}beginFrame(){return this._requestClearModel}clearTexture(){if(this._pages[0].currentRow.x!==0||this._pages[0].currentRow.y!==0){for(let L of this._pages)L.clear();this._cacheMap.clear(),this._cacheMapCombined.clear(),this._didWarmUp=!1}}_createNewPage(){if(b.maxAtlasPages&&this._pages.length>=Math.max(4,b.maxAtlasPages)){let B=this._pages.filter(m=>2*m.canvas.width<=(b.maxTextureSize||4096)).sort((m,x)=>x.canvas.width!==m.canvas.width?x.canvas.width-m.canvas.width:x.percentageUsed-m.percentageUsed),R=-1,F=0;for(let m=0;mm.glyphs[0].texturePage).sort((m,x)=>m>x?1:-1),N=this.pages.length-Q.length,k=this._mergePages(Q,N);k.version++;for(let m=K.length-1;m>=0;m--)this._deletePage(K[m]);this.pages.push(k),this._requestClearModel=!0,this._onAddTextureAtlasCanvas.fire(k.canvas)}let L=new S(this._document,this._textureSize);return this._pages.push(L),this._activePages.push(L),this._onAddTextureAtlasCanvas.fire(L.canvas),L}_mergePages(L,B){let R=2*L[0].canvas.width,F=new S(this._document,R,L);for(let[Q,K]of L.entries()){let N=Q*K.canvas.width%R,k=Math.floor(Q/2)*K.canvas.height;F.ctx.drawImage(K.canvas,N,k);for(let x of K.glyphs)x.texturePage=B,x.sizeClipSpace.x=x.size.x/R,x.sizeClipSpace.y=x.size.y/R,x.texturePosition.x+=N,x.texturePosition.y+=k,x.texturePositionClipSpace.x=x.texturePosition.x/R,x.texturePositionClipSpace.y=x.texturePosition.y/R;this._onRemoveTextureAtlasCanvas.fire(K.canvas);let m=this._activePages.indexOf(K);m!==-1&&this._activePages.splice(m,1)}return F}_deletePage(L){this._pages.splice(L,1);for(let B=L;B=this._config.colors.ansi.length)throw new Error("No color found for idx "+L);return this._config.colors.ansi[L]}_getBackgroundColor(L,B,R,F){if(this._config.allowTransparency)return _.NULL_COLOR;let Q;switch(L){case 16777216:case 33554432:Q=this._getColorFromAnsiIndex(B);break;case 50331648:let K=d.AttributeData.toColorRGB(B);Q=_.rgba.toColor(K[0],K[1],K[2]);break;default:Q=R?_.color.opaque(this._config.colors.foreground):this._config.colors.background}return Q}_getForegroundColor(L,B,R,F,Q,K,N,k,m,x){let E=this._getMinimumContrastColor(L,B,R,F,Q,K,N,m,k,x);if(E)return E;let I;switch(Q){case 16777216:case 33554432:this._config.drawBoldTextInBrightColors&&m&&K<8&&(K+=8),I=this._getColorFromAnsiIndex(K);break;case 50331648:let M=d.AttributeData.toColorRGB(K);I=_.rgba.toColor(M[0],M[1],M[2]);break;default:I=N?this._config.colors.background:this._config.colors.foreground}return this._config.allowTransparency&&(I=_.color.opaque(I)),k&&(I=_.color.multiplyOpacity(I,g.DIM_OPACITY)),I}_resolveBackgroundRgba(L,B,R){switch(L){case 16777216:case 33554432:return this._getColorFromAnsiIndex(B).rgba;case 50331648:return B<<8;default:return R?this._config.colors.foreground.rgba:this._config.colors.background.rgba}}_resolveForegroundRgba(L,B,R,F){switch(L){case 16777216:case 33554432:return this._config.drawBoldTextInBrightColors&&F&&B<8&&(B+=8),this._getColorFromAnsiIndex(B).rgba;case 50331648:return B<<8;default:return R?this._config.colors.background.rgba:this._config.colors.foreground.rgba}}_getMinimumContrastColor(L,B,R,F,Q,K,N,k,m,x){if(this._config.minimumContrastRatio===1||x)return;let E=this._getContrastCache(m),I=E.getColor(L,F);if(I!==void 0)return I||void 0;let M=this._resolveBackgroundRgba(B,R,N),X=this._resolveForegroundRgba(Q,K,N,k),$=_.rgba.ensureContrastRatio(M,X,this._config.minimumContrastRatio/(m?2:1));if(!$)return void E.setColor(L,F,null);let W=_.rgba.toColor($>>24&255,$>>16&255,$>>8&255);return E.setColor(L,F,W),W}_getContrastCache(L){return L?this._config.colors.halfContrastCache:this._config.colors.contrastCache}_drawToCache(L,B,R,F,Q=!1){let K=typeof L=="number"?String.fromCharCode(L):L,N=Math.min(this._config.deviceCellWidth*Math.max(K.length,2)+4,this._textureSize);this._tmpCanvas.width=12&&!this._config.allowTransparency&&K!==" "){this._tmpCtx.save(),this._tmpCtx.textBaseline="alphabetic";let Me=this._tmpCtx.measureText(K);if(this._tmpCtx.restore(),"actualBoundingBoxDescent"in Me&&Me.actualBoundingBoxDescent>0){this._tmpCtx.save();let ce=new Path2D;ce.rect(Xe,Ce-Math.ceil(se/2),this._config.deviceCellWidth*tt,$e-Ce+Math.ceil(se/2)),this._tmpCtx.clip(ce),this._tmpCtx.lineWidth=3*this._config.devicePixelRatio,this._tmpCtx.strokeStyle=Z.css,this._tmpCtx.strokeText(K,he,he+this._config.deviceCharHeight),this._tmpCtx.restore()}}}if($){let se=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/15)),pe=se%2==1?.5:0;this._tmpCtx.lineWidth=se,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(he,he+pe),this._tmpCtx.lineTo(he+this._config.deviceCharWidth*tt,he+pe),this._tmpCtx.stroke()}if(ne||this._tmpCtx.fillText(K,he,he+this._config.deviceCharHeight),K==="_"&&!this._config.allowTransparency){let se=A(this._tmpCtx.getImageData(he,he,this._config.deviceCellWidth,this._config.deviceCellHeight),Z,ye,vt);if(se)for(let pe=1;pe<=5&&(this._tmpCtx.save(),this._tmpCtx.fillStyle=Z.css,this._tmpCtx.fillRect(0,0,this._tmpCanvas.width,this._tmpCanvas.height),this._tmpCtx.restore(),this._tmpCtx.fillText(K,he,he+this._config.deviceCharHeight-pe),se=A(this._tmpCtx.getImageData(he,he,this._config.deviceCellWidth,this._config.deviceCellHeight),Z,ye,vt),se);pe++);}if(X){let se=Math.max(1,Math.floor(this._config.fontSize*this._config.devicePixelRatio/10)),pe=this._tmpCtx.lineWidth%2==1?.5:0;this._tmpCtx.lineWidth=se,this._tmpCtx.strokeStyle=this._tmpCtx.fillStyle,this._tmpCtx.beginPath(),this._tmpCtx.moveTo(he,he+Math.floor(this._config.deviceCharHeight/2)-pe),this._tmpCtx.lineTo(he+this._config.deviceCharWidth*tt,he+Math.floor(this._config.deviceCharHeight/2)-pe),this._tmpCtx.stroke()}this._tmpCtx.restore();let St=this._tmpCtx.getImageData(0,0,this._tmpCanvas.width,this._tmpCanvas.height),ti;if(ti=this._config.allowTransparency?function(se){for(let pe=0;pe0)return!1;return!0}(St):A(St,Z,ye,vt),ti)return y;let ge=this._findGlyphBoundingBox(St,this._workBoundingBox,N,be,ne,he),ae,de;for(;;){if(this._activePages.length===0){let se=this._createNewPage();ae=se,de=se.currentRow,de.height=ge.size.y;break}ae=this._activePages[this._activePages.length-1],de=ae.currentRow;for(let se of this._activePages)ge.size.y<=se.currentRow.height&&(ae=se,de=se.currentRow);for(let se=this._activePages.length-1;se>=0;se--)for(let pe of this._activePages[se].fixedRows)pe.height<=de.height&&ge.size.y<=pe.height&&(ae=this._activePages[se],de=pe);if(de.y+ge.size.y>=ae.canvas.height||de.height>ge.size.y+2){let se=!1;if(ae.currentRow.y+ae.currentRow.height+ge.size.y>=ae.canvas.height){let pe;for(let Xe of this._activePages)if(Xe.currentRow.y+Xe.currentRow.height+ge.size.y=b.maxAtlasPages&&de.y+ge.size.y<=ae.canvas.height&&de.height>=ge.size.y&&de.x+ge.size.x<=ae.canvas.width)se=!0;else{let Xe=this._createNewPage();ae=Xe,de=Xe.currentRow,de.height=ge.size.y,se=!0}}se||(ae.currentRow.height>0&&ae.fixedRows.push(ae.currentRow),de={x:0,y:ae.currentRow.y+ae.currentRow.height,height:ge.size.y},ae.fixedRows.push(de),ae.currentRow={x:0,y:de.y+de.height,height:0})}if(de.x+ge.size.x<=ae.canvas.width)break;de===ae.currentRow?(de.x=0,de.y+=de.height,de.height=0):ae.fixedRows.splice(ae.fixedRows.indexOf(de),1)}return ge.texturePage=this._pages.indexOf(ae),ge.texturePosition.x=de.x,ge.texturePosition.y=de.y,ge.texturePositionClipSpace.x=de.x/ae.canvas.width,ge.texturePositionClipSpace.y=de.y/ae.canvas.height,ge.sizeClipSpace.x/=ae.canvas.width,ge.sizeClipSpace.y/=ae.canvas.height,de.height=Math.max(de.height,ge.size.y),de.x+=ge.size.x,ae.ctx.putImageData(St,ge.texturePosition.x-this._workBoundingBox.left,ge.texturePosition.y-this._workBoundingBox.top,this._workBoundingBox.left,this._workBoundingBox.top,ge.size.x,ge.size.y),ae.addGlyph(ge),ae.version++,ge}_findGlyphBoundingBox(L,B,R,F,Q,K){B.top=0;let N=F?this._config.deviceCellHeight:this._tmpCanvas.height,k=F?this._config.deviceCellWidth:R,m=!1;for(let x=0;x=K;x--){for(let E=0;E=0;x--){for(let E=0;E>>24,Q=L.rgba>>>16&255,K=L.rgba>>>8&255,N=B.rgba>>>24,k=B.rgba>>>16&255,m=B.rgba>>>8&255,x=Math.floor((Math.abs(F-N)+Math.abs(Q-k)+Math.abs(K-m))/12),E=!0;for(let I=0;I{Object.defineProperty(t,"__esModule",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let h=n(399),g=0,a=0,l=0,_=0;var v,u,o,d,f;function p(w){let b=w.toString(16);return b.length<2?"0"+b:b}function y(w,b){return w>>0}}(v||(t.channels=v={})),function(w){function b(S,A){return _=Math.round(255*A),[g,a,l]=f.toChannels(S.rgba),{css:v.toCss(g,a,l,_),rgba:v.toRgba(g,a,l,_)}}w.blend=function(S,A){if(_=(255&A.rgba)/255,_===1)return{css:A.css,rgba:A.rgba};let C=A.rgba>>24&255,D=A.rgba>>16&255,L=A.rgba>>8&255,B=S.rgba>>24&255,R=S.rgba>>16&255,F=S.rgba>>8&255;return g=B+Math.round((C-B)*_),a=R+Math.round((D-R)*_),l=F+Math.round((L-F)*_),{css:v.toCss(g,a,l),rgba:v.toRgba(g,a,l)}},w.isOpaque=function(S){return(255&S.rgba)==255},w.ensureContrastRatio=function(S,A,C){let D=f.ensureContrastRatio(S.rgba,A.rgba,C);if(D)return f.toColor(D>>24&255,D>>16&255,D>>8&255)},w.opaque=function(S){let A=(255|S.rgba)>>>0;return[g,a,l]=f.toChannels(A),{css:v.toCss(g,a,l),rgba:A}},w.opacity=b,w.multiplyOpacity=function(S,A){return _=255&S.rgba,b(S,_*A/255)},w.toColorRGB=function(S){return[S.rgba>>24&255,S.rgba>>16&255,S.rgba>>8&255]}}(u||(t.color=u={})),function(w){let b,S;if(!h.isNode){let A=document.createElement("canvas");A.width=1,A.height=1;let C=A.getContext("2d",{willReadFrequently:!0});C&&(b=C,b.globalCompositeOperation="copy",S=b.createLinearGradient(0,0,1,1))}w.toColor=function(A){if(A.match(/#[\da-f]{3,8}/i))switch(A.length){case 4:return g=parseInt(A.slice(1,2).repeat(2),16),a=parseInt(A.slice(2,3).repeat(2),16),l=parseInt(A.slice(3,4).repeat(2),16),f.toColor(g,a,l);case 5:return g=parseInt(A.slice(1,2).repeat(2),16),a=parseInt(A.slice(2,3).repeat(2),16),l=parseInt(A.slice(3,4).repeat(2),16),_=parseInt(A.slice(4,5).repeat(2),16),f.toColor(g,a,l,_);case 7:return{css:A,rgba:(parseInt(A.slice(1),16)<<8|255)>>>0};case 9:return{css:A,rgba:parseInt(A.slice(1),16)>>>0}}let C=A.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(C)return g=parseInt(C[1]),a=parseInt(C[2]),l=parseInt(C[3]),_=Math.round(255*(C[5]===void 0?1:parseFloat(C[5]))),f.toColor(g,a,l,_);if(!b||!S)throw new Error("css.toColor: Unsupported css format");if(b.fillStyle=S,b.fillStyle=A,typeof b.fillStyle!="string")throw new Error("css.toColor: Unsupported css format");if(b.fillRect(0,0,1,1),[g,a,l,_]=b.getImageData(0,0,1,1).data,_!==255)throw new Error("css.toColor: Unsupported css format");return{rgba:v.toRgba(g,a,l,_),css:A}}}(o||(t.css=o={})),function(w){function b(S,A,C){let D=S/255,L=A/255,B=C/255;return .2126*(D<=.03928?D/12.92:Math.pow((D+.055)/1.055,2.4))+.7152*(L<=.03928?L/12.92:Math.pow((L+.055)/1.055,2.4))+.0722*(B<=.03928?B/12.92:Math.pow((B+.055)/1.055,2.4))}w.relativeLuminance=function(S){return b(S>>16&255,S>>8&255,255&S)},w.relativeLuminance2=b}(d||(t.rgb=d={})),function(w){function b(A,C,D){let L=A>>24&255,B=A>>16&255,R=A>>8&255,F=C>>24&255,Q=C>>16&255,K=C>>8&255,N=y(d.relativeLuminance2(F,Q,K),d.relativeLuminance2(L,B,R));for(;N0||Q>0||K>0);)F-=Math.max(0,Math.ceil(.1*F)),Q-=Math.max(0,Math.ceil(.1*Q)),K-=Math.max(0,Math.ceil(.1*K)),N=y(d.relativeLuminance2(F,Q,K),d.relativeLuminance2(L,B,R));return(F<<24|Q<<16|K<<8|255)>>>0}function S(A,C,D){let L=A>>24&255,B=A>>16&255,R=A>>8&255,F=C>>24&255,Q=C>>16&255,K=C>>8&255,N=y(d.relativeLuminance2(F,Q,K),d.relativeLuminance2(L,B,R));for(;N>>0}w.ensureContrastRatio=function(A,C,D){let L=d.relativeLuminance(A>>8),B=d.relativeLuminance(C>>8);if(y(L,B)>8));if(Ky(L,d.relativeLuminance(N>>8))?Q:N}return Q}let R=S(A,C,D),F=y(L,d.relativeLuminance(R>>8));if(Fy(L,d.relativeLuminance(Q>>8))?R:Q}return R}},w.reduceLuminance=b,w.increaseLuminance=S,w.toChannels=function(A){return[A>>24&255,A>>16&255,A>>8&255,255&A]},w.toColor=function(A,C,D,L){return{css:v.toCss(A,C,D,L),rgba:v.toRgba(A,C,D,L)}}}(f||(t.rgba=f={})),t.toPaddedHex=p,t.contrastRatio=y},345:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=n=>(this._listeners.push(n),{dispose:()=>{if(!this._disposed){for(let h=0;hh.fire(g))},t.runAndSubscribe=function(n,h){return h(void 0),n(g=>h(g))}},859:(c,t)=>{function n(h){for(let g of h)g.dispose();h.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(let h of this._disposables)h.dispose();this._disposables.length=0}register(h){return this._disposables.push(h),h}unregister(h){let g=this._disposables.indexOf(h);g!==-1&&this._disposables.splice(g,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(h){this._isDisposed||h===this._value||(this._value?.dispose(),this._value=h)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(h){return{dispose:h}},t.disposeArray=n,t.getDisposeArrayDisposable=function(h){return{dispose:()=>n(h)}}},485:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class n{constructor(){this._data={}}set(g,a,l){this._data[g]||(this._data[g]={}),this._data[g][a]=l}get(g,a){return this._data[g]?this._data[g][a]:void 0}clear(){this._data={}}}t.TwoKeyMap=n,t.FourKeyMap=class{constructor(){this._data=new n}set(h,g,a,l,_){this._data.get(h,g)||this._data.set(h,g,new n),this._data.get(h,g).set(a,l,_)}get(h,g,a,l){return this._data.get(h,g)?.get(a,l)}clear(){this._data.clear()}}},399:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode=typeof process<"u";let n=t.isNode?"node":navigator.userAgent,h=t.isNode?"node":navigator.platform;t.isFirefox=n.includes("Firefox"),t.isLegacyEdge=n.includes("Edge"),t.isSafari=/^((?!chrome|android).)*safari/i.test(n),t.getSafariVersion=function(){if(!t.isSafari)return 0;let g=n.match(/Version\/(\d+)/);return g===null||g.length<2?0:parseInt(g[1])},t.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(h),t.isIpad=h==="iPad",t.isIphone=h==="iPhone",t.isWindows=["Windows","Win16","Win32","WinCE"].includes(h),t.isLinux=h.indexOf("Linux")>=0,t.isChromeOS=/\bCrOS\b/.test(n)},385:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;let h=n(399);class g{constructor(){this._tasks=[],this._i=0}enqueue(_){this._tasks.push(_),this._start()}flush(){for(;this._id)return o-v<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(o-v))}ms`),void this._start();o=d}this.clear()}}class a extends g{_requestCallback(_){return setTimeout(()=>_(this._createDeadline(16)))}_cancelCallback(_){clearTimeout(_)}_createDeadline(_){let v=Date.now()+_;return{timeRemaining:()=>Math.max(0,v-Date.now())}}}t.PriorityTaskQueue=a,t.IdleTaskQueue=!h.isNode&&"requestIdleCallback"in window?class extends g{_requestCallback(l){return requestIdleCallback(l)}_cancelCallback(l){cancelIdleCallback(l)}}:a,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(l){this._queue.clear(),this._queue.enqueue(l)}flush(){this._queue.flush()}}},147:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class n{constructor(){this.fg=0,this.bg=0,this.extended=new h}static toColorRGB(a){return[a>>>16&255,a>>>8&255,255&a]}static fromColorRGB(a){return(255&a[0])<<16|(255&a[1])<<8|255&a[2]}clone(){let a=new n;return a.fg=this.fg,a.bg=this.bg,a.extended=this.extended.clone(),a}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return(50331648&this.fg)==50331648}isBgRGB(){return(50331648&this.bg)==50331648}isFgPalette(){return(50331648&this.fg)==16777216||(50331648&this.fg)==33554432}isBgPalette(){return(50331648&this.bg)==16777216||(50331648&this.bg)==33554432}isFgDefault(){return(50331648&this.fg)==0}isBgDefault(){return(50331648&this.bg)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==16777216||(50331648&this.extended.underlineColor)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==0:this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}}t.AttributeData=n;class h{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(a){this._ext=a}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(a){this._ext&=-469762049,this._ext|=a<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(a){this._ext&=-67108864,this._ext|=67108863&a}get urlId(){return this._urlId}set urlId(a){this._urlId=a}constructor(a=0,l=0){this._ext=0,this._urlId=0,this._ext=a,this._urlId=l}clone(){return new h(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}}t.ExtendedAttrs=h},782:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CellData=void 0;let h=n(133),g=n(855),a=n(147);class l extends a.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new a.ExtendedAttrs,this.combinedData=""}static fromCharData(v){let u=new l;return u.setFromCharData(v),u}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,h.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(v){this.fg=v[g.CHAR_DATA_ATTR_INDEX],this.bg=0;let u=!1;if(v[g.CHAR_DATA_CHAR_INDEX].length>2)u=!0;else if(v[g.CHAR_DATA_CHAR_INDEX].length===2){let o=v[g.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=o&&o<=56319){let d=v[g.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=d&&d<=57343?this.content=1024*(o-55296)+d-56320+65536|v[g.CHAR_DATA_WIDTH_INDEX]<<22:u=!0}else u=!0}else this.content=v[g.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|v[g.CHAR_DATA_WIDTH_INDEX]<<22;u&&(this.combinedData=v[g.CHAR_DATA_CHAR_INDEX],this.content=2097152|v[g.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=l},855:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},133:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(n){return n>65535?(n-=65536,String.fromCharCode(55296+(n>>10))+String.fromCharCode(n%1024+56320)):String.fromCharCode(n)},t.utf32ToString=function(n,h=0,g=n.length){let a="";for(let l=h;l65535?(_-=65536,a+=String.fromCharCode(55296+(_>>10))+String.fromCharCode(_%1024+56320)):a+=String.fromCharCode(_)}return a},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(n,h){let g=n.length;if(!g)return 0;let a=0,l=0;if(this._interim){let _=n.charCodeAt(l++);56320<=_&&_<=57343?h[a++]=1024*(this._interim-55296)+_-56320+65536:(h[a++]=this._interim,h[a++]=_),this._interim=0}for(let _=l;_=g)return this._interim=v,a;let u=n.charCodeAt(_);56320<=u&&u<=57343?h[a++]=1024*(v-55296)+u-56320+65536:(h[a++]=v,h[a++]=u)}else v!==65279&&(h[a++]=v)}return a}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(n,h){let g=n.length;if(!g)return 0;let a,l,_,v,u=0,o=0,d=0;if(this.interim[0]){let y=!1,w=this.interim[0];w&=(224&w)==192?31:(240&w)==224?15:7;let b,S=0;for(;(b=63&this.interim[++S])&&S<4;)w<<=6,w|=b;let A=(224&this.interim[0])==192?2:(240&this.interim[0])==224?3:4,C=A-S;for(;d=g)return 0;if(b=n[d++],(192&b)!=128){d--,y=!0;break}this.interim[S++]=b,w<<=6,w|=63&b}y||(A===2?w<128?d--:h[u++]=w:A===3?w<2048||w>=55296&&w<=57343||w===65279||(h[u++]=w):w<65536||w>1114111||(h[u++]=w)),this.interim.fill(0)}let f=g-4,p=d;for(;p=g)return this.interim[0]=a,u;if(l=n[p++],(192&l)!=128){p--;continue}if(o=(31&a)<<6|63&l,o<128){p--;continue}h[u++]=o}else if((240&a)==224){if(p>=g)return this.interim[0]=a,u;if(l=n[p++],(192&l)!=128){p--;continue}if(p>=g)return this.interim[0]=a,this.interim[1]=l,u;if(_=n[p++],(192&_)!=128){p--;continue}if(o=(15&a)<<12|(63&l)<<6|63&_,o<2048||o>=55296&&o<=57343||o===65279)continue;h[u++]=o}else if((248&a)==240){if(p>=g)return this.interim[0]=a,u;if(l=n[p++],(192&l)!=128){p--;continue}if(p>=g)return this.interim[0]=a,this.interim[1]=l,u;if(_=n[p++],(192&_)!=128){p--;continue}if(p>=g)return this.interim[0]=a,this.interim[1]=l,this.interim[2]=_,u;if(v=n[p++],(192&v)!=128){p--;continue}if(o=(7&a)<<18|(63&l)<<12|(63&_)<<6|63&v,o<65536||o>1114111)continue;h[u++]=o}}return u}}},776:function(c,t,n){var h=this&&this.__decorate||function(o,d,f,p){var y,w=arguments.length,b=w<3?d:p===null?p=Object.getOwnPropertyDescriptor(d,f):p;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(o,d,f,p);else for(var S=o.length-1;S>=0;S--)(y=o[S])&&(b=(w<3?y(b):w>3?y(d,f,b):y(d,f))||b);return w>3&&b&&Object.defineProperty(d,f,b),b},g=this&&this.__param||function(o,d){return function(f,p){d(f,p,o)}};Object.defineProperty(t,"__esModule",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;let a=n(859),l=n(97),_={trace:l.LogLevelEnum.TRACE,debug:l.LogLevelEnum.DEBUG,info:l.LogLevelEnum.INFO,warn:l.LogLevelEnum.WARN,error:l.LogLevelEnum.ERROR,off:l.LogLevelEnum.OFF},v,u=t.LogService=class extends a.Disposable{get logLevel(){return this._logLevel}constructor(o){super(),this._optionsService=o,this._logLevel=l.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel())),v=this}_updateLogLevel(){this._logLevel=_[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(o){for(let d=0;dJSON.stringify(b)).join(", ")})`);let w=p.apply(this,y);return v.trace(`GlyphRenderer#${p.name} return`,w),w}}},726:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;let n="di$target",h="di$dependencies";t.serviceRegistry=new Map,t.getServiceDependencies=function(g){return g[h]||[]},t.createDecorator=function(g){if(t.serviceRegistry.has(g))return t.serviceRegistry.get(g);let a=function(l,_,v){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");(function(u,o,d){o[n]===o?o[h].push({id:u,index:d}):(o[h]=[{id:u,index:d}],o[n]=o)})(a,l,v)};return a.toString=()=>g,t.serviceRegistry.set(g,a),a}},97:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;let h=n(726);var g;t.IBufferService=(0,h.createDecorator)("BufferService"),t.ICoreMouseService=(0,h.createDecorator)("CoreMouseService"),t.ICoreService=(0,h.createDecorator)("CoreService"),t.ICharsetService=(0,h.createDecorator)("CharsetService"),t.IInstantiationService=(0,h.createDecorator)("InstantiationService"),function(a){a[a.TRACE=0]="TRACE",a[a.DEBUG=1]="DEBUG",a[a.INFO=2]="INFO",a[a.WARN=3]="WARN",a[a.ERROR=4]="ERROR",a[a.OFF=5]="OFF"}(g||(t.LogLevelEnum=g={})),t.ILogService=(0,h.createDecorator)("LogService"),t.IOptionsService=(0,h.createDecorator)("OptionsService"),t.IOscLinkService=(0,h.createDecorator)("OscLinkService"),t.IUnicodeService=(0,h.createDecorator)("UnicodeService"),t.IDecorationService=(0,h.createDecorator)("DecorationService")}},i={};function r(c){var t=i[c];if(t!==void 0)return t.exports;var n=i[c]={exports:{}};return e[c].call(n.exports,n,n.exports,r),n.exports}var s={};return(()=>{var c=s;Object.defineProperty(c,"__esModule",{value:!0}),c.WebglAddon=void 0;let t=r(345),n=r(859),h=r(399),g=r(666),a=r(776);class l extends n.Disposable{constructor(v){if(h.isSafari&&(0,h.getSafariVersion)()<16)throw new Error("Webgl2 is only supported on Safari 16 and above");super(),this._preserveDrawingBuffer=v,this._onChangeTextureAtlas=this.register(new t.EventEmitter),this.onChangeTextureAtlas=this._onChangeTextureAtlas.event,this._onAddTextureAtlasCanvas=this.register(new t.EventEmitter),this.onAddTextureAtlasCanvas=this._onAddTextureAtlasCanvas.event,this._onRemoveTextureAtlasCanvas=this.register(new t.EventEmitter),this.onRemoveTextureAtlasCanvas=this._onRemoveTextureAtlasCanvas.event,this._onContextLoss=this.register(new t.EventEmitter),this.onContextLoss=this._onContextLoss.event}activate(v){let u=v._core;if(!v.element)return void this.register(u.onWillOpen(()=>this.activate(v)));this._terminal=v;let o=u.coreService,d=u.optionsService,f=u,p=f._renderService,y=f._characterJoinerService,w=f._charSizeService,b=f._coreBrowserService,S=f._decorationService,A=f._logService,C=f._themeService;(0,a.setTraceLogger)(A),this._renderer=this.register(new g.WebglRenderer(v,y,w,b,o,S,d,C,this._preserveDrawingBuffer)),this.register((0,t.forwardEvent)(this._renderer.onContextLoss,this._onContextLoss)),this.register((0,t.forwardEvent)(this._renderer.onChangeTextureAtlas,this._onChangeTextureAtlas)),this.register((0,t.forwardEvent)(this._renderer.onAddTextureAtlasCanvas,this._onAddTextureAtlasCanvas)),this.register((0,t.forwardEvent)(this._renderer.onRemoveTextureAtlasCanvas,this._onRemoveTextureAtlasCanvas)),p.setRenderer(this._renderer),this.register((0,n.toDisposable)(()=>{let D=this._terminal._core._renderService;D.setRenderer(this._terminal._core._createRenderer()),D.handleResize(v.cols,v.rows)}))}get textureAtlas(){return this._renderer?.textureAtlas}clearTextureAtlas(){this._renderer?.clearTextureAtlas()}}c.WebglAddon=l})(),s})())});var qc=re((Ss,po)=>{(function(e,i){typeof Ss=="object"&&typeof po=="object"?po.exports=i():typeof define=="function"&&define.amd?define([],i):typeof Ss=="object"?Ss.WebLinksAddon=i():e.WebLinksAddon=i()})(self,()=>(()=>{"use strict";var e={6:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LinkComputer=t.WebLinkProvider=void 0,t.WebLinkProvider=class{constructor(h,g,a,l={}){this._terminal=h,this._regex=g,this._handler=a,this._options=l}provideLinks(h,g){let a=n.computeLink(h,this._regex,this._terminal,this._handler);g(this._addCallbacks(a))}_addCallbacks(h){return h.map(g=>(g.leave=this._options.leave,g.hover=(a,l)=>{if(this._options.hover){let{range:_}=g;this._options.hover(a,l,_)}},g))}};class n{static computeLink(g,a,l,_){let v=new RegExp(a.source,(a.flags||"")+"g"),[u,o]=n._getWindowedLineStrings(g-1,l),d=u.join(""),f,p=[];for(;f=v.exec(d);){let y=f[0];try{let D=new URL(y),L=decodeURI(D.toString());if(y!==L&&y+"/"!==L)continue}catch{continue}let[w,b]=n._mapStrIdx(l,o,0,f.index),[S,A]=n._mapStrIdx(l,w,b,y.length);if(w===-1||b===-1||S===-1||A===-1)continue;let C={start:{x:b+1,y:w+1},end:{x:A,y:S+1}};p.push({range:C,text:y,activate:_})}return p}static _getWindowedLineStrings(g,a){let l,_=g,v=g,u=0,o="",d=[];if(l=a.buffer.active.getLine(g)){let f=l.translateToString(!0);if(l.isWrapped&&f[0]!==" "){for(u=0;(l=a.buffer.active.getLine(--_))&&u<2048&&(o=l.translateToString(!0),u+=o.length,d.push(o),l.isWrapped&&o.indexOf(" ")===-1););d.reverse()}for(d.push(f),u=0;(l=a.buffer.active.getLine(++v))&&l.isWrapped&&u<2048&&(o=l.translateToString(!0),u+=o.length,d.push(o),o.indexOf(" ")===-1););}return[d,_]}static _mapStrIdx(g,a,l,_){let v=g.buffer.active,u=v.getNullCell(),o=l;for(;_;){let d=v.getLine(a);if(!d)return[-1,-1];for(let f=o;f{var c=s;Object.defineProperty(c,"__esModule",{value:!0}),c.WebLinksAddon=void 0;let t=r(6),n=/https?:[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function h(g,a){let l=window.open();if(l){try{l.opener=null}catch{}l.location.href=a}else console.warn("Opening link blocked as opener could not be cleared")}c.WebLinksAddon=class{constructor(g=h,a={}){this._handler=g,this._options=a}activate(g){this._terminal=g;let a=this._options,l=a.urlRegex||n;this._linkProvider=this._terminal.registerLinkProvider(new t.WebLinkProvider(this._terminal,l,this._handler,a))}dispose(){this._linkProvider?.dispose()}}})(),s})())});var Vc=re((hr,vo)=>{(function(e,i){typeof hr=="object"&&typeof vo=="object"?vo.exports=i():typeof define=="function"&&define.amd?define([],i):typeof hr=="object"?hr.Unicode11Addon=i():e.Unicode11Addon=i()})(hr,()=>(()=>{"use strict";var e={433:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV11=void 0;let h=n(938),g=[[768,879],[1155,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1541],[1552,1562],[1564,1564],[1611,1631],[1648,1648],[1750,1757],[1759,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2045,2045],[2070,2073],[2075,2083],[2085,2087],[2089,2093],[2137,2139],[2259,2306],[2362,2362],[2364,2364],[2369,2376],[2381,2381],[2385,2391],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2558,2558],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2641,2641],[2672,2673],[2677,2677],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2810,2815],[2817,2817],[2876,2876],[2879,2879],[2881,2884],[2893,2893],[2902,2902],[2914,2915],[2946,2946],[3008,3008],[3021,3021],[3072,3072],[3076,3076],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3170,3171],[3201,3201],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3328,3329],[3387,3388],[3393,3396],[3405,3405],[3426,3427],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3981,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4151],[4153,4154],[4157,4158],[4184,4185],[4190,4192],[4209,4212],[4226,4226],[4229,4230],[4237,4237],[4253,4253],[4448,4607],[4957,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6158],[6277,6278],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6683,6683],[6742,6742],[6744,6750],[6752,6752],[6754,6754],[6757,6764],[6771,6780],[6783,6783],[6832,6846],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7040,7041],[7074,7077],[7080,7081],[7083,7085],[7142,7142],[7144,7145],[7149,7149],[7151,7153],[7212,7219],[7222,7223],[7376,7378],[7380,7392],[7394,7400],[7405,7405],[7412,7412],[7416,7417],[7616,7673],[7675,7679],[8203,8207],[8234,8238],[8288,8292],[8294,8303],[8400,8432],[11503,11505],[11647,11647],[11744,11775],[12330,12333],[12441,12442],[42607,42610],[42612,42621],[42654,42655],[42736,42737],[43010,43010],[43014,43014],[43019,43019],[43045,43046],[43204,43205],[43232,43249],[43263,43263],[43302,43309],[43335,43345],[43392,43394],[43443,43443],[43446,43449],[43452,43453],[43493,43493],[43561,43566],[43569,43570],[43573,43574],[43587,43587],[43596,43596],[43644,43644],[43696,43696],[43698,43700],[43703,43704],[43710,43711],[43713,43713],[43756,43757],[43766,43766],[44005,44005],[44008,44008],[44013,44013],[64286,64286],[65024,65039],[65056,65071],[65279,65279],[65529,65531]],a=[[66045,66045],[66272,66272],[66422,66426],[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[68325,68326],[68900,68903],[69446,69456],[69633,69633],[69688,69702],[69759,69761],[69811,69814],[69817,69818],[69821,69821],[69837,69837],[69888,69890],[69927,69931],[69933,69940],[70003,70003],[70016,70017],[70070,70078],[70089,70092],[70191,70193],[70196,70196],[70198,70199],[70206,70206],[70367,70367],[70371,70378],[70400,70401],[70459,70460],[70464,70464],[70502,70508],[70512,70516],[70712,70719],[70722,70724],[70726,70726],[70750,70750],[70835,70840],[70842,70842],[70847,70848],[70850,70851],[71090,71093],[71100,71101],[71103,71104],[71132,71133],[71219,71226],[71229,71229],[71231,71232],[71339,71339],[71341,71341],[71344,71349],[71351,71351],[71453,71455],[71458,71461],[71463,71467],[71727,71735],[71737,71738],[72148,72151],[72154,72155],[72160,72160],[72193,72202],[72243,72248],[72251,72254],[72263,72263],[72273,72278],[72281,72283],[72330,72342],[72344,72345],[72752,72758],[72760,72765],[72767,72767],[72850,72871],[72874,72880],[72882,72883],[72885,72886],[73009,73014],[73018,73018],[73020,73021],[73023,73029],[73031,73031],[73104,73105],[73109,73109],[73111,73111],[73459,73460],[78896,78904],[92912,92916],[92976,92982],[94031,94031],[94095,94098],[113821,113822],[113824,113827],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[121344,121398],[121403,121452],[121461,121461],[121476,121476],[121499,121503],[121505,121519],[122880,122886],[122888,122904],[122907,122913],[122915,122916],[122918,122922],[123184,123190],[123628,123631],[125136,125142],[125252,125258],[917505,917505],[917536,917631],[917760,917999]],l=[[4352,4447],[8986,8987],[9001,9002],[9193,9196],[9200,9200],[9203,9203],[9725,9726],[9748,9749],[9800,9811],[9855,9855],[9875,9875],[9889,9889],[9898,9899],[9917,9918],[9924,9925],[9934,9934],[9940,9940],[9962,9962],[9970,9971],[9973,9973],[9978,9978],[9981,9981],[9989,9989],[9994,9995],[10024,10024],[10060,10060],[10062,10062],[10067,10069],[10071,10071],[10133,10135],[10160,10160],[10175,10175],[11035,11036],[11088,11088],[11093,11093],[11904,11929],[11931,12019],[12032,12245],[12272,12283],[12288,12329],[12334,12350],[12353,12438],[12443,12543],[12549,12591],[12593,12686],[12688,12730],[12736,12771],[12784,12830],[12832,12871],[12880,19903],[19968,42124],[42128,42182],[43360,43388],[44032,55203],[63744,64255],[65040,65049],[65072,65106],[65108,65126],[65128,65131],[65281,65376],[65504,65510]],_=[[94176,94179],[94208,100343],[100352,101106],[110592,110878],[110928,110930],[110948,110951],[110960,111355],[126980,126980],[127183,127183],[127374,127374],[127377,127386],[127488,127490],[127504,127547],[127552,127560],[127568,127569],[127584,127589],[127744,127776],[127789,127797],[127799,127868],[127870,127891],[127904,127946],[127951,127955],[127968,127984],[127988,127988],[127992,128062],[128064,128064],[128066,128252],[128255,128317],[128331,128334],[128336,128359],[128378,128378],[128405,128406],[128420,128420],[128507,128591],[128640,128709],[128716,128716],[128720,128722],[128725,128725],[128747,128748],[128756,128762],[128992,129003],[129293,129393],[129395,129398],[129402,129442],[129445,129450],[129454,129482],[129485,129535],[129648,129651],[129656,129658],[129664,129666],[129680,129685],[131072,196605],[196608,262141]],v;function u(o,d){let f,p=0,y=d.length-1;if(od[y][1])return!1;for(;y>=p;)if(f=p+y>>1,o>d[f][1])p=f+1;else{if(!(of&&(f=y)}return h.UnicodeService.createPropertyValue(0,f,p)}}},345:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=n=>(this._listeners.push(n),{dispose:()=>{if(!this._disposed){for(let h=0;hh.fire(g))},t.runAndSubscribe=function(n,h){return h(void 0),n(g=>h(g))}},490:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeV6=void 0;let h=n(938),g=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],a=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],l;t.UnicodeV6=class{constructor(){if(this.version="6",!l){l=new Uint8Array(65536),l.fill(1),l[0]=0,l.fill(0,1,32),l.fill(0,127,160),l.fill(2,4352,4448),l[9001]=2,l[9002]=2,l.fill(2,11904,42192),l[12351]=1,l.fill(2,44032,55204),l.fill(2,63744,64256),l.fill(2,65040,65050),l.fill(2,65072,65136),l.fill(2,65280,65377),l.fill(2,65504,65511);for(let _=0;_u[f][1])return!1;for(;f>=d;)if(o=d+f>>1,v>u[o][1])d=o+1;else{if(!(v=131072&&_<=196605||_>=196608&&_<=262141?2:1}charProperties(_,v){let u=this.wcwidth(_),o=u===0&&v!==0;if(o){let d=h.UnicodeService.extractWidth(v);d===0?o=!1:d>u&&(u=d)}return h.UnicodeService.createPropertyValue(0,u,o)}}},938:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UnicodeService=void 0;let h=n(345),g=n(490);class a{static extractShouldJoin(_){return(1&_)!=0}static extractWidth(_){return _>>1&3}static extractCharKind(_){return _>>3}static createPropertyValue(_,v,u=!1){return(16777215&_)<<3|(3&v)<<1|(u?1:0)}constructor(){this._providers=Object.create(null),this._active="",this._onChange=new h.EventEmitter,this.onChange=this._onChange.event;let _=new g.UnicodeV6;this.register(_),this._active=_.version,this._activeProvider=_}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(_){if(!this._providers[_])throw new Error(`unknown Unicode version "${_}"`);this._active=_,this._activeProvider=this._providers[_],this._onChange.fire(_)}register(_){this._providers[_.version]=_}wcwidth(_){return this._activeProvider.wcwidth(_)}getStringCellWidth(_){let v=0,u=0,o=_.length;for(let d=0;d=o)return v+this.wcwidth(f);let w=_.charCodeAt(d);56320<=w&&w<=57343?f=1024*(f-55296)+w-56320+65536:v+=this.wcwidth(w)}let p=this.charProperties(f,u),y=a.extractWidth(p);a.extractShouldJoin(p)&&(y-=a.extractWidth(u)),v+=y,u=p}return v}charProperties(_,v){return this._activeProvider.charProperties(_,v)}}t.UnicodeService=a}},i={};function r(c){var t=i[c];if(t!==void 0)return t.exports;var n=i[c]={exports:{}};return e[c](n,n.exports,r),n.exports}var s={};return(()=>{var c=s;Object.defineProperty(c,"__esModule",{value:!0}),c.Unicode11Addon=void 0;let t=r(433);c.Unicode11Addon=class{activate(n){n.unicode.register(new t.UnicodeV11)}dispose(){}}})(),s})())});var Yc=re((Es,mo)=>{(function(e,i){typeof Es=="object"&&typeof mo=="object"?mo.exports=i():typeof define=="function"&&define.amd?define([],i):typeof Es=="object"?Es.AttachAddon=i():e.AttachAddon=i()})(self,()=>(()=>{"use strict";var e={};return(()=>{var i=e;function r(s,c,t){return s.addEventListener(c,t),{dispose:()=>{t&&s.removeEventListener(c,t)}}}Object.defineProperty(i,"__esModule",{value:!0}),i.AttachAddon=void 0,i.AttachAddon=class{constructor(s,c){this._disposables=[],this._socket=s,this._socket.binaryType="arraybuffer",this._bidirectional=!(c&&c.bidirectional===!1)}activate(s){this._disposables.push(r(this._socket,"message",c=>{let t=c.data;s.write(typeof t=="string"?t:new Uint8Array(t))})),this._bidirectional&&(this._disposables.push(s.onData(c=>this._sendData(c))),this._disposables.push(s.onBinary(c=>this._sendBinary(c)))),this._disposables.push(r(this._socket,"close",()=>this.dispose())),this._disposables.push(r(this._socket,"error",()=>this.dispose()))}dispose(){for(let s of this._disposables)s.dispose()}_sendData(s){this._checkOpenSocket()&&this._socket.send(s)}_sendBinary(s){if(!this._checkOpenSocket())return;let c=new Uint8Array(s.length);for(let t=0;t{(function(e,i){typeof ks=="object"&&typeof yo=="object"?yo.exports=i():typeof define=="function"&&define.amd?define([],i):typeof ks=="object"?ks.SearchAddon=i():e.SearchAddon=i()})(self,()=>(()=>{"use strict";var e={345:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=n=>(this._listeners.push(n),{dispose:()=>{if(!this._disposed){for(let h=0;hh.fire(g))},t.runAndSubscribe=function(n,h){return h(void 0),n(g=>h(g))}},859:(c,t)=>{function n(h){for(let g of h)g.dispose();h.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(let h of this._disposables)h.dispose();this._disposables.length=0}register(h){return this._disposables.push(h),h}unregister(h){let g=this._disposables.indexOf(h);g!==-1&&this._disposables.splice(g,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(h){this._isDisposed||h===this._value||(this._value?.dispose(),this._value=h)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(h){return{dispose:h}},t.disposeArray=n,t.getDisposeArrayDisposable=function(h){return{dispose:()=>n(h)}}}},i={};function r(c){var t=i[c];if(t!==void 0)return t.exports;var n=i[c]={exports:{}};return e[c](n,n.exports,r),n.exports}var s={};return(()=>{var c=s;Object.defineProperty(c,"__esModule",{value:!0}),c.SearchAddon=void 0;let t=r(345),n=r(859),h=" ~!@#$%^&*()+`-=[]{}|\\;:\"',./<>?";class g extends n.Disposable{constructor(l){super(),this._highlightedLines=new Set,this._highlightDecorations=[],this._selectedDecoration=this.register(new n.MutableDisposable),this._linesCacheTimeoutId=0,this._onDidChangeResults=this.register(new t.EventEmitter),this.onDidChangeResults=this._onDidChangeResults.event,this._highlightLimit=l?.highlightLimit??1e3}activate(l){this._terminal=l,this.register(this._terminal.onWriteParsed(()=>this._updateMatches())),this.register(this._terminal.onResize(()=>this._updateMatches())),this.register((0,n.toDisposable)(()=>this.clearDecorations()))}_updateMatches(){this._highlightTimeout&&window.clearTimeout(this._highlightTimeout),this._cachedSearchTerm&&this._lastSearchOptions?.decorations&&(this._highlightTimeout=setTimeout(()=>{let l=this._cachedSearchTerm;this._cachedSearchTerm=void 0,this.findPrevious(l,{...this._lastSearchOptions,incremental:!0,noScroll:!0})},200))}clearDecorations(l){this._selectedDecoration.clear(),(0,n.disposeArray)(this._highlightDecorations),this._highlightDecorations=[],this._highlightedLines.clear(),l||(this._cachedSearchTerm=void 0)}clearActiveDecoration(){this._selectedDecoration.clear()}findNext(l,_){if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");let v=!this._lastSearchOptions||this._didOptionsChange(this._lastSearchOptions,_);this._lastSearchOptions=_,_?.decorations&&(this._cachedSearchTerm===void 0||l!==this._cachedSearchTerm||v)&&this._highlightAllMatches(l,_);let u=this._findNextAndSelect(l,_);return this._fireResults(_),this._cachedSearchTerm=l,u}_highlightAllMatches(l,_){if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");if(!l||l.length===0)return void this.clearDecorations();_=_||{},this.clearDecorations(!0);let v=[],u,o=this._find(l,0,0,_);for(;o&&(u?.row!==o.row||u?.col!==o.col)&&!(v.length>=this._highlightLimit);)u=o,v.push(u),o=this._find(l,u.col+u.term.length>=this._terminal.cols?u.row+1:u.row,u.col+u.term.length>=this._terminal.cols?0:u.col+1,_);for(let d of v){let f=this._createResultDecoration(d,_.decorations);f&&(this._highlightedLines.add(f.marker.line),this._highlightDecorations.push({decoration:f,match:d,dispose(){f.dispose()}}))}}_find(l,_,v,u){if(!this._terminal||!l||l.length===0)return this._terminal?.clearSelection(),void this.clearDecorations();if(v>this._terminal.cols)throw new Error(`Invalid col: ${v} to search in terminal of ${this._terminal.cols} cols`);let o;this._initLinesCache();let d={startRow:_,startCol:v};if(o=this._findInLine(l,d,u),!o)for(let f=_+1;f=0&&(f.startRow=y,p=this._findInLine(l,f,_,d),!p);y--);}if(!p&&u!==this._terminal.buffer.active.baseY+this._terminal.rows-1)for(let y=this._terminal.buffer.active.baseY+this._terminal.rows-1;y>=u&&(f.startRow=y,p=this._findInLine(l,f,_,d),!p);y--);return this._selectResult(p,_?.decorations,_?.noScroll)}_initLinesCache(){let l=this._terminal;this._linesCache||(this._linesCache=new Array(l.buffer.active.length),this._cursorMoveListener=l.onCursorMove(()=>this._destroyLinesCache()),this._resizeListener=l.onResize(()=>this._destroyLinesCache())),window.clearTimeout(this._linesCacheTimeoutId),this._linesCacheTimeoutId=window.setTimeout(()=>this._destroyLinesCache(),15e3)}_destroyLinesCache(){this._linesCache=void 0,this._cursorMoveListener&&(this._cursorMoveListener.dispose(),this._cursorMoveListener=void 0),this._resizeListener&&(this._resizeListener.dispose(),this._resizeListener=void 0),this._linesCacheTimeoutId&&(window.clearTimeout(this._linesCacheTimeoutId),this._linesCacheTimeoutId=0)}_isWholeWord(l,_,v){return(l===0||h.includes(_[l-1]))&&(l+v.length===_.length||h.includes(_[l+v.length]))}_findInLine(l,_,v={},u=!1){let o=this._terminal,d=_.startRow,f=_.startCol;if(o.buffer.active.getLine(d)?.isWrapped)return u?void(_.startCol+=o.cols):(_.startRow--,_.startCol+=o.cols,this._findInLine(l,_,v));let y=this._linesCache?.[d];y||(y=this._translateBufferLineToStringWithWrap(d,!0),this._linesCache&&(this._linesCache[d]=y));let[w,b]=y,S=this._bufferColsToStringOffset(d,f),A=v.caseSensitive?l:l.toLowerCase(),C=v.caseSensitive?w:w.toLowerCase(),D=-1;if(v.regex){let L=RegExp(A,"g"),B;if(u)for(;B=L.exec(C.slice(0,S));)D=L.lastIndex-B[0].length,l=B[0],L.lastIndex-=l.length-1;else B=L.exec(C.slice(S)),B&&B[0].length>0&&(D=S+(L.lastIndex-B[0].length),l=B[0])}else u?S-A.length>=0&&(D=C.lastIndexOf(A,S-A.length)):D=C.indexOf(A,S);if(D>=0){if(v.wholeWord&&!this._isWholeWord(D,C,l))return;let L=0;for(;L=b[L+1];)L++;let B=L;for(;B=b[B+1];)B++;let R=D-b[L],F=D+l.length-b[B],Q=this._stringLengthToBufferSize(d+L,R);return{term:l,col:Q,row:d+L,size:this._stringLengthToBufferSize(d+B,F)-Q+o.cols*(B-L)}}}_stringLengthToBufferSize(l,_){let v=this._terminal.buffer.active.getLine(l);if(!v)return 0;for(let u=0;u<_;u++){let o=v.getCell(u);if(!o)break;let d=o.getChars();d.length>1&&(_-=d.length-1);let f=v.getCell(u+1);f&&f.getWidth()===0&&_++}return _}_bufferColsToStringOffset(l,_){let v=this._terminal,u=l,o=0,d=v.buffer.active.getLine(u);for(;_>0&&d;){for(let f=0;f<_&&fthis._applyStyles(p,_.activeMatchBorder,!0))),f.push(d.onDispose(()=>(0,n.disposeArray)(f))),this._selectedDecoration.value={decoration:d,match:l,dispose(){d.dispose()}}}}}if(!v&&(l.row>=u.buffer.active.viewportY+u.rows||l.rowthis._applyStyles(f,_.matchBorder,!1))),d.push(o.onDispose(()=>(0,n.disposeArray)(d)))}return o}}c.SearchAddon=g})(),s})())});var Zc=re((Bs,bo)=>{(function(e,i){typeof Bs=="object"&&typeof bo=="object"?bo.exports=i():typeof define=="function"&&define.amd?define([],i):typeof Bs=="object"?Bs.ImageAddon=i():e.ImageAddon=i()})(self,()=>(()=>{"use strict";var e={615:(c,t)=>{function n(h){if(typeof Buffer<"u")return Buffer.from(h,"base64");let g=atob(h),a=new Uint8Array(g.length);for(let l=0;l_||(_=n(l)):()=>Promise.resolve(_||(_=n(l))):g===1?a?()=>v||(v=new u.Module(_||(_=n(l)))):()=>v?Promise.resolve(v):u.compile(_||(_=n(l))).then(o=>v=o):a?o=>new u.Instance(v||(v=new u.Module(_||(_=n(l)))),o):o=>v?u.instantiate(v,o):u.instantiate(_||(_=n(l)),o).then(d=>(v=d.module)&&d.instance)}if(typeof _wasmCtx>"u")throw new Error('must run "inwasm"');_wasmCtx.add(h)}},477:(c,t)=>{function n(u){return 255&u}function h(u){return u>>>8&255}function g(u){return u>>>16&255}function a(u,o,d,f=255){return((255&f)<<24|(255&d)<<16|(255&o)<<8|255&u)>>>0}function l(u,o,d){return Math.max(u,Math.min(d,o))}function _(u,o,d){return d<0&&(d+=1),d>1&&(d-=1),6*d<1?o+6*(u-o)*d:2*d<1?u:3*d<2?o+(u-o)*(4-6*d):o}function v(u,o,d){return(4278190080|Math.round(d/100*255)<<16|Math.round(o/100*255)<<8|Math.round(u/100*255))>>>0}Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_FOREGROUND=t.DEFAULT_BACKGROUND=t.PALETTE_ANSI_256=t.PALETTE_VT340_GREY=t.PALETTE_VT340_COLOR=t.normalizeHLS=t.normalizeRGB=t.nearestColorIndex=t.fromRGBA8888=t.toRGBA8888=t.alpha=t.blue=t.green=t.red=t.BIG_ENDIAN=void 0,t.BIG_ENDIAN=new Uint8Array(new Uint32Array([4278190080]).buffer)[0]===255,t.BIG_ENDIAN&&console.warn("BE platform detected. This version of node-sixel works only on LE properly."),t.red=n,t.green=h,t.blue=g,t.alpha=function(u){return u>>>24&255},t.toRGBA8888=a,t.fromRGBA8888=function(u){return[255&u,u>>8&255,u>>16&255,u>>>24]},t.nearestColorIndex=function(u,o){let d=n(u),f=h(u),p=g(u),y=Number.MAX_SAFE_INTEGER,w=-1;for(let b=0;b{let u=[a(0,0,0),a(205,0,0),a(0,205,0),a(205,205,0),a(0,0,238),a(205,0,205),a(0,250,205),a(229,229,229),a(127,127,127),a(255,0,0),a(0,255,0),a(255,255,0),a(92,92,255),a(255,0,255),a(0,255,255),a(255,255,255)],o=[0,95,135,175,215,255];for(let d=0;d<6;++d)for(let f=0;f<6;++f)for(let p=0;p<6;++p)u.push(a(o[d],o[f],o[p]));for(let d=8;d<=238;d+=10)u.push(a(d,d,d));return new Uint32Array(u)})(),t.DEFAULT_BACKGROUND=a(0,0,0,255),t.DEFAULT_FOREGROUND=a(255,255,255,255)},710:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.decodeAsync=t.decode=t.Decoder=t.DecoderAsync=void 0;let h=n(477),g=n(343),a=function(f){if(typeof Buffer<"u")return Buffer.from(f,"base64");let p=atob(f),y=new Uint8Array(p.length);for(let w=0;w1,this.modeHandler=p=>1}handle_band(p){return this.bandHandler(p)}mode_parsed(p){return this.modeHandler(p)}}let u={memoryLimit:134217728,sixelColor:h.DEFAULT_FOREGROUND,fillColor:h.DEFAULT_BACKGROUND,palette:h.PALETTE_VT340_COLOR,paletteLimit:g.LIMITS.PALETTE_SIZE,truncate:!0};function o(f){let p=new v,y={env:{handle_band:p.handle_band.bind(p),mode_parsed:p.mode_parsed.bind(p)}};return WebAssembly.instantiate(l||a,y).then(w=>(l=l||w.module,new d(f,w.instance||w,p)))}t.DecoderAsync=o;class d{constructor(p,y,w){if(this._PIXEL_OFFSET=g.LIMITS.MAX_WIDTH+4,this._canvas=_,this._bandWidths=[],this._maxWidth=0,this._minWidth=g.LIMITS.MAX_WIDTH,this._lastOffset=0,this._currentHeight=0,this._opts=Object.assign({},u,p),this._opts.paletteLimit>g.LIMITS.PALETTE_SIZE)throw new Error(`DecoderOptions.paletteLimit must not exceed ${g.LIMITS.PALETTE_SIZE}`);if(y)w.bandHandler=this._handle_band.bind(this),w.modeHandler=this._initCanvas.bind(this);else{let b=l||(l=new WebAssembly.Module(a));y=new WebAssembly.Instance(b,{env:{handle_band:this._handle_band.bind(this),mode_parsed:this._initCanvas.bind(this)}})}this._instance=y,this._wasm=this._instance.exports,this._chunk=new Uint8Array(this._wasm.memory.buffer,this._wasm.get_chunk_address(),g.LIMITS.CHUNK_SIZE),this._states=new Uint32Array(this._wasm.memory.buffer,this._wasm.get_state_address(),12),this._palette=new Uint32Array(this._wasm.memory.buffer,this._wasm.get_palette_address(),g.LIMITS.PALETTE_SIZE),this._palette.set(this._opts.palette),this._pSrc=new Uint32Array(this._wasm.memory.buffer,this._wasm.get_p0_address()),this._wasm.init(h.DEFAULT_FOREGROUND,0,this._opts.paletteLimit,0)}get _fillColor(){return this._states[0]}get _truncate(){return this._states[8]}get _rasterWidth(){return this._states[6]}get _rasterHeight(){return this._states[7]}get _width(){return this._states[2]?this._states[2]-4:0}get _height(){return this._states[3]}get _level(){return this._states[9]}get _mode(){return this._states[10]}get _paletteLimit(){return this._states[11]}_initCanvas(p){if(p===2){let y=this.width*this.height;if(y>this._canvas.length){if(this._opts.memoryLimit&&4*y>this._opts.memoryLimit)throw this.release(),new Error("image exceeds memory limit");this._canvas=new Uint32Array(y)}this._maxWidth=this._width}else if(p===1)if(this._level===2){let y=Math.min(this._rasterWidth,g.LIMITS.MAX_WIDTH)*this._rasterHeight;if(y>this._canvas.length){if(this._opts.memoryLimit&&4*y>this._opts.memoryLimit)throw this.release(),new Error("image exceeds memory limit");this._canvas=new Uint32Array(y)}}else this._canvas.length<65536&&(this._canvas=new Uint32Array(65536));return 0}_realloc(p,y){let w=p+y;if(w>this._canvas.length){if(this._opts.memoryLimit&&4*w>this._opts.memoryLimit)throw this.release(),new Error("image exceeds memory limit");let b=new Uint32Array(65536*Math.ceil(w/65536));b.set(this._canvas),this._canvas=b}}_handle_band(p){let y=this._PIXEL_OFFSET,w=this._lastOffset;if(this._mode===2){let b=this.height-this._currentHeight,S=0;for(;S<6&&b>0;)this._canvas.set(this._pSrc.subarray(y*S,y*S+p),w+p*S),S++,b--;this._lastOffset+=p*S,this._currentHeight+=S}else if(this._mode===1){this._realloc(w,6*p),this._maxWidth=Math.max(this._maxWidth,p),this._minWidth=Math.min(this._minWidth,p);for(let b=0;b<6;++b)this._canvas.set(this._pSrc.subarray(y*b,y*b+p),w+p*b);this._bandWidths.push(p),this._lastOffset+=6*p,this._currentHeight+=6}return 0}get width(){return this._mode!==1?this._width:Math.max(this._maxWidth,this._wasm.current_width())}get height(){return this._mode!==1?this._height:this._wasm.current_width()?6*this._bandWidths.length+this._wasm.current_height():6*this._bandWidths.length}get palette(){return this._palette.subarray(0,this._paletteLimit)}get memoryUsage(){return this._canvas.byteLength+this._wasm.memory.buffer.byteLength+8*this._bandWidths.length}get properties(){return{width:this.width,height:this.height,mode:this._mode,level:this._level,truncate:!!this._truncate,paletteLimit:this._paletteLimit,fillColor:this._fillColor,memUsage:this.memoryUsage,rasterAttributes:{numerator:this._states[4],denominator:this._states[5],width:this._rasterWidth,height:this._rasterHeight}}}init(p=this._opts.fillColor,y=this._opts.palette,w=this._opts.paletteLimit,b=this._opts.truncate){this._wasm.init(this._opts.sixelColor,p,w,b?1:0),y&&this._palette.set(y.subarray(0,g.LIMITS.PALETTE_SIZE)),this._bandWidths.length=0,this._maxWidth=0,this._minWidth=g.LIMITS.MAX_WIDTH,this._lastOffset=0,this._currentHeight=0}decode(p,y=0,w=p.length){let b=y;for(;b0){let w=this._PIXEL_OFFSET,b=this._lastOffset,S=0;for(;S<6&&y>0;)this._canvas.set(this._pSrc.subarray(w*S,w*S+p),b+p*S),S++,y--;y&&this._canvas.fill(this._fillColor,b+p*S)}return this._canvas.subarray(0,this.width*this.height)}if(this._mode===1){if(this._minWidth===this._maxWidth){let S=!1;if(p)if(p!==this._minWidth)S=!0;else{let A=this._PIXEL_OFFSET,C=this._lastOffset;this._realloc(C,6*p);for(let D=0;D<6;++D)this._canvas.set(this._pSrc.subarray(A*D,A*D+p),C+p*D)}if(!S)return this._canvas.subarray(0,this.width*this.height)}let y=new Uint32Array(this.width*this.height);y.fill(this._fillColor);let w=0,b=0;for(let S=0;S{Object.defineProperty(t,"__esModule",{value:!0}),t.LIMITS=void 0,t.LIMITS={CHUNK_SIZE:16384,PALETTE_SIZE:4096,MAX_WIDTH:16384,BYTES:"AGFzbQEAAAABJAdgAAF/YAJ/fwBgA39/fwF/YAF/AX9gAABgBH9/f38AYAF/AAIlAgNlbnYLaGFuZGxlX2JhbmQAAwNlbnYLbW9kZV9wYXJzZWQAAwMTEgQAAAAAAQQBAQUBAAACAgAGAwQFAXABBwcFBAEBBwcGCAF/AUGAihoLB9wBDgZtZW1vcnkCABFnZXRfc3RhdGVfYWRkcmVzcwADEWdldF9jaHVua19hZGRyZXNzAAQOZ2V0X3AwX2FkZHJlc3MABRNnZXRfcGFsZXR0ZV9hZGRyZXNzAAYEaW5pdAALBmRlY29kZQAMDWN1cnJlbnRfd2lkdGgADQ5jdXJyZW50X2hlaWdodAAOGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtfaW5pdGlhbGl6ZQACCXN0YWNrU2F2ZQARDHN0YWNrUmVzdG9yZQASCnN0YWNrQWxsb2MAEwkMAQBBAQsGCgcJDxACDAEBCq5UEgMAAQsFAEGgCAsGAEGQiQELBgBBsIkCCwUAQZAJC+okAQh/QeQIKAIAIQVB4AgoAgAhA0HoCCgCACEIIAFBkIkBaiIJQf8BOgAAIAAgAUgEQCAAQZCJAWohBgNAIAMhBCAGQQFqIQECQCAGLQAAQf8AcSIDQTBrQQlLBEAgASEGDAELQewIKAIAQQJ0QewIaiICKAIAIQADQCACIAMgAEEKbGpBMGsiADYCACABLQAAIQMgAUEBaiIGIQEgA0H/AHEiA0Ewa0EKSQ0ACwsCQAJAAkACQAJAAkACQAJ/AkACQCADQT9rIgBBP00EQCAERQ0BIARBIUYEQAJAQfAIKAIAIgFBASABGyIHIAhqIgFB1AgoAgAiA0gNACADQf//AEoNAANAIANBAnQiAkGgiQJqIgRBoAgpAwA3AwAgAkGoiQJqQaAIKQMANwMAIAJBsIkCakGgCCkDADcDACACQbiJAmpBoAgpAwA3AwAgAkHAiQJqQaAIKQMANwMAIAJByIkCakGgCCkDADcDACACQdCJAmpBoAgpAwA3AwAgAkHYiQJqQaAIKQMANwMAIAJB4IkCakGgCCkDADcDACACQeiJAmpBoAgpAwA3AwAgAkHwiQJqQaAIKQMANwMAIAJB+IkCakGgCCkDADcDACACQYCKAmpBoAgpAwA3AwAgAkGIigJqQaAIKQMANwMAIAJBkIoCakGgCCkDADcDACACQZiKAmpBoAgpAwA3AwAgAkGgigJqQaAIKQMANwMAIAJBqIoCakGgCCkDADcDACACQbCKAmpBoAgpAwA3AwAgAkG4igJqQaAIKQMANwMAIAJBwIoCakGgCCkDADcDACACQciKAmpBoAgpAwA3AwAgAkHQigJqQaAIKQMANwMAIAJB2IoCakGgCCkDADcDACACQeCKAmpBoAgpAwA3AwAgAkHoigJqQaAIKQMANwMAIAJB8IoCakGgCCkDADcDACACQfiKAmpBoAgpAwA3AwAgAkGAiwJqQaAIKQMANwMAIAJBiIsCakGgCCkDADcDACACQZCLAmpBoAgpAwA3AwAgAkGYiwJqQaAIKQMANwMAIAJBoIsCakGgCCkDADcDACACQaiLAmpBoAgpAwA3AwAgAkGwiwJqQaAIKQMANwMAIAJBuIsCakGgCCkDADcDACACQcCLAmpBoAgpAwA3AwAgAkHIiwJqQaAIKQMANwMAIAJB0IsCakGgCCkDADcDACACQdiLAmpBoAgpAwA3AwAgAkHgiwJqQaAIKQMANwMAIAJB6IsCakGgCCkDADcDACACQfCLAmpBoAgpAwA3AwAgAkH4iwJqQaAIKQMANwMAIAJBgIwCakGgCCkDADcDACACQYiMAmpBoAgpAwA3AwAgAkGQjAJqQaAIKQMANwMAIAJBmIwCakGgCCkDADcDACACQaCMAmpBoAgpAwA3AwAgAkGojAJqQaAIKQMANwMAIAJBsIwCakGgCCkDADcDACACQbiMAmpBoAgpAwA3AwAgAkHAjAJqQaAIKQMANwMAIAJByIwCakGgCCkDADcDACACQdCMAmpBoAgpAwA3AwAgAkHYjAJqQaAIKQMANwMAIAJB4IwCakGgCCkDADcDACACQeiMAmpBoAgpAwA3AwAgAkHwjAJqQaAIKQMANwMAIAJB+IwCakGgCCkDADcDACACQYCNAmpBoAgpAwA3AwAgAkGIjQJqQaAIKQMANwMAIAJBkI0CakGgCCkDADcDACACQZiNAmpBoAgpAwA3AwAgAkGwiQZqIARBgAT8CgAAQdQIKAIAQQJ0QcCJCmogBEGABPwKAABB1AgoAgBBAnRB0IkOaiAEQYAE/AoAAEHUCCgCAEECdEHgiRJqIARBgAT8CgAAQdQIKAIAQQJ0QfCJFmogBEGABPwKAABB1AhB1AgoAgAiAkGAAWoiAzYCACABIANIDQEgAkGA/wBIDQALCwJAIABFDQAgCEH//wBLDQBBgIABIAhrIAcgAUH//wBLGyECAkAgAEEBcUUNACACRQ0AIAhBAnRBoIkCaiEDIAIhBCACQQdxIgcEQANAIAMgBTYCACADQQRqIQMgBEEBayEEIAdBAWsiBw0ACwsgAkEBa0EHSQ0AA0AgAyAFNgIcIAMgBTYCGCADIAU2AhQgAyAFNgIQIAMgBTYCDCADIAU2AgggAyAFNgIEIAMgBTYCACADQSBqIQMgBEEIayIEDQALCwJAIABBAnFFDQAgAkUNACAIQQJ0QbCJBmohAyACIQQgAkEHcSIHBEADQCADIAU2AgAgA0EEaiEDIARBAWshBCAHQQFrIgcNAAsLIAJBAWtBB0kNAANAIAMgBTYCHCADIAU2AhggAyAFNgIUIAMgBTYCECADIAU2AgwgAyAFNgIIIAMgBTYCBCADIAU2AgAgA0EgaiEDIARBCGsiBA0ACwsCQCAAQQRxRQ0AIAJFDQAgCEECdEHAiQpqIQMgAiEEIAJBB3EiBwRAA0AgAyAFNgIAIANBBGohAyAEQQFrIQQgB0EBayIHDQALCyACQQFrQQdJDQADQCADIAU2AhwgAyAFNgIYIAMgBTYCFCADIAU2AhAgAyAFNgIMIAMgBTYCCCADIAU2AgQgAyAFNgIAIANBIGohAyAEQQhrIgQNAAsLAkAgAEEIcUUNACACRQ0AIAhBAnRB0IkOaiEDIAIhBCACQQdxIgcEQANAIAMgBTYCACADQQRqIQMgBEEBayEEIAdBAWsiBw0ACwsgAkEBa0EHSQ0AA0AgAyAFNgIcIAMgBTYCGCADIAU2AhQgAyAFNgIQIAMgBTYCDCADIAU2AgggAyAFNgIEIAMgBTYCACADQSBqIQMgBEEIayIEDQALCwJAIABBEHFFDQAgAkUNACAIQQJ0QeCJEmohAyACIQQgAkEHcSIHBEADQCADIAU2AgAgA0EEaiEDIARBAWshBCAHQQFrIgcNAAsLIAJBAWtBB0kNAANAIAMgBTYCHCADIAU2AhggAyAFNgIUIAMgBTYCECADIAU2AgwgAyAFNgIIIAMgBTYCBCADIAU2AgAgA0EgaiEDIARBCGsiBA0ACwsgAEEgcUUNACACRQ0AIAJBAWshByAIQQJ0QfCJFmohAyACQQdxIgQEQANAIAMgBTYCACADQQRqIQMgAkEBayECIARBAWsiBA0ACwsgB0EHSQ0AA0AgAyAFNgIcIAMgBTYCGCADIAU2AhQgAyAFNgIQIAMgBTYCDCADIAU2AgggAyAFNgIEIAMgBTYCACADQSBqIQMgAkEIayICDQALC0HcCEHcCCgCACAAcjYCACAGQQFqIgIgBi0AAEH/AHEiA0E/ayIAQT9LDQQaDAMLAkBB7AgoAgAiBEEBRgRAQfAIKAIAIgNBzAgoAgAiAUkNASADIAFwIQMMAQtB+AgoAgAhAkH0CCgCACEBAkACQCAEQQVHDQAgAUEBRw0AIAJB6QJODQQMAQsgAkHkAEoNA0H8CCgCAEHkAEoNA0GACSgCAEHkAEoNAwsCQCABRQ0AIAFBAkoNACACQfwIKAIAQYAJKAIAIAFBAnRBiAhqKAIAEQIAIQFB8AgoAgAiA0HMCCgCACICTwR/IAMgAnAFIAMLQQJ0QZAJaiABNgIAC0HwCCgCACIDQcwIKAIAIgFJDQAgAyABcCEDCyADQQJ0QZAJaigCACEFDAELIANB/QBxQSFHBEAgCCEBIAYhAgwECyAEQSNHDQQCQEHsCCgCACICQQFGBEBB8AgoAgAiAUHMCCgCACIASQ0BIAEgAHAhAQwBC0H4CCgCACEBQfQIKAIAIQACQAJAIAJBBUcNACAAQQFHDQAgAUHpAkgNAQwHCyABQeQASg0GQfwIKAIAQeQASg0GQYAJKAIAQeQASg0GCwJAIABFDQAgAEECSg0AIAFB/AgoAgBBgAkoAgAgAEECdEGICGooAgARAgAhAEHwCCgCACIBQcwIKAIAIgJPBH8gASACcAUgAQtBAnRBkAlqIAA2AgALQfAIKAIAIgFBzAgoAgAiAEkNACABIABwIQELIAFBAnRBkAlqKAIAIQUMBAsgCCEBIAYhAgtB1AgoAgAhBgNAAkAgASAGSA0AIAZB//8ASg0AIAZBAnQiBEGgiQJqIgZBoAgpAwA3AwAgBEGoiQJqQaAIKQMANwMAIARBsIkCakGgCCkDADcDACAEQbiJAmpBoAgpAwA3AwAgBEHAiQJqQaAIKQMANwMAIARByIkCakGgCCkDADcDACAEQdCJAmpBoAgpAwA3AwAgBEHYiQJqQaAIKQMANwMAIARB4IkCakGgCCkDADcDACAEQeiJAmpBoAgpAwA3AwAgBEHwiQJqQaAIKQMANwMAIARB+IkCakGgCCkDADcDACAEQYCKAmpBoAgpAwA3AwAgBEGIigJqQaAIKQMANwMAIARBkIoCakGgCCkDADcDACAEQZiKAmpBoAgpAwA3AwAgBEGgigJqQaAIKQMANwMAIARBqIoCakGgCCkDADcDACAEQbCKAmpBoAgpAwA3AwAgBEG4igJqQaAIKQMANwMAIARBwIoCakGgCCkDADcDACAEQciKAmpBoAgpAwA3AwAgBEHQigJqQaAIKQMANwMAIARB2IoCakGgCCkDADcDACAEQeCKAmpBoAgpAwA3AwAgBEHoigJqQaAIKQMANwMAIARB8IoCakGgCCkDADcDACAEQfiKAmpBoAgpAwA3AwAgBEGAiwJqQaAIKQMANwMAIARBiIsCakGgCCkDADcDACAEQZCLAmpBoAgpAwA3AwAgBEGYiwJqQaAIKQMANwMAIARBoIsCakGgCCkDADcDACAEQaiLAmpBoAgpAwA3AwAgBEGwiwJqQaAIKQMANwMAIARBuIsCakGgCCkDADcDACAEQcCLAmpBoAgpAwA3AwAgBEHIiwJqQaAIKQMANwMAIARB0IsCakGgCCkDADcDACAEQdiLAmpBoAgpAwA3AwAgBEHgiwJqQaAIKQMANwMAIARB6IsCakGgCCkDADcDACAEQfCLAmpBoAgpAwA3AwAgBEH4iwJqQaAIKQMANwMAIARBgIwCakGgCCkDADcDACAEQYiMAmpBoAgpAwA3AwAgBEGQjAJqQaAIKQMANwMAIARBmIwCakGgCCkDADcDACAEQaCMAmpBoAgpAwA3AwAgBEGojAJqQaAIKQMANwMAIARBsIwCakGgCCkDADcDACAEQbiMAmpBoAgpAwA3AwAgBEHAjAJqQaAIKQMANwMAIARByIwCakGgCCkDADcDACAEQdCMAmpBoAgpAwA3AwAgBEHYjAJqQaAIKQMANwMAIARB4IwCakGgCCkDADcDACAEQeiMAmpBoAgpAwA3AwAgBEHwjAJqQaAIKQMANwMAIARB+IwCakGgCCkDADcDACAEQYCNAmpBoAgpAwA3AwAgBEGIjQJqQaAIKQMANwMAIARBkI0CakGgCCkDADcDACAEQZiNAmpBoAgpAwA3AwAgBEGwiQZqIAZBgAT8CgAAQdQIKAIAQQJ0QcCJCmogBkGABPwKAABB1AgoAgBBAnRB0IkOaiAGQYAE/AoAAEHUCCgCAEECdEHgiRJqIAZBgAT8CgAAQdQIKAIAQQJ0QfCJFmogBkGABPwKAABB1AhB1AgoAgBBgAFqIgY2AgALIAFB//8ATQRAIABBAXEgAWxBAnRBoIkCaiAFNgIAIABBAXZBAXEgAWxBAnRBsIkGaiAFNgIAIABBAnZBAXEgAWxBAnRBwIkKaiAFNgIAIABBA3ZBAXEgAWxBAnRB0IkOaiAFNgIAIABBBHZBAXEgAWxBAnRB4IkSaiAFNgIAIABBBXYgAWxBAnRB8IkWaiAFNgIAQdQIKAIAIQYLIAFBAWohAUHcCEHcCCgCACAAcjYCACACLQAAIQAgAkEBaiIEIQIgAEH/AHEiA0E/ayIAQcAASQ0ACyAECyECQQAhBCACIQYgASEIIANB/QBxQSFGDQELIANBJGsOCgEDAwMDAwMDAwIDC0HsCEIBNwIADAQLQdgIIAFB2AgoAgAiACAAIAFIGyIAQYCAASAAQYCAAUgbNgIADAILQegIIAFB2AgoAgAiACAAIAFIGyIAQYCAASAAQYCAAUgbIgA2AgBB2AggADYCACAAQQRrEAAEQEHoCEEENgIAQdgIQQQ2AgBB0AhBATYCAA8LEAgMAQsCQCADQTtHDQBB7AgoAgAiAEEHSg0AQewIIABBAWo2AgAgAEECdEHwCGpBADYCAAsgAiEGIAQhAyABIQgMAQtBBCEIIAIhBiAEIQMLIAYgCUkNAAsLQeQIIAU2AgBB4AggAzYCAEHoCCAINgIAC9ELAgF+CH9B2AhCBDcDAEGojQJBoAgpAwAiADcDAEGgjQIgADcDAEGYjQIgADcDAEGQjQIgADcDAEGIjQIgADcDAEGAjQIgADcDAEH4jAIgADcDAEHwjAIgADcDAEHojAIgADcDAEHgjAIgADcDAEHYjAIgADcDAEHQjAIgADcDAEHIjAIgADcDAEHAjAIgADcDAEG4jAIgADcDAEGwjAIgADcDAEGojAIgADcDAEGgjAIgADcDAEGYjAIgADcDAEGQjAIgADcDAEGIjAIgADcDAEGAjAIgADcDAEH4iwIgADcDAEHwiwIgADcDAEHoiwIgADcDAEHgiwIgADcDAEHYiwIgADcDAEHQiwIgADcDAEHIiwIgADcDAEHAiwIgADcDAEG4iwIgADcDAEGwiwIgADcDAEGoiwIgADcDAEGgiwIgADcDAEGYiwIgADcDAEGQiwIgADcDAEGIiwIgADcDAEGAiwIgADcDAEH4igIgADcDAEHwigIgADcDAEHoigIgADcDAEHgigIgADcDAEHYigIgADcDAEHQigIgADcDAEHIigIgADcDAEHAigIgADcDAEG4igIgADcDAEGwigIgADcDAEGoigIgADcDAEGgigIgADcDAEGYigIgADcDAEGQigIgADcDAEGIigIgADcDAEGAigIgADcDAEH4iQIgADcDAEHwiQIgADcDAEHoiQIgADcDAEHgiQIgADcDAEHYiQIgADcDAEHQiQIgADcDAEHIiQIgADcDAEHAiQIgADcDAEG4iQIgADcDAEGwiQIgADcDAEGoCCgCACIEQf8AakGAAW0hCAJAIARBgQFIDQBBASEBIAhBAiAIQQJKG0EBayICQQFxIQMgBEGBAk4EQCACQX5xIQIDQCABQQl0IgdBEHJBoIkCakGwiQJBgAT8CgAAIAdBsI0CakGwiQJBgAT8CgAAIAFBAmohASACQQJrIgINAAsLIANFDQAgAUEJdEEQckGgiQJqQbCJAkGABPwKAAALAkAgBEEBSA0AIAhBASAIQQFKGyIDQQFxIQUCQCADQQFrIgdFBEBBACEBDAELIANB/v///wdxIQJBACEBA0AgAUEJdCIGQRByQbCJBmpBsIkCQYAE/AoAACAGQZAEckGwiQZqQbCJAkGABPwKAAAgAUECaiEBIAJBAmsiAg0ACwsgBQRAIAFBCXRBEHJBsIkGakGwiQJBgAT8CgAACyAEQQFIDQAgA0EBcSEFIAcEfyADQf7///8HcSECQQAhAQNAIAFBCXQiBkEQckHAiQpqQbCJAkGABPwKAAAgBkGQBHJBwIkKakGwiQJBgAT8CgAAIAFBAmohASACQQJrIgINAAsgAUEHdEEEcgVBBAshASAFBEAgAUECdEHAiQpqQbCJAkGABPwKAAALIARBAUgNACADQQFxIQUgBwR/IANB/v///wdxIQJBACEBA0AgAUEJdCIGQRByQdCJDmpBsIkCQYAE/AoAACAGQZAEckHQiQ5qQbCJAkGABPwKAAAgAUECaiEBIAJBAmsiAg0ACyABQQd0QQRyBUEECyEBIAUEQCABQQJ0QdCJDmpBsIkCQYAE/AoAAAsgBEEBSA0AIANBAXEhBSAHBH8gA0H+////B3EhAkEAIQEDQCABQQl0IgZBEHJB4IkSakGwiQJBgAT8CgAAIAZBkARyQeCJEmpBsIkCQYAE/AoAACABQQJqIQEgAkECayICDQALIAFBB3RBBHIFQQQLIQEgBQRAIAFBAnRB4IkSakGwiQJBgAT8CgAACyAEQQFIDQAgA0EBcSEEIAcEfyADQf7///8HcSECQQAhAQNAIAFBCXQiA0EQckHwiRZqQbCJAkGABPwKAAAgA0GQBHJB8IkWakGwiQJBgAT8CgAAIAFBAmohASACQQJrIgINAAsgAUEHdEEEcgVBBAshASAERQ0AIAFBAnRB8IkWakGwiQJBgAT8CgAAC0HUCCAIQQd0QQRyNgIAC58TAgh/AX5B5AgoAgAhA0HgCCgCACECQegIKAIAIQcgAUGQiQFqIglB/wE6AAAgACABSARAIABBkIkBaiEIA0AgAiEEIAhBAWohAQJAIAgtAABB/wBxIgJBMGtBCUsEQCABIQgMAQtB7AgoAgBBAnRB7AhqIgUoAgAhAANAIAUgAiAAQQpsakEwayIANgIAIAEtAAAhAiABQQFqIgghASACQf8AcSICQTBrQQpJDQALCwJAAkACQAJAAkACQAJ/AkAgAkE/ayIAQT9NBEAgBEUNASAEQSFGBEBB8AgoAgAiAUEBIAEbIgQgB2ohAQJAIABFDQAgB0H//wBLDQBBgIABIAdrIAQgAUH//wBLGyEFAkAgAEEBcUUNACAHQQJ0QaCJAmohAiAFIgRBB3EiBgRAA0AgAiADNgIAIAJBBGohAiAEQQFrIQQgBkEBayIGDQALCyAFQQFrQQdJDQADQCACIAM2AhwgAiADNgIYIAIgAzYCFCACIAM2AhAgAiADNgIMIAIgAzYCCCACIAM2AgQgAiADNgIAIAJBIGohAiAEQQhrIgQNAAsLAkAgAEECcUUNACAHQQJ0QbCJBmohAiAFIgRBB3EiBgRAA0AgAiADNgIAIAJBBGohAiAEQQFrIQQgBkEBayIGDQALCyAFQQFrQQdJDQADQCACIAM2AhwgAiADNgIYIAIgAzYCFCACIAM2AhAgAiADNgIMIAIgAzYCCCACIAM2AgQgAiADNgIAIAJBIGohAiAEQQhrIgQNAAsLAkAgAEEEcUUNACAHQQJ0QcCJCmohAiAFIgRBB3EiBgRAA0AgAiADNgIAIAJBBGohAiAEQQFrIQQgBkEBayIGDQALCyAFQQFrQQdJDQADQCACIAM2AhwgAiADNgIYIAIgAzYCFCACIAM2AhAgAiADNgIMIAIgAzYCCCACIAM2AgQgAiADNgIAIAJBIGohAiAEQQhrIgQNAAsLAkAgAEEIcUUNACAHQQJ0QdCJDmohAiAFIgRBB3EiBgRAA0AgAiADNgIAIAJBBGohAiAEQQFrIQQgBkEBayIGDQALCyAFQQFrQQdJDQADQCACIAM2AhwgAiADNgIYIAIgAzYCFCACIAM2AhAgAiADNgIMIAIgAzYCCCACIAM2AgQgAiADNgIAIAJBIGohAiAEQQhrIgQNAAsLAkAgAEEQcUUNACAHQQJ0QeCJEmohAiAFIgRBB3EiBgRAA0AgAiADNgIAIAJBBGohAiAEQQFrIQQgBkEBayIGDQALCyAFQQFrQQdJDQADQCACIAM2AhwgAiADNgIYIAIgAzYCFCACIAM2AhAgAiADNgIMIAIgAzYCCCACIAM2AgQgAiADNgIAIAJBIGohAiAEQQhrIgQNAAsLIABBIHFFDQAgBUEBayEEIAdBAnRB8IkWaiEAIAVBB3EiAgRAA0AgACADNgIAIABBBGohACAFQQFrIQUgAkEBayICDQALCyAEQQdJDQADQCAAIAM2AhwgACADNgIYIAAgAzYCFCAAIAM2AhAgACADNgIMIAAgAzYCCCAAIAM2AgQgACADNgIAIABBIGohACAFQQhrIgUNAAsLIAhBAWoiBSAILQAAQf8AcSICQT9rIgBBP00NAxoMBAsCQEHsCCgCACIFQQFGBEBB8AgoAgAiAUHMCCgCACIESQ0BIAEgBHAhAQwBC0H4CCgCACEEQfQIKAIAIQECQAJAIAVBBUcNACABQQFHDQAgBEHpAk4NBAwBCyAEQeQASg0DQfwIKAIAQeQASg0DQYAJKAIAQeQASg0DCwJAIAFFDQAgAUECSg0AIARB/AgoAgBBgAkoAgAgAUECdEGICGooAgARAgAhBEHwCCgCACIBQcwIKAIAIgVPBH8gASAFcAUgAQtBAnRBkAlqIAQ2AgALQfAIKAIAIgFBzAgoAgAiBEkNACABIARwIQELIAFBAnRBkAlqKAIAIQMMAQsgAkH9AHFBIUcEQCAHIQEgAiEADAQLIARBI0cNBAJAQewIKAIAIgRBAUYEQEHwCCgCACIBQcwIKAIAIgBJDQEgASAAcCEBDAELQfgIKAIAIQFB9AgoAgAhAAJAAkAgBEEFRw0AIABBAUcNACABQekCSA0BDAcLIAFB5ABKDQZB/AgoAgBB5ABKDQZBgAkoAgBB5ABKDQYLAkAgAEUNACAAQQJKDQAgAUH8CCgCAEGACSgCACAAQQJ0QYgIaigCABECACEAQfAIKAIAIgFBzAgoAgAiBE8EfyABIARwBSABC0ECdEGQCWogADYCAAtB8AgoAgAiAUHMCCgCACIASQ0AIAEgAHAhAQsgAUECdEGQCWooAgAhAwwECyAHIQEgCAshBQNAIAFB//8ATQRAIABBAXEgAWxBAnRBoIkCaiADNgIAIABBAXZBAXEgAWxBAnRBsIkGaiADNgIAIABBAnZBAXEgAWxBAnRBwIkKaiADNgIAIABBA3ZBAXEgAWxBAnRB0IkOaiADNgIAIABBBHZBAXEgAWxBAnRB4IkSaiADNgIAIABBBXYgAWxBAnRB8IkWaiADNgIACyABQQFqIQEgBS0AACEAIAVBAWoiBCEFIABB/wBxIgJBP2siAEHAAEkNAAsgBCEFC0EAIQQgBSEIIAEhByACIQAgAkH9AHFBIUYNAQtBBCEHIAQhAiAAQSRrDgoDAgICAgICAgIBAgtB7AhCATcCAAwCC0GoCCgCAEEEaxAABEBB0AhBATYCAA8LAkBBqAgoAgAiBkEFSA0AQaAIKQMAIQogBkEDa0EBdiIBQQdxIQJBACEAIAFBAWtBB08EQCABQfj///8HcSEFA0AgAEEDdCIBQbCJAmogCjcDACABQQhyQbCJAmogCjcDACABQRByQbCJAmogCjcDACABQRhyQbCJAmogCjcDACABQSByQbCJAmogCjcDACABQShyQbCJAmogCjcDACABQTByQbCJAmogCjcDACABQThyQbCJAmogCjcDACAAQQhqIQAgBUEIayIFDQALCyACRQ0AA0AgAEEDdEGwiQJqIAo3AwAgAEEBaiEAIAJBAWsiAg0ACwtBwIkGQbCJAiAGQQJ0IgD8CgAAQdCJCkGwiQIgAPwKAABB4IkOQbCJAiAA/AoAAEHwiRJBsIkCIAD8CgAAQYCKFkGwiQIgAPwKAAAgBCECDAELAkAgAEE7Rw0AQewIKAIAIgBBB0oNAEHsCCAAQQFqNgIAIABBAnRB8AhqQQA2AgALIAEhBwsgCCAJSQ0ACwtB5AggAzYCAEHgCCACNgIAQegIIAc2AgAL4gcCBX8BfgJAQdAIAn8CQAJAIAAgAU4NACABQZCJAWohBiAAQZCJAWohBQNAIAUtAAAiA0H/AHEhAgJAAkACQAJAAkACQAJAQeAIKAIAIgRBIkcEQCAEDQcgAkEiRgRAQewIQgE3AgBB4AhBIjYCAAwICyACQT9rQcAASQ0GIANBIWsiAkEMTQ0BDAULAkAgAkEwayIEQQlNBEBB7AgoAgBBAnRB7AhqIgIgBCACKAIAQQpsajYCAAwBC0HsCCgCACEEIAJBO0YEQCAEQQdKDQFB7AggBEEBajYCACAEQQJ0QfAIakEANgIADAELIARBBEYEQEHECEECNgIAQbAIQfAIKQMANwMAQbgIQfgIKAIAIgI2AgBBvAhB/AgoAgAiBDYCAEHICEECQQFBwAgoAgAiAxs2AgBBrAggBEEAIAMbNgIAQagIIAJBgIABIAJBgIABSBtBBGpBACADGzYCAEHgCEEANgIADAoLIAJBP2tBwABJDQQLIANBIWsiAkEMTQ0BDAILQQEgAnRBjSBxRQ0DDAQLQQEgAnRBjSBxDQELIANBoQFrIgJBDEsNA0EBIAJ0QY0gcUUNAwtBxAhCgYCAgBA3AgBBsAhB8AgoAgBBAEHsCCgCACICQQBKGzYCAEG0CEH0CCgCAEEAIAJBAUobNgIAQbgIQfgIKAIAQQAgAkECShs2AgBB4AhBADYCAEG8CEEANgIADAQLIANBoQFrIgJBDEsNAUEBIAJ0QY0gcUUNAQtBxAhCgYCAgBA3AgBBsAhCADcDAEG4CEIANwMADAMLIAVBAWoiBSAGSQ0ACwsCQEHICCgCAA4DAwEAAQsCQEGoCCgCACIFQQVIDQBBoAgpAwAhByAFQQNrQQF2IgNBB3EhBEEAIQIgA0EBa0EHTwRAIANB+P///wdxIQYDQCACQQN0IgNBsIkCaiAHNwMAIANBCHJBsIkCaiAHNwMAIANBEHJBsIkCaiAHNwMAIANBGHJBsIkCaiAHNwMAIANBIHJBsIkCaiAHNwMAIANBKHJBsIkCaiAHNwMAIANBMHJBsIkCaiAHNwMAIANBOHJBsIkCaiAHNwMAIAJBCGohAiAGQQhrIgYNAAsLIARFDQADQCACQQN0QbCJAmogBzcDACACQQFqIQIgBEEBayIEDQALC0HAiQZBsIkCIAVBAnQiA/wKAABB0IkKQbCJAiAD/AoAAEHgiQ5BsIkCIAP8CgAAQfCJEkGwiQIgA/wKAABBgIoWQbCJAiAD/AoAAEECDAELEAhByAgoAgALEAEiAjYCACACDQAgACABQcgIKAIAQQJ0QYAIaigCABEBAAsLdABB6AhBBDYCAEHkCCAANgIAQewIQgE3AgBBxAhCADcCAEHACCADNgIAQdwIQgA3AgBBqAhCADcDAEGwCEIANwMAQbgIQgA3AwBBzAggAkGAICACQYAgSRs2AgBBoAggAa1CgYCAgBB+NwMAQdAIQQA2AgALIwBB0AgoAgBFBEAgACABQcgIKAIAQQJ0QYAIaigCABEBAAsLWgECfwJAAkACQEHICCgCAEEBaw4CAAECC0HYCEHoCCgCACIAQdgIKAIAIgEgACABShsiAEGAgAEgAEGAgAFIGyIANgIAIABBBGsPC0GoCCgCAEEEayEACyAAC0IBAX8Cf0EGQdwIKAIAIgBBIHENABpBBSAAQRBxDQAaQQQgAEEIcQ0AGkEDIABBBHENABpBAiAAQQFxIABBAnEbCwu9BQEFfQJ/IAJFBEAgAUH/AWxBMmpB5ABtIgBBCHQgAHIgAEEQdHIMAQsgArJDAADIQpUhBiAAQfABarJDAAC0Q5UhBQJ9IAGyQwAAyEKVIgNDAAAAP10EQCADIAZDAACAP5KUDAELIAYgA0MAAIA/IAaTlJILIQcgAyADkiEGAkAgBUOrqqo+kiIEQwAAAABdBEAgBEMAAIA/kiEEDAELIARDAACAP15FDQAgBEMAAIC/kiEECyAGIAeTIQMgBUMAAAAAXSEAAn8CfSADIAcgA5NDAADAQJQgBJSSIARDq6oqPl0NABogByAEQwAAAD9dDQAaIAMgBEOrqio/XUUNABogAyAHIAOTIARDAADAwJRDAACAQJKUkgtDAAB/Q5RDAAAAP5IiBkMAAIBPXSAGQwAAAABgcQRAIAapDAELQQALIQECQCAABEAgBUMAAIA/kiEEDAELIAUiBEMAAIA/XkUNACAFQwAAgL+SIQQLIAVDq6qqvpIiBUMAAAAAXSECAn8CfSADIAcgA5NDAADAQJQgBJSSIARDq6oqPl0NABogByAEQwAAAD9dDQAaIAMgBEOrqio/XUUNABogAyAHIAOTIARDAADAwJRDAACAQJKUkgtDAAB/Q5RDAAAAP5IiBkMAAIBPXSAGQwAAAABgcQRAIAapDAELQQALIQACQCACBEAgBUMAAIA/kiEFDAELIAVDAACAP15FDQAgBUMAAIC/kiEFCwJAIAVDq6oqPl0EQCADIAcgA5NDAADAQJQgBZSSIQcMAQsgBUMAAAA/XQ0AIAVDq6oqP11FBEAgAyEHDAELIAMgByADkyAFQwAAwMCUQwAAgECSlJIhBwsgAEEIdAJ/IAdDAAB/Q5RDAAAAP5IiBkMAAIBPXSAGQwAAAABgcQRAIAapDAELQQALQRB0ciABcgtBgICAeHILNwAgAEH/AWxBMmpB5ABtIAFB/wFsQTJqQeQAbUEIdHIgAkH/AWxBMmpB5ABtQRB0ckGAgIB4cgsEACMACwYAIAAkAAsQACMAIABrQXBxIgAkACAACwsYAQBBgAgLEQEAAAACAAAAAwAAAAQAAAAF"}},280:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});let h=(0,n(615).InWasm)({s:1,t:0,d:"AGFzbQEAAAABBQFgAAF/Ag8BA2VudgZtZW1vcnkCAAEDAwIAAAcNAgNkZWMAAANlbmQAAQqxAwKuAQEFf0GIKCgCAEGgKGohAUGEKCgCACIAQYAoKAIAQQFrQXxxIgJIBEAgAkGgKGohAyAAQaAoaiEAA0AgAC0AA0ECdCgCgCAgAC0AAkECdCgCgBggAC0AAUECdCgCgBAgAC0AAEECdCgCgAhycnIiBEH///8HSwRAQQEPCyABIAQ2AgAgAUEDaiEBIABBBGoiACADSQ0ACwtBhCggAjYCAEGIKCABQaAoazYCAEEAC/4BAQZ/AkBBgCgoAgAiAUGEKCgCACIAa0EFTgRAQQEhAxAADQFBgCgoAgAhAUGEKCgCACEAC0EBIQMgASAAayIEQQJIDQAgAEGhKGotAABBAnQoAoAQIABBoChqLQAAQQJ0KAKACHIhAQJAIARBAkYEQEEBIQIMAQtBASECIAAtAKIoIgVBPUcEQEECIQIgBUECdCgCgBggAXIhAQsgBEEERw0AIAAtAKMoIgBBPUYNACACQQFqIQIgAEECdCgCgCAgAXIhAQsgAUH///8HSw0AQYgoKAIAQaAoaiABNgIAQYgoQYgoKAIAIAJqIgA2AgAgAEGQKCgCAEchAwsgAwsAdglwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQEFY2xhbmdWMTguMC4wIChodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QgZDFlNjg1ZGY0NWRjNTk0NGI0M2QyNTQ3ZDAxMzhjZDRhM2VlNGVmZSkALA90YXJnZXRfZmVhdHVyZXMCKw9tdXRhYmxlLWdsb2JhbHMrCHNpZ24tZXh0"}),g=new Uint8Array("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("").map(_=>_.charCodeAt(0))),a=new Uint32Array(1024);a.fill(4278190080);for(let _=0;_>4|(_<<4&255)<<8;for(let _=0;_>2<<8|(_<<6&255)<<16;for(let _=0;_this.keepSize?this._inst=this._m32=this._d=this._mem=null:(this._m32[1280]=0,this._m32[1281]=0,this._m32[1282]=0))}init(_){let v=this._m32,u=4*(Math.ceil(_/3)+1288);this._inst?this._mem.buffer.byteLengtho[1283]?1:(this._d.set(_.subarray(v,u),o[1280]),o[1280]+=u-v,o[1280]-o[1281]>=131072?this._inst.exports.dec():0)}end(){return this._inst?this._inst.exports.end():1}}},125:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.IIPHandler=void 0;let h=n(782),g=n(216),a=n(280),l=n(769),_=n(326),v={name:"Unnamed file",size:0,width:"auto",height:"auto",preserveAspectRatio:1,inline:0};t.IIPHandler=class{constructor(u,o,d,f){this._opts=u,this._renderer=o,this._storage=d,this._coreTerminal=f,this._aborted=!1,this._hp=new l.HeaderParser,this._header=v,this._dec=new a.default(4194304),this._metrics=_.UNSUPPORTED_TYPE}reset(){}start(){this._aborted=!1,this._header=v,this._metrics=_.UNSUPPORTED_TYPE,this._hp.reset()}put(u,o,d){if(!this._aborted)if(this._hp.state===4)this._dec.put(u,o,d)&&(this._dec.release(),this._aborted=!0);else{let f=this._hp.parse(u,o,d);if(f===-1)return void(this._aborted=!0);if(f>0){if(this._header=Object.assign({},v,this._hp.fields),!this._header.inline||!this._header.size||this._header.size>this._opts.iipSizeLimit)return void(this._aborted=!0);this._dec.init(this._header.size),this._dec.put(u,f,d)&&(this._dec.release(),this._aborted=!0)}}}end(u){if(this._aborted)return!0;let o=0,d=0,f=!0;if((f=u)&&(f=!this._dec.end())&&(this._metrics=(0,_.imageType)(this._dec.data8),(f=this._metrics.mime!=="unsupported")&&(o=this._metrics.width,d=this._metrics.height,(f=o&&d&&o*d{w.addEventListener("load",()=>{var S;URL.revokeObjectURL(y);let A=h.ImageRenderer.createCanvas(window.document,o,d);(S=A.getContext("2d"))===null||S===void 0||S.drawImage(w,0,0,o,d),this._storage.addImage(A),b(!0)}),w.src=y,setTimeout(()=>b(!0),1e3)})}return createImageBitmap(p,{resizeWidth:o,resizeHeight:d}).then(y=>(this._storage.addImage(y),!0))}_resize(u,o){var d,f,p,y;let w=((d=this._renderer.dimensions)===null||d===void 0?void 0:d.css.cell.width)||g.CELL_SIZE_DEFAULT.width,b=((f=this._renderer.dimensions)===null||f===void 0?void 0:f.css.cell.height)||g.CELL_SIZE_DEFAULT.height,S=((p=this._renderer.dimensions)===null||p===void 0?void 0:p.css.canvas.width)||w*this._coreTerminal.cols,A=((y=this._renderer.dimensions)===null||y===void 0?void 0:y.css.canvas.height)||b*this._coreTerminal.rows,C=this._dim(this._header.width,S,w),D=this._dim(this._header.height,A,b);if(!C&&!D){let L=S/u,B=(A-b)/o,R=Math.min(L,B);return R<1?[u*R,o*R]:[u,o]}return C?!this._header.preserveAspectRatio&&C&&D?[C,D]:[C,o*C/u]:[u*D/o,D]}_dim(u,o,d){return u==="auto"?0:u.endsWith("%")?parseInt(u.slice(0,-1))*o/100:u.endsWith("px")?parseInt(u.slice(0,-2)):parseInt(u)*d}}},769:(c,t)=>{function n(v){let u="";for(let o=0;o57)throw new Error("illegal char");u=10*u+v[o]-48}return u}function g(v){let u=n(v);if(!u.match(/^((auto)|(\d+?((px)|(%)){0,1}))$/))throw new Error("illegal size");return u}Object.defineProperty(t,"__esModule",{value:!0}),t.HeaderParser=void 0;let a={inline:h,size:h,name:function(v){if(typeof Buffer<"u")return Buffer.from(n(v),"base64").toString();let u=atob(n(v)),o=new Uint8Array(u.length);for(let d=0;d6)return-1;for(let y=u;y=_)return this._a();p[f++]=w}break;case 58:return d!==3||this._storeValue(f)?(this.state=4,y+1):this._a();default:if(f>=_)return this._a();p[f++]=w}}return this.state=d,this._position=f,-2}_a(){return this.state=1,-1}_storeKey(v){let u=n(this._buffer.subarray(0,v));return!!u&&(this._key=u,this.fields[u]=null,!0)}_storeValue(v){if(this._key){try{let u=this._buffer.slice(0,v);this.fields[this._key]=a[this._key]?a[this._key](u):u}catch{return!1}return!0}return!1}}},326:(c,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.imageType=t.UNSUPPORTED_TYPE=void 0,t.UNSUPPORTED_TYPE={mime:"unsupported",width:0,height:0},t.imageType=function(n){if(n.length<24)return t.UNSUPPORTED_TYPE;let h=new Uint32Array(n.buffer,n.byteOffset,6);if(h[0]===1196314761&&h[1]===169478669&&h[3]===1380206665)return{mime:"image/png",width:n[16]<<24|n[17]<<16|n[18]<<8|n[19],height:n[20]<<24|n[21]<<16|n[22]<<8|n[23]};if((h[0]===3774863615||h[0]===3791640831)&&(n[6]===74&&n[7]===70&&n[8]===73&&n[9]===70||n[6]===69&&n[7]===120&&n[8]===105&&n[9]===102)){let[g,a]=function(l){let _=l.length,v=4,u=l[v]<<8|l[v+1];for(;;){if(v+=u,v>=_)return[0,0];if(l[v]!==255)return[0,0];if(l[v+1]===192||l[v+1]===194)return v+8<_?[l[v+7]<<8|l[v+8],l[v+5]<<8|l[v+6]]:[0,0];v+=2,u=l[v]<<8|l[v+1]}}(n);return{mime:"image/jpeg",width:g,height:a}}return h[0]!==944130375||n[4]!==55&&n[4]!==57||n[5]!==97?t.UNSUPPORTED_TYPE:{mime:"image/gif",width:n[7]<<8|n[6],height:n[9]<<8|n[8]}}},782:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ImageRenderer=void 0;let h=n(477),g=n(859);class a extends g.Disposable{static createCanvas(_,v,u){let o=(_||document).createElement("canvas");return o.width=0|v,o.height=0|u,o}static createImageData(_,v,u,o){if(typeof ImageData!="function"){let d=_.createImageData(v,u);return o&&d.data.set(new Uint8ClampedArray(o,0,v*u*4)),d}return o?new ImageData(new Uint8ClampedArray(o,0,v*u*4),v,u):new ImageData(v,u)}static createImageBitmap(_){return typeof createImageBitmap!="function"?Promise.resolve(void 0):createImageBitmap(_)}constructor(_){super(),this._terminal=_,this._optionsRefresh=this.register(new g.MutableDisposable),this._oldOpen=this._terminal._core.open,this._terminal._core.open=v=>{var u;(u=this._oldOpen)===null||u===void 0||u.call(this._terminal._core,v),this._open()},this._terminal._core.screenElement&&this._open(),this._optionsRefresh.value=this._terminal._core.optionsService.onOptionChange(v=>{var u;v==="fontSize"&&(this.rescaleCanvas(),(u=this._renderService)===null||u===void 0||u.refreshRows(0,this._terminal.rows))}),this.register((0,g.toDisposable)(()=>{var v;this.removeLayerFromDom(),this._terminal._core&&this._oldOpen&&(this._terminal._core.open=this._oldOpen,this._oldOpen=void 0),this._renderService&&this._oldSetRenderer&&(this._renderService.setRenderer=this._oldSetRenderer,this._oldSetRenderer=void 0),this._renderService=void 0,this.canvas=void 0,this._ctx=void 0,(v=this._placeholderBitmap)===null||v===void 0||v.close(),this._placeholderBitmap=void 0,this._placeholder=void 0}))}showPlaceholder(_){var v,u;_?this._placeholder||this.cellSize.height===-1||this._createPlaceHolder(Math.max(this.cellSize.height+1,24)):((v=this._placeholderBitmap)===null||v===void 0||v.close(),this._placeholderBitmap=void 0,this._placeholder=void 0),(u=this._renderService)===null||u===void 0||u.refreshRows(0,this._terminal.rows)}get dimensions(){var _;return(_=this._renderService)===null||_===void 0?void 0:_.dimensions}get cellSize(){var _,v;return{width:((_=this.dimensions)===null||_===void 0?void 0:_.css.cell.width)||-1,height:((v=this.dimensions)===null||v===void 0?void 0:v.css.cell.height)||-1}}clearLines(_,v){var u,o,d,f;(u=this._ctx)===null||u===void 0||u.clearRect(0,_*(((o=this.dimensions)===null||o===void 0?void 0:o.css.cell.height)||0),((d=this.dimensions)===null||d===void 0?void 0:d.css.canvas.width)||0,(++v-_)*(((f=this.dimensions)===null||f===void 0?void 0:f.css.cell.height)||0))}clearAll(){var _,v,u;(_=this._ctx)===null||_===void 0||_.clearRect(0,0,((v=this.canvas)===null||v===void 0?void 0:v.width)||0,((u=this.canvas)===null||u===void 0?void 0:u.height)||0)}draw(_,v,u,o,d=1){if(!this._ctx)return;let{width:f,height:p}=this.cellSize;if(f===-1||p===-1)return;this._rescaleImage(_,f,p);let y=_.actual,w=Math.ceil(y.width/f),b=v%w*f,S=Math.floor(v/w)*p,A=u*f,C=o*p,D=d*f+b>y.width?y.width-b:d*f,L=S+p>y.height?y.height-S:p;this._ctx.drawImage(y,Math.floor(b),Math.floor(S),Math.ceil(D),Math.ceil(L),Math.floor(A),Math.floor(C),Math.ceil(D),Math.ceil(L))}extractTile(_,v){let{width:u,height:o}=this.cellSize;if(u===-1||o===-1)return;this._rescaleImage(_,u,o);let d=_.actual,f=Math.ceil(d.width/u),p=v%f*u,y=Math.floor(v/f)*o,w=u+p>d.width?d.width-p:u,b=y+o>d.height?d.height-y:o,S=a.createCanvas(this.document,w,b),A=S.getContext("2d");return A?(A.drawImage(d,Math.floor(p),Math.floor(y),Math.floor(w),Math.floor(b),0,0,Math.floor(w),Math.floor(b)),S):void 0}drawPlaceholder(_,v,u=1){if(this._ctx){let{width:o,height:d}=this.cellSize;if(o===-1||d===-1||(this._placeholder?d>=this._placeholder.height&&this._createPlaceHolder(d+1):this._createPlaceHolder(Math.max(d+1,24)),!this._placeholder))return;this._ctx.drawImage(this._placeholderBitmap||this._placeholder,_*o,v*d%2?0:1,o*u,d,_*o,v*d,o*u,d)}}rescaleCanvas(){this.canvas&&(this.canvas.width===this.dimensions.css.canvas.width&&this.canvas.height===this.dimensions.css.canvas.height||(this.canvas.width=this.dimensions.css.canvas.width||0,this.canvas.height=this.dimensions.css.canvas.height||0))}_rescaleImage(_,v,u){if(v===_.actualCellSize.width&&u===_.actualCellSize.height)return;let{width:o,height:d}=_.origCellSize;if(v===o&&u===d)return _.actual=_.orig,_.actualCellSize.width=o,void(_.actualCellSize.height=d);let f=a.createCanvas(this.document,Math.ceil(_.orig.width*v/o),Math.ceil(_.orig.height*u/d)),p=f.getContext("2d");p&&(p.drawImage(_.orig,0,0,f.width,f.height),_.actual=f,_.actualCellSize.width=v,_.actualCellSize.height=u)}_open(){this._renderService=this._terminal._core._renderService,this._oldSetRenderer=this._renderService.setRenderer.bind(this._renderService),this._renderService.setRenderer=_=>{var v;this.removeLayerFromDom(),(v=this._oldSetRenderer)===null||v===void 0||v.call(this._renderService,_)}}insertLayerToDom(){var _,v;this.document&&this._terminal._core.screenElement?this.canvas||(this.canvas=a.createCanvas(this.document,((_=this.dimensions)===null||_===void 0?void 0:_.css.canvas.width)||0,((v=this.dimensions)===null||v===void 0?void 0:v.css.canvas.height)||0),this.canvas.classList.add("xterm-image-layer"),this._terminal._core.screenElement.appendChild(this.canvas),this._ctx=this.canvas.getContext("2d",{alpha:!0,desynchronized:!0}),this.clearAll()):console.warn("image addon: cannot insert output canvas to DOM, missing document or screenElement")}removeLayerFromDom(){this.canvas&&(this._ctx=void 0,this.canvas.remove(),this.canvas=void 0)}_createPlaceHolder(_=24){var v;(v=this._placeholderBitmap)===null||v===void 0||v.close(),this._placeholderBitmap=void 0;let u=32,o=a.createCanvas(this.document,u,_),d=o.getContext("2d",{alpha:!1});if(!d)return;let f=a.createImageData(d,u,_),p=new Uint32Array(f.data.buffer),y=(0,h.toRGBA8888)(0,0,0),w=(0,h.toRGBA8888)(255,255,255);p.fill(y);for(let A=0;A<_;++A){let C=A%2,D=A*u;for(let L=0;Lthis._placeholderBitmap=A)}else this._placeholder=void 0}get document(){var _;return(_=this._terminal._core._coreBrowserService)===null||_===void 0?void 0:_.window.document}}t.ImageRenderer=a},216:(c,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ImageStorage=t.CELL_SIZE_DEFAULT=void 0;let h=n(782);t.CELL_SIZE_DEFAULT={width:7,height:14};class g{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(_){this._ext=_}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(_){this._ext&=-469762049,this._ext|=_<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(_){this._ext&=-67108864,this._ext|=67108863&_}get underlineVariantOffset(){let _=(3758096384&this._ext)>>29;return _<0?4294967288^_:_}set underlineVariantOffset(_){this._ext&=536870911,this._ext|=_<<29&3758096384}get urlId(){return this._urlId}set urlId(_){this._urlId=_}constructor(_=0,v=0,u=-1,o=-1){this.imageId=u,this.tileId=o,this._ext=0,this._urlId=0,this._ext=_,this._urlId=v}clone(){return new g(this._ext,this._urlId,this.imageId,this.tileId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0&&this.imageId===-1}}let a=new g;t.ImageStorage=class{constructor(l,_,v){this._terminal=l,this._renderer=_,this._opts=v,this._images=new Map,this._lastId=0,this._lowestId=0,this._fullyCleared=!1,this._needsFullClear=!1,this._pixelLimit=25e5;try{this.setLimit(this._opts.storageLimit)}catch(u){console.error(u.message),console.warn(`storageLimit is set to ${this.getLimit()} MB`)}this._viewportMetrics={cols:this._terminal.cols,rows:this._terminal.rows}}dispose(){this.reset()}reset(){var l;for(let _ of this._images.values())(l=_.marker)===null||l===void 0||l.dispose();this._images.clear(),this._renderer.clearAll()}getLimit(){return 4*this._pixelLimit/1e6}setLimit(l){if(l<.5||l>1e3)throw RangeError("invalid storageLimit, should be at least 0.5 MB and not exceed 1G");this._pixelLimit=l/4*1e6>>>0,this._evictOldest(0)}getUsage(){return 4*this._getStoredPixels()/1e6}_getStoredPixels(){let l=0;for(let _ of this._images.values())_.orig&&(l+=_.orig.width*_.orig.height,_.actual&&_.actual!==_.orig&&(l+=_.actual.width*_.actual.height));return l}_delImg(l){let _=this._images.get(l);this._images.delete(l),_&&window.ImageBitmap&&_.orig instanceof ImageBitmap&&_.orig.close()}wipeAlternate(){var l;let _=[];for(let[v,u]of this._images.entries())u.bufferType==="alternate"&&((l=u.marker)===null||l===void 0||l.dispose(),_.push(v));for(let v of _)this._delImg(v);this._needsFullClear=!0,this._fullyCleared=!1}advanceCursor(l){if(this._opts.sixelScrolling){let _=this._renderer.cellSize;_.width!==-1&&_.height!==-1||(_=t.CELL_SIZE_DEFAULT);let v=Math.ceil(l/_.height);for(let u=1;u=p);++F)this._writeToCell(R,S+F,d,B*u+F),A++;if(this._opts.sixelScrolling)B=y)break;f.x=S}this._terminal._core._inputHandler._dirtyRowTracker.markDirty(f.y),this._opts.sixelScrolling?f.x=S:(f.x=w,f.y=b);let C=[];for(let[B,R]of this._images.entries())R.tileCount<1&&((_=R.marker)===null||_===void 0||_.dispose(),C.push(B));for(let B of C)this._delImg(B);let D=this._terminal.registerMarker(0);D?.onDispose(()=>{this._images.get(d)&&this._delImg(d)}),this._terminal.buffer.active.type==="alternate"&&this._evictOnAlternate();let L={orig:l,origCellSize:v,actual:l,actualCellSize:Object.assign({},v),marker:D||void 0,tileCount:A,bufferType:this._terminal.buffer.active.type};this._images.set(d,L)}render(l){if(!this._renderer.canvas&&this._images.size&&(this._renderer.insertLayerToDom(),!this._renderer.canvas))return;if(this._renderer.rescaleCanvas(),!this._images.size)return this._fullyCleared||(this._renderer.clearAll(),this._fullyCleared=!0,this._needsFullClear=!1),void(this._renderer.canvas&&this._renderer.removeLayerFromDom());this._needsFullClear&&(this._renderer.clearAll(),this._fullyCleared=!0,this._needsFullClear=!1);let{start:_,end:v}=l,u=this._terminal._core.buffer,o=this._terminal._core.cols;this._renderer.clearLines(_,v);for(let d=_;d<=v;++d){let f=u.lines.get(d+u.ydisp);if(!f)return;for(let p=0;p=l.cols)return void(this._viewportMetrics=l);let v=this._terminal._core.buffer,u=v.lines.length,o=this._viewportMetrics.cols-1;for(let d=0;d=b)continue;let S=!1;for(let D=o+1;D>l.cols;++D)if(4194303&f._data[3*D+0]){S=!0;break}if(S)continue;let A=Math.min(l.cols,b-p.tileId%b+o),C=p.tileId;for(let D=o+1;D{Object.defineProperty(t,"__esModule",{value:!0}),t.SixelHandler=void 0;let h=n(477),g=n(782),a=n(710),l=h.PALETTE_ANSI_256;function _(v){return h.BIG_ENDIAN?v:(255&v)<<24|(v>>>8&255)<<16|(v>>>16&255)<<8|v>>>24&255}l.set(h.PALETTE_VT340_COLOR),t.SixelHandler=class{constructor(v,u,o){this._opts=v,this._storage=u,this._coreTerminal=o,this._size=0,this._aborted=!1,(0,a.DecoderAsync)({memoryLimit:4*this._opts.pixelLimit,palette:l,paletteLimit:this._opts.sixelPaletteLimit}).then(d=>this._dec=d)}reset(){this._dec&&(this._dec.release(),this._dec._palette.fill(0),this._dec.init(0,l,this._opts.sixelPaletteLimit))}hook(v){var u;if(this._size=0,this._aborted=!1,this._dec){let o=v.params[1]===1?0:function(d,f){let p=0;if(!f)return p;if(d.isInverse())if(d.isFgDefault())p=_(f.foreground.rgba);else if(d.isFgRGB()){let y=d.constructor.toColorRGB(d.getFgColor());p=(0,h.toRGBA8888)(...y)}else p=_(f.ansi[d.getFgColor()].rgba);else if(d.isBgDefault())p=_(f.background.rgba);else if(d.isBgRGB()){let y=d.constructor.toColorRGB(d.getBgColor());p=(0,h.toRGBA8888)(...y)}else p=_(f.ansi[d.getBgColor()].rgba);return p}(this._coreTerminal._core._inputHandler._curAttrData,(u=this._coreTerminal._core._themeService)===null||u===void 0?void 0:u.colors);this._dec.init(o,null,this._opts.sixelPaletteLimit)}}put(v,u,o){if(!this._aborted&&this._dec){if(this._size+=o-u,this._size>this._opts.sixelSizeLimit)return console.warn("SIXEL: too much data, aborting"),this._aborted=!0,void this._dec.release();try{this._dec.decode(v,u,o)}catch(d){console.warn(`SIXEL: error while decoding image - ${d}`),this._aborted=!0,this._dec.release()}}}unhook(v){var u;if(this._aborted||!v||!this._dec)return!0;let o=this._dec.width,d=this._dec.height;if(!o||!d)return d&&this._storage.advanceCursor(d),!0;let f=g.ImageRenderer.createCanvas(void 0,o,d);return(u=f.getContext("2d"))===null||u===void 0||u.putImageData(new ImageData(this._dec.data8,o,d),0,0),this._dec.memoryUsage>4194304&&this._dec.release(),this._storage.addImage(f),!0}}},859:(c,t)=>{function n(h){for(let g of h)g.dispose();h.length=0}Object.defineProperty(t,"__esModule",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(let h of this._disposables)h.dispose();this._disposables.length=0}register(h){return this._disposables.push(h),h}unregister(h){let g=this._disposables.indexOf(h);g!==-1&&this._disposables.splice(g,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(h){this._isDisposed||h===this._value||(this._value?.dispose(),this._value=h)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(h){return{dispose:h}},t.disposeArray=n,t.getDisposeArrayDisposable=function(h){return{dispose:()=>n(h)}}}},i={};function r(c){var t=i[c];if(t!==void 0)return t.exports;var n=i[c]={exports:{}};return e[c](n,n.exports,r),n.exports}var s={};return(()=>{var c=s;Object.defineProperty(c,"__esModule",{value:!0}),c.ImageAddon=void 0;let t=r(125),n=r(782),h=r(216),g=r(973),a={enableSizeReports:!0,pixelLimit:16777216,sixelSupport:!0,sixelScrolling:!0,sixelPaletteLimit:256,sixelSizeLimit:25e6,storageLimit:128,showPlaceholder:!0,iipSupport:!0,iipSizeLimit:2e7};c.ImageAddon=class{constructor(l){this._disposables=[],this._handlers=new Map,this._opts=Object.assign({},a,l),this._defaultOpts=Object.assign({},a,l)}dispose(){for(let l of this._disposables)l.dispose();this._disposables.length=0,this._handlers.clear()}_disposeLater(...l){for(let _ of l)this._disposables.push(_)}activate(l){if(this._terminal=l,this._renderer=new n.ImageRenderer(l),this._storage=new h.ImageStorage(l,this._renderer,this._opts),this._opts.enableSizeReports){let _=l.options.windowOptions||{};_.getWinSizePixels=!0,_.getCellSizePixels=!0,_.getWinSizeChars=!0,l.options.windowOptions=_}if(this._disposeLater(this._renderer,this._storage,l.parser.registerCsiHandler({prefix:"?",final:"h"},_=>this._decset(_)),l.parser.registerCsiHandler({prefix:"?",final:"l"},_=>this._decrst(_)),l.parser.registerCsiHandler({final:"c"},_=>this._da1(_)),l.parser.registerCsiHandler({prefix:"?",final:"S"},_=>this._xtermGraphicsAttributes(_)),l.onRender(_=>{var v;return(v=this._storage)===null||v===void 0?void 0:v.render(_)}),l.parser.registerCsiHandler({intermediates:"!",final:"p"},()=>this.reset()),l.parser.registerEscHandler({final:"c"},()=>this.reset()),l._core._inputHandler.onRequestReset(()=>this.reset()),l.buffer.onBufferChange(()=>{var _;return(_=this._storage)===null||_===void 0?void 0:_.wipeAlternate()}),l.onResize(_=>{var v;return(v=this._storage)===null||v===void 0?void 0:v.viewportResize(_)})),this._opts.sixelSupport){let _=new g.SixelHandler(this._opts,this._storage,l);this._handlers.set("sixel",_),this._disposeLater(l._core._inputHandler._parser.registerDcsHandler({final:"q"},_))}if(this._opts.iipSupport){let _=new t.IIPHandler(this._opts,this._renderer,this._storage,l);this._handlers.set("iip",_),this._disposeLater(l._core._inputHandler._parser.registerOscHandler(1337,_))}}reset(){var l;this._opts.sixelScrolling=this._defaultOpts.sixelScrolling,this._opts.sixelPaletteLimit=this._defaultOpts.sixelPaletteLimit,(l=this._storage)===null||l===void 0||l.reset();for(let _ of this._handlers.values())_.reset();return!1}get storageLimit(){var l;return((l=this._storage)===null||l===void 0?void 0:l.getLimit())||-1}set storageLimit(l){var _;(_=this._storage)===null||_===void 0||_.setLimit(l),this._opts.storageLimit=l}get storageUsage(){return this._storage?this._storage.getUsage():-1}get showPlaceholder(){return this._opts.showPlaceholder}set showPlaceholder(l){var _;this._opts.showPlaceholder=l,(_=this._renderer)===null||_===void 0||_.showPlaceholder(l)}getImageAtBufferCell(l,_){var v;return(v=this._storage)===null||v===void 0?void 0:v.getImageAtBufferCell(l,_)}extractTileAtBufferCell(l,_){var v;return(v=this._storage)===null||v===void 0?void 0:v.extractTileAtBufferCell(l,_)}_report(l){var _;(_=this._terminal)===null||_===void 0||_._core.coreService.triggerDataEvent(l)}_decset(l){for(let _=0;_2&&!(l[2]instanceof Array)&&l[2]<=4096?(this._opts.sixelPaletteLimit=l[2],this._report(`\x1B[?${l[0]};0;${this._opts.sixelPaletteLimit}S`)):this._report(`\x1B[?${l[0]};2S`),!0;case 4:return this._report(`\x1B[?${l[0]};0;4096S`),!0;default:return this._report(`\x1B[?${l[0]};2S`),!0}if(l[0]===2)switch(l[1]){case 1:let p=(v=(_=this._renderer)===null||_===void 0?void 0:_.dimensions)===null||v===void 0?void 0:v.css.canvas.width,y=(o=(u=this._renderer)===null||u===void 0?void 0:u.dimensions)===null||o===void 0?void 0:o.css.canvas.height;if(!p||!y){let b=h.CELL_SIZE_DEFAULT;p=(((d=this._terminal)===null||d===void 0?void 0:d.cols)||80)*b.width,y=(((f=this._terminal)===null||f===void 0?void 0:f.rows)||24)*b.height}if(p*y=32&&s<=126||s===13||s===8)&&(i+=e[r])}return i}function dr(e){return e.startsWith("content://com.termux.documents/tree")?e.split("::")[1].substring(0,e.split("::")[1].lastIndexOf("/")).replace(/^\/data\/data\/com\.termux\/files\/home/,"$HOME"):e.startsWith("file:///storage/emulated/0/")?"/sdcard"+e.substr(26).replace(/\.[^/.]+$/,"").split("/").slice(0,-1).join("/")+"/":e.startsWith("content://com.android.externalstorage.documents/tree/primary")?"/sdcard/"+e.split("::primary:")[1].substring(0,e.split("::primary:")[1].lastIndexOf("/")):!1}function Bo(e,i){e=e.replace("#","");let r=parseInt(e.substring(0,2),16),s=parseInt(e.substring(2,4),16),c=parseInt(e.substring(4,6),16);return`rgba(${r}, ${s}, ${c}, ${i})`}async function Lo(e,i){try{let r=window.DATA_STORAGE+"acodex_fonts",s="https://cdn.jsdelivr.net/gh/bajrangCoder/acode-plugin-acodex@main/fonts/",c=[s+"Fira Code Bold Nerd Font.ttf",s+"Fira Code Medium Nerd Font Complete Mono.ttf",s+"JetBrains Mono Bold Nerd Font Complete.ttf",s+"JetBrains Mono Medium Nerd Font Complete.ttf",s+"MesloLGS NF Bold Italic.ttf",s+"MesloLGS NF Bold.ttf",s+"MesloLGS NF Italic.ttf",s+"MesloLGS NF Regular.ttf",s+"SauceCodeProNerdFont-Bold.ttf",s+"SauceCodeProNerdFont-Medium.ttf",s+"VictorMonoNerdFont-Bold.ttf",s+"VictorMonoNerdFont-BoldItalic.ttf",s+"VictorMonoNerdFont-Italic.ttf",s+"VictorMonoNerdFont-Medium.ttf"];if(!await e(r).exists()){await e(window.DATA_STORAGE).createDirectory("acodex_fonts");let t=i.create("AcodeX","Downloading Fonts...");for(let n of c){let h=n.split("/").pop();t.setMessage(`Downloading Font: ${h}`),fetch(n).then(g=>g.blob()).then(async g=>{await e(r).createFile(h,g)}).catch(g=>{t.destroy(),window.toast(`Error fetching font file: ${g.toString()}`,4e3)})}t.destroy(),window.toast("Fonts Downloaded successfully \u{1F4A5}",3e3)}}catch(r){console.log(r),i.destroy()}}function Io(e){return` +@font-face { + font-family: "Fira Code Bold Nerd Font"; + src: url("${e}Fira Code Bold Nerd Font.ttf") format("truetype"); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: "Fira Code Medium Nerd Font"; + src: url("${e}Fira Code Medium Nerd Font Complete Mono.ttf") + format("truetype"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "JetBrains Mono Bold Nerd Font"; + src: url("${e}JetBrains Mono Bold Nerd Font Complete.ttf") + format("truetype"); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: "JetBrains Mono Medium Nerd Font"; + src: url("${e}JetBrains Mono Medium Nerd Font Complete.ttf") + format("truetype"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "VictorMonoNerdFont Bold"; + src: url("${e}VictorMonoNerdFont-Bold.ttf") format("truetype"); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: "VictorMonoNerdFont BoldItalic"; + src: url("${e}VictorMonoNerdFont-BoldItalic.ttf") format("truetype"); + font-weight: bold; + font-style: italic; +} +@font-face { + font-family: "VictorMonoNerdFont Medium"; + src: url("${e}VictorMonoNerdFont-Medium.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "VictorMonoNerdFont Italic"; + src: url("${e}VictorMonoNerdFont-Italic.ttf") format("truetype"); + font-weight: normal; + font-style: italic; +} +@font-face { + font-family: "SauceCodeProNerdFont Bold"; + src: url("${e}SauceCodeProNerdFont-Bold.ttf") format("truetype"); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: "SauceCodeProNerdFont Medium"; + src: url("${e}SauceCodeProNerdFont-Medium.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "MesloLGS NF Bold Italic"; + src: url("${e}MesloLGS NF Bold Italic.ttf") format("truetype"); + font-weight: bold; + font-style: italic; +} +@font-face { + font-family: "MesloLGS NF Bold"; + src: url("${e}MesloLGS NF Bold.ttf") format("truetype"); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: "MesloLGS NF Italic"; + src: url("${e}MesloLGS NF Italic.ttf") format("truetype"); + font-weight: normal; + font-style: italic; +} +@font-face { + font-family: "MesloLGS NF Regular"; + src: url("${e}MesloLGS NF Regular.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} + `}var xe={snazzy:{background:"#282A36",foreground:"#EFF0EB",cursor:"#EFF0EB",black:"#0C0D13",red:"#FF5C57",green:"#5AF78E",yellow:"#F3F99D",blue:"#57C7FF",magenta:"#FF6AC1",cyan:"#9AEDFE",white:"#EFF0EB",brightBlack:"#686868",brightRed:"#FF5C57",brightGreen:"#5AF78E",brightYellow:"#F3F99D",brightBlue:"#57C7FF",brightMagenta:"#FF6AC1",brightCyan:"#9AEDFE",brightWhite:"#EFF0EB"},xterm:{foreground:"#F8F8F8",background:"#2D2E2C",selectionBackground:"#5DA5D533",black:"#1E1E1D",brightBlack:"#262625",red:"#CE5C5C",brightRed:"#FF7272",green:"#5BCC5B",brightGreen:"#72FF72",yellow:"#CCCC5B",brightYellow:"#FFFF72",blue:"#5D5DD3",brightBlue:"#7279FF",magenta:"#BC5ED1",brightMagenta:"#E572FF",cyan:"#5DA5D5",brightCyan:"#72F0FF",white:"#F8F8F8",brightWhite:"#FFFFFF"},sapphire:{background:"#1c2431",foreground:"#cccccc",selectionBackground:"#399ef440",black:"#666666",blue:"#399ef4",brightBlack:"#666666",brightBlue:"#399ef4",brightCyan:"#21c5c7",brightGreen:"#4eb071",brightMagenta:"#b168df",brightRed:"#da6771",brightWhite:"#efefef",brightYellow:"#fff099",cyan:"#21c5c7",green:"#4eb071",magenta:"#b168df",red:"#da6771",white:"#efefef",yellow:"#fff099"},light:{background:"#ffffff",foreground:"#333333",cursor:"#333333",cursorAccent:"#ffffff",selectionBackground:"#add6ff",black:"#000000",blue:"#0451a5",brightBlack:"#666666",brightBlue:"#0451a5",brightCyan:"#0598bc",brightGreen:"#14ce14",brightMagenta:"#bc05bc",brightRed:"#cd3131",brightWhite:"#a5a5a5",brightYellow:"#b5ba00",cyan:"#0598bc",green:"#00bc00",magenta:"#bc05bc",red:"#cd3131",white:"#555555",yellow:"#949800"},custom:{background:"#1c2431",foreground:"#cccccc",cursor:"#ffffff",cursorAccent:"#fff",selectionBackground:"#399ef440",black:"#666666",blue:"#399ef4",brightBlack:"#666666",brightBlue:"#399ef4",brightCyan:"#21c5c7",brightGreen:"#4eb071",brightMagenta:"#b168df",brightRed:"#da6771",brightWhite:"#efefef",brightYellow:"#fff099",cyan:"#21c5c7",green:"#4eb071",magenta:"#b168df",red:"#da6771",white:"#efefef",yellow:"#fff099"},ayuDark:{background:"#090D13",foreground:"#FEFEFE",cursor:"#E96B72",black:"#00050D",red:"#E96B72",green:"#90B261",yellow:"#F8AE4E",blue:"#52BCF9",magenta:"#F9E893",cyan:"#8FE0C5",white:"#C6C6C6",brightBlack:"#676767",brightRed:"#EF7077",brightGreen:"#C1D84B",brightYellow:"#FEB353",brightBlue:"#58C1FE",brightMagenta:"#FEED98",brightCyan:"#94E5CA",brightWhite:"#FEFEFE"},catppuccin:{background:"#1E1D2F",foreground:"#D9E0EE",cursor:"#D9E0EE",black:"#6E6C7E",red:"#F28FAD",green:"#ABE9B3",yellow:"#FAE3B0",blue:"#96CDFB",magenta:"#F5C2E7",cyan:"#89DCEB",white:"#C3BAC6",brightBlack:"#988BA2",brightRed:"#F28FAD",brightGreen:"#ABE9B3",brightYellow:"#FAE3B0",brightBlue:"#96CDFB",brightMagenta:"#F5C2E7",brightCyan:"#89DCEB",brightWhite:"#D9E0EE"},oneDark:{background:"#1E2127",foreground:"#5C6370",cursor:"#5C6370",black:"#000000",red:"#E06C75",green:"#98C379",yellow:"#D19A66",blue:"#61AFEF",magenta:"#C678DD",cyan:"#56B6C2",white:"#ABB2BF",brightBlack:"#5C6370",brightRed:"#E06C75",brightGreen:"#98C379",brightYellow:"#D19A66",brightBlue:"#61AFEF",brightMagenta:"#C678DD",brightCyan:"#56B6C2",brightWhite:"#FFFEFE"},material:{background:"#1E282C",foreground:"#C3C7D1",cursor:"#657B83",black:"#073641",red:"#EB606B",green:"#C3E88D",yellow:"#F7EB95",blue:"#80CBC3",magenta:"#FF2490",cyan:"#AEDDFF",white:"#FFFFFF",brightBlack:"#002B36",brightRed:"#EB606B",brightGreen:"#C3E88D",brightYellow:"#F7EB95",brightBlue:"#7DC6BF",brightMagenta:"#6C71C3",brightCyan:"#34434D",brightWhite:"#FFFFFF"},nekonakoDjancoeg:{background:"#2a2c3a",foreground:"#eeeeee",cursor:"#fd6b85",black:"#2f343f",red:"#fd6b85",green:"#63e0be",yellow:"#fed270",blue:"#67d4f2",magenta:"#ff8167",cyan:"#63e0be",white:"#eeeeee",brightBlack:"#4f4f5b",brightRed:"#fd6b85",brightGreen:"#63e0be",brightYellow:"#fed270",brightBlue:"#67d4f2",brightMagenta:"#ff8167",brightCyan:"#63e0be",brightWhite:"#eeeeee"},dracula:{background:"#282a36",foreground:"#94A3A5",cursor:"#94A3A5",black:"#44475a",red:"#ff5555",green:"#50fa7b",yellow:"#ffb86c",blue:"#8be9fd",magenta:"#bd93f9",cyan:"#ff79c6",white:"#94A3A5",brightBlack:"#000000",brightRed:"#ff5555",brightGreen:"#50fa7b",brightYellow:"#ffb86c",brightBlue:"#8be9fd",brightMagenta:"#bd93f9",brightCyan:"#ff79c6",brightWhite:"#ffffff"},ayuMirage:{background:"#1F2430",foreground:"#E5E0CE",cursor:"#E96B72",black:"#00050D",red:"#E96B72",green:"#90B261",yellow:"#F8AE4E",blue:"#52BCF9",magenta:"#F9E893",cyan:"#8FE0C5",white:"#C6C6C6",brightBlack:"#676767",brightRed:"#EF7077",brightGreen:"#C1D84B",brightYellow:"#FEB353",brightBlue:"#58C1FE",brightMagenta:"#FEED98",brightCyan:"#94E5CA",brightWhite:"#FEFEFE"},siduckOneDark:{background:"#1e222a",foreground:"#c8ccd4",cursor:"#e06c75",black:"#1e222a",red:"#e06c75",green:"#98c379",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#56b6c2",white:"#D8DEE9",brightBlack:"#545862",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#c8ccd4"},elementary:{background:"#101010",foreground:"#f2f2f2",cursor:"#f2f2f2",black:"#303030",red:"#e1321a",green:"#6ab017",yellow:"#ffc005",blue:"#004f9e",magenta:"#ec0048",cyan:"#2aa7e7",white:"#f2f2f2",brightBlack:"#5d5d5d",brightRed:"#ff361e",brightGreen:"#7bc91f",brightYellow:"#ffd00a",brightBlue:"#0071ff",brightMagenta:"#ff1d62",brightCyan:"#4bb8fd",brightWhite:"#a020f0"},ayuLight:{background:"#FEFEFE",foreground:"#090D13",cursor:"#E96B72",black:"#00050D",red:"#E96B72",green:"#90B261",yellow:"#F8AE4E",blue:"#52BCF9",magenta:"#F9E893",cyan:"#8FE0C5",white:"#c6c6c694",brightBlack:"#676767",brightRed:"#EF7077",brightGreen:"#C1D84B",brightYellow:"#FEB353",brightBlue:"#58C1FE",brightMagenta:"#FEED98",brightCyan:"#94E5CA",brightWhite:"#dacaca"},everblush:{name:"Everblush",background:"#141b1e",foreground:"#dadada",cursor:"#3b4244",black:"#232a2d",red:"#e57474",green:"#8ccf7e",yellow:"#e5c76b",blue:"#67b0e8",magenta:"#c47fd5",cyan:"#6cbfbf",white:"#b3b9b8",brightBlack:"#2d3437",brightRed:"#ef7e7e",brightGreen:"#96d988",brightYellow:"#f4d67a",brightBlue:"#71baf2",brightMagenta:"#ce89df",brightCyan:"#67cbe7",brightWhite:"#bdc3c2"}};var Te=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof global<"u"&&global||{},He={searchParams:"URLSearchParams"in Te,iterable:"Symbol"in Te&&"iterator"in Symbol,blob:"FileReader"in Te&&"Blob"in Te&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in Te,arrayBuffer:"ArrayBuffer"in Te};function bu(e){return e&&DataView.prototype.isPrototypeOf(e)}He.arrayBuffer&&(Do=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],Mo=ArrayBuffer.isView||function(e){return e&&Do.indexOf(Object.prototype.toString.call(e))>-1});var Do,Mo;function ii(e){if(typeof e!="string"&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||e==="")throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function Ds(e){return typeof e!="string"&&(e=String(e)),e}function Rs(e){var i={next:function(){var r=e.shift();return{done:r===void 0,value:r}}};return He.iterable&&(i[Symbol.iterator]=function(){return i}),i}function De(e){this.map={},e instanceof De?e.forEach(function(i,r){this.append(r,i)},this):Array.isArray(e)?e.forEach(function(i){if(i.length!=2)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+i.length);this.append(i[0],i[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(i){this.append(i,e[i])},this)}De.prototype.append=function(e,i){e=ii(e),i=Ds(i);var r=this.map[e];this.map[e]=r?r+", "+i:i};De.prototype.delete=function(e){delete this.map[ii(e)]};De.prototype.get=function(e){return e=ii(e),this.has(e)?this.map[e]:null};De.prototype.has=function(e){return this.map.hasOwnProperty(ii(e))};De.prototype.set=function(e,i){this.map[ii(e)]=Ds(i)};De.prototype.forEach=function(e,i){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(i,this.map[r],r,this)};De.prototype.keys=function(){var e=[];return this.forEach(function(i,r){e.push(r)}),Rs(e)};De.prototype.values=function(){var e=[];return this.forEach(function(i){e.push(i)}),Rs(e)};De.prototype.entries=function(){var e=[];return this.forEach(function(i,r){e.push([r,i])}),Rs(e)};He.iterable&&(De.prototype[Symbol.iterator]=De.prototype.entries);function Is(e){if(!e._noBody){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}}function To(e){return new Promise(function(i,r){e.onload=function(){i(e.result)},e.onerror=function(){r(e.error)}})}function Au(e){var i=new FileReader,r=To(i);return i.readAsArrayBuffer(e),r}function wu(e){var i=new FileReader,r=To(i),s=/charset=([A-Za-z0-9_-]+)/.exec(e.type),c=s?s[1]:"utf-8";return i.readAsText(e,c),r}function Cu(e){for(var i=new Uint8Array(e),r=new Array(i.length),s=0;s-1?i:e}function Nt(e,i){if(!(this instanceof Nt))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');i=i||{};var r=i.body;if(e instanceof Nt){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,i.headers||(this.headers=new De(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,!r&&e._bodyInit!=null&&(r=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=i.credentials||this.credentials||"same-origin",(i.headers||!this.headers)&&(this.headers=new De(i.headers)),this.method=Su(i.method||this.method||"GET"),this.mode=i.mode||this.mode||null,this.signal=i.signal||this.signal||function(){if("AbortController"in Te){var t=new AbortController;return t.signal}}(),this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&r)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(r),(this.method==="GET"||this.method==="HEAD")&&(i.cache==="no-store"||i.cache==="no-cache")){var s=/([?&])_=[^&]*/;if(s.test(this.url))this.url=this.url.replace(s,"$1_="+new Date().getTime());else{var c=/\?/;this.url+=(c.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}Nt.prototype.clone=function(){return new Nt(this,{body:this._bodyInit})};function Eu(e){var i=new FormData;return e.trim().split("&").forEach(function(r){if(r){var s=r.split("="),c=s.shift().replace(/\+/g," "),t=s.join("=").replace(/\+/g," ");i.append(decodeURIComponent(c),decodeURIComponent(t))}}),i}function ku(e){var i=new De,r=e.replace(/\r?\n[\t ]+/g," ");return r.split("\r").map(function(s){return s.indexOf(` +`)===0?s.substr(1,s.length):s}).forEach(function(s){var c=s.split(":"),t=c.shift().trim();if(t){var n=c.join(":").trim();try{i.append(t,n)}catch(h){console.warn("Response "+h.message)}}}),i}Fo.call(Nt.prototype);function at(e,i){if(!(this instanceof at))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(i||(i={}),this.type="default",this.status=i.status===void 0?200:i.status,this.status<200||this.status>599)throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=i.statusText===void 0?"":""+i.statusText,this.headers=new De(i.headers),this.url=i.url||"",this._initBody(e)}Fo.call(at.prototype);at.prototype.clone=function(){return new at(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new De(this.headers),url:this.url})};at.error=function(){var e=new at(null,{status:200,statusText:""});return e.ok=!1,e.status=0,e.type="error",e};var Bu=[301,302,303,307,308];at.redirect=function(e,i){if(Bu.indexOf(i)===-1)throw new RangeError("Invalid status code");return new at(null,{status:i,headers:{location:e}})};var Ht=Te.DOMException;try{new Ht}catch{Ht=function(i,r){this.message=i,this.name=r;var s=Error(i);this.stack=s.stack},Ht.prototype=Object.create(Error.prototype),Ht.prototype.constructor=Ht}function Po(e,i){return new Promise(function(r,s){var c=new Nt(e,i);if(c.signal&&c.signal.aborted)return s(new Ht("Aborted","AbortError"));var t=new XMLHttpRequest;function n(){t.abort()}t.onload=function(){var a={statusText:t.statusText,headers:ku(t.getAllResponseHeaders()||"")};c.url.indexOf("file://")===0&&(t.status<200||t.status>599)?a.status=200:a.status=t.status,a.url="responseURL"in t?t.responseURL:a.headers.get("X-Request-URL");var l="response"in t?t.response:t.responseText;setTimeout(function(){r(new at(l,a))},0)},t.onerror=function(){setTimeout(function(){s(new TypeError("Network request failed"))},0)},t.ontimeout=function(){setTimeout(function(){s(new TypeError("Network request timed out"))},0)},t.onabort=function(){setTimeout(function(){s(new Ht("Aborted","AbortError"))},0)};function h(a){try{return a===""&&Te.location.href?Te.location.href:a}catch{return a}}if(t.open(c.method,h(c.url),!0),c.credentials==="include"?t.withCredentials=!0:c.credentials==="omit"&&(t.withCredentials=!1),"responseType"in t&&(He.blob?t.responseType="blob":He.arrayBuffer&&(t.responseType="arraybuffer")),i&&typeof i.headers=="object"&&!(i.headers instanceof De||Te.Headers&&i.headers instanceof Te.Headers)){var g=[];Object.getOwnPropertyNames(i.headers).forEach(function(a){g.push(ii(a)),t.setRequestHeader(a,Ds(i.headers[a]))}),c.headers.forEach(function(a,l){g.indexOf(l)===-1&&t.setRequestHeader(l,a)})}else c.headers.forEach(function(a,l){t.setRequestHeader(l,a)});c.signal&&(c.signal.addEventListener("abort",n),t.onreadystatechange=function(){t.readyState===4&&c.signal.removeEventListener("abort",n)}),t.send(typeof c._bodyInit>"u"?null:c._bodyInit)})}Po.polyfill=!0;Te.fetch||(Te.fetch=Po,Te.Headers=De,Te.Request=Nt,Te.Response=at);var Lu="0.5.9",Iu=Object.defineProperty,Du=(e,i,r)=>i in e?Iu(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r,Ms=(e,i,r)=>(Du(e,typeof i!="symbol"?i+"":i,r),r),Fs=class e extends Error{constructor(i,r){super(i),this.error=i,this.status_code=r,this.name="ResponseError",Error.captureStackTrace&&Error.captureStackTrace(this,e)}},Ps=class{constructor(i,r,s){Ms(this,"abortController"),Ms(this,"itr"),Ms(this,"doneCallback"),this.abortController=i,this.itr=r,this.doneCallback=s}abort(){this.abortController.abort()}async*[Symbol.asyncIterator](){for await(let i of this.itr){if("error"in i)throw new Error(i.error);if(yield i,i.done||i.status==="success"){this.doneCallback();return}}throw new Error("Did not receive done or success response in stream.")}},Os=async e=>{if(e.ok)return;let i=`Error ${e.status}: ${e.statusText}`,r=null;if(e.headers.get("content-type")?.includes("application/json"))try{r=await e.json(),i=r.error||i}catch{console.log("Failed to parse error response as JSON")}else try{console.log("Getting text from response"),i=await e.text()||i}catch{console.log("Failed to get text from error response")}throw new Fs(i,e.status)};function Ru(){return typeof window<"u"&&window.navigator?`${window.navigator.platform.toLowerCase()} Browser/${navigator.userAgent};`:typeof process<"u"?`${process.arch} ${process.platform} Node.js/${process.version}`:""}var Qs=async(e,i,r={})=>{let s={"Content-Type":"application/json",Accept:"application/json","User-Agent":`ollama-js/${Lu} (${Ru()})`};return r.headers||(r.headers={}),r.headers={...s,...r.headers},e(i,r)},Oo=async(e,i)=>{let r=await Qs(e,i);return await Os(r),r};var ri=async(e,i,r,s)=>{let t=(h=>h!==null&&typeof h=="object"&&!Array.isArray(h))(r)?JSON.stringify(r):r,n=await Qs(e,i,{method:"POST",body:t,signal:s?.signal,headers:s?.headers});return await Os(n),n},Mu=async(e,i,r)=>{let s=await Qs(e,i,{method:"DELETE",body:JSON.stringify(r)});return await Os(s),s},Tu=async function*(e){let i=new TextDecoder("utf-8"),r="",s=e.getReader();for(;;){let{done:c,value:t}=await s.read();if(c)break;r+=i.decode(t);let n=r.split(` +`);r=n.pop()??"";for(let h of n)try{yield JSON.parse(h)}catch{console.warn("invalid json: ",h)}}for(let c of r.split(` +`).filter(t=>t!==""))try{yield JSON.parse(c)}catch{console.warn("invalid json: ",c)}},Fu=e=>{if(!e)return"http://127.0.0.1:11434";let i=e.includes("://");e.startsWith(":")&&(e=`http://127.0.0.1${e}`,i=!0),i||(e=`http://${e}`);let r=new URL(e),s=r.port;s||(i?s=r.protocol==="https:"?"443":"80":s="11434");let c=`${r.protocol}//${r.hostname}:${s}${r.pathname}`;return c.endsWith("/")&&(c=c.slice(0,-1)),c},Pu=Object.defineProperty,Ou=(e,i,r)=>i in e?Pu(e,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[i]=r,Ts=(e,i,r)=>(Ou(e,typeof i!="symbol"?i+"":i,r),r),fr=class{constructor(i){Ts(this,"config"),Ts(this,"fetch"),Ts(this,"ongoingStreamedRequests",[]),this.config={host:""},i?.proxy||(this.config.host=Fu(i?.host??"http://127.0.0.1:11434")),this.fetch=fetch,i?.fetch!=null&&(this.fetch=i.fetch)}abort(){for(let i of this.ongoingStreamedRequests)i.abort();this.ongoingStreamedRequests.length=0}async processStreamableRequest(i,r){r.stream=r.stream??!1;let s=`${this.config.host}/api/${i}`;if(r.stream){let t=new AbortController,n=await ri(this.fetch,s,r,{signal:t.signal,headers:this.config.headers});if(!n.body)throw new Error("Missing body");let h=Tu(n.body),g=new Ps(t,h,()=>{let a=this.ongoingStreamedRequests.indexOf(g);a>-1&&this.ongoingStreamedRequests.splice(a,1)});return this.ongoingStreamedRequests.push(g),g}return await(await ri(this.fetch,s,r,{headers:this.config.headers})).json()}async encodeImage(i){if(typeof i!="string"){let r=new Uint8Array(i),s="",c=r.byteLength;for(let t=0;ts.model)}catch(i){return i}}async generateOllamaResponse(i,r){try{return await this.ollama.generate({model:i,system:"You are a helpful terminal assistant. You have to return terminal commands only when user give prompt, no explanation, just return command in response, if user ask any irrelevant questions or query which are not related to terminal or terminal commands then ignore it, for eg: how to get path of current directory: pwd and Also return response in plain text format, not in markdowns, etc",prompt:r})}catch(s){return s}}async _fetchAndProcessResponse(i,r,s){try{let c={"Content-Type":"application/json"};s&&(c.Authorization=`Bearer ${s}`);let t=await fetch(i,{method:"POST",headers:c,body:JSON.stringify(r)}),n=await t.json();if(t.ok)return{response:n};throw new Error(n.detail?n.detail:n.error.message||"Failed to fetch response")}catch(c){return{error:c.message}}}},Xs=Ks;var Ku=acode.require("settings");acode.addIcon("deepseek","https://raw.githubusercontent.com/deepseek-ai/DeepSeek-Coder/main/pictures/home.png");acode.addIcon("chatgpt","https://upload.wikimedia.org/wikipedia/commons/0/04/ChatGPT_logo.svg");acode.addIcon("gemini","https://upload.wikimedia.org/wikipedia/commons/4/45/Gemini_language_model_logo.png");var Qo=!1,Ko=!1,Xo=!1,Ho=!0,Hs=["block","underline","bar"],Ns=["outline","block","bar","underline","none"],No=11,Uo="MesloLGS NF Regular",Us=["normal","bold","100","200","300","400","500","600","700","800","900"],$o=1e3,Wo=1e3,jo=35,Go=!0,Ee="catppuccin",$s=["ayuDark","ayuLight","ayuMirage","catppuccin","dracula","elementary","everblush","light","material","nekonakoDjancoeg","oneDark","sapphire","siduckOneDark","snazzy","xterm","custom"],zo=[[Ku.get("editorFont"),"Default Editor Font","file file_type_font",!0],["Fira Code Bold Nerd Font","Fira Code Bold Nerd Font","file file_type_font",!0],["Fira Code Medium Nerd Font","Fira Code Medium Nerd Font","file file_type_font",!0],["JetBrains Mono Bold Nerd Font","JetBrains Mono Bold Nerd Font","file file_type_font",!0],["JetBrains Mono Medium Nerd Font","JetBrains Mono Medium Nerd Font","file file_type_font",!0],["VictorMonoNerdFont Bold","VictorMonoNerdFont Bold","file file_type_font",!0],["VictorMonoNerdFont BoldItalic","VictorMonoNerdFont BoldItalic","file file_type_font",!0],["VictorMonoNerdFont Medium","VictorMonoNerdFont Medium","file file_type_font",!0],["VictorMonoNerdFont Italic","VictorMonoNerdFont Italic","file file_type_font",!0],["SauceCodeProNerdFont Bold","SauceCodeProNerdFont Bold","file file_type_font",!0],["SauceCodeProNerdFont Medium","SauceCodeProNerdFont Medium","file file_type_font",!0],["MesloLGS NF Bold Italic","MesloLGS NF Bold Italic","file file_type_font",!0],["MesloLGS NF Bold","MesloLGS NF Bold","file file_type_font",!0],["MesloLGS NF Italic","MesloLGS NF Italic","file file_type_font",!0],["MesloLGS NF Regular","MesloLGS NF Regular","file file_type_font",!0]],qo="deepseek",Ws=[["deepseek","Deepseek","deepseek",!0],["chatgpt","ChatGPT","chatgpt",!0],["gemini-pro","Gemini Pro","gemini",!0],["local-llm","Local LLM(ollama)","icon phone_android",!0]];var iu=it($c()),ru=it(_i()),su=it(Un()),nu=it(jc()),ou=it(Gc()),au=it(zc()),hu=it(qc()),lu=it(Vc()),cu=it(Yc()),uu=it(Jc()),Co=it(Zc()),eu=acode.require("confirm"),ke=acode.require("settings"),Ao=acode.require("fsOperation"),cp=acode.require("toInternalUrl"),tu=acode.require("select"),pt=acode.require("loader"),up=acode.require("dialogBox"),dp=acode.require("page"),fp=acode.require("actionStack"),{clipboard:wo}=cordova.plugins,lr=class{isDragging=!1;startY;startHeight;isFlotBtnDragging=!1;btnStartPosX;btnStartPosY;isTerminalMinimized=!1;isTerminalOpened=!1;previousTerminalHeight;pid;terminal=null;socket=null;$fitAddon=void 0;isSelecting=!1;isTapAndHoldActive=!1;tapHoldTimeout=null;selectionStart=null;selectionEnd=null;lastTapTime=0;tapThreshold=300;touchStartY=0;touchStartTime=0;scrollThreshold=10;scrollTimeThreshold=100;constructor(){ke.value[mt.id]?this.settings.hasOwnProperty("enableGuiViewer")||(delete ke.value[mt.id],ke.update(!1),this._saveSetting()):this._saveSetting()}async init(i,r,s){try{await Ao(window.DATA_STORAGE+"acodex_fonts").exists()||Lo(Ao,pt);let c=window.IS_FREE_VERSION?"https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acodefree/files/acodex_fonts/":"https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/";this.xtermCss=tag("link",{rel:"stylesheet",href:this.baseUrl+"xterm.css"}),this.$style=tag("link",{rel:"stylesheet",href:this.baseUrl+"main.css"}),this.$fontStyleSheet=tag("style",{textContent:Io(c)}),this._loadCustomFontStyleSheet(),document.head.append(this.xtermCss,this.$style,this.$fontStyleSheet),editorManager.editor.commands.addCommand({name:"acodex:open_terminal",description:"Open Terminal",bindKey:{win:"Ctrl-K"},exec:()=>{this.openTerminalPanel(270,this.settings.port)}}),editorManager.editor.commands.addCommand({name:"acodex:close_terminal",description:"Close Terminal",bindKey:{win:"Ctrl-J"},exec:this.closeTerminal.bind(this)}),editorManager.editor.commands.addCommand({name:"acodex:maximise_terminal",description:"Maximise Terminal",bindKey:{win:"Ctrl-Shift-T"},exec:this.maxmise.bind(this)}),this.$terminalContainer=tag("div",{className:"terminal-panel"}),this.$terminalHeader=tag("div",{className:"terminal-title-bar"});let t=tag("div",{className:"left-section"}),n=tag("div",{className:"session-info"}),h=tag("div",{className:"pointer-indicator",ariaHidden:!0});this.$terminalTitle=tag("h3",{textContent:"AcodeX 1",className:"session-name"}),n.append(h,this.$terminalTitle),t.append(n);let g=tag("div",{className:"btn-section"}),a=tag("button",{className:"action-button new-session",ariaLabel:"New Session"});a.innerHTML='',this.$searchBtn=tag("button",{className:"action-button search-btn",ariaLabel:"Search"}),this.$searchBtn.innerHTML='',this.$cdBtn=tag("button",{className:"action-button folder-icon",ariaLabel:"Navigate to Folder"}),this.$cdBtn.innerHTML='',this.$minimizeBtn=tag("button",{className:"action-button minimize",ariaLabel:"Minimize"}),this.$minimizeBtn.innerHTML='',this.$closeTermBtn=tag("button",{className:"action-button close",ariaLabel:"Close Terminal"}),this.$closeTermBtn.innerHTML='',this.$searchInputContainer=tag("div",{className:"search-input-container"}),this.$searchInputContainer.append(tag("button",{className:"action-button find-previous",ariaLabel:"Find Previous",innerHTML:'',onclick:this._findPreviousMatchofSearch.bind(this)}),tag("input",{type:"text",placeholder:"Find...",ariaLabel:"Search input",oninput:l=>{this.$searchAddon?.findNext(l.target.value)}}),tag("button",{className:"action-button find-next",ariaLabel:"Find Next",innerHTML:'',onclick:this._findNextMatchofSearch.bind(this)})),this.settings.enableGuiViewer&&this.setupGUIViewerPage(),g.append(a,this.settings.enableGuiViewer?this.createGUIViewerBtn():"",this.$searchBtn,this.$cdBtn,this.$minimizeBtn,this.$closeTermBtn,this.$searchInputContainer),this.$terminalHeader.append(t,g),this.$terminalContent=tag("div",{className:"terminal-content"}),this.startHandle=tag("div",{className:"selection-handle selection-start-handle"}),this.endHandle=tag("div",{className:"selection-handle selection-end-handle"}),this.$terminalContainer.append(this.$terminalHeader,this.$terminalContent),this.$showTermBtn=tag("button",{className:"show-terminal-btn",innerHTML:''}),app.get("main")&&app.get("main").append(this.$terminalContainer,this.startHandle,this.endHandle,this.settings.showTerminalBtn?this.$showTermBtn:""),this.$showTermBtn?.classList.add("hide"),this.$terminalContainer?.classList.add("hide"),this.settings.showTerminalBtnSize&&this.settings.showTerminalBtn&&(this.$showTermBtn.style.height=this.settings.showTerminalBtnSize+"px",this.$showTermBtn.style.width=this.settings.showTerminalBtnSize+"px"),this.$cacheFile=r,this.$terminalHeader.addEventListener("mousedown",this.startDragging.bind(this)),this.$terminalHeader.addEventListener("touchstart",this.startDragging.bind(this)),a.addEventListener("click",this.createSession.bind(this)),this.$searchBtn.addEventListener("click",()=>{let l=this.$searchInputContainer.querySelector("input");this.$searchInputContainer.classList.toggle("show"),this.$searchInputContainer.classList.contains("show")?(a.style.display="none",this.settings.enableGuiViewer&&(document.querySelector(".action-button.gui-viewer").style.display="none"),this.$cdBtn.style.display="none",this.$minimizeBtn.style.display="none",this.$closeTermBtn.style.display="none",l.addEventListener("click",()=>{l.focus()})):(this.$searchAddon?.clearDecorations(),this.$searchAddon?.clearActiveDecoration(),a.style.display="block",this.settings.enableGuiViewer&&(document.querySelector(".action-button.gui-viewer").style.display="block"),this.$cdBtn.style.display="block",this.$minimizeBtn.style.display="block",this.$closeTermBtn.style.display="block")}),this.$terminalTitle.addEventListener("click",async l=>{let _,v=await this.$cacheFile.readFile("utf8"),u=JSON.parse(v);Array.isArray(u)?_=u.map(f=>f.name):_=[];let o={hideOnSelect:!0,default:localStorage.getItem("AcodeX_Current_Session")},d=await tu("AcodeX Sessions",_,o);d&&this.changeSession(d)}),this.$closeTermBtn.addEventListener("click",this.closeTerminal.bind(this)),this.$minimizeBtn.addEventListener("click",this.minimise.bind(this)),this.$cdBtn.addEventListener("click",this._cdToActiveDir.bind(this)),this.settings.showTerminalBtn&&(this.$showTermBtn.addEventListener("mousedown",this.startDraggingFlotingBtn.bind(this)),document.addEventListener("mousemove",this.dragFlotButton.bind(this)),document.addEventListener("mouseup",this.stopDraggingFlotBtn.bind(this)),this.$showTermBtn.addEventListener("touchstart",this.startDraggingFlotingBtn.bind(this)),document.addEventListener("touchmove",this.dragFlotButton.bind(this)),document.addEventListener("touchend",this.stopDraggingFlotBtn.bind(this)),this.$showTermBtn.addEventListener("click",this.maxmise.bind(this))),window.addEventListener("mousemove",this.drag.bind(this)),window.addEventListener("touchmove",this.drag.bind(this)),window.addEventListener("mouseup",this.stopDragging.bind(this)),window.addEventListener("touchend",this.stopDragging.bind(this)),window.addEventListener("resize",()=>{if(this.$terminalContainer){if(!this.$terminalContainer.classList.contains("hide")){let _=document.querySelector("#root header")?.offsetHeight,v=document.querySelector("#root ul")?.offsetHeight||0,u=_+v,o=document.querySelector("#quick-tools")?.offsetHeight||0,d=window.innerHeight-(u+o),f=parseInt(this.$terminalContainer.style.height),p=Math.min(f,d);this.$terminalContainer.style.height=p+"px",localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight)}let l=this.$terminal?.getSelection();l&&l.length>0&&this.updateHandles()}if(this.$showTermBtn&&this.settings.showTerminalBtn&&!this.$showTermBtn.classList.contains("hide")){let l=document.querySelector("#root header")?.offsetHeight,_=document.querySelector("#root ul")?.offsetHeight||0,v=l+_,u=window.innerHeight-v-this.$showTermBtn.offsetHeight,o=parseInt(this.$showTermBtn.style.bottom);this.$showTermBtn.style.bottom=Math.max(0,Math.min(u,o))+"px"}}),localStorage.getItem("AcodeX_Is_Opened")==="true"&&localStorage.getItem("AcodeX_Current_Session")&&await this.openTerminalPanel(localStorage.getItem("AcodeX_Terminal_Cont_Height")||270,this.settings.port),acode.define("acodex",{execute:(l,_=!0)=>{try{if(!this.isTerminalOpened)return;this.socket?.send(_?l+"\r":l)}catch(v){throw Error(v)}},isMinimized:()=>this.isTerminalMinimized,isTerminalOpened:()=>this.isTerminalOpened,maximiseTerminal:()=>{this.isTerminalOpened&&this.isTerminalMinimized&&this.maxmise()},openTerminal:async(l=270,_=this.settings.port)=>{if(!this.isTerminalOpened){let v=await this.openTerminalPanel(l,_);return{onmessage:u=>{v&&(v.onmessage=o=>u(typeof o.data=="string"?o.data:new Uint8Array(o.data)))},write:(u,o=!0)=>{let d=o?u+"\r":u;v.send(d)}}}},createSession:async()=>{if(this.isTerminalOpened){let l=await this.createSession();return{onmessage:_=>{l&&(l.onmessage=v=>_(typeof v.data=="string"?v.data:new Uint8Array(v.data)))},write:(_,v=!0)=>{let u=v?_+"\r":_;l.send(u)}}}},changeSession:async l=>{if(this.isTerminalOpened){let _=await this.changeSession(l);return{onmessage:v=>{_&&(_.onmessage=u=>v(typeof u.data=="string"?u.data:new Uint8Array(u.data)))},write:(v,u=!0)=>{let o=u?v+"\r":v;_.send(o)}}}},closeTerminal:()=>{this.isTerminalOpened&&this.closeTerminal()},convertAcodeUriToTermReadable:l=>dr(l),addTheme:(l,_)=>{$s.push(l),xe[l]=_},applyTheme:l=>{this.settings.theme=l,ke.update()}})}catch(c){console.log(c)}}createGUIViewerBtn(){let i=tag("button",{className:"action-button gui-viewer",ariaLabel:"Open GUI Viewer"});return i.innerHTML='',i.onclick=this.openViewerPage.bind(this),i}setupGUIViewerPage(){let i=tag("span",{className:"icon clearclose",dataset:{action:"close-btn"}});this.displayVar=tag("span",{textContent:"Display: ",dataset:{action:"copy-display-num"}}),this.displayVar.onclick=()=>{wo.copy(`export DISPLAY=${this.displayVariable};`),acode.alert("AcodeX","Copied the display, just execute the copied command in your current terminal session.")},this.$page=dp("AcodeX GUI Viewer",{lead:i,tail:this.displayVar}),this.$page.id="acodex-gui-viewer",this.$page.show=()=>{fp.push({id:mt.id,action:this.$page.hide}),app.append(this.$page),this.$page.querySelector(".gui-viewer-canvas").appendChild(this._hiddenInput)},i.onclick=()=>{this.rfb.disconnect(),s.innerHTML="",this.$page.hide()},document.addEventListener("backbutton",()=>{document.contains(this.$page)&&(this.rfb.disconnect(),s.innerHTML="",this.$page.hide())},!1);let r=tag("span",{className:"icon keyboard_hide",dataset:{action:"show-keyboard"}});this.$page.header.append(r);let s=tag("div",{className:"gui-viewer-canvas"});this.$page.body.append(s),this._hiddenInput=tag("textarea",{autocapitalize:"off",autocomplete:"off",spellcheck:"false",tabindex:"-1"}),this._hiddenInput.style.position="absolute",this._hiddenInput.style.opacity="0",this._hiddenInput.style.height="0px",this._hiddenInput.style.width="0px",this._hiddenInput.style.zIndex="-1",this._hiddenInput.style.imeMode="disabled",this.$page.querySelector(".gui-viewer-canvas").appendChild(this._hiddenInput),r.onclick=()=>{this._hiddenInput.focus()};function c(t){let n=t.target.value,h=t.target.dataset.lastValue||"",g;try{g=Math.max(t.target.selectionStart,n.length)}catch{g=n.length}let a=h.length,l=g-a,_=l<0?-l:0;for(let v=0;vnew Promise(c=>setTimeout(c,s));for(;i>0;){if((await this.executeCommandOnPty("ps aux | grep websockify_rs | grep -v grep")).output!==""){console.log("AcodeX: Websockify_rs started successfully.");return}i--,console.log("AcodeX: Waiting for websockify_rs to start..."),await r(1e3)}throw new Error("AcodeX: Failed to start websockify_rs within the timeout period.")}async bindNoVnc(){try{this.rfb=new iu.default(this.$page.querySelector(".gui-viewer-canvas"),"ws://localhost:6778/"),this.rfb.scaleViewport=!0,this.rfb.clipViewport=!0;let r=getComputedStyle(document.documentElement).getPropertyValue("--secondary-color").trim();this.rfb.background=r||"",this.rfb.addEventListener("connect",()=>{this.$page.show(),pt?.removeTitleLoader(),this.displayVar.textContent="Display: "+this.displayVariable.split(":")[1]}),this.rfb.addEventListener("disconnect",()=>{this.rfb=void 0,this.$page?.hide(),pt?.removeTitleLoader()}),this.rfb.addEventListener("credentialsrequired",async()=>{let s;if(localStorage.getItem("VNC_PASS"))s=localStorage.getItem("VNC_PASS");else{if(s=await acode.prompt("Enter vncserver password:","","text"),!s)return;localStorage.setItem("VNC_PASS",s)}this.rfb?.sendCredentials({password:s})}),this.rfb.addEventListener("securityfailure",s=>{acode.alert("AcodeX Error","Security failure: "+s.detail.reason),console.error("Security failure:",s.detail),localStorage.removeItem("VNC_PASS")}),this.rfb.addEventListener("serververification",s=>{acode.alert("AcodeX Error","Server verification failed: "+JSON.stringify(s.detail)),console.error("Server verification failed:",s)})}catch(i){pt?.removeTitleLoader(),console.error("Error novnc:",i),acode.alert("AcodeX Error",i.message)}}async executeCommandOnPty(i){try{let r=await fetch(`http://${this.settings.serverHost}:${this.settings.port}/execute-command`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:i})});if(!r.ok)throw new Error(`Request failed with status: ${r.status}`);return await r.json()}catch(r){throw r}}async openTerminalPanel(i,r){if(!r)return;document.querySelector(".terminal-panel")||app.get("main").append(this.$terminalContainer,this.$showTermBtn,this.startHandle,this.endHandle),this.settings.port=r,ke.update(!1),this.$terminalContainer.classList.remove("hide"),this.isTerminalOpened=!0,this.$terminalContainer.style.height=i+"px",this.$terminalContent.style.width="100%",this.$terminalContent.style.height=`calc(100% - ${this.$terminalContainer.offsetHeight}px)`,this.settings.transparency?(this.$terminalContainer.style.background="transparent",this.$terminalContainer.style.backdropFilter=`blur(${this.settings.blurValue})`,this.$terminalHeader.style.background=Eo(this.$terminalHeader),this.$terminalHeader.style.backdropFilter=`blur(${this.settings.blurValue})`):(this.$terminalContainer.style.background="var(--popup-background-color)",this.$terminalHeader.style.background="var(--primary-color)");let s;return localStorage.getItem("AcodeX_Current_Session")?s=await this.changeSession(localStorage.getItem("AcodeX_Current_Session"),!0):(this.$terminalContent.innerHTML="",s=await this.createSession()),s}async createXtermTerminal(i){if(this.$terminal=this.terminalObj,this.$fitAddon=new ou.FitAddon,this.$webglAddon=new au.WebglAddon,this.$unicode11Addon=new lu.Unicode11Addon,this.$webLinkAddon=new hu.WebLinksAddon(async(r,s)=>{await eu("AcodeX Link",`Do you want to open ${s} in browser?`)&&system.openInBrowser(s)}),this.$searchAddon=new uu.SearchAddon,this.settings.imageRendering&&(this.$imageAddon=new Co.ImageAddon,this.$terminal.loadAddon(this.$imageAddon)),this.$terminal.loadAddon(this.$fitAddon),this.$terminal.loadAddon(this.$unicode11Addon),this.$terminal.loadAddon(this.$webLinkAddon),this.$terminal.loadAddon(this.$searchAddon),this.fitTerminal(),this.$webglAddon)try{this.$terminal.loadAddon(this.$webglAddon),this.$terminal.open(this.$terminalContent)}catch(r){window.toast("error during loading webgl addon: "+r,4e3),this.$webglAddon.dispose(),this.$webglAddon=void 0}this.$terminal.element||this.$terminal.open(this.$terminalContent),this.$terminal.focus(),this._updateTerminalHeight()}async attachSocketToXterm(i,r){this.$terminal.onResize(async t=>{if(!r)return;let n=t.cols.toString(),h=t.rows.toString(),g=`http://${this.settings.serverHost}:${i}/terminals/${r}/resize`;await fetch(g,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cols:n,rows:h})})}),this.socket=new WebSocket(`ws://${this.settings.serverHost}:${i}/terminals/${r}`),this.socket.onopen=()=>{this.$attachAddon=new cu.AttachAddon(this.socket),this.$terminal.loadAddon(this.$attachAddon),this.$terminal.unicode.activeVersion="11",this._updateTerminalHeight(),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),localStorage.getItem("AcodeX_Terminal_Is_Minimised")==="true"&&this.minimise(),this._updateTerminalHeight(),this.startHandle.addEventListener("touchmove",this.startHandleTouchMoveCb.bind(this)),this.endHandle.addEventListener("touchmove",this.endHandleTouchMoveCb.bind(this)),this.$terminal.element.addEventListener("touchstart",this.terminalTouchStartCb.bind(this)),this.$terminal.element.addEventListener("touchmove",this.terminalTouchMoveCb.bind(this)),this.$terminal.element.addEventListener("touchend",this.terminalTouchEndCb.bind(this)),this.$terminal.onSelectionChange(this.terminalSelectionChangeCb.bind(this)),document.addEventListener("click",this.removeSelectionCb.bind(this))},this.socket.onclose=async t=>{try{let n=await fetch(`http://${this.settings.serverHost}:${i}/`);n.ok||console.warn("Server responded with an error:",n.status,n.statusText);return}catch{this.$terminalContainer.classList.contains("hide")||(this.$terminalContainer.style.opacity=1),this.$terminalContainer.classList.add("hide"),this.$showTermBtn.classList.contains("hide")||this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,this.isTerminalOpened=!1,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),this.$terminalContainer.style.height=this.previousTerminalHeight,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),localStorage.removeItem("AcodeX_Current_Session"),await this.$cacheFile.writeFile(""),acode.alert("AcodeX Server","Disconnected from server because server gets closed \u{1F61E}!")}},this.socket.onerror=t=>{acode.alert("AcodeX Error",JSON.stringify(t))},this.$terminal.attachCustomKeyEventHandler(async t=>{if(t.type==="keydown"){let n=await this.$cacheFile.readFile("utf8"),h=n?JSON.parse(n):[];if(t.ctrlKey&&(t.key==="N"||t.key==="n"))return this.createSession(),!1;if(t.ctrlKey&&(t.key==="W"||t.key==="w"))return this.closeTerminal(),!1;if(t.ctrlKey&&t.shiftKey&&(t.key==="V"||t.key==="v"))return wo.paste(g=>{this.$terminal?.paste(g)}),!1;if(t.ctrlKey&&t.keyCode>=49&&t.keyCode<=53){let g=t.keyCode-49;if(h.length>g){let a=h[g];return this.changeSession(a.name),!1}}else if(t.ctrlKey&&t.key==="ArrowLeft"){let g=h.findIndex(a=>a.name===localStorage.getItem("AcodeX_Current_Session"));if(g>0){let a=h[g-1];return this.changeSession(a.name),!1}}else if(t.ctrlKey&&t.key==="ArrowRight"){let g=h.findIndex(a=>a.name===localStorage.getItem("AcodeX_Current_Session"));if(g{if(t==="\x7F"){s.trim()===""?c=!0:(s=s.slice(0,-1),c=s.trim()==="");return}let n=ko(t);s+=n,n.startsWith("#")&&c&&this.openAIPromptPopup(),t==="\r"&&(s.trim().toLowerCase()==="exit"&&(console.log("Exiting current session..."),this.terminalCloseHandler()),s="",c=!0),c=s.trim()===""})}_getCellSize(){let i=this.$terminal._core._renderService.dimensions;return{cellWidth:i.css.cell.width,cellHeight:i.css.cell.height}}getTouchCoordinates(i){let r=this.$terminal.element.getBoundingClientRect(),s=i.touches[0],c=s.clientX-r.left,t=s.clientY-r.top,{cellWidth:n,cellHeight:h}=this._getCellSize(),g=this.$terminal.buffer.active.viewportY,a=Math.floor(c/n);return{row:Math.floor(t/h)+g,column:a}}setHandlePosition(i,r,s,c=!1){let{cellWidth:t,cellHeight:n}=this._getCellSize(),h=this.$terminal.element.getBoundingClientRect(),g=this.$terminalContainer,a=this.$terminalHeader,l=g.getBoundingClientRect(),_=a?a.getBoundingClientRect().height:0,v=this.$terminal.element.scrollTop||0,u=this.$terminal.buffer.active.viewportY,o=r-u,d=c?h.left+s*t-10:h.left+(s+1)*t-t,f=h.top+o*n-_-v-n;(this.selectionStart.row>this.selectionEnd.row||this.selectionStart.row===this.selectionEnd.row&&this.selectionStart.column>this.selectionEnd.column)&&(d=c?h.left+(s+1)*t-t:h.left+s*t-10),d=Math.max(h.left,Math.min(d,h.right-i.offsetWidth)),f=Math.max(l.top-_,Math.min(f,l.bottom-i.offsetHeight-document.querySelector("#quick-tools")?.offsetHeight||0)),i.style.left=`${d}px`,i.style.top=`${f}px`,i.style.display="block"}hideHandles(){this.startHandle.style.display="none",this.endHandle.style.display="none"}showHandles(){this.startHandle.style.display="block",this.endHandle.style.display="block"}startSelection(i,r){this.selectionStart={row:i,column:r},this.selectionEnd={row:i,column:r},this.isSelecting=!0,this.$terminal.clearSelection(),this.$terminal.select(r,i,1),this.setHandlePosition(this.startHandle,i,r,!0),this.setHandlePosition(this.endHandle,i,r)}updateSelection(){this.$terminal.clearSelection();let i=this.selectionStart.row,r=this.selectionStart.column,s=this.selectionEnd.row,c=this.selectionEnd.column;(i>s||i===s&&r>c)&&([i,r,s,c]=[s,c,i,r]);let t=this._calculateTotalSelectionLength(i,s,r,c);this.$terminal.select(r,i,t),this.setHandlePosition(this.startHandle,this.selectionStart.row,this.selectionStart.column,!0),this.setHandlePosition(this.endHandle,this.selectionEnd.row,this.selectionEnd.column)}updateHandles(){this.setHandlePosition(this.startHandle,this.selectionStart.row,this.selectionStart.column,!0),this.setHandlePosition(this.endHandle,this.selectionEnd.row,this.selectionEnd.column)}_calculateTotalSelectionLength(i,r,s,c){let t=this.$terminal.cols;if(i===r)return Math.abs(c-s)+1;{let n=0;return n+=t-s,n+=(r-i-1)*t,n+=c+1,n}}startHandleTouchMoveCb(i){i.preventDefault();let r=this.getTouchCoordinates(i);r&&(this.selectionStart=r,this.updateSelection())}endHandleTouchMoveCb(i){i.preventDefault();let r=this.getTouchCoordinates(i);r&&(this.selectionEnd=r,this.updateSelection())}terminalTouchStartCb(i){this.touchStartY=i.touches[0].clientY,this.touchStartTime=Date.now();let r=this.getTouchCoordinates(i);r&&(this.isTapAndHoldActive=!1,this.tapHoldTimeout=setTimeout(()=>{navigator.vibrate(300),this.isTapAndHoldActive=!0,this.$terminal.focus(),this.startSelection(r.row,r.column)},500))}terminalTouchMoveCb(i){if(this.isSelecting){i.preventDefault();let r=this.getTouchCoordinates(i);if(!r)return;this.selectionEnd=r,this.updateSelection()}else{let r=i.touches[0].clientY,s=Math.abs(r-this.touchStartY),c=Date.now()-this.touchStartTime;s>this.scrollThreshold&&c0||(this.hideHandles(),this.isSelecting=!1)}removeSelectionCb(i){this.$terminal?.element.contains(i.target)||(this.isSelecting=!1,this.$terminal?.clearSelection(),this.hideHandles())}async openAIPromptPopup(){let i=this.settings.aiModel===Ws[3][0]?new Xs:new Xs(this.settings.aiApiKey),r=localStorage.getItem("ACODEX_LOCAL_LLM_MODEL"),s;if(r)s=r;else{let t=await i.getListOfOllamaModels();if(s=await tu("Select Local Model",t),!s)return;localStorage.setItem("ACODEX_LOCAL_LLM_MODEL",s)}let c=up("\u26A1 Ask AcodeX Ai",` +
+
+
+
+
+
+
`,"Start Magic \u2728");c.ok(async()=>{let t=document.querySelector("#acodeXAiPromptBox").value;if(!t){c.hide();return}document.querySelector(".ai-loader-container").style.display="flex",window.toast("Wait! To see the magic of AcodeX AI \u2728",2e3);try{let n="";switch(this.settings.aiModel){case"deepseek":let{response:h,error:g}=await i.generateDeepseekResponse(t);if(g){document.querySelector(".ai-loader-container").style.display="none",c.hide(),acode.alert("AcodeX AI Error",g.toString()),console.error("AcodeX AI Error:",g);return}n=h.choices[0].message.content;break;case"chatgpt":let{response:a,error:l}=await i.generateChatgptResponse(t);if(l){document.querySelector(".ai-loader-container").style.display="none",c.hide(),acode.alert("AcodeX AI Error",l.toString()),console.error("AcodeX AI Error:",l);return}n=a.choices[0].message.content;break;case"gemini-pro":let{response:_,error:v}=await i.generateGeminiResponse(t);if(v){document.querySelector(".ai-loader-container").style.display="none",c.hide(),acode.alert("AcodeX AI Error",v.toString()),console.error("AcodeX AI Error:",v);return}n=_.candidates[0].content.parts[0].text;break;case"local-llm":n=(await i.generateOllamaResponse(s,t)).response;break}if(!n){document.querySelector(".ai-loader-container").style.display="none",c.hide();return}this.socket?.send("\b"),this.socket?.send(n.trim()),document.querySelector(".ai-loader-container").style.display="none",c.hide()}catch(n){document.querySelector(".ai-loader-container").style.display="none",c?.hide(),console.error(n),acode.alert("AcodeX AI Error",JSON.stringify(n))}})}async createSession(){let i,r=await this.$cacheFile.readFile("utf8"),s=r?JSON.parse(r):[];if(s.length===0){if(await this.createXtermTerminal(this.settings.port),i=await this._generateProcessId(),!i)return;s=[{name:"AcodeX1",pid:i}]}else{this._hideTerminalSession();let n=`AcodeX${s.reduce((h,g)=>{let l=g.name.match(/^AcodeX(\d+)$/);if(l){let _=parseInt(l[1],10);return Math.max(h,_)}return h},0)+1}`;if(await this.createXtermTerminal(this.settings.port),i=await this._generateProcessId(),!i)return;s.push({name:n,pid:i})}return await Promise.all([this.$cacheFile.writeFile(s),this.attachSocketToXterm(this.settings.port,i)]),this._updateTerminalHeight(),localStorage.setItem("AcodeX_Current_Session",s[s.length-1].name),this.$terminalTitle.textContent=s[s.length-1].name,window.toast(`Created Session: ${s[s.length-1].name}`,3e3),this.socket}_hideTerminalSession(){this.$attachAddon.dispose(),this.$fitAddon.dispose(),this.$unicode11Addon.dispose(),this.$webLinkAddon.dispose(),this.$searchAddon.dispose(),this.settings.imageRendering&&this.$imageAddon.dispose(),this.$webglAddon.dispose(),this.$terminal.dispose(),this.socket.close(),this.socket=null,this.$terminal=void 0,this.$attachAddon=void 0,this.$fitAddon=void 0,this.$unicode11Addon=void 0,this.$webLinkAddon=void 0,this.$searchAddon=void 0,this.$imageAddon=void 0,this.$webglAddon=void 0,this.$terminalContent.innerHTML=""}async _generateProcessId(){try{let i=this.$terminal.cols.toString(),r=this.$terminal.rows.toString(),s=await fetch(`http://${this.settings.serverHost}:${this.settings.port}/terminals`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cols:i,rows:r})});if(!s.ok)throw new Error("Failed to create terminal");return await s.text()}catch{this.$terminalContainer.classList.contains("hide")||this.$terminalContainer.classList.add("hide"),this.$showTermBtn.classList.contains("hide")||this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,this.isTerminalOpened=!1,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),this.$terminalContainer.style.height=this.previousTerminalHeight,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),localStorage.removeItem("AcodeX_Current_Session"),window.toast("Start the acodex server in termux first!",4e3)}}async changeSession(i,r=!1){if(r){await this.createXtermTerminal(this.settings.port);let s=await this._getPidBySessionName(i);if(!s){this.$terminalContainer.classList.contains("hide")||this.$terminalContainer.classList.add("hide"),this.$showTermBtn.classList.contains("hide")||this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,this.isTerminalOpened=!1,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),this.$terminalContainer.style.height=this.previousTerminalHeight,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),localStorage.removeItem("AcodeX_Current_Session"),window.toast("Oops! Something went wrong in the Core \u{1F614}",4e3);return}return await this.attachSocketToXterm(this.settings.port,s),localStorage.setItem("AcodeX_Current_Session",i),this.$terminalTitle.textContent=i,this.socket}else{if(i===localStorage.getItem("AcodeX_Current_Session"))return;let s=await this._getPidBySessionName(i);return s?(this._hideTerminalSession(),await this.createXtermTerminal(this.settings.port),await this.attachSocketToXterm(this.settings.port,s),localStorage.setItem("AcodeX_Current_Session",i),this.$terminalTitle.textContent=i,this.socket):void 0}}async _getPidBySessionName(i){let r=await this.$cacheFile.readFile("utf8"),s=r?JSON.parse(r):[];if(Array.isArray(s)){let c=s.find(t=>t.name===i);return c?c.pid:(console.log(`Error: Session '${i}' not found in JSON file.`),null)}else return console.log("Error: Sessions data is not an array in JSON file."),null}_saveSetting(){ke.value[mt.id]={port:8767,serverHost:"localhost",aiApiKey:"",aiModel:qo,transparency:Xo,enableGuiViewer:Qo,imageRendering:Ko,showTerminalBtnSize:jo,showTerminalBtn:Go,blurValue:"4px",cursorBlink:Ho,cursorStyle:Hs[0],cursorInactiveStyle:Ns[0],fontSize:No,fontFamily:Uo,letterSpacing:0,fontWeight:Us[0],customFontStyleSheet:"",scrollBack:$o,scrollSensitivity:Wo,theme:Ee,background:xe[Ee].background,foreground:xe[Ee].foreground,cursor:xe[Ee].cursor||"",cursorAccent:xe[Ee].cursorAccent||"",selectionBackground:xe[Ee].selectionBackground,black:xe[Ee].black,blue:xe[Ee].blue,brightBlack:xe[Ee].brightBlack,brightBlue:xe[Ee].brightBlue,brightCyan:xe[Ee].brightCyan,brightGreen:xe[Ee].brightGreen,brightMagenta:xe[Ee].brightMagenta,brightRed:xe[Ee].brightWhite,brightWhite:xe[Ee].brightWhite,brightYellow:xe[Ee].brightYellow,cyan:xe[Ee].cyan,green:xe[Ee].green,magenta:xe[Ee].magenta,red:xe[Ee].red,white:xe[Ee].white,yellow:xe[Ee].yellow},ke.update(!1)}_loadCustomFontStyleSheet(){if(this.settings.customFontStyleSheet!="")if(document.querySelector("#customFontAcodeXStyleSheet"))document.querySelector("#customFontAcodeXStyleSheet").href=this.settings.customFontStyleSheet;else{let i=tag("link",{href:this.settings.customFontStyleSheet,rel:"stylesheet",id:"customFontAcodeXStyleSheet"});document.head.append(i)}}_updateTerminalHeight(){let i=this.$terminalHeader.offsetHeight;this.$terminalContent.style.height=`calc(100vh - ${i+1}px)`,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),this.fitTerminal()}fitTerminal(){let i=this.$fitAddon.proposeDimensions();i&&this.$terminal.resize(i.cols+2,i.rows+1)}async _getLastSessionName(){try{let i=await this.$cacheFile.readFile("utf8"),r=i?JSON.parse(i):[];return Array.isArray(r)&&r.length>0?r[r.length-1].name:(console.error("Error: No sessions found in JSON file or sessions data is not an array."),null)}catch(i){return console.error("Error reading or parsing JSON file:",i),null}}async terminalCloseHandler(){let i=await this.$cacheFile.readFile("utf8"),r=i?JSON.parse(i):[];if(r=r.filter(s=>s.name!==localStorage.getItem("AcodeX_Current_Session")),await this.$cacheFile.writeFile(r),r.length>0){let s=await this._getLastSessionName();this.changeSession(s)}else this._hideTerminalSession(),this.$terminalContainer.classList.contains("hide")||this.$terminalContainer.classList.add("hide"),this.$showTermBtn.classList.contains("hide")||this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,this.isTerminalOpened=!1,this.rfb?.disconnect(),this.rfb=void 0,localStorage.removeItem("AcodeX_Current_Session"),localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),this.$terminalContainer.style.height=this.previousTerminalHeight,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight)}async closeTerminal(){if(await eu("Warning","Are you sure ?")&&this.$terminal!=null&&localStorage.getItem("AcodeX_Current_Session")){let r=await this._getPidBySessionName(localStorage.getItem("AcodeX_Current_Session"));if(!r)return;fetch(`http://${this.settings.serverHost}:${this.settings.port}/terminals/${r}/terminate`,{method:"POST"}).then(async s=>{s.ok?this.terminalCloseHandler():acode.alert("AcodeX Error",`Failed to close terminal ${this.pid}.`)}).catch(async s=>{this.$terminalContainer.classList.contains("hide")||(this.$terminalContainer.style.opacity=1),this.$terminalContainer.classList.add("hide"),this.$showTermBtn.classList.contains("hide")||this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,this.isTerminalOpened=!1,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),localStorage.setItem("AcodeX_Is_Opened",this.isTerminalOpened),this.$terminalContainer.style.height=this.previousTerminalHeight,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),localStorage.removeItem("AcodeX_Current_Session"),await this.$cacheFile.writeFile(""),acode.alert("AcodeX Server","Disconnected from server because server gets closed \u{1F61E}!"),console.error(`Error while closing terminal ${this.pid}: ${s}`)})}}startDraggingFlotingBtn(i){try{this.isFlotBtnDragging=!0,this.$showTermBtn.style.border="2px solid #fff",i.type==="touchstart"?(this.btnStartPosX=i.touches[0].clientX,this.btnStartPosY=i.touches[0].clientY):(this.btnStartPosX=i.clientX,this.btnStartPosY=i.clientY)}catch(r){window.alert(r)}}dragFlotButton(i){try{if(!this.isFlotBtnDragging)return;i.preventDefault();let r,s;i.type==="touchmove"?(r=i.touches[0].clientX,s=i.touches[0].clientY):(r=i.clientX,s=i.clientY);let c=this.btnStartPosX-r,t=this.btnStartPosY-s;this.btnStartPosX=r,this.btnStartPosY=s;let n=window.innerHeight-(this.$showTermBtn.offsetTop+this.$showTermBtn.offsetHeight)+t,h=this.$showTermBtn.offsetLeft-c,g=document.querySelector("#root header")?.offsetHeight,a=document.querySelector("#root ul")?.offsetHeight||0,l=g+a,_=window.innerWidth-this.$showTermBtn.offsetWidth,v=window.innerHeight-l-this.$showTermBtn.offsetHeight;this.$showTermBtn.style.bottom=Math.max(0,Math.min(v,n))+"px",this.$showTermBtn.style.left=Math.max(0,Math.min(_,h))+"px"}catch(r){window.alert(r)}}stopDraggingFlotBtn(){try{this.isFlotBtnDragging=!1,this.$showTermBtn.style.border="none"}catch(i){window.alert(i)}}startDragging(i){i.type==="touchstart"?this.startY=i.touches[0].clientY:(i.preventDefault(),this.startY=i.clientY),this.startHeight=this.$terminalContainer.clientHeight,this.isDragging=!0,this.$terminalContainer.style.borderTop="1px solid var(--link-text-color)"}drag(i){if(!this.isDragging)return;i.preventDefault();let r;i.type==="touchmove"?r=i.touches[0].clientY:r=i.clientY;let s=r-this.startY,c=this.startHeight-s,t=document.querySelector("#root header")?.offsetHeight,n=document.querySelector("#root ul")?.offsetHeight||0,h=t+n,g=document.querySelector("#quick-tools")?.offsetHeight||0,a=window.innerHeight-(h+g);c=Math.max(100,Math.min(c,a)),this.$terminalContainer.style.height=c+"px",localStorage.setItem("AcodeX_Terminal_Cont_Height",c),this._updateTerminalHeight();let _=this.$terminal?.getSelection();_&&_.length>0&&this.updateHandles()}stopDragging(i){this.isDragging=!1,this.$terminalContainer.style.borderTop="1px solid var(--popup-border-color)"}minimise(){try{this.isTerminalMinimized||(this.previousTerminalHeight=window.getComputedStyle(this.$terminalContainer).height,localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),this.$terminalContainer.style.height="0px",this.$terminalContainer.classList.add("hide"),this.isTerminalMinimized=!0,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),this.settings.showTerminalBtn&&this.$showTermBtn.classList.remove("hide"))}catch(i){window.alert(i)}}maxmise(){if(this.isTerminalMinimized){parseInt(localStorage.getItem("AcodeX_Terminal_Cont_Height"))<=50?this.$terminalContainer.style.height="50px":this.$terminalContainer.style.height=localStorage.getItem("AcodeX_Terminal_Cont_Height")+"px",this.$terminalContainer.classList.remove("hide"),this.$terminalContent.style.height=`calc(100% - ${this.$terminalContainer.offsetHeight}px)`,this.fitTerminal(),localStorage.setItem("AcodeX_Terminal_Cont_Height",this.$terminalContainer.offsetHeight),this.settings.showTerminalBtn&&this.$showTermBtn.classList.add("hide"),this.isTerminalMinimized=!1,localStorage.setItem("AcodeX_Terminal_Is_Minimised",this.isTerminalMinimized),this._updateTerminalHeight();let i=this.$terminal?.getSelection();i&&i.length>0&&this.updateHandles()}}_findPreviousMatchofSearch(){let i=document.querySelector(".search-input-container input").value;this.$searchAddon?.findPrevious(i)}_findNextMatchofSearch(){let i=document.querySelector(".search-input-container input").value;this.$searchAddon?.findNext(i)}async _cdToActiveDir(){let{activeFile:i}=editorManager;if(i.uri){let r=dr(i.uri);if(!r){navigator.vibrate(300),window.toast("unsupported path type.",3e3);return}this.socket.send(`cd "${r}"\r`)}}async destroy(){this.$style.remove(),this.xtermCss.remove(),this.$fontStyleSheet.remove(),await Ao(window.DATA_STORAGE+"acodex_fonts").delete(),editorManager.editor.commands.removeCommand("terminal:open_terminal"),editorManager.editor.commands.removeCommand("terminal:close_terminal"),this.$terminalContainer.remove(),this.$showTermBtn.remove(),this.startHandle?.remove(),this.endHandle?.remove(),document.removeEventListener("mousemove",this.dragFlotButton.bind(this)),document.removeEventListener("mouseup",this.stopDraggingFlotBtn.bind(this)),document.removeEventListener("touchmove",this.dragFlotButton.bind(this)),document.removeEventListener("touchend",this.stopDraggingFlotBtn.bind(this)),window.removeEventListener("mousemove",this.drag),window.removeEventListener("touchmove",this.drag),window.removeEventListener("mouseup",this.stopDragging),window.removeEventListener("touchend",this.stopDragging),localStorage.removeItem("AcodeX_Terminal_Is_Minimised"),localStorage.removeItem("AcodeX_Current_Session"),localStorage.removeItem("AcodeX_Terminal_Cont_Height"),localStorage.removeItem("AcodeX_Is_Opened"),localStorage.getItem("ACODEX_LOCAL_LLM_MODEL")&&localStorage.removeItem("ACODEX_LOCAL_LLM_MODEL")}async setCustomFontFile(){let{url:i}=await acode.fileBrowser("file","select custom font stylesheet");if(!i)return;let r=dr(i);if(r.startsWith("/sdcard"))r=r.replace("/sdcard","file:///storage/emulated/0");else if(r.startsWith("$HOME"))return;let s=i.split("/"),c=s[s.length-1];r=r+"/"+c;let t=await cp(r);this.settings.customFontStyleSheet=t,ke.update()}async applyTheme(i){let r=xe[i];this.settings.theme=i,this.settings.background=r.background,this.settings.foreground=r.foreground,this.settings.cursor=r.cursor||"#fff",this.settings.cursorAccent=r.cursorAccent||"#fff",this.settings.selectionBackground=r.selectionBackground,this.settings.black=r.black,this.settings.blue=r.blue,this.settings.brightBlack=r.brightBlack,this.settings.brightBlue=r.brightBlue,this.settings.brightCyan=r.brightCyan,this.settings.brightGreen=r.brightGreen,this.settings.brightMagenta=r.brightMagenta,this.settings.brightRed=r.brightRed,this.settings.brightWhite=r.brightWhite,this.settings.brightYellow=r.brightYellow,this.settings.cyan=r.cyan,this.settings.green=r.green,this.settings.magenta=r.magenta,this.settings.red=r.red,this.settings.white=r.white,this.settings.yellow=r.yellow,ke.update()}get terminalThemeObj(){return{background:this.settings.transparency?Bo(this.settings.background,.5):this.settings.background,foreground:this.settings.foreground,selectionBackground:this.settings.selectionBackground,cursor:this.settings.cursor,cursorAccent:this.settings.cursorAccent,black:this.settings.black,blue:this.settings.blue,brightBlack:this.settings.brightBlack,brightBlue:this.settings.brightBlue,brightCyan:this.settings.brightCyan,brightGreen:this.settings.brightGreen,brightMagenta:this.settings.brightMagenta,brightRed:this.settings.brightRed,brightWhite:this.settings.brightWhite,brightYellow:this.settings.brightYellow,cyan:this.settings.cyan,green:this.settings.green,magenta:this.settings.magenta,red:this.settings.red,white:this.settings.white,yellow:this.settings.yellow}}get terminalObj(){return new nu.Terminal({allowTransparency:this.settings.transparency,allowProposedApi:!0,scrollOnUserInput:!0,cursorBlink:this.settings.cursorBlink,cursorStyle:this.settings.cursorStyle,cursorInactiveStyle:this.settings.cursorInactiveStyle,scrollBack:this.settings.scrollBack,scrollSensitivity:this.settings.scrollSensitivity,fontSize:this.settings.fontSize,fontFamily:this.settings.fontFamily+", Fira Code, monospace",fontWeight:this.settings.fontWeight,letterSpacing:this.settings.letterSpacing,theme:this.terminalThemeObj})}async clearCache(){await this.$cacheFile.writeFile(""),window.toast("Cache cleared \u{1F525}",3e3)}get settingsObj(){return this.settings.theme==="custom"?{list:this.settingsList.concat(this.settingsListWithThemeColor),cb:(i,r)=>this.settingsSaveCallback(i,r)}:{list:this.settingsList,cb:(i,r)=>this.settingsSaveCallback(i,r)}}get settingsList(){return[{key:"port",text:"Server Port",value:this.settings.port,info:"Port which is displayed on termux when starting the server",prompt:"Server Port",promptType:"number",promptOption:[{required:!0}]},{key:"letterSpacing",text:"Letter Spacing",value:this.settings.letterSpacing,info:"The spacing in whole pixels between characters.",prompt:"Letter spacing",promptType:"number",promptOption:[{required:!0}]},{key:"serverHost",text:"Server Host Name",value:this.settings.serverHost,info:"Hostname which is displayed on termux when starting the server",prompt:"Server Host Name",promptType:"text",promptOption:[{required:!0}]},{key:"aiApiKey",text:"AI API Key",value:this.settings.aiApiKey,info:"API key of your selected model, if your selected model doesn't need any api key then leave it empty. For how to get api key : check the readme of plugin",prompt:"AI API Key",promptType:"text",promptOption:[{required:!0}]},{key:"aiModel",text:"AI Model",value:this.settings.aiModel,info:"ai model to generate terminal suggestions and commands",select:Ws},{key:"fontWeight",text:"Font Weight",value:this.settings.fontWeight,info:"The font weight used to render non-bold text.",select:Us},{key:"showTerminalBtnSize",text:"Show Terminal button size",value:this.settings.showTerminalBtnSize,info:"Size of terminal show button (in px)",prompt:"Show Terminal button size",promptType:"number",promptOption:[{required:!0}]},{key:"blurValue",text:"Blur Value(in px)",value:this.settings.blurValue,info:"Blur value for terminal in transparent mode",prompt:"Blur Value",promptType:"text",promptOption:[{required:!0}]},{key:"clearCache",text:"Clear Cache",info:"Helps in clearing cache which contains session details in case of any problems or bug"},{key:"transparency",text:"Allow Transparent Terminal",info:"Makes terminal transparent but it will also led to slightly performance decrement",checkbox:!!this.settings.transparency},{key:"imageRendering",text:"Image Rendering",info:"Enables image rendering inside the terminal but it can reduce performance",checkbox:!!this.settings.imageRendering},{key:"enableGuiViewer",text:"GUI Viewer",info:"Enables gui viewer, to view the output of graphical apps",checkbox:!!this.settings.enableGuiViewer},{key:"showTerminalBtn",text:"Terminal Maximise Button",info:"Hide/Unhide terminal maximise button",checkbox:!!this.settings.showTerminalBtn},{index:7,key:"customFontStyleSheet",text:"Custom Font Stylesheet file",info:"Select css file in which you have to define about your custom font.",value:this.settings.customFontStyleSheet},{index:0,key:"cursorBlink",text:"Cursor Blink",info:"Whether the cursor blinks.",checkbox:!!this.settings.cursorBlink},{index:1,key:"cursorStyle",text:"Cursor Style",value:this.settings.cursorStyle,info:"The style of the cursor.",select:Hs},{key:"cursorInactiveStyle",text:"Cursor Inactive Style",value:this.settings.cursorInactiveStyle,info:"The style of the cursor when the terminal is not focused.",select:Ns},{index:2,key:"fontSize",text:"Font Size",value:this.settings.fontSize,info:"The font size used to render text.",prompt:"Font Size",promptType:"text",promptOption:[{match:/^[0-9]+$/,required:!0}]},{index:3,key:"fontFamily",text:"Font Family",value:this.settings.fontFamily,info:"The font family used to render text.",select:zo},{index:4,key:"scrollBack",text:"Scroll Back",value:this.settings.scrollBack,info:"The amount of scrollback in the terminal. Scrollback is the amount of rows that are retained when lines are scrolled beyond the initial viewport.",prompt:"Scroll Back",promptType:"number",promptOption:[{match:/^[0-9]+$/,required:!0}]},{index:5,key:"scrollSensitivity",text:"Scroll Sensitivity",value:this.settings.scrollSensitivity,info:"The scrolling speed multiplier used for adjusting normal scrolling speed.",prompt:"Scroll Sensitivity",promptType:"number",promptOption:[{match:/^[0-9]+$/,required:!0}]},{index:6,key:"theme",text:"Theme",value:this.settings.theme,info:"Theme of terminal.",select:$s}]}get settingsListWithThemeColor(){return[{index:8,key:"background",text:"Background Color",value:this.settings.background,color:this.settings.background},{index:9,key:"foreground",text:"Foreground Color",value:this.settings.foreground,color:this.settings.foreground},{index:10,key:"selectionBackground",text:"Selection Background Color",value:this.settings.selectionBackground,color:this.settings.selectionBackground},{index:11,key:"cursor",text:"Cursor Color",value:this.settings.cursor,color:this.settings.cursor},{index:12,key:"cursorAccent",text:"Cursor Accent Color",value:this.settings.cursorAccent,color:this.settings.cursorAccent},{index:13,key:"black",text:"Black Color",value:this.settings.black,color:this.settings.black},{index:14,key:"blue",text:"Blue Color",value:this.settings.blue,color:this.settings.blue},{index:15,key:"brightBlack",text:"Bright Black Color",value:this.settings.brightBlack,color:this.settings.brightBlack},{index:16,key:"brightBlue",text:"Bright Blue Color",value:this.settings.brightBlue,color:this.settings.brightBlue},{index:17,key:"brightCyan",text:"Bright Cyan Color",value:this.settings.brightCyan,color:this.settings.brightCyan},{index:18,key:"brightGreen",text:"Bright Green Color",value:this.settings.brightGreen,color:this.settings.brightGreen},{index:19,key:"brightMagenta",text:"Bright Magenta Color",value:this.settings.brightMagenta,color:this.settings.brightMagenta},{index:20,key:"brightRed",text:"Bright Red Color",value:this.settings.brightRed,color:this.settings.brightRed},{index:21,key:"brightWhite",text:"Bright White Color",value:this.settings.brightWhite,color:this.settings.brightWhite},{index:22,key:"brightYellow",text:"Bright Yellow Color",value:this.settings.brightYellow,color:this.settings.brightYellow},{index:23,key:"cyan",text:"Cyan Color",value:this.settings.cyan,color:this.settings.cyan},{index:24,key:"green",text:"Green Color",value:this.settings.green,color:this.settings.green},{index:25,key:"magenta",text:"Magenta Color",value:this.settings.magenta,color:this.settings.magenta},{index:26,key:"red",text:"Red Color",value:this.settings.red,color:this.settings.red},{index:27,key:"white",text:"White Color",value:this.settings.white,color:this.settings.white},{index:28,key:"yellow",text:"Yellow Color",value:this.settings.yellow,color:this.settings.yellow}]}settingsSaveCallback(i,r){switch(i){case"customFontStyleSheet":this.setCustomFontFile();break;case"theme":this.applyTheme(r),r==="custom"&&acode.alert("AcodeX Warning","Restart the app please"),this.$terminal&&(this.$terminal.options.theme=this.terminalThemeObj);break;case"clearCache":this.clearCache();break;case"showTerminalBtnSize":this.$showTermBtn&&(this.$showTermBtn.style.height=r+"px",this.$showTermBtn.style.width=r+"px");case"fontSize":this.$terminal&&(this.$terminal.options.fontSize=r),this.settings[i]=r,ke.update();break;case"fontFamily":this.$terminal&&(this.$terminal.options.fontFamily=r),this.settings[i]=r,ke.update();break;case"fontWeight":this.$terminal&&(this.$terminal.options.fontWeight=r),this.settings[i]=r,ke.update();break;case"letterSpacing":this.$terminal&&(this.$terminal.options.letterSpacing=r),this.settings[i]=r,ke.update();break;case"cursorBlink":this.$terminal&&(this.$terminal.options.cursorBlink=r),this.settings[i]=r,ke.update();break;case"cursorStyle":this.$terminal&&(this.$terminal.options.cursorStyle=r),this.settings[i]=r,ke.update();break;case"cursorInactiveStyle":this.$terminal&&(this.$terminal.options.cursorInactiveStyle=r),this.settings[i]=r,ke.update();break;case"imageRendering":this.$terminal&&(this.$imageAddon=new Co.ImageAddon,this.$terminal.loadAddon(this.$imageAddon)),this.settings[i]=r,ke.update();break;case"enableGuiViewer":this.settings[i]=r,ke.update(),acode.alert("AcodeX Warning","Make sure to restart to see this setting in effect");break;case"showTerminalBtn":this.$showTermBtn?this.$showTermBtn.remove():acode.alert("AcodeX Warning","Restart App to see this change"),this.settings[i]=r,ke.update();default:this.settings[i]=r,ke.update()}}get settings(){return ke.value[mt.id]}};if(window.acode){let e=new lr;acode.setPluginInit(mt.id,async(i,r,{cacheFileUrl:s,cacheFile:c})=>{i.endsWith("/")||(i+="/"),e.baseUrl=i,await e.init(r,c,s)},e.settingsObj),acode.setPluginUnmount(mt.id,()=>{e.destroy()})}})(); +/*! Bundled license information: + +@novnc/novnc/lib/crypto/aes.js: + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE *) + +@novnc/novnc/lib/crypto/rsa.js: + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE *) + +@novnc/novnc/lib/crypto/md5.js: + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE *) + +@novnc/novnc/lib/ra2.js: + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE *) + +@novnc/novnc/lib/rfb.js: + (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE *) + +@xterm/addon-image/lib/addon-image.js: + (*! For license information please see addon-image.js.LICENSE.txt *) +*/ diff --git a/dist/xterm.css b/dist/xterm.css index 74acc26..e97b643 100644 --- a/dist/xterm.css +++ b/dist/xterm.css @@ -140,7 +140,7 @@ cursor: crosshair; } -.xterm .xterm-accessibility, +.xterm .xterm-accessibility:not(.debug), .xterm .xterm-message { position: absolute; left: 0; @@ -152,6 +152,15 @@ pointer-events: none; } +.xterm .xterm-accessibility-tree:not(.debug) *::selection { + color: transparent; +} + +.xterm .xterm-accessibility-tree { + user-select: text; + white-space: pre; +} + .xterm .live-region { position: absolute; left: -9999px; diff --git a/installServer.sh b/installServer.sh index f320ae3..21e4355 100644 --- a/installServer.sh +++ b/installServer.sh @@ -2,16 +2,37 @@ function install_packages { if ! [ -x "$(command -v node)" ]; then - echo -e "\e[1;36m[*] Installing Nodejs\e[0m" - pkg install nodejs -y + echo -e "\e[1;36m[*] Installing Node.js\e[0m" + pkg install nodejs -y fi if ! [ -x "$(command -v python)" ]; then - echo -e "\e[1;36m[*] Installing Python\e[0m" - pkg install python -y + echo -e "\e[1;36m[*] Installing Python\e[0m" + pkg install python -y fi } +function setup_gyp_folder { + cd $HOME && mkdir -p .gyp && echo "{'variables': {'android_ndk_path': ''}}" > .gyp/include.gypi +} + +if [[ "$OSTYPE" == "linux-android"* ]]; then + setup_gyp_folder +fi + install_packages + echo -e "\e[1;36m[*] Installing acodeX-server... \e[0m" npm install -g acodex-server echo -e '\e[1;32m`acodeX-server` installed successfully. Run `acodeX-server` to start the server. \e[0m' + +# Final GUI prompt after installation completes +echo -e "\e[1;36mDo you want to install GUI-related packages to run gui apps in acodex? (y/n)\e[0m" +read -r gui_response_acodex +if [[ "$gui_response_acodex" =~ ^[Yy]$ ]]; then + echo -e "\e[1;36m[*] Installing GUI-related packages for acodeX-server...\e[0m" + pkg install tigervnc -y + curl -L https://raw.githubusercontent.com/bajrangCoder/websockify_rs/main/install.sh | bash + echo -e "\e[1;32mGUI packages for acodeX-server installed successfully. Run vncserver command and setup password to get started\e[0m" +else + echo -e "\e[1;33mSkipping GUI installation for acodeX-server. You can install it later if needed.\e[0m" +fi diff --git a/package.json b/package.json index 5b7af89..4b4dd5c 100644 --- a/package.json +++ b/package.json @@ -1,28 +1,32 @@ { "name": "acode-plugin-acodex", - "version": "3.1.0", + "version": "3.1.8", "description": "Terminal support for Acode", "main": "dist/main.js", "repository": "https://github.com/bajrangCoder/acode-plugin-terminal.git", "author": "Raunak Raj ", "license": "MIT", "dependencies": { + "@novnc/novnc": "^1.5.0", "@xterm/addon-attach": "0.10.0-beta.1", "@xterm/addon-fit": "0.9.0-beta.1", + "@xterm/addon-image": "^0.8.0", "@xterm/addon-search": "0.14.0-beta.1", "@xterm/addon-unicode11": "0.7.0-beta.1", "@xterm/addon-web-links": "0.10.0-beta.1", "@xterm/addon-webgl": "0.17.0-beta.1", - "html-tag-js": "^1.1.41", - "xterm": "^5.3.0" + "@xterm/xterm": "^5.5.0", + "html-tag-js": "^1.7.1", + "ollama": "^0.5.9" }, "devDependencies": { - "esbuild": "^0.19.3", - "esbuild-sass-plugin": "^2.15.0", + "esbuild": "^0.19.12", + "esbuild-sass-plugin": "^2.16.1", "jszip": "^3.10.1" }, "scripts": { - "build": "node build.mjs" + "build": "node build.mjs", + "serve": "node build.mjs --serve" }, "browserslist": [ "> 0.25%, not dead" diff --git a/plugin.json b/plugin.json index a51e943..8bd96d3 100644 --- a/plugin.json +++ b/plugin.json @@ -2,7 +2,7 @@ "id": "bajrangcoder.acodex", "name": "AcodeX - Terminal", "main": "dist/main.js", - "version": "3.1.0", + "version": "3.1.8", "readme": "readme.md", "icon": "icon.png", "files": [], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8c7f8d6..ad5aa80 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true @@ -8,500 +8,621 @@ overrides: terser: '>=5.14.2 ' glob-parent: '>=5.1.2' -dependencies: - '@xterm/addon-attach': - specifier: 0.10.0-beta.1 - version: 0.10.0-beta.1(xterm@5.3.0) - '@xterm/addon-fit': - specifier: 0.9.0-beta.1 - version: 0.9.0-beta.1(xterm@5.3.0) - '@xterm/addon-search': - specifier: 0.14.0-beta.1 - version: 0.14.0-beta.1(xterm@5.3.0) - '@xterm/addon-unicode11': - specifier: 0.7.0-beta.1 - version: 0.7.0-beta.1(xterm@5.3.0) - '@xterm/addon-web-links': - specifier: 0.10.0-beta.1 - version: 0.10.0-beta.1(xterm@5.3.0) - '@xterm/addon-webgl': - specifier: 0.17.0-beta.1 - version: 0.17.0-beta.1(xterm@5.3.0) - html-tag-js: - specifier: ^1.1.41 - version: 1.1.41 - xterm: - specifier: ^5.3.0 - version: 5.3.0 - -devDependencies: - esbuild: - specifier: ^0.19.3 - version: 0.19.3 - esbuild-sass-plugin: - specifier: ^2.15.0 - version: 2.15.0(esbuild@0.19.3) - jszip: - specifier: ^3.10.1 - version: 3.10.1 +importers: + + .: + dependencies: + '@novnc/novnc': + specifier: ^1.5.0 + version: 1.5.0 + '@xterm/addon-attach': + specifier: 0.10.0-beta.1 + version: 0.10.0-beta.1(xterm@5.3.0) + '@xterm/addon-fit': + specifier: 0.9.0-beta.1 + version: 0.9.0-beta.1(xterm@5.3.0) + '@xterm/addon-image': + specifier: ^0.8.0 + version: 0.8.0(@xterm/xterm@5.5.0) + '@xterm/addon-search': + specifier: 0.14.0-beta.1 + version: 0.14.0-beta.1(xterm@5.3.0) + '@xterm/addon-unicode11': + specifier: 0.7.0-beta.1 + version: 0.7.0-beta.1(xterm@5.3.0) + '@xterm/addon-web-links': + specifier: 0.10.0-beta.1 + version: 0.10.0-beta.1(xterm@5.3.0) + '@xterm/addon-webgl': + specifier: 0.17.0-beta.1 + version: 0.17.0-beta.1(xterm@5.3.0) + '@xterm/xterm': + specifier: ^5.5.0 + version: 5.5.0 + html-tag-js: + specifier: ^1.7.1 + version: 1.7.1 + ollama: + specifier: ^0.5.9 + version: 0.5.9 + devDependencies: + esbuild: + specifier: ^0.19.12 + version: 0.19.12 + esbuild-sass-plugin: + specifier: ^2.16.1 + version: 2.16.1(esbuild@0.19.12) + jszip: + specifier: ^3.10.1 + version: 3.10.1 packages: - /@esbuild/android-arm64@0.19.3: - resolution: {integrity: sha512-w+Akc0vv5leog550kjJV9Ru+MXMR2VuMrui3C61mnysim0gkFCPOUTAfzTP0qX+HpN9Syu3YA3p1hf3EPqObRw==} + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.19.3: - resolution: {integrity: sha512-Lemgw4io4VZl9GHJmjiBGzQ7ONXRfRPHcUEerndjwiSkbxzrpq0Uggku5MxxrXdwJ+pTj1qyw4jwTu7hkPsgIA==} + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.19.3: - resolution: {integrity: sha512-FKQJKkK5MXcBHoNZMDNUAg1+WcZlV/cuXrWCoGF/TvdRiYS4znA0m5Il5idUwfxrE20bG/vU1Cr5e1AD6IEIjQ==} + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.19.3: - resolution: {integrity: sha512-kw7e3FXU+VsJSSSl2nMKvACYlwtvZB8RUIeVShIEY6PVnuZ3c9+L9lWB2nWeeKWNNYDdtL19foCQ0ZyUL7nqGw==} + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.19.3: - resolution: {integrity: sha512-tPfZiwF9rO0jW6Jh9ipi58N5ZLoSjdxXeSrAYypy4psA2Yl1dAMhM71KxVfmjZhJmxRjSnb29YlRXXhh3GqzYw==} + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.19.3: - resolution: {integrity: sha512-ERDyjOgYeKe0Vrlr1iLrqTByB026YLPzTytDTz1DRCYM+JI92Dw2dbpRHYmdqn6VBnQ9Bor6J8ZlNwdZdxjlSg==} + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.19.3: - resolution: {integrity: sha512-nXesBZ2Ad1qL+Rm3crN7NmEVJ5uvfLFPLJev3x1j3feCQXfAhoYrojC681RhpdOph8NsvKBBwpYZHR7W0ifTTA==} + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.19.3: - resolution: {integrity: sha512-qXvYKmXj8GcJgWq3aGvxL/JG1ZM3UR272SdPU4QSTzD0eymrM7leiZH77pvY3UetCy0k1xuXZ+VPvoJNdtrsWQ==} + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.19.3: - resolution: {integrity: sha512-zr48Cg/8zkzZCzDHNxXO/89bf9e+r4HtzNUPoz4GmgAkF1gFAFmfgOdCbR8zMbzFDGb1FqBBhdXUpcTQRYS1cQ==} + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.19.3: - resolution: {integrity: sha512-7XlCKCA0nWcbvYpusARWkFjRQNWNGlt45S+Q18UeS///K6Aw8bB2FKYe9mhVWy/XLShvCweOLZPrnMswIaDXQA==} + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.19.3: - resolution: {integrity: sha512-qGTgjweER5xqweiWtUIDl9OKz338EQqCwbS9c2Bh5jgEH19xQ1yhgGPNesugmDFq+UUSDtWgZ264st26b3de8A==} + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.19.3: - resolution: {integrity: sha512-gy1bFskwEyxVMFRNYSvBauDIWNggD6pyxUksc0MV9UOBD138dKTzr8XnM2R4mBsHwVzeuIH8X5JhmNs2Pzrx+A==} + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.19.3: - resolution: {integrity: sha512-UrYLFu62x1MmmIe85rpR3qou92wB9lEXluwMB/STDzPF9k8mi/9UvNsG07Tt9AqwPQXluMQ6bZbTzYt01+Ue5g==} + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.19.3: - resolution: {integrity: sha512-9E73TfyMCbE+1AwFOg3glnzZ5fBAFK4aawssvuMgCRqCYzE0ylVxxzjEfut8xjmKkR320BEoMui4o/t9KA96gA==} + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.19.3: - resolution: {integrity: sha512-LlmsbuBdm1/D66TJ3HW6URY8wO6IlYHf+ChOUz8SUAjVTuaisfuwCOAgcxo3Zsu3BZGxmI7yt//yGOxV+lHcEA==} + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.19.3: - resolution: {integrity: sha512-ogV0+GwEmvwg/8ZbsyfkYGaLACBQWDvO0Kkh8LKBGKj9Ru8VM39zssrnu9Sxn1wbapA2qNS6BiLdwJZGouyCwQ==} + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.19.3: - resolution: {integrity: sha512-o1jLNe4uzQv2DKXMlmEzf66Wd8MoIhLNO2nlQBHLtWyh2MitDG7sMpfCO3NTcoTMuqHjfufgUQDFRI5C+xsXQw==} + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.19.3: - resolution: {integrity: sha512-AZJCnr5CZgZOdhouLcfRdnk9Zv6HbaBxjcyhq0StNcvAdVZJSKIdOiPB9az2zc06ywl0ePYJz60CjdKsQacp5Q==} + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.19.3: - resolution: {integrity: sha512-Acsujgeqg9InR4glTRvLKGZ+1HMtDm94ehTIHKhJjFpgVzZG9/pIcWW/HA/DoMfEyXmANLDuDZ2sNrWcjq1lxw==} + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.19.3: - resolution: {integrity: sha512-FSrAfjVVy7TifFgYgliiJOyYynhQmqgPj15pzLyJk8BUsnlWNwP/IAy6GAiB1LqtoivowRgidZsfpoYLZH586A==} + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.19.3: - resolution: {integrity: sha512-xTScXYi12xLOWZ/sc5RBmMN99BcXp/eEf7scUC0oeiRoiT5Vvo9AycuqCp+xdpDyAU+LkrCqEpUS9fCSZF8J3Q==} + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.19.3: - resolution: {integrity: sha512-FbUN+0ZRXsypPyWE2IwIkVjDkDnJoMJARWOcFZn4KPPli+QnKqF0z1anvfaYe3ev5HFCpRDLLBDHyOALLppWHw==} + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@xterm/addon-attach@0.10.0-beta.1(xterm@5.3.0): + '@novnc/novnc@1.5.0': + resolution: {integrity: sha512-4yGHOtUCnEJUCsgEt/L78eeJu00kthurLBWXFiaXfonNx0pzbs6R/3gJb1byZe6iAE8V9MF0syQb0xIL8MSOtQ==} + + '@xterm/addon-attach@0.10.0-beta.1': resolution: {integrity: sha512-u1LBLVgVR1TZJT/8lFkvl7AZaYx1Z9uzPqh7bGUvsIWPllpnj36Hzv5+jY1FBGVBQv2eZfyUvHCKIiujyCJF2w==} peerDependencies: xterm: ^5.0.0 - dependencies: - xterm: 5.3.0 - dev: false - /@xterm/addon-fit@0.9.0-beta.1(xterm@5.3.0): + '@xterm/addon-fit@0.9.0-beta.1': resolution: {integrity: sha512-HmGRUMMamUpQYuQBF2VP1LJ0xzqF85LMFfpaNu84t1Tsrl1lPKJWtqX9FDZ22Rf5q6bnKdbj44TRVAUHgDRbLA==} peerDependencies: xterm: ^5.0.0 - dependencies: - xterm: 5.3.0 - dev: false - /@xterm/addon-search@0.14.0-beta.1(xterm@5.3.0): + '@xterm/addon-image@0.8.0': + resolution: {integrity: sha512-b/dqpFn3jUad2pUP5UpF4scPIh0WdxRQL/1qyiahGfUI85XZTCXo0py9G6AcOR2QYUw8eJ8EowGspT7BQcgw6A==} + peerDependencies: + '@xterm/xterm': ^5.2.0 + + '@xterm/addon-search@0.14.0-beta.1': resolution: {integrity: sha512-XPY5vn4ML7+W7lYwIeJu3CXh4Pw/oQ853s6gEng9+33VvREuzcPRr3aNBToQ0UMxmEkZmVtcKh2o1hbGl64deQ==} peerDependencies: xterm: ^5.0.0 - dependencies: - xterm: 5.3.0 - dev: false - /@xterm/addon-unicode11@0.7.0-beta.1(xterm@5.3.0): + '@xterm/addon-unicode11@0.7.0-beta.1': resolution: {integrity: sha512-4FUzF1hMCSK0WcpRZ1GxJlCAb+XEiJxUqv01/GQzEaGwbFUHd7Ekh2zxe8+2NvNXp/PpSaCny5kjKoxNxzrhRQ==} peerDependencies: xterm: ^5.0.0 - dependencies: - xterm: 5.3.0 - dev: false - /@xterm/addon-web-links@0.10.0-beta.1(xterm@5.3.0): + '@xterm/addon-web-links@0.10.0-beta.1': resolution: {integrity: sha512-eVsIGY8CNk/mJfHWTkPCQ0E/buOxVWKd+awk9EI8GF5rcQJWNHrm1agnZhtGzCTCBXirhnl4lNqyY+z1uwBADQ==} peerDependencies: xterm: ^5.0.0 - dependencies: - xterm: 5.3.0 - dev: false - /@xterm/addon-webgl@0.17.0-beta.1(xterm@5.3.0): + '@xterm/addon-webgl@0.17.0-beta.1': resolution: {integrity: sha512-SRUh8dFYmD8U37gGGl9+oV+D304wumkV7eoxvD53J5HQERSKAwk3YeIIVUGWu6q6pifjUgGqfiKCIQwbHZ6QIQ==} peerDependencies: xterm: ^5.0.0 - dependencies: - xterm: 5.3.0 - dev: false - /anymatch@3.1.3: + '@xterm/xterm@5.5.0': + resolution: {integrity: sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==} + + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - requiresBuild: true - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - requiresBuild: true - dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - requiresBuild: true - dependencies: - fill-range: 7.0.1 - dev: true - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 6.0.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - /core-util-is@1.0.3: + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: true - /esbuild-sass-plugin@2.15.0(esbuild@0.19.3): - resolution: {integrity: sha512-T0GCHVfeuGBBgY5k19RbExd7vVuC3lzrK8IZbXOqZftw6N9lTBnZuqKhnhdAJBcu6wek7K/fXJ2zzY6KrcNtAg==} + esbuild-sass-plugin@2.16.1: + resolution: {integrity: sha512-mBB2aEF0xk7yo+Q9pSUh8xYED/1O2wbAM6IauGkDrqy6pl9SbJNakLeLGXiNpNujWIudu8TJTZCv2L5AQYRXtA==} peerDependencies: - esbuild: ^0.19.1 - dependencies: - esbuild: 0.19.3 - resolve: 1.22.4 - sass: 1.66.1 - dev: true + esbuild: ^0.19.4 - /esbuild@0.19.3: - resolution: {integrity: sha512-UlJ1qUUA2jL2nNib1JTSkifQTcYTroFqRjwCFW4QYEKEsixXD5Tik9xML7zh2gTxkYTBKGHNH9y7txMwVyPbjw==} + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.19.3 - '@esbuild/android-arm64': 0.19.3 - '@esbuild/android-x64': 0.19.3 - '@esbuild/darwin-arm64': 0.19.3 - '@esbuild/darwin-x64': 0.19.3 - '@esbuild/freebsd-arm64': 0.19.3 - '@esbuild/freebsd-x64': 0.19.3 - '@esbuild/linux-arm': 0.19.3 - '@esbuild/linux-arm64': 0.19.3 - '@esbuild/linux-ia32': 0.19.3 - '@esbuild/linux-loong64': 0.19.3 - '@esbuild/linux-mips64el': 0.19.3 - '@esbuild/linux-ppc64': 0.19.3 - '@esbuild/linux-riscv64': 0.19.3 - '@esbuild/linux-s390x': 0.19.3 - '@esbuild/linux-x64': 0.19.3 - '@esbuild/netbsd-x64': 0.19.3 - '@esbuild/openbsd-x64': 0.19.3 - '@esbuild/sunos-x64': 0.19.3 - '@esbuild/win32-arm64': 0.19.3 - '@esbuild/win32-ia32': 0.19.3 - '@esbuild/win32-x64': 0.19.3 - dev: true - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - requiresBuild: true - dependencies: - to-regex-range: 5.0.1 - dev: true - /fsevents@2.3.3: + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - requiresBuild: true - dev: true - optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - /glob-parent@6.0.2: + glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: true + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} - /html-tag-js@1.1.41: - resolution: {integrity: sha512-qh2R/nsggDqaUB78STw8hbA6O1AHdr3+3FcC17D5YUgqK7hNQEbnZS1qT9t087F3r8FIVy9EIkWAATTjCU/2Yg==} - dev: false + html-tag-js@1.7.1: + resolution: {integrity: sha512-dmmz0mumIfaOZtvE5PHs2PNQzsUxgOuiF20Q5lwef3HPcsZHTy5StjsHRfNLjAt0ezCzU9zDjTN1h+GhHYzlkg==} - /immediate@3.0.6: + immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - dev: true - /immutable@4.3.2: - resolution: {integrity: sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==} - dev: true + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} - /inherits@2.0.4: + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - /is-binary-path@2.1.0: + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - requiresBuild: true - dependencies: - binary-extensions: 2.2.0 - dev: true - /is-core-module@2.13.0: - resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} - dependencies: - has: 1.0.3 - dev: true + is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + engines: {node: '>= 0.4'} - /is-extglob@2.1.1: + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - requiresBuild: true - dev: true - /is-glob@4.0.3: + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - /is-number@7.0.0: + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - requiresBuild: true - dev: true - /isarray@1.0.0: + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true - /jszip@3.10.1: + jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - dependencies: - lie: 3.3.0 - pako: 1.0.11 - readable-stream: 2.3.8 - setimmediate: 1.0.5 - dev: true - /lie@3.3.0: + lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - dependencies: - immediate: 3.0.6 - dev: true - /normalize-path@3.0.0: + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true - /pako@1.0.11: + ollama@0.5.9: + resolution: {integrity: sha512-F/KZuDRC+ZsVCuMvcOYuQ6zj42/idzCkkuknGyyGVmNStMZ/sU3jQpvhnl4SyC0+zBzLiKNZJnJeuPFuieWZvQ==} + + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: true - /path-parse@1.0.7: + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - /picomatch@2.3.1: + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - requiresBuild: true - dev: true - /process-nextick-args@2.0.1: + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: true - /readable-stream@2.3.8: + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + sass@1.77.8: + resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + + xterm@5.3.0: + resolution: {integrity: sha512-8QqjlekLUFTrU6x7xck1MsPzPA571K5zNqWm0M0oroYEWVOptZ0+ubQSkQ3uxIEhcIHRujJy6emDWX4A7qyFzg==} + deprecated: This package is now deprecated. Move to @xterm/xterm instead. + +snapshots: + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-x64@0.19.12': + optional: true + + '@novnc/novnc@1.5.0': {} + + '@xterm/addon-attach@0.10.0-beta.1(xterm@5.3.0)': + dependencies: + xterm: 5.3.0 + + '@xterm/addon-fit@0.9.0-beta.1(xterm@5.3.0)': + dependencies: + xterm: 5.3.0 + + '@xterm/addon-image@0.8.0(@xterm/xterm@5.5.0)': + dependencies: + '@xterm/xterm': 5.5.0 + + '@xterm/addon-search@0.14.0-beta.1(xterm@5.3.0)': + dependencies: + xterm: 5.3.0 + + '@xterm/addon-unicode11@0.7.0-beta.1(xterm@5.3.0)': + dependencies: + xterm: 5.3.0 + + '@xterm/addon-web-links@0.10.0-beta.1(xterm@5.3.0)': + dependencies: + xterm: 5.3.0 + + '@xterm/addon-webgl@0.17.0-beta.1(xterm@5.3.0)': + dependencies: + xterm: 5.3.0 + + '@xterm/xterm@5.5.0': {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + binary-extensions@2.3.0: {} + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 6.0.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + core-util-is@1.0.3: {} + + esbuild-sass-plugin@2.16.1(esbuild@0.19.12): + dependencies: + esbuild: 0.19.12 + resolve: 1.22.8 + sass: 1.77.8 + + esbuild@0.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + html-tag-js@1.7.1: {} + + immediate@3.0.6: {} + + immutable@4.3.7: {} + + inherits@2.0.4: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.15.0: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + isarray@1.0.0: {} + + jszip@3.10.1: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + lie@3.3.0: + dependencies: + immediate: 3.0.6 + + normalize-path@3.0.0: {} + + ollama@0.5.9: + dependencies: + whatwg-fetch: 3.6.20 + + pako@1.0.11: {} + + path-parse@1.0.7: {} + + picomatch@2.3.1: {} + + process-nextick-args@2.0.1: {} + + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -510,71 +631,41 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: true - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - requiresBuild: true + readdirp@3.6.0: dependencies: picomatch: 2.3.1 - dev: true - /resolve@1.22.4: - resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} - hasBin: true + resolve@1.22.8: dependencies: - is-core-module: 2.13.0 + is-core-module: 2.15.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true + safe-buffer@5.1.2: {} - /sass@1.66.1: - resolution: {integrity: sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==} - engines: {node: '>=14.0.0'} - hasBin: true + sass@1.77.8: dependencies: - chokidar: 3.5.3 - immutable: 4.3.2 - source-map-js: 1.0.2 - dev: true + chokidar: 3.6.0 + immutable: 4.3.7 + source-map-js: 1.2.0 - /setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - dev: true + setimmediate@1.0.5: {} - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true + source-map-js@1.2.0: {} - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - dev: true - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true + supports-preserve-symlinks-flag@1.0.0: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - requiresBuild: true + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - dev: true - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true + util-deprecate@1.0.2: {} - /xterm@5.3.0: - resolution: {integrity: sha512-8QqjlekLUFTrU6x7xck1MsPzPA571K5zNqWm0M0oroYEWVOptZ0+ubQSkQ3uxIEhcIHRujJy6emDWX4A7qyFzg==} - dev: false + whatwg-fetch@3.6.20: {} + + xterm@5.3.0: {} diff --git a/readme.md b/readme.md index 70c0dfa..7480082 100644 --- a/readme.md +++ b/readme.md @@ -1,39 +1,47 @@ # AcodeX - Terminal Emulator -> [!CAUTION] -> AcodeX `v3.1.0` needs server `v1.1.0` to work otherwise you will face a tones of issues - > [!Warning] > This plugin requires the [acodex-server](https://github.com/bajrangCoder/AcodeX-server) NodeJS package to be installed and running on [Termux](https://termux.dev). -[AcodeX](https://github.com/bajrangCoder/acode-plugin-acodex) is a powerful plugin for [Acode](https://acode.foxdebug.com/) that enhances your coding productivity by adding in-app Termux terminal integration. With AcodeX, you can execute terminal commands directly from within the Acode app, eliminating the need to switch between apps for coding and terminal access. +[AcodeX](https://github.com/bajrangCoder/acode-plugin-acodex) is a powerful and AI integrated terminal plugin with **80k++ downloads** for [Acode](https://acode.foxdebug.com/) that enhances your coding productivity by adding in-app Termux terminal integration. With AcodeX, you can execute terminal commands directly from within the Acode app, eliminating the need to switch between apps for coding and terminal access. -> [!Note] +> [!NOTE] > When starting a new terminal, be sure to adjust the terminal panel according to your screen. You can drag it to your desired position, and it will automatically adjust the columns and rows according to your screen size. Buy Me A Coffee Buy Me a Coffee at ko-fi.com -### Support this project with your small contribution - [Click Me 💗](https://www.buymeacoffee.com/bajrangCoder) - +--- + +## Table of Contents +- [Features](#-features) +- [Prerequisites](#prerequisites) +- [Installation](#installation) +- [For Existing Users: Enabling GUI Features](#for-existing-users-enabling-gui-features) +- [How to Use](#how-to-use) +- [Running GUI Apps](#how-to-run-gui-apps-in-acodex) +- [Selection Context Menu](#why-is-there-no-selection-context-menu) +- [Keybindings](#additional-terminal-keybindings) +- [Using AI](#how-to-use-ai) +- [Api Docs](#api-docs) +- [Custom Fonts](#custom-fonts) +- [Support Project](#-contribute-financially) +- [License](#license) + +---
-

Update v3.1.0

+

Update v3.1.8

-- Fixed panel issue when changing the file tab position [#44](https://github.com/bajrangCoder/acode-plugin-acodex/pull/44) -- fixed plugin api problem of `acodex.openTerminal()` which was using deprecated method -- Added option to modify server host name from settings -- Added new keybindings such as Ctrl-+, Ctrl--, Ctrl-Shift-C -- Modified paste shortcut to Ctrl+Shift+V -- And in shortcuts you can use either capital letter or small for eg: Ctrl-Shift-c and Ctrl-Shift-C both will work fine -- redesigned the panel ui and chnaged icons -- lots of inner improvement, to improve overall performance and stability -- Added a Search functionality to search inside terminal -- fixed ui bug (of transparent mode) -- Fixed all known issues +- Fixed settings issue (First backup your settings before updating) +- Added a new keybinds ctrl+a to select all +- touch selection support +- Gui viewer support +- added local ai using ollama +- more...

@@ -42,33 +50,43 @@ ## 💥 Features -- **User-Friendly Terminal**: AcodeX provides a seamless terminal experience within Acode. You can open the terminal panel with a simple `Ctrl+K` shortcut or by searching for "Open Terminal" in the command palette. +- **User-Friendly Terminal**: Seamlessly integrated terminal within Acode. Open it with `Ctrl+K` or search `"Open Terminal"` in the command palette. + +- **AI Assistance**: Unsure about a command? Just ask, and AI will write it for you. + +- **Boost Productivity**: Execute commands directly in Acode without switching apps, saving valuable time. + +- **Customizable Terminal Panel**: Move, resize, minimize, or maximize the terminal panel to fit your workflow. + +- **Intuitive Interface**: Designed for developers of all skill levels with an easy-to-use interface. + + +- **Personalization**: Tailor the terminal’s appearance and behavior to your preferences. -- **Enhanced Productivity**: With AcodeX, developers can save time by executing commands directly within Acode, eliminating the need to switch between multiple applications. +- **Efficient Session Management**: Manage multiple sessions smoothly while minimizing resource usage. -- **Customizable Terminal Panel**: The terminal panel in AcodeX is fully customizable. You can easily move, resize, minimize, or maximize it to suit your workflow. +- **Persistent Sessions**: Terminal sessions stay active even when Acode is closed. Resume where you left off when reopened. -- **Intuitive Interface**: AcodeX offers an intuitive and user-friendly interface suitable for developers of all skill levels. +- **Easy Directory Navigation**: Change directories with a single click for hassle-free navigation. -- **Tailored to Your Preferences**: Customize the AcodeX terminal to match your personal preferences, making it your own. +- **Beautiful Themes**: Choose from 10+ stunning themes to personalize your coding environment. -- **Efficient Session Management**: Create and manage multiple sessions efficiently, minimizing resource consumption and power usage. +- **Transparency Options**: Adjust panel transparency for a sleek, customized look.(it will take resources) -- **Background Persistence**: AcodeX ensures that your terminal session stays active even if you close Acode. When you reopen Acode, you can continue seamlessly without interruption. +- **Nerd Fonts Support**: Preloaded with Nerd Fonts and options to add your own custom fonts. -- **Easy Directory Navigation**: Navigate to any folder with a simple button click, simplifying directory changes. +- **Keyboard Shortcuts**: Use shortcuts to perform tasks efficiently without relying on the mouse. -- **Beautiful Themes**: AcodeX comes with a selection of stunning themes (10+) to personalize your coding environment. +- **Extensible**: Highly pluggable for other plugins to integrate and extend functionality. -- **Transparency Options**: Customize the terminal panel's transparency to your liking, adding a touch of visual elegance to your workspace. +- **Search Functionality**: Quickly search within the terminal for easy access to commands. -- **Nerd Fonts Support**: Preloaded with a collection of Nerd Fonts and the ability to load your own custom fonts, ensuring your terminal looks and feels the way you want. +- **Mouse/Touch Selection**: Supports selection within the terminal using mouse or touch. -- **Keyboard Shortcuts**: Perform mouse-like tasks using keyboard shortcuts, streamlining your workflow and boosting efficiency. +- **GUI App Support**: Run GUI apps via VNC (for learning and experimentation). -- **Extensible**: AcodeX is highly pluggable, allowing other plugins to harness its API for creating innovative extensions and enhancing functionality. +- **Image Rendering**: Supports rendering images in the terminal (enable in settings). -- **Easy Search**: Easily search inside the terminal ## Prerequisites @@ -76,26 +94,69 @@ To use AcodeX, you need to have the [Termux app](https://termux.dev/en/) install ## Installation -1. Install the plugin in the Acode App from `Acode > Settings > Plugins > AcodeX`. +1. **Install the Plugin in Acode** + Open the Acode App and navigate to: + `Acode > Settings > Plugins > AcodeX`, then install the plugin. -2. Install the server in Termux using the following command: +2. **Install the Server in Termux** + To install everything required, including prompts for GUI-related tools like TigerVNC and Websockify (if needed), run the following command in Termux: -```bash -curl -sL https://raw.githubusercontent.com/bajrangCoder/acode-plugin-acodex/main/installServer.sh | bash -``` + ```bash + curl -sL https://raw.githubusercontent.com/bajrangCoder/acode-plugin-acodex/main/installServer.sh | bash + ``` -or + Alternatively, you can manually install the required packages: -```bash -pkg update && pkg upgrade -y -pkg install python nodejs -y -npm i -g acodex-server -``` + ```bash + pkg update && pkg upgrade -y + pkg install python nodejs -y + npm i -g acodex-server + pkg install tigervnc -y + curl -L https://raw.githubusercontent.com/bajrangCoder/websockify_rs/main/install.sh | bash + ``` -Basically just install `python` & `nodejs` and then just install `acodex-server` npm package globally + The key steps are: + - Install `python` and `nodejs`. + - Install the `acodex-server` package globally using npm. + - If you plan to run GUI apps, also install `tigervnc` and `websockify_rs`. -> [!Note] -> You can uninstall python after successful installation of `acodex-server` +> [!IMPORTANT] +> After installing TigerVNC, make sure to set a password by running the `vncserver` command the first time. + +4. **Termux Specific Step** + Before installing on Termux, run this command to bypass a Termux-specific issue: + + ```bash + cd $HOME && mkdir -p .gyp && echo "{'variables': {'android_ndk_path': ''}}" > .gyp/include.gypi + ``` + +> [!TIP] +> After successfully installing `acodex-server`, you can uninstall Python if it's no longer needed. + + +## For Existing Users: Enabling GUI Features + +If you're an existing user and want to start using the new GUI features, follow these steps to install the required packages: + +1. **Install TigerVNC and Websockify** + Run the following commands in Termux to install the necessary packages: + + ```bash + pkg install tigervnc -y + curl -L https://raw.githubusercontent.com/bajrangCoder/websockify_rs/main/install.sh | bash + ``` + +2. **Setup VNC Server** + After installation, run the `vncserver` command for the first time to set up a password: + + ```bash + vncserver + ``` + + This will prompt you to create a password for your VNC server. + +3. **Start Using GUI Features** + Once you’ve set up the VNC server, AcodeX will handle everything for you automatically, enabling the use of GUI apps seamlessly. but you will need to enable this feature from AcodeX settings.(after enabling you will get an image like icon on AcodeX header for viewing the gui) ## How to Use @@ -105,42 +166,236 @@ Basically just install `python` & `nodejs` and then just install `acodex-server` - To use AcodeX, press `Ctrl+K` or search for `"Open Terminal"` in the command palette (press `Ctrl+Shift+P` to open the command palette). - Enter the port number, and the terminal will start. - Plus `+` icon to create new session -- Use the minus icon button to hide the terminal while coding and the terminal button to show it. +- Use the minus icon button to hide the terminal while coding and the terminal button or `Ctrl-Shift-T` to show it. - You can also drag the terminal panel around by clicking and dragging through the terminal header area. - The `✗` button is for closing the terminal. - The folder icon button on the terminal header is for navigating to opened files (in the editor) directory. -### API Docs +## How to Run GUI Apps in AcodeX? -```javascript -const termController = acode.require("acodex"); -``` +To run GUI apps within AcodeX, follow the steps below: + +1. **Install the Required Packages** + Ensure that you have installed the necessary packages by following the instructions in the [Installation](#installation) or [Existing Users Setup](#for-existing-users-enabling-gui-features) sections. + +2. **Enable GUI Viewer Settings** + - Navigate to `Acode > Settings > Plugins > AcodeX`. + - Tap the ⚙️ icon at the top-right corner of the AcodeX header to access the plugin settings. + - Enable the **GUI Viewer** option from the settings. + +3. **Open AcodeX Terminal** + - Open the AcodeX terminal using the `Ctrl+K` shortcut, or search for "Open Terminal" in the command palette. + +4. **Launch the GUI Viewer** + - In the terminal header, you'll see a small **image-like icon**. + - Click the icon. The first time you do this, it will set up the necessary configurations and prompt you for the VNC password. + - Enter your VNC password, which will be saved securely in the local storage for future sessions. + +5. **Using the GUI Viewer** + After setup, the GUI Viewer page will open. On this page, you’ll find multiple interactive elements such as: + + - **Display Variable Button**: + This button copies the `DISPLAY` environment variable needed for running GUI apps. + + **Before launching a GUI app**, always click the **Display Button** to set up the display environment in the terminal. If you skip this step, the GUI app will fail with a "No display variable" error. -**Methods**: + - **Keyboard Icon**: + A keyboard icon is available to activate your mobile keyboard for typing within GUI applications. + +6. **Run Your GUI App** + - In the AcodeX terminal, **click the Display button**, which will copy and execute the `export DISPLAY` command. + - Start your GUI app in the terminal, and it will open in the integrated viewer. + +> [!TIP] +> Always verify that the `export DISPLAY` command was executed successfully before launching your GUI application. + +> [!NOTE] +> the display env variable command needs to run once in a terminal session + +### Why is there no selection context menu? + +On small screens, the context menu can clutter the interface. Additionally, since the AcodeX panel is adjustable, the menu can behave unpredictably. We believe in prioritizing **keyboard shortcuts** over UI buttons for efficiency. + +However, you can still perform all tasks using the following key shortcuts: + +- **Select All**: Ctrl + A +- **Copy**: Ctrl + Shift + C +- **Paste**: Ctrl + Shift + V + +## Additional Terminal Keybindings + +AcodeX provides some additional Keybindings for easy usability of terminal features. + +> [!Note] +> These keybindings will only work if you will use these inside terminal only. except the * marked one + +Following are the supported Keybindings : + +- Ctrl+N : opens a new terminal session +- Ctrl+W : close opened terminal session +- Ctrl+Shift+V : paste something from clipboard inside your terminal +- Ctrl+Shift+C : copy selected text from terminal +- Ctrl+Left Arrow : open previous session corresponding to current one like if current one is session 2 then it will open session 1(if exists) +- Ctrl+Right Arrow : open next session corresponding to current one like if current one is session 2 then it will open session 2(if exists) +- Ctrl+1 : opens session 1 +- Ctrl+2 : opens session 2 if exists +- Ctrl+3 : opens session 3 if exists +- Ctrl+4 : opens session 4 if exists +- Ctrl+5 : opens session 5 if exists +- Ctrl+Shift+I : clear the terminal +- Ctrl+Shift+T : Maximise the terminal * +- Ctrl+a : select all + +### How to Use AI + +To leverage the power of artificial intelligence within `AcodeX Terminal` Plugin, follow these steps: + +1. **Obtain API Key**: Before using the AI capabilities, you need to acquire an API key for the respective model you wish to utilize. Visit the website of your chosen model and obtain the API key. Once obtained, navigate to the AcodeX settings and input the API key. Additionally, you can select your preferred model from the list of currently supported models, which include: + - Deepseek : [Get API key 🚀](https://platform.deepseek.com/api_keys) + - Chatgpt : [Get API key 🚀](https://platform.openai.com/account/api-keys) + - Gemini-Pro(default) : [Get API key 🚀](https://aistudio.google.com/app/apikey) + +2. **Accessing AI in the Terminal**: + - To access the AI functionality within the terminal, simply type `#`. This action will prompt a popup window to appear. + - Within the popup window, you can input your prompt or query. + - Upon entering your prompt, click the button provided to prompt the AI to generate a command based on your input. + - The generated command will be written into the terminal. From there, you have the option to execute the command as is or modify it according to your requirements. + +> [!Warning] +> Avoid prompts that may lead the AI to provide descriptive or explanatory responses instead of actionable commands. + +> [!Note] +> Use AI wisely, as there may be token limits associated with your API key. Be mindful of your usage to avoid exceeding token limits and potential interruptions in service. -1. `.execute(command)`: Execute the given command in the terminal. -2. `.isMinimized()`: Check if the terminal is minimized. -3. `.isTerminalOpened()`: Check if the terminal is opened. -4. `.maximizeTerminal()`: Maximize the terminal if it's minimized. -5. `.openTerminal(termContainerHeight, port)`: Open a new terminal (both `termContainerHeight` and `port` are optional). -6. `.createSession()`: creates a sessionif terminal is opened -7. `.closeTerminal()`: Close the opened terminal. -8. `.convertAcodeUriToTermReadable(path)`: Convert Acode file URI to an actual path. -9. `.addTheme(themeName: string, colorSchema: IXtermTheme)`: Add a new theme to AcodeX's theme list. -10. `.applyTheme(themeName: string)`: Apply the given theme to the terminal. +We value your feedback! Please provide any suggestions or feedback to help us improve the AI integration and suggest additional AI models for future enhancements. -Example of addTheme & applyTheme: +Stay tuned for more AI integrations and improvements coming soon 😊! + +## API Docs +The `acodex` plugin provides a set of api to interact with the AcodeX terminal. + +#### `execute(cmd: string, withEnter?: boolean = true) => void` + +Executes a command in the AcodeX terminal. + +- **Parameters:** + - `cmd` (string): The command to be executed. + - `withEnter` (boolean, optional): Whether to append an Enter keypress. Defaults to `true`. + +#### `isMinimized() => boolean` + +Returns a boolean indicating whether the AcodeX terminal is currently minimized or not. + +#### `isTerminalOpened() => boolean` + +Returns a boolean indicating whether the AcodeX terminal is currently opened or not. + +#### `maximiseTerminal() => void` + +Maximizes the AcodeX terminal if it is opened and minimized. + +#### `openTerminal(termContainerHeight: number = 270, port: number = this.settings.port) => Promise` + +Opens the AcodeX terminal. + +- **Parameters:** + - `termContainerHeight` (number, optional): Height of the terminal container. Defaults to `270`. + - `port` (number, optional): Port number for the terminal server. Defaults to the value from `this.settings.port`. + +- **Returns:** + - A `Promise` resolving to a `SessionAPI` object. + +#### `createSession() => Promise` + +Creates a new terminal session. + +- **Returns:** + - A `Promise` resolving to a `SessionAPI` object. + +#### `changeSession(sessionName: string) => Promise` + +Changes the active terminal session. + +- **Parameters:** + - `sessionName` (string): Name of the session to switch to. + +- **Returns:** + - A `Promise` resolving to a `SessionAPI` object. + +#### `closeTerminal() => void` + +Closes the AcodeX terminal if it is opened. + +#### `convertAcodeUriToTermReadable(path: string) => string` + +Converts an Acode URI to a format readable by the terminal. + +- **Parameters:** + - `path` (string): Acode URI path. + +- **Returns:** + - A string representing the converted path. + +#### `addTheme(themeName: string, colorSchema: object) => void` + +Adds a new theme to the AcodeX terminal. + +- **Parameters:** + - `themeName` (string): Name of the theme. + - `colorSchema` (object): Color schema object for the theme. + +#### `applyTheme(themeName: string) => void` + +Applies a theme to the AcodeX terminal. + +- **Parameters:** + - `themeName` (string): Name of the theme to apply. + +### SessionAPI Object + +The `SessionAPI` object provides methods for interacting with the terminal session. + +#### `onmessage(callback: (data: string | Uint8Array) => void) => void` + +Registers a callback function to be called when a message is received form server. + +- **Parameters:** + - `callback` ((data: string | Uint8Array) => void): Callback function to handle incoming messages. + +#### `write(cmd: string, withEnter: boolean = true) => void` + +Writes/Executes a command to the terminal. + +- **Parameters:** + - `cmd` (string): The command to write. + - `withEnter` (boolean, optional): Whether to append an Enter keypress. Defaults to `true`. + +### Example Usage ```javascript const acodex = acode.require("acodex"); -const themeName = "Test"; // name of theme -const colorSchema = { - // Theme colors here, you can find colors in themes.js -} -// Add theme -acodex.addTheme(themeName, colorSchema); -// Apply theme -acodex.applyTheme(themeName); + +acodex.execute("ls"); // execute the ls command in terminal +const isMinimized = acodex.isMinimized(); +const isOpened = acodex.isTerminalOpened(); +acodex.maximiseTerminal(); + +const session = await acodex.openTerminal(); +session.onmessage(data => console.log(data)); +session.write("ls"); + +const sessionSocket = await acodex.createSession(); +sessionSocket.onmessage(data => console.log(data)); +sessionSocket.write("ls"); + +const changeSessionSocket = await acodex.changeSession("AcodeX2"); +changeSessionSocket.onmessage(data => console.log(data)); +changeSessionSocket.write("ls"); + +acodex.closeTerminal(); +const termReadablePath = acodex.convertAcodeUriToTermReadable("file://storage/emulated/0/myTheme/acode/file/path"); +acodex.addTheme("myTheme", { background: "#fff", text: "#000" }); // you can find more colors in themes.js +acodex.applyTheme("myTheme"); ``` ## Custom Fonts @@ -167,32 +422,13 @@ To load a custom font: 6. Enter the font name in the Font Family option. 7. Restart the terminal. -## Additional Terminal Keybindings - -AcodeX provides some additional Keybindings for easy usability of terminal features. - -> Note: These keybindings will only work if you will use these inside terminal only. - -Following are the supported Keybindings : - -- Ctrl+N : opens a new terminal session -- Ctrl+W : close opened terminal session -- Ctrl+Shift+V : paste something from clipboard inside your terminal -- Ctrl+Shift+C : copy selected text from terminal -- Ctrl+Left Arrow : open previous session corresponding to current one like if current one is session 2 then it will open session 1(if exists) -- Ctrl+Right Arrow : open next session corresponding to current one like if current one is session 2 then it will open session 2(if exists) -- Ctrl+1 : opens session 1 -- Ctrl+2 : opens session 2 if exists -- Ctrl+3 : opens session 3 if exists -- Ctrl+4 : opens session 4 if exists -- Ctrl+5 : opens session 5 if exists - ## Acknowledgments AcodeX is made possible by the use of: - [xtermjs](https://xtermjs.org/) - [Termux](https://termux.dev/en/) +- [noVnc](https://github.com/novnc/noVnc) ## Authors @@ -252,7 +488,7 @@ pnpm build ### 💰 Contribute Financially -You can also support the development of AcodeX Plugin by making a financial contribution. Donations help in maintenance and further development. +You can also support the development of AcodeX Plugin by making a financial contribution. Donations help in maintenance and further development. Also you can mention your GitHub handle when making contribution Buy Me A Coffee diff --git a/src/AcodeX.js b/src/AcodeX.js new file mode 100644 index 0000000..6d0fb0b --- /dev/null +++ b/src/AcodeX.js @@ -0,0 +1,2654 @@ +import plugin from "../plugin.json"; +import style from "./styles/style.scss"; +import * as helpers from "./utils/helpers.js"; +import { themes } from "./utils/themes.js"; +import AIResponseHandler from "./services/AiService.js"; +// due to some reason selection model from other file doesn't work, feel free to open pr +// import SelectionCore from "./core/selectionCore.js"; +import { + ALLOW_TRANSPRANCY, + CURSOR_BLINK, + CURSOR_INACTIVE_STYLE, + CURSOR_STYLE, + DEFAULT_THEME, + FONT_FAMILY, + FONT_SIZE, + FONT_WEIGHT, + SCROLLBACK, + SCROLL_SENSITIVITY, + THEME_LIST, + FONTS_LIST, + showTerminalBtnSize, + AI_MODEL, + AVAILABLE_AI_MODELS, + IMAGE_RENDERING, + GUI_VIEWER, + showTerminalBtn +} from "./utils/constants.js"; + +import RFB from "@novnc/novnc"; +import KeyTable from "@novnc/novnc/lib/input/keysym"; +import keysyms from "@novnc/novnc/lib/input/keysymdef"; +// xtermjs +import { Terminal } from "@xterm/xterm"; +// xtermjs addons +import { FitAddon } from "@xterm/addon-fit"; +import { WebglAddon } from "@xterm/addon-webgl"; +import { WebLinksAddon } from "@xterm/addon-web-links"; +import { Unicode11Addon } from "@xterm/addon-unicode11"; +import { AttachAddon } from "@xterm/addon-attach"; +import { SearchAddon } from "@xterm/addon-search"; +import { ImageAddon } from '@xterm/addon-image'; + +// acode commopents & api +const confirm = acode.require("confirm"); +const appSettings = acode.require("settings"); +const fsOperation = acode.require("fsOperation"); +const toInternalUrl = acode.require("toInternalUrl"); +const select = acode.require("select"); +const loader = acode.require("loader"); +const DialogBox = acode.require("dialogBox"); +const pageComponent = acode.require('page'); +const actionStack = acode.require('actionStack'); + +const { clipboard } = cordova.plugins; + + +export default class AcodeX { + // constants for dragable Terminal panel + isDragging = false; + startY; + startHeight; + // constants for dragable show terminal button + isFlotBtnDragging = false; + btnStartPosX; + btnStartPosY; + // terminal constant + isTerminalMinimized = false; + isTerminalOpened = false; + previousTerminalHeight; + pid; + terminal = null; + socket = null; + $fitAddon = undefined; + + isSelecting = false; + isTapAndHoldActive = false; + tapHoldTimeout = null; + selectionStart = null; + selectionEnd = null; + lastTapTime = 0; // Store the timestamp of the last tap + tapThreshold = 300; // Maximum time (in ms) allowed between taps to count as a double-tap + touchStartY = 0; + touchStartTime = 0; + scrollThreshold = 10; // pixels + scrollTimeThreshold = 100; // milliseconds + + constructor() { + if (!appSettings.value[plugin.id]) { + this._saveSetting(); + } else { + if (!this.settings.hasOwnProperty('enableGuiViewer')) { + delete appSettings.value[plugin.id]; + appSettings.update(false); + this._saveSetting(); + } + } + } + + async init($page, cacheFile, cacheFileUrl) { + try { + if (!(await fsOperation(window.DATA_STORAGE + "acodex_fonts").exists())) { + helpers.downloadFont(fsOperation, loader); + } + let baseFontUrl = window.IS_FREE_VERSION + ? "https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acodefree/files/acodex_fonts/" + : "https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/"; + this.xtermCss = tag("link", { + rel: "stylesheet", + href: this.baseUrl + "xterm.css" + }); + this.$style = tag("link", { + rel: "stylesheet", + href: this.baseUrl + "main.css" + }); + this.$fontStyleSheet = tag("style", { + textContent: helpers.fontsStyleSheetStr(baseFontUrl) + }); + this._loadCustomFontStyleSheet(); + document.head.append(this.xtermCss, this.$style, this.$fontStyleSheet); + // add command in command Pallete for opening and closing terminal + editorManager.editor.commands.addCommand({ + name: "acodex:open_terminal", + description: "Open Terminal", + bindKey: { win: "Ctrl-K" }, + exec: () => { + this.openTerminalPanel(270, this.settings.port); + } + }); + editorManager.editor.commands.addCommand({ + name: "acodex:close_terminal", + description: "Close Terminal", + bindKey: { win: "Ctrl-J" }, + exec: this.closeTerminal.bind(this) + }); + editorManager.editor.commands.addCommand({ + name: "acodex:maximise_terminal", + description: "Maximise Terminal", + bindKey: { win: "Ctrl-Shift-T" }, + exec: this.maxmise.bind(this) + }); + // main terminal container + this.$terminalContainer = tag("div", { + className: "terminal-panel" + }); + this.$terminalHeader = tag("div", { + className: "terminal-title-bar" + }); + const leftSection = tag("div", { + className: "left-section" + }); + const sessionInfo = tag("div", { + className: "session-info" + }); + const pointerIndicator = tag("div", { + className: "pointer-indicator", + ariaHidden: true + }); + this.$terminalTitle = tag("h3", { + textContent: "AcodeX 1", + className: "session-name" + }); + sessionInfo.append(pointerIndicator, this.$terminalTitle); + leftSection.append(sessionInfo); + + const $btnSection = tag("div", { + className: "btn-section" + }); + const newSessionBtn = tag("button", { + className: "action-button new-session", + ariaLabel: "New Session" + }); + newSessionBtn.innerHTML = ``; + this.$searchBtn = tag("button", { + className: "action-button search-btn", + ariaLabel: "Search" + }); + this.$searchBtn.innerHTML = ``; + this.$cdBtn = tag("button", { + className: "action-button folder-icon", + ariaLabel: "Navigate to Folder" + }); + this.$cdBtn.innerHTML = ``; + this.$minimizeBtn = tag("button", { + className: "action-button minimize", + ariaLabel: "Minimize" + }); + this.$minimizeBtn.innerHTML = ``; + this.$closeTermBtn = tag("button", { + className: "action-button close", + ariaLabel: "Close Terminal" + }); + this.$closeTermBtn.innerHTML = ``; + this.$searchInputContainer = tag("div", { + className: "search-input-container" + }); + this.$searchInputContainer.append( + tag("button", { + className: "action-button find-previous", + ariaLabel: "Find Previous", + innerHTML: ``, + onclick: this._findPreviousMatchofSearch.bind(this) + }), + tag("input", { + type: "text", + placeholder: "Find...", + ariaLabel: "Search input", + oninput: e => { + this.$searchAddon?.findNext(e.target.value); + } + }), + tag("button", { + className: "action-button find-next", + ariaLabel: "Find Next", + innerHTML: ``, + onclick: this._findNextMatchofSearch.bind(this) + }) + ); + if (this.settings.enableGuiViewer) { + this.setupGUIViewerPage(); + } + $btnSection.append( + newSessionBtn, + this.settings.enableGuiViewer ? this.createGUIViewerBtn() : "", + this.$searchBtn, + this.$cdBtn, + this.$minimizeBtn, + this.$closeTermBtn, + this.$searchInputContainer + ); + + this.$terminalHeader.append(leftSection, $btnSection); + + this.$terminalContent = tag("div", { + className: "terminal-content" + }); + + this.startHandle = tag("div", { + className: "selection-handle selection-start-handle" + }); + this.endHandle = tag("div", { + className: "selection-handle selection-end-handle" + }); + + this.$terminalContainer.append( + this.$terminalHeader, + this.$terminalContent, + ); + // show terminal button + this.$showTermBtn = tag("button", { + className: "show-terminal-btn", + innerHTML: `` + }); + // append Terminal panel to app main + if (app.get("main")) { + app.get("main").append(this.$terminalContainer,this.startHandle,this.endHandle, this.settings.showTerminalBtn ? this.$showTermBtn : ''); + } + + this.$showTermBtn?.classList.add("hide"); + this.$terminalContainer?.classList.add("hide"); + + if (this.settings.showTerminalBtnSize && this.settings.showTerminalBtn) { + this.$showTermBtn.style.height = + this.settings.showTerminalBtnSize + "px"; + this.$showTermBtn.style.width = + this.settings.showTerminalBtnSize + "px"; + } + + this.$cacheFile = cacheFile; + // add event listnner to all buttons and terminal panel header + this.$terminalHeader.addEventListener( + "mousedown", + this.startDragging.bind(this) + ); + this.$terminalHeader.addEventListener( + "touchstart", + this.startDragging.bind(this) + ); + + newSessionBtn.addEventListener("click", this.createSession.bind(this)); + this.$searchBtn.addEventListener("click", () => { + const searchInput = this.$searchInputContainer.querySelector("input"); + this.$searchInputContainer.classList.toggle("show"); + + // Toggle visibility based on the presence of 'show' class in the search input + if (this.$searchInputContainer.classList.contains("show")) { + newSessionBtn.style.display = "none"; + this.settings.enableGuiViewer ? document.querySelector(".action-button.gui-viewer").style.display = "none" : ""; + this.$cdBtn.style.display = "none"; + this.$minimizeBtn.style.display = "none"; + this.$closeTermBtn.style.display = "none"; + searchInput.addEventListener("click", () => { + searchInput.focus(); + }); + } else { + this.$searchAddon?.clearDecorations(); + this.$searchAddon?.clearActiveDecoration(); + newSessionBtn.style.display = "block"; + this.settings.enableGuiViewer ? document.querySelector(".action-button.gui-viewer").style.display = "block" : ""; + this.$cdBtn.style.display = "block"; + this.$minimizeBtn.style.display = "block"; + this.$closeTermBtn.style.display = "block"; + } + }); + + this.$terminalTitle.addEventListener("click", async e => { + let sessionNames; + const jsonData = await this.$cacheFile.readFile("utf8"); + let sessionsData = JSON.parse(jsonData); + + if (Array.isArray(sessionsData)) { + // Extract session names and return them in an array + sessionNames = sessionsData.map(session => session.name); + } else { + sessionNames = []; + } + + const opt = { + hideOnSelect: true, + default: localStorage.getItem("AcodeX_Current_Session") + }; + + const sessionSelectBox = await select( + "AcodeX Sessions", + sessionNames, + opt + ); + if (sessionSelectBox) { + this.changeSession(sessionSelectBox); + } + }); + + this.$closeTermBtn.addEventListener( + "click", + this.closeTerminal.bind(this) + ); + this.$minimizeBtn.addEventListener("click", this.minimise.bind(this)); + this.$cdBtn.addEventListener("click", this._cdToActiveDir.bind(this)); + + // add event listener for show terminal button + if (this.settings.showTerminalBtn) { + this.$showTermBtn.addEventListener( + "mousedown", + this.startDraggingFlotingBtn.bind(this) + ); + document.addEventListener("mousemove", this.dragFlotButton.bind(this)); + document.addEventListener("mouseup", this.stopDraggingFlotBtn.bind(this)); + this.$showTermBtn.addEventListener( + "touchstart", + this.startDraggingFlotingBtn.bind(this) + ); + document.addEventListener("touchmove", this.dragFlotButton.bind(this)); + document.addEventListener( + "touchend", + this.stopDraggingFlotBtn.bind(this) + ); + this.$showTermBtn.addEventListener("click", this.maxmise.bind(this)); + } + + window.addEventListener("mousemove", this.drag.bind(this)); + window.addEventListener("touchmove", this.drag.bind(this)); + window.addEventListener("mouseup", this.stopDragging.bind(this)); + window.addEventListener("touchend", this.stopDragging.bind(this)); + // to adjust size of terminal or floating button when Keyboard is opened + window.addEventListener("resize", () => { + if (this.$terminalContainer) { + if (!this.$terminalContainer.classList.contains("hide")) { + let headerHeight = + document.querySelector("#root header")?.offsetHeight; + let fileTabHeight = + document.querySelector("#root ul")?.offsetHeight || 0; + const totalHeaderHeight = headerHeight + fileTabHeight; + const totalFooterHeight = + document.querySelector("#quick-tools")?.offsetHeight || 0; + const screenHeight = + window.innerHeight - (totalHeaderHeight + totalFooterHeight); + + const currentHeight = parseInt( + this.$terminalContainer.style.height + ); + const adjustedHeight = Math.min(currentHeight, screenHeight); + this.$terminalContainer.style.height = adjustedHeight + "px"; + localStorage.setItem( + "AcodeX_Terminal_Cont_Height", + this.$terminalContainer.offsetHeight + ); + } + const selection = this.$terminal?.getSelection(); + if (selection && selection.length > 0){ + this.updateHandles(); + } + } + + if (this.$showTermBtn && this.settings.showTerminalBtn) { + if (!this.$showTermBtn.classList.contains("hide")) { + let headerHeight = + document.querySelector("#root header")?.offsetHeight; + let fileTabHeight = + document.querySelector("#root ul")?.offsetHeight || 0; + const totalHeaderHeight = headerHeight + fileTabHeight; + let maxY = + window.innerHeight - + totalHeaderHeight - + this.$showTermBtn.offsetHeight; + const currentY = parseInt(this.$showTermBtn.style.bottom); + this.$showTermBtn.style.bottom = + Math.max(0, Math.min(maxY, currentY)) + "px"; + } + } + + }); + + if ( + localStorage.getItem("AcodeX_Is_Opened") === "true" && + localStorage.getItem("AcodeX_Current_Session") + ) { + await this.openTerminalPanel( + localStorage.getItem("AcodeX_Terminal_Cont_Height") || 270, + this.settings.port + ); + } + + // acodex terminal api + acode.define("acodex", { + execute: (cmd, withEnter = true) => { + try { + if (!this.isTerminalOpened) return; + this.socket?.send(withEnter ? cmd + "\r" : cmd); + } catch (error) { + throw Error(error); + } + }, + isMinimized: () => { + return this.isTerminalMinimized; + }, + isTerminalOpened: () => { + return this.isTerminalOpened; + }, + maximiseTerminal: () => { + if (this.isTerminalOpened && this.isTerminalMinimized) { + this.maxmise(); + } + }, + openTerminal: async ( + termContainerHeight = 270, + port = this.settings.port + ) => { + if (!this.isTerminalOpened) { + let socket = await this.openTerminalPanel( + termContainerHeight, + port + ); + return { + onmessage: cb => { + if (socket) { + socket.onmessage = event => + cb( + typeof event.data === "string" + ? event.data + : new Uint8Array(event.data) + ); + } + }, + write: (cmd, withEnter = true) => { + let command = withEnter ? cmd + "\r" : cmd; + socket.send(command); + } + }; + } + }, + createSession: async () => { + if (this.isTerminalOpened) { + let socket = await this.createSession(); + return { + onmessage: cb => { + if (socket) { + socket.onmessage = event => + cb( + typeof event.data === "string" + ? event.data + : new Uint8Array(event.data) + ); + } + }, + write: (cmd, withEnter = true) => { + let command = withEnter ? cmd + "\r" : cmd; + socket.send(command); + } + }; + } + }, + changeSession: async sessionName => { + if (this.isTerminalOpened) { + let socket = await this.changeSession(sessionName); + return { + onmessage: cb => { + if (socket) { + socket.onmessage = event => + cb( + typeof event.data === "string" + ? event.data + : new Uint8Array(event.data) + ); + } + }, + write: (cmd, withEnter = true) => { + let command = withEnter ? cmd + "\r" : cmd; + socket.send(command); + } + }; + } + }, + closeTerminal: () => { + if (this.isTerminalOpened) { + this.closeTerminal(); + } + }, + convertAcodeUriToTermReadable: path => { + return helpers.convertPath(path); + }, + addTheme: (themeNme, colorSchema) => { + THEME_LIST.push(themeNme); + themes[themeNme] = colorSchema; + }, + applyTheme: themeNme => { + this.settings.theme = themeNme; + appSettings.update(); + } + }); + } catch (err) { + console.log(err); + } + } + + createGUIViewerBtn() { + const viewerBtn = tag("button", { + className: "action-button gui-viewer", + ariaLabel: "Open GUI Viewer" + }); + viewerBtn.innerHTML = ``; + viewerBtn.onclick = this.openViewerPage.bind(this); + return viewerBtn; + } + + setupGUIViewerPage() { + const closeBtn = tag("span", { + className: "icon clearclose", + dataset: { + action: "close-btn", + }, + }); + this.displayVar = tag("span", { + textContent: "Display: ", + dataset: { + action: "copy-display-num" + } + }); + this.displayVar.onclick = () => { + clipboard.copy(`export DISPLAY=${this.displayVariable};`); + acode.alert("AcodeX", "Copied the display, just execute the copied command in your current terminal session.") + } + this.$page = pageComponent("AcodeX GUI Viewer", { + lead: closeBtn, + tail: this.displayVar + }); + this.$page.id = "acodex-gui-viewer"; + this.$page.show = () => { + actionStack.push({ + id: plugin.id, + action: this.$page.hide, + }); + app.append(this.$page); + this.$page.querySelector(".gui-viewer-canvas").appendChild(this._hiddenInput); + }; + closeBtn.onclick = () => { + this.rfb.disconnect(); + viewerCanvas.innerHTML = ""; + this.$page.hide(); + } + document.addEventListener("backbutton", ()=> { + if(document.contains(this.$page)) { + this.rfb.disconnect(); + viewerCanvas.innerHTML = ""; + this.$page.hide(); + } + }, false); + const showKeyboard = tag("span", { + className: "icon keyboard_hide", + dataset: { + action: "show-keyboard", + }, + }); + this.$page.header.append(showKeyboard); + const viewerCanvas = tag("div", { + className: "gui-viewer-canvas" + }); + this.$page.body.append(viewerCanvas); + + this._hiddenInput = tag("textarea", { + autocapitalize: "off", + autocomplete: "off", + spellcheck: "false", + tabindex: "-1" + }) + + this._hiddenInput.style.position = 'absolute'; + this._hiddenInput.style.opacity = '0'; + this._hiddenInput.style.height = '0px'; + this._hiddenInput.style.width = '0px'; + this._hiddenInput.style.zIndex = '-1'; + this._hiddenInput.style.imeMode = 'disabled'; + + this.$page.querySelector(".gui-viewer-canvas").appendChild(this._hiddenInput); + showKeyboard.onclick = () => { + this._hiddenInput.focus(); + }; + + + function handleKeyInput(event) { + const newValue = event.target.value; + const oldValue = event.target.dataset.lastValue || ''; + + let newLen; + try { + newLen = Math.max(event.target.selectionStart, newValue.length); + } catch (err) { + newLen = newValue.length; + } + const oldLen = oldValue.length; + + let inputs = newLen - oldLen; + let backspaces = inputs < 0 ? -inputs : 0; + + // Compare the old string with the new to detect text corrections + for (let i = 0; i < Math.min(oldLen, newLen); i++) { + if (newValue.charAt(i) != oldValue.charAt(i)) { + inputs = newLen - i; + backspaces = oldLen - i; + break; + } + } + + // Send backspace key events for deleted characters + for (let i = 0; i < backspaces; i++) { + this.rfb.sendKey(KeyTable.XK_BackSpace, "Backspace"); + } + + // Send key events for new characters using keysyms.lookup + for (let i = newLen - inputs; i < newLen; i++) { + const charCode = newValue.charCodeAt(i); + const keysym = keysyms.lookup(charCode); + if (keysym) { + this.rfb.sendKey(keysym); + } + } + + // Store the new value in the data attribute for the next comparison + event.target.dataset.lastValue = newValue; + } + this._hiddenInput.addEventListener('input', handleKeyInput.bind(this)); + } + + async openViewerPage() { + loader.showTitleLoader(); + // regex for testing out the vncserver installed or not + const vncCmdNotFoundRegex = /(?:bash|zsh|sh|.*):(?:\s*line \d+:)?\s*\w+:? command not found|not found/; + try { + if (!this.rfb) { + const result = await this.executeCommandOnPty("vncserver --help"); + + if (vncCmdNotFoundRegex.test(result.output)) { + loader?.removeTitleLoader(); + acode.alert("AcodeX Error", "vncserver not found, First go head and read readme of acodex regarding 'Gui Setup'. To setup it"); + } else { + // check for any running vnc server + const listRes = await this.executeCommandOnPty("vncserver -list"); + // Check the output of `vncserver -list` to see if any server is running + if (/:\d+\s+\t+\d+/.test(listRes.output)) { + // If a server is already running, extract the display number + this.displayVariable = listRes.output.match(/:(\d+)/)[0]; + this.connectVncServer(this.displayVariable); + } else if (/TigerVNC server sessions:\s+X DISPLAY #\tPROCESS ID/.test(listRes.output)) { + const startVncServerRes = await this.executeCommandOnPty("vncserver"); + + const newServerRegex = /New 'localhost:(\d+)/; + const newServerMatch = startVncServerRes.output.match(newServerRegex); + if (newServerMatch) { + this.displayVariable = `:${newServerMatch[1]}`; + this.connectVncServer(this.displayVariable); + } else { + loader?.removeTitleLoader(); + acode.alert("AcodeX Error", "Failed to create new vnc server session, try creating it manually by executing: `vncserver` command"); + } + } else { + throw new Error('Unexpected output from vncserver -list.'); + } + } + } else { + loader?.removeTitleLoader(); + this.$page.show(); + } + } catch (err) { + loader?.removeTitleLoader(); + console.error('Error executing command:', err); + acode.alert("AcodeX Error", err.message); + } + } + + async connectVncServer(displayNum) { + try { + const wsProxyCmdNotFoundRegex = /(?:bash|zsh|sh|.*):(?:\s*line \d+:)?\s*\w+:? command not found|not found/; + const res = await this.executeCommandOnPty("websockify_rs"); + if (wsProxyCmdNotFoundRegex.test(res.output)) { + acode.alert("AcodeX Warning", "websockify_rs not found, which acts as a proxy. Go ahead and install it(Check readme for guide)."); + } + // check if websockify is running + let websockifyProcess = await this.executeCommandOnPty("ps aux | grep websockify_rs | grep -v grep"); + if (websockifyProcess.output === "") { + // start the websockify proxy + let port = 5900 + Number.parseInt(displayNum.split(":")[1]); + let originalSession = localStorage.getItem("AcodeX_Current_Session"); + let sessionSocket = await this.createSession(); + await sessionSocket.send(`websockify_rs localhost:6778 localhost:${port}\r`); + await this.changeSession(originalSession); + await this.waitForWebsockifyToStart(); + } + this.bindNoVnc(); + } catch (err) { + loader?.removeTitleLoader(); + console.error('Error in connecting to vnc server:', err); + acode.alert("AcodeX Error", err.message); + } + } + + async waitForWebsockifyToStart() { + let retries = 5; + const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); + + while (retries > 0) { + let websockifyCheck = await this.executeCommandOnPty("ps aux | grep websockify_rs | grep -v grep"); + if (websockifyCheck.output !== "") { + console.log("AcodeX: Websockify_rs started successfully."); + return; // Exit the loop once websockify is detected + } + retries--; + console.log("AcodeX: Waiting for websockify_rs to start..."); + await delay(1000); + } + + throw new Error("AcodeX: Failed to start websockify_rs within the timeout period."); + } + + async bindNoVnc() { + try { + this.rfb = new RFB(this.$page.querySelector(".gui-viewer-canvas"), `ws://localhost:6778/`); + this.rfb.scaleViewport = true; + this.rfb.clipViewport = true; + //this.rfb.showDotCursor = true; + const rootStyles = getComputedStyle(document.documentElement); + const secondaryColor = rootStyles.getPropertyValue('--secondary-color').trim(); + + this.rfb.background = secondaryColor || ""; + this.rfb.addEventListener("connect", () => { + this.$page.show(); + loader?.removeTitleLoader(); + this.displayVar.textContent = "Display: " + this.displayVariable.split(":")[1]; + }); + this.rfb.addEventListener("disconnect", () => { + this.rfb = undefined; + this.$page?.hide(); + loader?.removeTitleLoader(); + }); + this.rfb.addEventListener("credentialsrequired", async () => { + let credential; + if (localStorage.getItem("VNC_PASS")) { + credential = localStorage.getItem("VNC_PASS"); + } else { + credential = await acode.prompt("Enter vncserver password:", "", "text"); + if (!credential) return; + localStorage.setItem("VNC_PASS", credential) + } + this.rfb?.sendCredentials({ password: credential }); + }); + this.rfb.addEventListener("securityfailure", (e) => { + acode.alert("AcodeX Error", "Security failure: " + e.detail.reason); + console.error('Security failure:', e.detail); + localStorage.removeItem("VNC_PASS"); + }); + + this.rfb.addEventListener("serververification", (e) => { + acode.alert("AcodeX Error", "Server verification failed: " + JSON.stringify(e.detail)); + console.error('Server verification failed:', e); + }); + + } catch (err) { + loader?.removeTitleLoader(); + console.error('Error novnc:', err); + acode.alert("AcodeX Error", err.message); + } + } + + async executeCommandOnPty(command) { + try { + const response = await fetch(`http://${this.settings.serverHost}:${this.settings.port}/execute-command`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ command }), + }); + + if (!response.ok) { + throw new Error(`Request failed with status: ${response.status}`); + } + + const result = await response.json(); + return result; + } catch (error) { + throw error; + } + } + + async openTerminalPanel(termContainerHeight, port) { + /* + opens floating terminal panel + @parm termContainerHeight: number + @parm port: number + */ + + if (!port) return; + if (!document.querySelector(".terminal-panel")) { + app.get("main").append(this.$terminalContainer, this.$showTermBtn, this.startHandle, this.endHandle); + } + this.settings.port = port; + appSettings.update(false); + this.$terminalContainer.classList.remove("hide"); + this.isTerminalOpened = true; + this.$terminalContainer.style.height = termContainerHeight + "px"; + this.$terminalContent.style.width = "100%"; + this.$terminalContent.style.height = `calc(100% - ${this.$terminalContainer.offsetHeight}px)`; + + if (this.settings.transparency) { + this.$terminalContainer.style.background = "transparent"; + this.$terminalContainer.style.backdropFilter = `blur(${this.settings.blurValue})`; + this.$terminalHeader.style.background = helpers.transparentColor( + this.$terminalHeader + ); + this.$terminalHeader.style.backdropFilter = `blur(${this.settings.blurValue})`; + } else { + this.$terminalContainer.style.background = + "var(--popup-background-color)"; + this.$terminalHeader.style.background = "var(--primary-color)"; + } + let socket; + if (localStorage.getItem("AcodeX_Current_Session")) { + socket = await this.changeSession( + localStorage.getItem("AcodeX_Current_Session"), + true + ); + } else { + this.$terminalContent.innerHTML = ""; + socket = await this.createSession(); + } + return socket; + } + + async createXtermTerminal(port) { + this.$terminal = this.terminalObj; + this.$fitAddon = new FitAddon(); + this.$webglAddon = new WebglAddon(); + this.$unicode11Addon = new Unicode11Addon(); + this.$webLinkAddon = new WebLinksAddon(async (event, uri) => { + const linkOpenConfirm = await confirm( + "AcodeX Link", + `Do you want to open ${uri} in browser?` + ); + if (linkOpenConfirm) { + system.openInBrowser(uri); + } + }); + this.$searchAddon = new SearchAddon(); + if (this.settings.imageRendering) { + this.$imageAddon = new ImageAddon(); + this.$terminal.loadAddon(this.$imageAddon); + } + this.$terminal.loadAddon(this.$fitAddon); + this.$terminal.loadAddon(this.$unicode11Addon); + this.$terminal.loadAddon(this.$webLinkAddon); + this.$terminal.loadAddon(this.$searchAddon); + + this.fitTerminal(); + if (this.$webglAddon) { + try { + this.$terminal.loadAddon(this.$webglAddon); + this.$terminal.open(this.$terminalContent); + } catch (e) { + window.toast("error during loading webgl addon: " + e, 4000); + this.$webglAddon.dispose(); + this.$webglAddon = undefined; + } + } + if (!this.$terminal.element) { + // webgl loading failed for some reason, attach with DOM renderer + this.$terminal.open(this.$terminalContent); + } + this.$terminal.focus(); + this._updateTerminalHeight(); + } + + async attachSocketToXterm(port, pid) { + this.$terminal.onResize(async size => { + if (!pid) return; + const cols = size.cols.toString(); + const rows = size.rows.toString(); + const url = `http://${this.settings.serverHost}:${port}/terminals/${pid}/resize`; + + await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ cols, rows }) + }); + }); + + /*this.$terminal.onTitleChange(title => { + this.$terminalTitle.textContent = `${this.$terminalTitle.textContent} - ${title}` + });*/ + + this.socket = new WebSocket( + `ws://${this.settings.serverHost}:${port}/terminals/${pid}` + ); + this.socket.onopen = () => { + this.$attachAddon = new AttachAddon(this.socket); + this.$terminal.loadAddon(this.$attachAddon); + this.$terminal.unicode.activeVersion = "11"; + this._updateTerminalHeight(); + localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); + localStorage.setItem( + "AcodeX_Terminal_Cont_Height", + this.$terminalContainer.offsetHeight + ); + // check for is terminal minimised + if (localStorage.getItem("AcodeX_Terminal_Is_Minimised") === "true") { + this.minimise(); + } + //this.$terminal.focus(); + this._updateTerminalHeight(); + this.startHandle.addEventListener('touchmove', this.startHandleTouchMoveCb.bind(this)); + this.endHandle.addEventListener('touchmove', this.endHandleTouchMoveCb.bind(this)); + // bind events on terminal + this.$terminal.element.addEventListener('touchstart', this.terminalTouchStartCb.bind(this)); + this.$terminal.element.addEventListener('touchmove', this.terminalTouchMoveCb.bind(this)); + this.$terminal.element.addEventListener('touchend', this.terminalTouchEndCb.bind(this)); + // bind event to selection change + this.$terminal.onSelectionChange(this.terminalSelectionChangeCb.bind(this)); + + document.addEventListener('click', this.removeSelectionCb.bind(this)); + }; + this.socket.onclose = async (event) => { + try { + const response = await fetch(`http://${this.settings.serverHost}:${port}/`); + if (!response.ok) { + console.warn('Server responded with an error:', response.status, response.statusText); + } + return; + } catch (error) { + // server closed + if (!this.$terminalContainer.classList.contains("hide")) + this.$terminalContainer.style.opacity = 1; + this.$terminalContainer.classList.add("hide"); + if (!this.$showTermBtn.classList.contains("hide")) + this.$showTermBtn.classList.add("hide"); + this.isTerminalMinimized = false; + this.isTerminalOpened = false; + localStorage.setItem( + "AcodeX_Terminal_Is_Minimised", + this.isTerminalMinimized + ); + localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); + this.$terminalContainer.style.height = this.previousTerminalHeight; + localStorage.setItem( + "AcodeX_Terminal_Cont_Height", + this.$terminalContainer.offsetHeight + ); + localStorage.removeItem("AcodeX_Current_Session"); + await this.$cacheFile.writeFile(""); + acode.alert( + "AcodeX Server", + "Disconnected from server because server gets closed 😞!" + ); + } + } + this.socket.onerror = error => { + acode.alert("AcodeX Error", JSON.stringify(error)); + }; + + // custom Keybindings + this.$terminal.attachCustomKeyEventHandler(async e => { + if (e.type === "keydown") { + const jsonData = await this.$cacheFile.readFile("utf8"); + let sessionsData = jsonData ? JSON.parse(jsonData) : []; + if (e.ctrlKey && (e.key === "N" || e.key === "n")) { + // ctrl+n + this.createSession(); + return false; + } else if (e.ctrlKey && (e.key === "W" || e.key === "w")) { + // ctrl+w + this.closeTerminal(); + return false; + } else if ( + e.ctrlKey && + e.shiftKey && + (e.key === "V" || e.key === "v") + ) { + // ctrl+shift+v + clipboard.paste(text => { + this.$terminal?.paste(text); + }); + return false; + } else if (e.ctrlKey && e.keyCode >= 49 && e.keyCode <= 53) { + // ctrl+1 to ctrl+5 + // 49 is the keyCode for '1', 50 for '2', and so on + const sessionIndex = e.keyCode - 49; + if (sessionsData.length > sessionIndex) { + const selectedSession = sessionsData[sessionIndex]; + this.changeSession(selectedSession.name); + return false; + } + } else if (e.ctrlKey && e.key === "ArrowLeft") { + // Ctrl+ArrowLeft + const currentIndex = sessionsData.findIndex( + session => + session.name === localStorage.getItem("AcodeX_Current_Session") + ); + if (currentIndex > 0) { + const previousSession = sessionsData[currentIndex - 1]; + this.changeSession(previousSession.name); + return false; + } + } else if (e.ctrlKey && e.key === "ArrowRight") { + // Ctrl+ArrowRight + const currentIndex = sessionsData.findIndex( + session => + session.name === localStorage.getItem("AcodeX_Current_Session") + ); + if (currentIndex < sessionsData.length - 1) { + const nextSession = sessionsData[currentIndex + 1]; + this.changeSession(nextSession.name); + return false; + } + } else if (e.ctrlKey && e.key === "+") { + // Ctrl + Plus(+) + this.$terminal.options.fontSize = this.$terminal.options.fontSize + 1; + this.$terminal.refresh(0, this.$terminal.rows - 1); + this.settings.fontSize = this.$terminal.options.fontSize; + appSettings.update(false); + return false; + } else if (e.ctrlKey && e.key === "-") { + // Ctrl + Minus(-) + const newFontSize = this.$terminal.options.fontSize - 1; + if (newFontSize < 1) return; + this.$terminal.options.fontSize = newFontSize; + this.$terminal.refresh(0, this.$terminal.rows - 1); + this.settings.fontSize = this.$terminal.options.fontSize; + appSettings.update(false); + return false; + } else if ( + e.ctrlKey && + e.shiftKey && + (e.key === "c" || e.key === "C") + ) { + // currently its not added because acode ctrl key remove focus from terminal while using ctrl key + // Ctrl + shift + c + if (!this.$terminal?.hasSelection()) return; + const selectedStr = this.$terminal?.getSelection(); + if (selectedStr) clipboard.copy(selectedStr); + window.toast("Copied ✅", 3000); + this.$terminal.focus(); + return false; + } else if ( + e.ctrlKey && + e.shiftKey && + (e.key === "i" || e.key === "I") + ) { + this.$terminal?.clear(); + this.socket?.send("clear\r"); + return false; + } else if( + e.ctrlKey && + (e.key === "a" || e.key === "A") + ) { + this.$terminal?.selectAll() + return false; + } + } + }); + + // listener on terminal data for ai integration and exit command handling + let userInputBuffer = ""; + let isCursorAtStartOfLine = true; + this.$terminal.onData(data => { + // Handle backspace (\x7F) + if (data === "\x7F") { + if (userInputBuffer.trim() === "") { + // If the buffer is empty, the cursor is still at the start of the line + isCursorAtStartOfLine = true; + } else { + // Remove the last character from the buffer + userInputBuffer = userInputBuffer.slice(0, -1); + // Update the cursor position based on the content of the buffer + isCursorAtStartOfLine = userInputBuffer.trim() === ""; + } + return; + } + + // Filter out non-printable characters and control sequences + const filteredData = helpers.filterTermInputData(data); + userInputBuffer += filteredData; + + // Check if the input starts with '#' and it's at the beginning of a line + if (filteredData.startsWith("#") && isCursorAtStartOfLine) { + this.openAIPromptPopup(); + } + + if (data === "\r") { + if (userInputBuffer.trim().toLowerCase() === "exit") { + console.log("Exiting current session..."); + // Handle "exit" command + this.terminalCloseHandler(); + } + userInputBuffer = ""; + // Reset cursor position when Enter is pressed + isCursorAtStartOfLine = true; + } + + // Update cursor position based on the content of the buffer + isCursorAtStartOfLine = userInputBuffer.trim() === ""; + }); + } + + _getCellSize() { + const renderer = this.$terminal._core._renderService.dimensions; + return { + cellWidth: renderer.css.cell.width, + cellHeight: renderer.css.cell.height + }; + } + + getTouchCoordinates(event) { + const rect = this.$terminal.element.getBoundingClientRect(); + const touch = event.touches[0]; + + const x = touch.clientX - rect.left; + const y = touch.clientY - rect.top; + + const { cellWidth, cellHeight } = this._getCellSize(); + + const scrollOffset = this.$terminal.buffer.active.viewportY; + const column = Math.floor(x / cellWidth); + const row = Math.floor(y / cellHeight) + scrollOffset; + + return { row, column }; + } + + setHandlePosition(handle, row, column, isStartHandle = false) { + const { cellWidth, cellHeight } = this._getCellSize(); + const rect = this.$terminal.element.getBoundingClientRect(); + + const terminalContainer = this.$terminalContainer; + const terminalHeader = this.$terminalHeader; + + // Heights + const terminalContainerRect = terminalContainer.getBoundingClientRect(); + const terminalHeaderHeight = terminalHeader ? terminalHeader.getBoundingClientRect().height : 0; + + // Terminal scroll position and viewport Y-offset + const terminalScrollOffset = this.$terminal.element.scrollTop || 0; + const viewportScrollOffset = this.$terminal.buffer.active.viewportY; + + // Adjust the row to reflect scrolling inside the terminal + const adjustedRow = row - viewportScrollOffset; + + // X position based on column + let x = isStartHandle + ? rect.left + column * cellWidth - 10 + : rect.left + (column + 1) * cellWidth - cellWidth; + + let y = rect.top + (adjustedRow * cellHeight) - terminalHeaderHeight - terminalScrollOffset - cellHeight; + + const isSwapped = this.selectionStart.row > this.selectionEnd.row || + (this.selectionStart.row === this.selectionEnd.row && this.selectionStart.column > this.selectionEnd.column); + + if (isSwapped) { + x = !isStartHandle + ? rect.left + column * cellWidth - 10 + : rect.left + (column + 1) * cellWidth - cellWidth; + } + + // Ensure the handle stays within bounds of terminal + x = Math.max(rect.left, Math.min(x, rect.right - handle.offsetWidth)); + y = Math.max(terminalContainerRect.top - terminalHeaderHeight, Math.min(y, terminalContainerRect.bottom - handle.offsetHeight - document.querySelector("#quick-tools")?.offsetHeight || 0)); + + // Set the position of the handle + handle.style.left = `${x}px`; + handle.style.top = `${y}px`; + handle.style.display = 'block'; + } + + + hideHandles() { + this.startHandle.style.display = 'none'; + this.endHandle.style.display = 'none'; + } + + showHandles() { + this.startHandle.style.display = 'block'; + this.endHandle.style.display = 'block'; + } + + startSelection(row, column) { + this.selectionStart = { row, column }; + this.selectionEnd = { row, column }; + this.isSelecting = true; + + this.$terminal.clearSelection(); + this.$terminal.select(column, row, 1); + this.setHandlePosition(this.startHandle, row, column, true); + this.setHandlePosition(this.endHandle, row, column); + } + + updateSelection() { + this.$terminal.clearSelection(); + + let startRow = this.selectionStart.row; + let startColumn = this.selectionStart.column; + let endRow = this.selectionEnd.row; + let endColumn = this.selectionEnd.column; + + // start is always before end in the terminal's text flow + if (startRow > endRow || (startRow === endRow && startColumn > endColumn)) { + [startRow, startColumn, endRow, endColumn] = [endRow, endColumn, startRow, startColumn]; + } + + const totalLength = this._calculateTotalSelectionLength(startRow, endRow, startColumn, endColumn); + this.$terminal.select(startColumn, startRow, totalLength); + + // Set handle positions based on their actual positions, not the selection bounds + this.setHandlePosition(this.startHandle, this.selectionStart.row, this.selectionStart.column, true); + this.setHandlePosition(this.endHandle, this.selectionEnd.row, this.selectionEnd.column); + } + + updateHandles() { + this.setHandlePosition(this.startHandle, this.selectionStart.row, this.selectionStart.column, true); + this.setHandlePosition(this.endHandle, this.selectionEnd.row, this.selectionEnd.column); + } + + _calculateTotalSelectionLength(startRow, endRow, startColumn, endColumn) { + const terminalCols = this.$terminal.cols; + + if (startRow === endRow) { + return Math.abs(endColumn - startColumn) + 1; + } else { + let length = 0; + length += terminalCols - startColumn; + length += (endRow - startRow - 1) * terminalCols; + length += endColumn + 1; + return length; + } + } + + startHandleTouchMoveCb(event) { + event.preventDefault(); + const coords = this.getTouchCoordinates(event); + if (!coords) return; + + this.selectionStart = coords; + this.updateSelection(); + } + + endHandleTouchMoveCb(event) { + event.preventDefault(); + const coords = this.getTouchCoordinates(event); + if (!coords) return; + + this.selectionEnd = coords; + this.updateSelection(); + } + + terminalTouchStartCb(event) { + this.touchStartY = event.touches[0].clientY; + this.touchStartTime = Date.now(); + + const coords = this.getTouchCoordinates(event); + if (!coords) return; + + this.isTapAndHoldActive = false; + + this.tapHoldTimeout = setTimeout(() => { + navigator.vibrate(300); + this.isTapAndHoldActive = true; + this.$terminal.focus() + this.startSelection(coords.row, coords.column); + }, 500); + } + + terminalTouchMoveCb(event) { + if (this.isSelecting) { + event.preventDefault(); + const coords = this.getTouchCoordinates(event); + if (!coords) return; + + this.selectionEnd = coords; + this.updateSelection(); + } else { + // Check if it's a scroll + const touchMoveY = event.touches[0].clientY; + const touchMoveDelta = Math.abs(touchMoveY - this.touchStartY); + const touchMoveTime = Date.now() - this.touchStartTime; + + if (touchMoveDelta > this.scrollThreshold && touchMoveTime < this.scrollTimeThreshold) { + clearTimeout(this.tapHoldTimeout); + } + } + } + + terminalTouchEndCb(event) { + clearTimeout(this.tapHoldTimeout); + //if (!this.isSelecting) this.$terminal.focus(); + } + + terminalSelectionChangeCb() { + const selection = this.$terminal.getSelection(); + if (selection && selection.length > 0) { + //showHandles() + } else { + this.hideHandles(); + this.isSelecting = false; + } + } + + removeSelectionCb(event) { + if (!this.$terminal?.element.contains(event.target)) { + this.isSelecting = false; + this.$terminal?.clearSelection(); + this.hideHandles(); + } + } + + async openAIPromptPopup() { + const aiResponseHandler = this.settings.aiModel === AVAILABLE_AI_MODELS[3][0] ? new AIResponseHandler() : new AIResponseHandler(this.settings.aiApiKey); + let savedLocalLLM = localStorage.getItem("ACODEX_LOCAL_LLM_MODEL"); + let ollamaModel; + if(!savedLocalLLM) { + let models = await aiResponseHandler.getListOfOllamaModels(); + ollamaModel = await select("Select Local Model", models); + if(!ollamaModel) return; + localStorage.setItem("ACODEX_LOCAL_LLM_MODEL",ollamaModel); + } else { + ollamaModel = savedLocalLLM; + } + const promptBox = DialogBox( + "⚡ Ask AcodeX Ai", + ` +
+
+
+
+
+
+
`, + "Start Magic ✨" + ); + promptBox.ok(async () => { + const prompt = document.querySelector("#acodeXAiPromptBox").value; + if (!prompt) { + promptBox.hide(); + return; + } + document.querySelector(".ai-loader-container").style.display = "flex"; + window.toast("Wait! To see the magic of AcodeX AI ✨", 2000); + try { + let aiGeneratedCmd = ""; + switch (this.settings.aiModel) { + case "deepseek": + const { response, error } = + await aiResponseHandler.generateDeepseekResponse(prompt); + if (error) { + document.querySelector(".ai-loader-container").style.display = "none"; + promptBox.hide(); + acode.alert("AcodeX AI Error", error.toString()); + console.error("AcodeX AI Error:", error); + return; + } + aiGeneratedCmd = response.choices[0].message.content; + break; + + case "chatgpt": + const { response: chatgptResponse, error: chatgptError } = + await aiResponseHandler.generateChatgptResponse(prompt); + if (chatgptError) { + document.querySelector(".ai-loader-container").style.display = "none"; + promptBox.hide(); + acode.alert("AcodeX AI Error", chatgptError.toString()); + console.error("AcodeX AI Error:", chatgptError); + return; + } + aiGeneratedCmd = chatgptResponse.choices[0].message.content; + break; + + case "gemini-pro": + const { response: geminiResponse, error: geminiError } = + await aiResponseHandler.generateGeminiResponse(prompt); + if (geminiError) { + document.querySelector(".ai-loader-container").style.display = "none"; + promptBox.hide(); + acode.alert("AcodeX AI Error", geminiError.toString()); + console.error("AcodeX AI Error:", geminiError); + return; + } + aiGeneratedCmd = geminiResponse.candidates[0].content.parts[0].text; + break; + + case "local-llm": + const ollamaRes = + await aiResponseHandler.generateOllamaResponse(ollamaModel,prompt); + aiGeneratedCmd = ollamaRes.response; + break; + } + if (!aiGeneratedCmd) { + document.querySelector(".ai-loader-container").style.display = "none"; + promptBox.hide(); + return; + } + this.socket?.send("\b"); + this.socket?.send(aiGeneratedCmd.trim()); + document.querySelector(".ai-loader-container").style.display = "none"; + promptBox.hide(); + } catch (error) { + document.querySelector(".ai-loader-container").style.display = "none"; + promptBox?.hide(); + console.error(error); + acode.alert("AcodeX AI Error", JSON.stringify(error)); + } + }); + } + + async createSession() { + /* + creates terminal session + */ + let pid; + const jsonData = await this.$cacheFile.readFile("utf8"); + let sessionsData = jsonData ? JSON.parse(jsonData) : []; + + if (sessionsData.length === 0) { + await this.createXtermTerminal(this.settings.port); + pid = await this._generateProcessId(); + if (!pid) return; + sessionsData = [{ name: "AcodeX1", pid: pid }]; + } else { + this._hideTerminalSession(); + // Find the highest session number among existing sessions + const highestSessionNumber = sessionsData.reduce((maxNumber, session) => { + const sessionName = session.name; + const match = sessionName.match(/^AcodeX(\d+)$/); + if (match) { + const sessionNumber = parseInt(match[1], 10); + return Math.max(maxNumber, sessionNumber); + } + return maxNumber; + }, 0); + + // Generate the next session name with an incremented number + const nextSessionNumber = highestSessionNumber + 1; + const nextSessionName = `AcodeX${nextSessionNumber}`; + + await this.createXtermTerminal(this.settings.port); + pid = await this._generateProcessId(); + if (!pid) return; + sessionsData.push({ name: nextSessionName, pid }); + } + + await Promise.all([ + this.$cacheFile.writeFile(sessionsData), + this.attachSocketToXterm(this.settings.port, pid) + ]); + this._updateTerminalHeight(); + localStorage.setItem( + "AcodeX_Current_Session", + sessionsData[sessionsData.length - 1].name + ); + this.$terminalTitle.textContent = + sessionsData[sessionsData.length - 1].name; + window.toast( + `Created Session: ${sessionsData[sessionsData.length - 1].name}`, + 3000 + ); + return this.socket; + } + + _hideTerminalSession() { + this.$attachAddon.dispose(); + this.$fitAddon.dispose(); + this.$unicode11Addon.dispose(); + this.$webLinkAddon.dispose(); + this.$searchAddon.dispose(); + if (this.settings.imageRendering) this.$imageAddon.dispose(); + this.$webglAddon.dispose(); + this.$terminal.dispose(); + this.socket.close(); + this.socket = null; + this.$terminal = undefined; + this.$attachAddon = undefined; + this.$fitAddon = undefined; + this.$unicode11Addon = undefined; + this.$webLinkAddon = undefined; + this.$searchAddon = undefined; + this.$imageAddon = undefined; + this.$webglAddon = undefined; + this.$terminalContent.innerHTML = ""; + } + + async _generateProcessId() { + try { + const cols = this.$terminal.cols.toString(); + const rows = this.$terminal.rows.toString(); + const res = await fetch( + `http://${this.settings.serverHost}:${this.settings.port}/terminals`, + { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ cols, rows }) + } + ); + if (!res.ok) { + throw new Error("Failed to create terminal"); + } + return await res.text(); + } catch (err) { + if (!this.$terminalContainer.classList.contains("hide")) + this.$terminalContainer.classList.add("hide"); + if (!this.$showTermBtn.classList.contains("hide")) + this.$showTermBtn.classList.add("hide"); + this.isTerminalMinimized = false; + this.isTerminalOpened = false; + localStorage.setItem( + "AcodeX_Terminal_Is_Minimised", + this.isTerminalMinimized + ); + localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); + this.$terminalContainer.style.height = this.previousTerminalHeight; + localStorage.setItem( + "AcodeX_Terminal_Cont_Height", + this.$terminalContainer.offsetHeight + ); + localStorage.removeItem("AcodeX_Current_Session"); + window.toast("Start the acodex server in termux first!", 4000); + } + } + + async changeSession(sessionName, isFirst = false) { + if (isFirst) { + await this.createXtermTerminal(this.settings.port); + const pid = await this._getPidBySessionName(sessionName); + if (!pid) { + if (!this.$terminalContainer.classList.contains("hide")) + this.$terminalContainer.classList.add("hide"); + if (!this.$showTermBtn.classList.contains("hide")) + this.$showTermBtn.classList.add("hide"); + this.isTerminalMinimized = false; + this.isTerminalOpened = false; + localStorage.setItem( + "AcodeX_Terminal_Is_Minimised", + this.isTerminalMinimized + ); + localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); + this.$terminalContainer.style.height = this.previousTerminalHeight; + localStorage.setItem( + "AcodeX_Terminal_Cont_Height", + this.$terminalContainer.offsetHeight + ); + localStorage.removeItem("AcodeX_Current_Session"); + window.toast("Oops! Something went wrong in the Core 😔", 4000); + return; + } + await this.attachSocketToXterm(this.settings.port, pid); + localStorage.setItem("AcodeX_Current_Session", sessionName); + this.$terminalTitle.textContent = sessionName; + return this.socket; + } else { + if (sessionName === localStorage.getItem("AcodeX_Current_Session")) + return; + const pid = await this._getPidBySessionName(sessionName); + if (!pid) return; + this._hideTerminalSession(); + await this.createXtermTerminal(this.settings.port); + await this.attachSocketToXterm(this.settings.port, pid); + localStorage.setItem("AcodeX_Current_Session", sessionName); + this.$terminalTitle.textContent = sessionName; + return this.socket; + } + } + + async _getPidBySessionName(sessionName) { + const jsonData = await this.$cacheFile.readFile("utf8"); + let sessionsData = jsonData ? JSON.parse(jsonData) : []; + + // Check if the sessions data is an array + if (Array.isArray(sessionsData)) { + // Find the session by name + const session = sessionsData.find(s => s.name === sessionName); + + // Check if the session was found + if (session) { + // Return the PID associated with the session + return session.pid; + } else { + console.log(`Error: Session '${sessionName}' not found in JSON file.`); + return null; + } + } else { + console.log("Error: Sessions data is not an array in JSON file."); + return null; + } + } + + _saveSetting() { + appSettings.value[plugin.id] = { + port: 8767, + serverHost: "localhost", + aiApiKey: "", + aiModel: AI_MODEL, + transparency: ALLOW_TRANSPRANCY, + enableGuiViewer: GUI_VIEWER, + imageRendering: IMAGE_RENDERING, + showTerminalBtnSize: showTerminalBtnSize, + showTerminalBtn: showTerminalBtn, + blurValue: "4px", + cursorBlink: CURSOR_BLINK, + cursorStyle: CURSOR_STYLE[0], + cursorInactiveStyle: CURSOR_INACTIVE_STYLE[0], + fontSize: FONT_SIZE, + fontFamily: FONT_FAMILY, + letterSpacing: 0, + fontWeight: FONT_WEIGHT[0], + customFontStyleSheet: "", + scrollBack: SCROLLBACK, + scrollSensitivity: SCROLL_SENSITIVITY, + theme: DEFAULT_THEME, + background: themes[DEFAULT_THEME].background, + foreground: themes[DEFAULT_THEME].foreground, + cursor: themes[DEFAULT_THEME].cursor || "", + cursorAccent: themes[DEFAULT_THEME].cursorAccent || "", + selectionBackground: themes[DEFAULT_THEME].selectionBackground, + black: themes[DEFAULT_THEME].black, + blue: themes[DEFAULT_THEME].blue, + brightBlack: themes[DEFAULT_THEME].brightBlack, + brightBlue: themes[DEFAULT_THEME].brightBlue, + brightCyan: themes[DEFAULT_THEME].brightCyan, + brightGreen: themes[DEFAULT_THEME].brightGreen, + brightMagenta: themes[DEFAULT_THEME].brightMagenta, + brightRed: themes[DEFAULT_THEME].brightWhite, + brightWhite: themes[DEFAULT_THEME].brightWhite, + brightYellow: themes[DEFAULT_THEME].brightYellow, + cyan: themes[DEFAULT_THEME].cyan, + green: themes[DEFAULT_THEME].green, + magenta: themes[DEFAULT_THEME].magenta, + red: themes[DEFAULT_THEME].red, + white: themes[DEFAULT_THEME].white, + yellow: themes[DEFAULT_THEME].yellow + }; + appSettings.update(false); + } + + _loadCustomFontStyleSheet() { + if (this.settings.customFontStyleSheet != "") { + if (!document.querySelector("#customFontAcodeXStyleSheet")) { + const fontStyleSheet = tag("link", { + href: this.settings.customFontStyleSheet, + rel: "stylesheet", + id: "customFontAcodeXStyleSheet" + }); + document.head.append(fontStyleSheet); + } else { + document.querySelector("#customFontAcodeXStyleSheet").href = + this.settings.customFontStyleSheet; + } + } + } + + _updateTerminalHeight() { + const terminalHeaderHeight = this.$terminalHeader.offsetHeight; + this.$terminalContent.style.height = `calc(100vh - ${terminalHeaderHeight + 1 + }px)`; + localStorage.setItem( + "AcodeX_Terminal_Cont_Height", + this.$terminalContainer.offsetHeight + ); + this.fitTerminal(); + } + + fitTerminal() { + const dimensions = this.$fitAddon.proposeDimensions(); + if (dimensions) { + this.$terminal.resize(dimensions.cols + 2, dimensions.rows + 1); + } + } + + async _getLastSessionName() { + try { + // Read the JSON file + const jsonData = await this.$cacheFile.readFile("utf8"); + let sessionsData = jsonData ? JSON.parse(jsonData) : []; + + // Check if the sessions data is an array + if (Array.isArray(sessionsData) && sessionsData.length > 0) { + // Get the last session name + const lastSession = sessionsData[sessionsData.length - 1]; + return lastSession.name; + } else { + console.error( + "Error: No sessions found in JSON file or sessions data is not an array." + ); + return null; + } + } catch (error) { + console.error("Error reading or parsing JSON file:", error); + return null; + } + } + + async terminalCloseHandler() { + const jsonData = await this.$cacheFile.readFile("utf8"); + let sessionsData = jsonData ? JSON.parse(jsonData) : []; + + // Filter out the session to delete + sessionsData = sessionsData.filter( + session => session.name !== localStorage.getItem("AcodeX_Current_Session") + ); + + // Save the updated sessionsData back to the JSON file + await this.$cacheFile.writeFile(sessionsData); + + // Check if there are any remaining sessions + if (sessionsData.length > 0) { + // Get the next session name + const nextSessionName = await this._getLastSessionName(); + this.changeSession(nextSessionName); + } else { + this._hideTerminalSession(); + if (!this.$terminalContainer.classList.contains("hide")) + this.$terminalContainer.classList.add("hide"); + if (!this.$showTermBtn.classList.contains("hide")) + this.$showTermBtn.classList.add("hide"); + this.isTerminalMinimized = false; + this.isTerminalOpened = false; + this.rfb?.disconnect(); + this.rfb = undefined; + localStorage.removeItem("AcodeX_Current_Session"); + localStorage.setItem( + "AcodeX_Terminal_Is_Minimised", + this.isTerminalMinimized + ); + localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); + this.$terminalContainer.style.height = this.previousTerminalHeight; + localStorage.setItem( + "AcodeX_Terminal_Cont_Height", + this.$terminalContainer.offsetHeight + ); + } + } + + async closeTerminal() { + /* + remove terminal from app + */ + let confirmation = await confirm("Warning", "Are you sure ?"); + if (!confirmation) return; + + if ( + this.$terminal != null && + localStorage.getItem("AcodeX_Current_Session") + ) { + const pidOfCurrentSession = await this._getPidBySessionName( + localStorage.getItem("AcodeX_Current_Session") + ); + if (!pidOfCurrentSession) return; + fetch( + `http://${this.settings.serverHost}:${this.settings.port}/terminals/${pidOfCurrentSession}/terminate`, + { + method: "POST" + } + ) + .then(async response => { + if (response.ok) { + this.terminalCloseHandler(); + } else { + acode.alert( + "AcodeX Error", + `Failed to close terminal ${this.pid}.` + ); + } + }) + .catch(async error => { + if (!this.$terminalContainer.classList.contains("hide")) + this.$terminalContainer.style.opacity = 1; + this.$terminalContainer.classList.add("hide"); + if (!this.$showTermBtn.classList.contains("hide")) + this.$showTermBtn.classList.add("hide"); + this.isTerminalMinimized = false; + this.isTerminalOpened = false; + localStorage.setItem( + "AcodeX_Terminal_Is_Minimised", + this.isTerminalMinimized + ); + localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); + this.$terminalContainer.style.height = this.previousTerminalHeight; + localStorage.setItem( + "AcodeX_Terminal_Cont_Height", + this.$terminalContainer.offsetHeight + ); + localStorage.removeItem("AcodeX_Current_Session"); + await this.$cacheFile.writeFile(""); + acode.alert( + "AcodeX Server", + "Disconnected from server because server gets closed 😞!" + ); + console.error(`Error while closing terminal ${this.pid}: ${error}`); + }); + } + } + + startDraggingFlotingBtn(e) { + try { + this.isFlotBtnDragging = true; + this.$showTermBtn.style.border = "2px solid #fff"; + if (e.type === "touchstart") { + this.btnStartPosX = e.touches[0].clientX; + this.btnStartPosY = e.touches[0].clientY; + } else { + this.btnStartPosX = e.clientX; + this.btnStartPosY = e.clientY; + } + } catch (err) { + window.alert(err); + } + } + + dragFlotButton(e) { + try { + if (!this.isFlotBtnDragging) return; + e.preventDefault(); + let currentX, currentY; + if (e.type === "touchmove") { + currentX = e.touches[0].clientX; + currentY = e.touches[0].clientY; + } else { + currentX = e.clientX; + currentY = e.clientY; + } + let newX = this.btnStartPosX - currentX; + let newY = this.btnStartPosY - currentY; + + this.btnStartPosX = currentX; + this.btnStartPosY = currentY; + + let buttonBottom = + window.innerHeight - + (this.$showTermBtn.offsetTop + this.$showTermBtn.offsetHeight) + + newY; + let buttonLeft = this.$showTermBtn.offsetLeft - newX; + let headerHeight = document.querySelector("#root header")?.offsetHeight; + let fileTabHeight = document.querySelector("#root ul")?.offsetHeight || 0; + const totalHeaderHeight = headerHeight + fileTabHeight; + let maxX = window.innerWidth - this.$showTermBtn.offsetWidth; + let maxY = + window.innerHeight - totalHeaderHeight - this.$showTermBtn.offsetHeight; + + this.$showTermBtn.style.bottom = + Math.max(0, Math.min(maxY, buttonBottom)) + "px"; + this.$showTermBtn.style.left = + Math.max(0, Math.min(maxX, buttonLeft)) + "px"; + } catch (err) { + window.alert(err); + } + } + + stopDraggingFlotBtn() { + try { + this.isFlotBtnDragging = false; + this.$showTermBtn.style.border = "none"; + } catch (err) { + window.alert(err); + } + } + + startDragging(e) { + if (e.type === "touchstart") { + this.startY = e.touches[0].clientY; + } else { + e.preventDefault(); + this.startY = e.clientY; + } + this.startHeight = this.$terminalContainer.clientHeight; + this.isDragging = true; + this.$terminalContainer.style.borderTop = + "1px solid var(--link-text-color)"; + } + + drag(e) { + if (!this.isDragging) return; + + e.preventDefault(); + + let currentY; + if (e.type === "touchmove") { + currentY = e.touches[0].clientY; + } else { + currentY = e.clientY; + } + const diffY = currentY - this.startY; + + let newHeight = this.startHeight - diffY; + let headerHeight = document.querySelector("#root header")?.offsetHeight; + let fileTabHeight = document.querySelector("#root ul")?.offsetHeight || 0; + const totalHeaderHeight = headerHeight + fileTabHeight; + const totalFooterHeight = + document.querySelector("#quick-tools")?.offsetHeight || 0; + const maximumHeight = + window.innerHeight - (totalHeaderHeight + totalFooterHeight); + const minimumHeight = 100; + newHeight = Math.max(minimumHeight, Math.min(newHeight, maximumHeight)); + + this.$terminalContainer.style.height = newHeight + "px"; + localStorage.setItem("AcodeX_Terminal_Cont_Height", newHeight); + this._updateTerminalHeight(); + const selection = this.$terminal?.getSelection(); + if (selection && selection.length > 0) { + this.updateHandles(); + } + } + + stopDragging(e) { + this.isDragging = false; + this.$terminalContainer.style.borderTop = + "1px solid var(--popup-border-color)"; + } + + minimise() { + /* + hide terminal and active the show terminal button + */ + try { + if (!this.isTerminalMinimized) { + this.previousTerminalHeight = window.getComputedStyle( + this.$terminalContainer + ).height; + localStorage.setItem( + "AcodeX_Terminal_Cont_Height", + this.$terminalContainer.offsetHeight + ); + this.$terminalContainer.style.height = "0px"; + this.$terminalContainer.classList.add("hide"); + this.isTerminalMinimized = true; + localStorage.setItem( + "AcodeX_Terminal_Is_Minimised", + this.isTerminalMinimized + ); + this.settings.showTerminalBtn ? this.$showTermBtn.classList.remove("hide") : ""; + } + } catch (err) { + window.alert(err); + } + } + + maxmise() { + /* + show terminal and hide the show terminal button + */ + if (this.isTerminalMinimized) { + if (parseInt(localStorage.getItem("AcodeX_Terminal_Cont_Height")) <= 50) { + this.$terminalContainer.style.height = "50px"; + } else { + this.$terminalContainer.style.height = + localStorage.getItem("AcodeX_Terminal_Cont_Height") + "px"; + } + this.$terminalContainer.classList.remove("hide"); + this.$terminalContent.style.height = `calc(100% - ${this.$terminalContainer.offsetHeight}px)`; + this.fitTerminal(); + localStorage.setItem( + "AcodeX_Terminal_Cont_Height", + this.$terminalContainer.offsetHeight + ); + this.settings.showTerminalBtn ? this.$showTermBtn.classList.add("hide") : ""; + this.isTerminalMinimized = false; + localStorage.setItem( + "AcodeX_Terminal_Is_Minimised", + this.isTerminalMinimized + ); + this._updateTerminalHeight(); + const selection = this.$terminal?.getSelection(); + if (selection && selection.length > 0) { + this.updateHandles(); + } + } + } + + _findPreviousMatchofSearch() { + const searchInput = document.querySelector( + ".search-input-container input" + ).value; + this.$searchAddon?.findPrevious(searchInput); + } + + _findNextMatchofSearch() { + const searchInput = document.querySelector( + ".search-input-container input" + ).value; + this.$searchAddon?.findNext(searchInput); + } + + async _cdToActiveDir() { + const { activeFile } = editorManager; + if (activeFile.uri) { + const realPath = helpers.convertPath(activeFile.uri); + if (!realPath) { + navigator.vibrate(300); + window.toast("unsupported path type.", 3000); + return; + } + this.socket.send(`cd "${realPath}"\r`); + } + } + + async destroy() { + this.$style.remove(); + this.xtermCss.remove(); + this.$fontStyleSheet.remove(); + await fsOperation(window.DATA_STORAGE + "acodex_fonts").delete(); + editorManager.editor.commands.removeCommand("terminal:open_terminal"); + editorManager.editor.commands.removeCommand("terminal:close_terminal"); + this.$terminalContainer.remove(); + this.$showTermBtn.remove(); + this.startHandle?.remove(); + this.endHandle?.remove(); + document.removeEventListener("mousemove", this.dragFlotButton.bind(this)); + document.removeEventListener( + "mouseup", + this.stopDraggingFlotBtn.bind(this) + ); + document.removeEventListener("touchmove", this.dragFlotButton.bind(this)); + document.removeEventListener( + "touchend", + this.stopDraggingFlotBtn.bind(this) + ); + window.removeEventListener("mousemove", this.drag); + window.removeEventListener("touchmove", this.drag); + window.removeEventListener("mouseup", this.stopDragging); + window.removeEventListener("touchend", this.stopDragging); + + localStorage.removeItem("AcodeX_Terminal_Is_Minimised"); + localStorage.removeItem("AcodeX_Current_Session"); + localStorage.removeItem("AcodeX_Terminal_Cont_Height"); + localStorage.removeItem("AcodeX_Is_Opened"); + if(localStorage.getItem("ACODEX_LOCAL_LLM_MODEL")) localStorage.removeItem("ACODEX_LOCAL_LLM_MODEL"); + } + + async setCustomFontFile() { + const { url } = await acode.fileBrowser( + "file", + "select custom font stylesheet" + ); + if (!url) return; + let realUrl = helpers.convertPath(url); + if (realUrl.startsWith("/sdcard")) { + realUrl = realUrl.replace("/sdcard", "file:///storage/emulated/0"); + } else if (realUrl.startsWith("$HOME")) { + return; + } + const urlSegments = url.split("/"); + const fileNameWithExtension = urlSegments[urlSegments.length - 1]; + realUrl = realUrl + "/" + fileNameWithExtension; + const newUrl = await toInternalUrl(realUrl); + this.settings.customFontStyleSheet = newUrl; + appSettings.update(); + } + + async applyTheme(themeName) { + const theme = themes[themeName]; + this.settings.theme = themeName; + this.settings.background = theme.background; + this.settings.foreground = theme.foreground; + this.settings.cursor = theme.cursor || "#fff"; + this.settings.cursorAccent = theme.cursorAccent || "#fff"; + this.settings.selectionBackground = theme.selectionBackground; + this.settings.black = theme.black; + this.settings.blue = theme.blue; + this.settings.brightBlack = theme.brightBlack; + this.settings.brightBlue = theme.brightBlue; + this.settings.brightCyan = theme.brightCyan; + this.settings.brightGreen = theme.brightGreen; + this.settings.brightMagenta = theme.brightMagenta; + this.settings.brightRed = theme.brightRed; + this.settings.brightWhite = theme.brightWhite; + this.settings.brightYellow = theme.brightYellow; + this.settings.cyan = theme.cyan; + this.settings.green = theme.green; + this.settings.magenta = theme.magenta; + this.settings.red = theme.red; + this.settings.white = theme.white; + this.settings.yellow = theme.yellow; + appSettings.update(); + } + + get terminalThemeObj() { + return { + background: this.settings.transparency + ? helpers.hexToTransparentRGBA(this.settings.background, 0.5) + : this.settings.background, + foreground: this.settings.foreground, + selectionBackground: this.settings.selectionBackground, + cursor: this.settings.cursor, + cursorAccent: this.settings.cursorAccent, + black: this.settings.black, + blue: this.settings.blue, + brightBlack: this.settings.brightBlack, + brightBlue: this.settings.brightBlue, + brightCyan: this.settings.brightCyan, + brightGreen: this.settings.brightGreen, + brightMagenta: this.settings.brightMagenta, + brightRed: this.settings.brightRed, + brightWhite: this.settings.brightWhite, + brightYellow: this.settings.brightYellow, + cyan: this.settings.cyan, + green: this.settings.green, + magenta: this.settings.magenta, + red: this.settings.red, + white: this.settings.white, + yellow: this.settings.yellow + }; + } + + get terminalObj() { + const termObj = new Terminal({ + allowTransparency: this.settings.transparency, + allowProposedApi: true, + scrollOnUserInput: true, + cursorBlink: this.settings.cursorBlink, + cursorStyle: this.settings.cursorStyle, + cursorInactiveStyle: this.settings.cursorInactiveStyle, + scrollBack: this.settings.scrollBack, + scrollSensitivity: this.settings.scrollSensitivity, + fontSize: this.settings.fontSize, + fontFamily: this.settings.fontFamily + ", Fira Code, monospace", + fontWeight: this.settings.fontWeight, + letterSpacing: this.settings.letterSpacing, + theme: this.terminalThemeObj + }); + return termObj; + } + + async clearCache() { + await this.$cacheFile.writeFile(""); + window.toast("Cache cleared 🔥", 3000); + } + + get settingsObj() { + if (this.settings.theme === "custom") { + return { + list: this.settingsList.concat(this.settingsListWithThemeColor), + cb: (key, value) => this.settingsSaveCallback(key, value) + }; + } else { + return { + list: this.settingsList, + cb: (key, value) => this.settingsSaveCallback(key, value) + }; + } + } + + get settingsList() { + return [ + { + key: "port", + text: "Server Port", + value: this.settings.port, + info: "Port which is displayed on termux when starting the server", + prompt: "Server Port", + promptType: "number", + promptOption: [ + { + required: true + } + ] + }, + { + key: "letterSpacing", + text: "Letter Spacing", + value: this.settings.letterSpacing, + info: "The spacing in whole pixels between characters.", + prompt: "Letter spacing", + promptType: "number", + promptOption: [ + { + required: true + } + ] + }, + { + key: "serverHost", + text: "Server Host Name", + value: this.settings.serverHost, + info: "Hostname which is displayed on termux when starting the server", + prompt: "Server Host Name", + promptType: "text", + promptOption: [ + { + required: true + } + ] + }, + { + key: "aiApiKey", + text: "AI API Key", + value: this.settings.aiApiKey, + info: "API key of your selected model, if your selected model doesn't need any api key then leave it empty. For how to get api key : check the readme of plugin", + prompt: "AI API Key", + promptType: "text", + promptOption: [ + { + required: true + } + ] + }, + { + key: "aiModel", + text: "AI Model", + value: this.settings.aiModel, + info: "ai model to generate terminal suggestions and commands", + select: AVAILABLE_AI_MODELS + }, + { + key: "fontWeight", + text: "Font Weight", + value: this.settings.fontWeight, + info: "The font weight used to render non-bold text.", + select: FONT_WEIGHT + }, + { + key: "showTerminalBtnSize", + text: "Show Terminal button size", + value: this.settings.showTerminalBtnSize, + info: "Size of terminal show button (in px)", + prompt: "Show Terminal button size", + promptType: "number", + promptOption: [ + { + required: true + } + ] + }, + { + key: "blurValue", + text: "Blur Value(in px)", + value: this.settings.blurValue, + info: "Blur value for terminal in transparent mode", + prompt: "Blur Value", + promptType: "text", + promptOption: [ + { + required: true + } + ] + }, + { + key: "clearCache", + text: "Clear Cache", + info: "Helps in clearing cache which contains session details in case of any problems or bug" + }, + { + key: "transparency", + text: "Allow Transparent Terminal", + info: "Makes terminal transparent but it will also led to slightly performance decrement", + checkbox: !!this.settings.transparency + }, + { + key: "imageRendering", + text: "Image Rendering", + info: "Enables image rendering inside the terminal but it can reduce performance", + checkbox: !!this.settings.imageRendering + }, + { + key: "enableGuiViewer", + text: "GUI Viewer", + info: "Enables gui viewer, to view the output of graphical apps", + checkbox: !!this.settings.enableGuiViewer + }, + { + key: "showTerminalBtn", + text: "Terminal Maximise Button", + info: "Hide/Unhide terminal maximise button", + checkbox: !!this.settings.showTerminalBtn + }, + { + index: 7, + key: "customFontStyleSheet", + text: "Custom Font Stylesheet file", + info: "Select css file in which you have to define about your custom font.", + value: this.settings.customFontStyleSheet + }, + { + index: 0, + key: "cursorBlink", + text: "Cursor Blink", + info: "Whether the cursor blinks.", + checkbox: !!this.settings.cursorBlink + }, + { + index: 1, + key: "cursorStyle", + text: "Cursor Style", + value: this.settings.cursorStyle, + info: "The style of the cursor.", + select: CURSOR_STYLE + }, + { + key: "cursorInactiveStyle", + text: "Cursor Inactive Style", + value: this.settings.cursorInactiveStyle, + info: "The style of the cursor when the terminal is not focused.", + select: CURSOR_INACTIVE_STYLE + }, + { + index: 2, + key: "fontSize", + text: "Font Size", + value: this.settings.fontSize, + info: "The font size used to render text.", + prompt: "Font Size", + promptType: "text", + promptOption: [ + { + match: /^[0-9]+$/, + required: true + } + ] + }, + { + index: 3, + key: "fontFamily", + text: "Font Family", + value: this.settings.fontFamily, + info: "The font family used to render text.", + select: FONTS_LIST + }, + { + index: 4, + key: "scrollBack", + text: "Scroll Back", + value: this.settings.scrollBack, + info: "The amount of scrollback in the terminal. Scrollback is the amount of rows that are retained when lines are scrolled beyond the initial viewport.", + prompt: "Scroll Back", + promptType: "number", + promptOption: [ + { + match: /^[0-9]+$/, + required: true + } + ] + }, + { + index: 5, + key: "scrollSensitivity", + text: "Scroll Sensitivity", + value: this.settings.scrollSensitivity, + info: "The scrolling speed multiplier used for adjusting normal scrolling speed.", + prompt: "Scroll Sensitivity", + promptType: "number", + promptOption: [ + { + match: /^[0-9]+$/, + required: true + } + ] + }, + { + index: 6, + key: "theme", + text: "Theme", + value: this.settings.theme, + info: "Theme of terminal.", + select: THEME_LIST + } + ]; + } + + get settingsListWithThemeColor() { + return [ + { + index: 8, + key: "background", + text: "Background Color", + value: this.settings.background, + color: this.settings.background + }, + { + index: 9, + key: "foreground", + text: "Foreground Color", + value: this.settings.foreground, + color: this.settings.foreground + }, + { + index: 10, + key: "selectionBackground", + text: "Selection Background Color", + value: this.settings.selectionBackground, + color: this.settings.selectionBackground + }, + { + index: 11, + key: "cursor", + text: "Cursor Color", + value: this.settings.cursor, + color: this.settings.cursor + }, + { + index: 12, + key: "cursorAccent", + text: "Cursor Accent Color", + value: this.settings.cursorAccent, + color: this.settings.cursorAccent + }, + { + index: 13, + key: "black", + text: "Black Color", + value: this.settings.black, + color: this.settings.black + }, + { + index: 14, + key: "blue", + text: "Blue Color", + value: this.settings.blue, + color: this.settings.blue + }, + { + index: 15, + key: "brightBlack", + text: "Bright Black Color", + value: this.settings.brightBlack, + color: this.settings.brightBlack + }, + { + index: 16, + key: "brightBlue", + text: "Bright Blue Color", + value: this.settings.brightBlue, + color: this.settings.brightBlue + }, + { + index: 17, + key: "brightCyan", + text: "Bright Cyan Color", + value: this.settings.brightCyan, + color: this.settings.brightCyan + }, + { + index: 18, + key: "brightGreen", + text: "Bright Green Color", + value: this.settings.brightGreen, + color: this.settings.brightGreen + }, + { + index: 19, + key: "brightMagenta", + text: "Bright Magenta Color", + value: this.settings.brightMagenta, + color: this.settings.brightMagenta + }, + { + index: 20, + key: "brightRed", + text: "Bright Red Color", + value: this.settings.brightRed, + color: this.settings.brightRed + }, + { + index: 21, + key: "brightWhite", + text: "Bright White Color", + value: this.settings.brightWhite, + color: this.settings.brightWhite + }, + { + index: 22, + key: "brightYellow", + text: "Bright Yellow Color", + value: this.settings.brightYellow, + color: this.settings.brightYellow + }, + { + index: 23, + key: "cyan", + text: "Cyan Color", + value: this.settings.cyan, + color: this.settings.cyan + }, + { + index: 24, + key: "green", + text: "Green Color", + value: this.settings.green, + color: this.settings.green + }, + { + index: 25, + key: "magenta", + text: "Magenta Color", + value: this.settings.magenta, + color: this.settings.magenta + }, + { + index: 26, + key: "red", + text: "Red Color", + value: this.settings.red, + color: this.settings.red + }, + { + index: 27, + key: "white", + text: "White Color", + value: this.settings.white, + color: this.settings.white + }, + { + index: 28, + key: "yellow", + text: "Yellow Color", + value: this.settings.yellow, + color: this.settings.yellow + } + ]; + } + + settingsSaveCallback(key, value) { + switch (key) { + case "customFontStyleSheet": + this.setCustomFontFile(); + break; + + case "theme": + this.applyTheme(value); + if (value === "custom") { + acode.alert("AcodeX Warning", "Restart the app please"); + } + if (this.$terminal) { + this.$terminal.options.theme = this.terminalThemeObj; + } + break; + case "clearCache": + this.clearCache(); + break; + case "showTerminalBtnSize": + if (this.$showTermBtn) { + this.$showTermBtn.style.height = value + "px"; + this.$showTermBtn.style.width = value + "px"; + } + case "fontSize": + if (this.$terminal) { + this.$terminal.options.fontSize = value; + } + this.settings[key] = value; + appSettings.update(); + break; + case "fontFamily": + if (this.$terminal) { + this.$terminal.options.fontFamily = value; + } + this.settings[key] = value; + appSettings.update(); + break; + case "fontWeight": + if (this.$terminal) { + this.$terminal.options.fontWeight = value; + } + this.settings[key] = value; + appSettings.update(); + break; + case "letterSpacing": + if (this.$terminal) { + this.$terminal.options.letterSpacing = value; + } + this.settings[key] = value; + appSettings.update(); + break; + case "cursorBlink": + if (this.$terminal) { + this.$terminal.options.cursorBlink = value; + } + this.settings[key] = value; + appSettings.update(); + break; + case "cursorStyle": + if (this.$terminal) { + this.$terminal.options.cursorStyle = value; + } + this.settings[key] = value; + appSettings.update(); + break; + case "cursorInactiveStyle": + if (this.$terminal) { + this.$terminal.options.cursorInactiveStyle = value; + } + this.settings[key] = value; + appSettings.update(); + break; + case "imageRendering": + if (this.$terminal) { + this.$imageAddon = new ImageAddon(); + this.$terminal.loadAddon(this.$imageAddon); + } + this.settings[key] = value; + appSettings.update(); + break; + case "enableGuiViewer": + this.settings[key] = value; + appSettings.update(); + acode.alert("AcodeX Warning", "Make sure to restart to see this setting in effect"); + break; + case "showTerminalBtn": + if (this.$showTermBtn) { + this.$showTermBtn.remove(); + } else { + acode.alert("AcodeX Warning", "Restart App to see this change"); + } + this.settings[key] = value; + appSettings.update(); + + default: + this.settings[key] = value; + appSettings.update(); + } + } + + get settings() { + return appSettings.value[plugin.id]; + } +} \ No newline at end of file diff --git a/src/core/selectionCore.js b/src/core/selectionCore.js new file mode 100644 index 0000000..df4282e --- /dev/null +++ b/src/core/selectionCore.js @@ -0,0 +1,254 @@ +export default class SelectionCore { + isSelecting = false; + isTapAndHoldActive = false; + tapHoldTimeout = null; + selectionStart = null; + selectionEnd = null; + lastTapTime = 0; // Store the timestamp of the last tap + tapThreshold = 300; // Maximum time (in ms) allowed between taps to count as a double-tap + touchStartY = 0; + touchStartTime = 0; + scrollThreshold = 10; // pixels + scrollTimeThreshold = 100; // milliseconds + + constructor(terminal, startHandle, endHandle, terminalContainer, terminalHeader) { + this.terminal = terminal; + this.startHandle = startHandle; + this.endHandle = endHandle; + this.terminalContainer = terminalContainer; + this.terminalHeader = terminalHeader; + } + + _getCellSize() { + const renderer = this.terminal._core._renderService.dimensions; + return { + cellWidth: renderer.css.cell.width, + cellHeight: renderer.css.cell.height + }; + } + + getTouchCoordinates(event) { + const rect = this.terminal.element.getBoundingClientRect(); + const touch = event.touches[0]; + + const x = touch.clientX - rect.left; + const y = touch.clientY - rect.top; + + const { cellWidth, cellHeight } = this._getCellSize(); + + const scrollOffset = this.terminal.buffer.active.viewportY; + const column = Math.floor(x / cellWidth); + const row = Math.floor(y / cellHeight) + scrollOffset; + + return { row, column }; + } + + /*setHandlePosition1(handle, row, column, isStartHandle = false) { + const { cellWidth, cellHeight } = this._getCellSize(); + const rect = this.terminal.element.getBoundingClientRect(); + + const scrollOffset = this.terminal.buffer.active.viewportY; + const adjustedRow = row - scrollOffset; + + let x = isStartHandle + ? rect.left + column * cellWidth - 10 + : rect.left + (column + 1) * cellWidth - cellWidth; + + let y = rect.top + adjustedRow * cellHeight + cellHeight; + + // swapping logic + const isSwapped = this.selectionStart.row > this.selectionEnd.row || + (this.selectionStart.row === this.selectionEnd.row && this.selectionStart.column > this.selectionEnd.column); + + if (isSwapped) { + x = !isStartHandle + ? rect.left + column * cellWidth - 10 + : rect.left + (column + 1) * cellWidth - cellWidth; + } + + // handles should stay within the terminal viewport + x = Math.max(rect.left, Math.min(x, rect.right - handle.offsetWidth)); + y = Math.max(rect.top, Math.min(y, rect.bottom - handle.offsetHeight)); + + handle.style.left = `${x}px`; + handle.style.top = `${y}px`; + handle.style.display = 'block'; + }*/ + + setHandlePosition(handle, row, column, isStartHandle = false) { + const { cellWidth, cellHeight } = this._getCellSize(); + const rect = this.terminal.element.getBoundingClientRect(); + + const terminalContainer = this.terminalContainer; + const terminalHeader = this.terminalHeader; + + // Heights + const terminalContainerRect = terminalContainer.getBoundingClientRect(); + const terminalHeaderHeight = terminalHeader ? terminalHeader.getBoundingClientRect().height : 0; + + // Terminal scroll position and viewport Y-offset + const terminalScrollOffset = this.terminal.element.scrollTop || 0; + const viewportScrollOffset = this.terminal.buffer.active.viewportY; + + // Adjust the row to reflect scrolling inside the terminal + const adjustedRow = row - viewportScrollOffset; + + // X position based on column + let x = isStartHandle + ? rect.left + column * cellWidth - 10 + : rect.left + (column + 1) * cellWidth - cellWidth; + + let y = rect.top + (adjustedRow * cellHeight) - terminalHeaderHeight - terminalScrollOffset - cellHeight; + + const isSwapped = this.selectionStart.row > this.selectionEnd.row || + (this.selectionStart.row === this.selectionEnd.row && this.selectionStart.column > this.selectionEnd.column); + + if (isSwapped) { + x = !isStartHandle + ? rect.left + column * cellWidth - 10 + : rect.left + (column + 1) * cellWidth - cellWidth; + } + + // Ensure the handle stays within bounds of terminal + x = Math.max(rect.left, Math.min(x, rect.right - handle.offsetWidth)); + y = Math.max(terminalContainerRect.top, Math.min(y, terminalContainerRect.bottom - handle.offsetHeight)); + + // Set the position of the handle + handle.style.left = `${x}px`; + handle.style.top = `${y}px`; + handle.style.display = 'block'; + } + + hideHandles() { + this.startHandle.style.display = 'none'; + this.endHandle.style.display = 'none'; + } + + showHandles() { + this.startHandle.style.display = 'block'; + this.endHandle.style.display = 'block'; + } + + startSelection(row, column) { + this.selectionStart = { row, column }; + this.selectionEnd = { row, column }; + this.isSelecting = true; + + this.terminal.clearSelection(); + this.terminal.select(column, row, 1); + this.setHandlePosition(this.startHandle, row, column, true); + this.setHandlePosition(this.endHandle, row, column); + } + + updateSelection() { + this.terminal.clearSelection(); + + let startRow = this.selectionStart.row; + let startColumn = this.selectionStart.column; + let endRow = this.selectionEnd.row; + let endColumn = this.selectionEnd.column; + + // start is always before end in the terminal's text flow + if (startRow > endRow || (startRow === endRow && startColumn > endColumn)) { + [startRow, startColumn, endRow, endColumn] = [endRow, endColumn, startRow, startColumn]; + } + + const totalLength = this._calculateTotalSelectionLength(startRow, endRow, startColumn, endColumn); + this.terminal.select(startColumn, startRow, totalLength); + + // Set handle positions based on their actual positions, not the selection bounds + this.setHandlePosition(this.startHandle, this.selectionStart.row, this.selectionStart.column, true); + this.setHandlePosition(this.endHandle, this.selectionEnd.row, this.selectionEnd.column); + } + + _calculateTotalSelectionLength(startRow, endRow, startColumn, endColumn) { + const terminalCols = this.terminal.cols; + + if (startRow === endRow) { + return Math.abs(endColumn - startColumn) + 1; + } else { + let length = 0; + length += terminalCols - startColumn; + length += (endRow - startRow - 1) * terminalCols; + length += endColumn + 1; + return length; + } + } + + startHandleTouchMoveCb(event) { + event.preventDefault(); + const coords = this.getTouchCoordinates(event); + if (!coords) return; + + this.selectionStart = coords; + this.updateSelection(); + } + + endHandleTouchMoveCb(event) { + event.preventDefault(); + const coords = this.getTouchCoordinates(event); + if (!coords) return; + + this.selectionEnd = coords; + this.updateSelection(); + } + + terminalTouchStartCb(event) { + this.touchStartY = event.touches[0].clientY; + this.touchStartTime = Date.now(); + + const coords = this.getTouchCoordinates(event); + if (!coords) return; + + this.isTapAndHoldActive = false; + + this.tapHoldTimeout = setTimeout(() => { + this.isTapAndHoldActive = true; + this.terminal.focus() + this.startSelection(coords.row, coords.column); + }, 500); + } + + terminalTouchMoveCb(event) { + if (this.isSelecting) { + event.preventDefault(); + const coords = this.getTouchCoordinates(event); + if (!coords) return; + + this.selectionEnd = coords; + this.updateSelection(); + } else { + // Check if it's a scroll + const touchMoveY = event.touches[0].clientY; + const touchMoveDelta = Math.abs(this.touchMoveY - this.touchStartY); + const touchMoveTime = Date.now() - this.touchStartTime; + + if (touchMoveDelta > this.scrollThreshold && touchMoveTime < this.scrollTimeThreshold) { + clearTimeout(this.tapHoldTimeout); + } + } + } + + terminalTouchEndCb(event) { + clearTimeout(this.tapHoldTimeout); + if (!this.isSelecting) this.terminal.focus(); + } + + terminalSelectionChangeCb() { + const selection = this.terminal.getSelection(); + if (selection && selection.length > 0) { + //showHandles() + } else { + this.hideHandles(); + this.isSelecting = false; + } + } + + removeSelectionCb(event) { + if (!this.$terminal?.element.contains(event.target)) { + this.isSelecting = false; + this.$terminal?.clearSelection(); + this.hideHandles(); + } + } +} \ No newline at end of file diff --git a/src/fonts.scss b/src/fonts.scss deleted file mode 100644 index afec626..0000000 --- a/src/fonts.scss +++ /dev/null @@ -1,86 +0,0 @@ -$base: "https://localhost/__cdvfile_sdcard__/Android/data/com.foxdebug.acode/files/acodex_fonts/"; - -@font-face { - font-family: "Fira Code Bold Nerd Font"; - src: url("#{$base}Fira Code Bold Nerd Font.ttf") format("truetype"); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: "Fira Code Medium Nerd Font"; - src: url("#{$base}Fira Code Medium Nerd Font Complete Mono.ttf") format("truetype"); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: "JetBrains Mono Bold Nerd Font"; - src: url("#{$base}JetBrains Mono Bold Nerd Font Complete.ttf") format("truetype"); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: "JetBrains Mono Medium Nerd Font"; - src: url("#{$base}JetBrains Mono Medium Nerd Font Complete.ttf") format("truetype"); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: "VictorMonoNerdFont Bold"; - src: url(#{$base} + "VictorMonoNerdFont-Bold.ttf") format("truetype"); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: "VictorMonoNerdFont BoldItalic"; - src: url(#{$base} + "VictorMonoNerdFont-BoldItalic.ttf") format("truetype"); - font-weight: bold; - font-style: italic; -} -@font-face { - font-family: "VictorMonoNerdFont Medium"; - src: url(#{$base} + "VictorMonoNerdFont-Medium.ttf") format("truetype"); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: "VictorMonoNerdFont Italic"; - src: url(#{$base} + "VictorMonoNerdFont-Italic.ttf") format("truetype"); - font-weight: normal; - font-style: italic; -} -@font-face { - font-family: "SauceCodeProNerdFont Bold"; - src: url(#{$base} + "SauceCodeProNerdFont-Bold.ttf") format("truetype"); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: "SauceCodeProNerdFont Medium"; - src: url(#{$base} + "SauceCodeProNerdFont-Medium.ttf") format("truetype"); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: "MesloLGS NF Bold Italic"; - src: url("#{$base}MesloLGS NF Bold Italic.ttf") format("truetype"); - font-weight: bold; - font-style: italic; -} -@font-face { - font-family: "MesloLGS NF Bold"; - src: url("#{$base}MesloLGS NF Bold.ttf") format("truetype"); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: "MesloLGS NF Italic"; - src: url("#{$base}MesloLGS NF Italic.ttf") format("truetype"); - font-weight: normal; - font-style: italic; -} -@font-face { - font-family: "MesloLGS NF Regular"; - src: url("#{$base}MesloLGS NF Regular.ttf") format("truetype"); - font-weight: normal; - font-style: normal; -} \ No newline at end of file diff --git a/src/main.js b/src/main.js index daafc32..3f6884d 100644 --- a/src/main.js +++ b/src/main.js @@ -1,1583 +1,5 @@ +import AcodeX from "./AcodeX.js"; import plugin from "../plugin.json"; -import style from "./style.scss"; -import fontStyles from "./fonts.scss"; -import { themes } from "./themes.js"; -import { settingsList, settingsListWithThemeColor } from "./settings.js"; -import { - ALLOW_TRANSPRANCY, - CURSOR_BLINK, - CURSOR_INACTIVE_STYLE, - CURSOR_STYLE, - DEFAULT_THEME, - FONT_FAMILY, - FONT_SIZE, - FONT_WEIGHT, - SCROLLBACK, - SCROLL_SENSITIVITY, - THEME_LIST, -} from "./constants.js"; - -// xtermjs -import { Terminal } from "xterm"; -// xtermjs addons -import { FitAddon } from "@xterm/addon-fit"; -import { WebglAddon } from "@xterm/addon-webgl"; -import { WebLinksAddon } from "@xterm/addon-web-links"; -import { Unicode11Addon } from "@xterm/addon-unicode11"; -import { AttachAddon } from "@xterm/addon-attach"; -import { SearchAddon } from "@xterm/addon-search"; - -// acode commopents & api -const confirm = acode.require("confirm"); -const appSettings = acode.require("settings"); -const fsOperation = acode.require("fsOperation"); -const toInternalUrl = acode.require("toInternalUrl"); -const select = acode.require("select"); -const loader = acode.require("loader"); - -const { clipboard } = cordova.plugins; - -class AcodeX { - // constants for dragable Terminal panel - isDragging = false; - startY; - startHeight; - // constants for dragable show terminal button - isFlotBtnDragging = false; - btnStartPosX; - btnStartPosY; - // terminal constant - isTerminalMinimized = false; - isTerminalOpened = false; - previousTerminalHeight; - pid; - terminal = null; - socket = null; - $fitAddon = undefined; - - constructor() { - if (!appSettings.value[plugin.id]) { - this._saveSetting(); - } else { - if (!this.settings.serverHost) { - delete appSettings.value[plugin.id]; - appSettings.update(false); - this._saveSetting(); - } - } - } - - async init($page, cacheFile, cacheFileUrl) { - try { - if (!(await fsOperation(window.DATA_STORAGE + "acodex_fonts").exists())) { - this.downloadFont(); - } - this.xtermCss = tag("link", { - rel: "stylesheet", - href: this.baseUrl + "xterm.css", - }); - this.$style = tag("link", { - rel: "stylesheet", - href: this.baseUrl + "main.css", - }); - this._loadCustomFontStyleSheet(); - document.head.append(this.xtermCss, this.$style); - // add command in command Pallete for opening and closing terminal - editorManager.editor.commands.addCommand({ - name: "acodex:open_terminal", - description: "Open Terminal", - bindKey: { win: "Ctrl-K" }, - exec: () => { - this.openTerminalPanel(270, this.settings.port); - }, - }); - editorManager.editor.commands.addCommand({ - name: "acodex:close_terminal", - description: "Close Terminal", - bindKey: { win: "Ctrl-J" }, - exec: this.closeTerminal.bind(this), - }); - // main terminal container - this.$terminalContainer = tag("div", { - className: "terminal-panel", - }); - this.$terminalHeader = tag("div", { - className: "terminal-title-bar", - }); - const sessionInfo = tag("div", { - className: "session-info", - }); - const pointerIndicator = tag("div", { - className: "pointer-indicator", - }); - this.$terminalTitle = tag("h3", { - textContent: "AcodeX 1", - className: "session-name", - }); - sessionInfo.append(pointerIndicator, this.$terminalTitle); - - const $actionBtns = tag("div", { - className: "action-buttons", - }); - const newSessionBtn = tag("button", { - className: "action-button new-session", - title: "New Session", - }); - newSessionBtn.innerHTML = ``; - this.$searchBtn = tag("button", { - className: "action-button search-btn", - title: "Search", - }); - this.$searchBtn.innerHTML = ``; - this.$cdBtn = tag("button", { - className: "action-button folder-icon", - title: "Navigate to Folder", - }); - this.$cdBtn.innerHTML = ``; - this.$minimizeBtn = tag("button", { - className: "action-button minimize", - title: "Minimize", - }); - this.$minimizeBtn.innerHTML = `` - //this.$minimizeBtn.innerHTML = ``; - this.$closeTermBtn = tag("button", { - className: "action-button close", - title: "Close Terminal", - }); - this.$closeTermBtn.innerHTML = ``; - this.$searchInputContainer = tag("div", { - className: "search-input-container" - }); - this.$searchInputContainer.append( - tag("button", { - className: "action-button find-previous", - title: "Find Previous", - innerHTML: ``, - onclick: this._findPreviousMatchofSearch.bind(this) - }), - tag("input", { - type: "text", - placeholder: "Find...", - oninput: (e) => { - this.$searchAddon?.findNext(e.target.value); - } - }), - tag("button", { - className: "action-button find-next", - title: "Find Next", - innerHTML: ``, - onclick: this._findNextMatchofSearch.bind(this) - }) - ); - $actionBtns.append( - newSessionBtn, - this.$searchBtn, - this.$cdBtn, - this.$minimizeBtn, - this.$closeTermBtn, - this.$searchInputContainer, - ); - - this.$terminalHeader.append(sessionInfo, $actionBtns); - - this.$terminalContent = tag("div", { - className: "terminal-content", - }); - - this.$terminalContainer.append( - this.$terminalHeader, - this.$terminalContent - ); - // show terminal button - this.$showTermBtn = tag("button", { - className: "show-terminal-btn", - innerHTML: `` - }); - // append Terminal panel to app main - if (app.get("main")) { - app.get("main").append(this.$terminalContainer, this.$showTermBtn); - } - - this.$showTermBtn.classList.add("hide"); - this.$terminalContainer.classList.add("hide"); - - if (this.settings.showTerminalBtnSize) { - this.$showTermBtn.style.height = - this.settings.showTerminalBtnSize + "px"; - this.$showTermBtn.style.width = - this.settings.showTerminalBtnSize + "px"; - } - - this.$cacheFile = cacheFile; - // add event listnner to all buttons and terminal panel header - this.$terminalHeader.addEventListener( - "mousedown", - this.startDragging.bind(this) - ); - this.$terminalHeader.addEventListener( - "touchstart", - this.startDragging.bind(this) - ); - - newSessionBtn.addEventListener("click", this.createSession.bind(this)); - this.$searchBtn.addEventListener("click", () => { - const searchInput = this.$searchInputContainer.querySelector('input'); - this.$searchInputContainer.classList.toggle('show'); - - // Toggle visibility based on the presence of 'show' class in the search input - if (this.$searchInputContainer.classList.contains('show')) { - searchInput.style.maxWidth = "150px"; - newSessionBtn.style.display = "none"; - this.$cdBtn.style.display = "none"; - this.$minimizeBtn.style.display = "none"; - this.$closeTermBtn.style.display = "none"; - searchInput.addEventListener("click", () => { - searchInput.focus(); - }); - } else { - searchInput.style.maxWidth = "0"; - this.$searchAddon?.clearDecorations(); - this.$searchAddon?.clearActiveDecoration(); - newSessionBtn.style.display = "block"; - this.$cdBtn.style.display = "block"; - this.$minimizeBtn.style.display = "block"; - this.$closeTermBtn.style.display = "block"; - } - }); - - this.$terminalTitle.addEventListener("click", async (e) => { - let sessionNames; - const jsonData = await this.$cacheFile.readFile("utf8"); - let sessionsData = JSON.parse(jsonData); - - if (Array.isArray(sessionsData)) { - // Extract session names and return them in an array - sessionNames = sessionsData.map((session) => session.name); - } else { - sessionNames = []; - } - - const opt = { - hideOnSelect: true, - default: localStorage.getItem("AcodeX_Current_Session"), - }; - - const sessionSelectBox = await select( - "AcodeX Sessions", - sessionNames, - opt - ); - if (sessionSelectBox) { - this.changeSession(sessionSelectBox); - } - }); - - this.$closeTermBtn.addEventListener( - "click", - this.closeTerminal.bind(this) - ); - this.$minimizeBtn.addEventListener("click", this.minimise.bind(this)); - this.$cdBtn.addEventListener("click", this._cdToActiveDir.bind(this)); - - // add event listener for show terminal button - this.$showTermBtn.addEventListener( - "mousedown", - this.startDraggingFlotingBtn.bind(this) - ); - document.addEventListener("mousemove", this.dragFlotButton.bind(this)); - document.addEventListener("mouseup", this.stopDraggingFlotBtn.bind(this)); - this.$showTermBtn.addEventListener( - "touchstart", - this.startDraggingFlotingBtn.bind(this) - ); - document.addEventListener("touchmove", this.dragFlotButton.bind(this)); - document.addEventListener( - "touchend", - this.stopDraggingFlotBtn.bind(this) - ); - this.$showTermBtn.addEventListener("click", this.maxmise.bind(this)); - - window.addEventListener("mousemove", this.drag.bind(this)); - window.addEventListener("touchmove", this.drag.bind(this)); - window.addEventListener("mouseup", this.stopDragging.bind(this)); - window.addEventListener("touchend", this.stopDragging.bind(this)); - // to adjust size of terminal or floating button when Keyboard is opened - window.addEventListener("resize", () => { - if (this.$terminalContainer) { - if (!this.$terminalContainer.classList.contains("hide")) { - let headerHeight = document.querySelector("#root header")?.offsetHeight; - let fileTabHeight = document.querySelector("#root ul")?.offsetHeight || 0; - const totalHeaderHeight = headerHeight + fileTabHeight - const totalFooterHeight = - document.querySelector("#quick-tools")?.offsetHeight || 0; - const screenHeight = - window.innerHeight - (totalHeaderHeight + totalFooterHeight); - - const currentHeight = parseInt( - this.$terminalContainer.style.height - ); - const adjustedHeight = Math.min(currentHeight, screenHeight); - this.$terminalContainer.style.height = adjustedHeight + "px"; - localStorage.setItem( - "AcodeX_Terminal_Cont_Height", - this.$terminalContainer.offsetHeight - ); - } - } - - if (this.$showTermBtn) { - if (!this.$showTermBtn.classList.contains("hide")) { - let headerHeight = document.querySelector("#root header")?.offsetHeight; - let fileTabHeight = document.querySelector("#root ul")?.offsetHeight || 0; - const totalHeaderHeight = headerHeight + fileTabHeight; - let maxY = - window.innerHeight - - totalHeaderHeight - - this.$showTermBtn.offsetHeight; - const currentY = parseInt(this.$showTermBtn.style.bottom); - this.$showTermBtn.style.bottom = - Math.max(0, Math.min(maxY, currentY)) + "px"; - } - } - }); - - if ( - localStorage.getItem("AcodeX_Is_Opened") === "true" && - localStorage.getItem("AcodeX_Current_Session") - ) { - await this.openTerminalPanel( - localStorage.getItem("AcodeX_Terminal_Cont_Height") || 270, - this.settings.port - ); - } - - // acodex terminal api - acode.define("acodex", { - execute: (cmd) => { - /* - {cmd}: command to run in terminal - */ - try { - if (!this.isTerminalOpened) return; - this.socket.send(cmd + "\r"); - } catch (error) { - throw Error(error); - } - }, - isMinimized: () => { - return this.isTerminalMinimized; - }, - isTerminalOpened: () => { - return this.isTerminalOpened; - }, - maximiseTerminal: () => { - if (this.isTerminalOpened && this.isTerminalMinimized) { - this.maxmise(); - } - }, - openTerminal: ( - termContainerHeight = 270, - port = this.settings.port - ) => { - if (!this.isTerminalOpened) { - this.openTerminalPanel(termContainerHeight, port); - } - }, - createSession: () => { - if (this.isTerminalOpened) { - this.createSession(); - } - }, - closeTerminal: () => { - if (this.isTerminalOpened) { - this.closeTerminal(); - } - }, - convertAcodeUriToTermReadable: (path) => { - return this._convertPath(path); - }, - addTheme: (themeNme, colorSchema) => { - THEME_LIST.push(themeNme); - themes[themeNme] = colorSchema; - }, - applyTheme: (themeNme) => { - this.settings.theme = themeNme; - appSettings.update(); - }, - }); - } catch (err) { - console.log(err); - } - } - - async openTerminalPanel(termContainerHeight, port) { - /* - opens floating terminal panel - @parm termContainerHeight: number - @parm port: number - */ - - if (!port) return; - if (!document.querySelector(".terminal-panel")) { - app.get("main").append(this.$terminalContainer, this.$showTermBtn); - } - this.settings.port = port; - appSettings.update(false); - this.$terminalContainer.classList.remove("hide"); - this.isTerminalOpened = true; - this.$terminalContainer.style.height = termContainerHeight + "px"; - this.$terminalContent.style.width = "100%"; - this.$terminalContent.style.height = `calc(100% - ${this.$terminalContainer.offsetHeight}px)`; - - if (this.settings.transparency) { - this.$terminalContainer.style.background = "transparent"; - this.$terminalContainer.style.backdropFilter = `blur(${this.settings.blurValue})`; - this.$terminalHeader.style.background = this.transparentColor( - this.$terminalHeader - ); - this.$terminalHeader.style.backdropFilter = `blur(${this.settings.blurValue})`; - } else { - this.$terminalContainer.style.background = - "var(--popup-background-color)"; - this.$terminalHeader.style.background = "var(--primary-color)"; - } - - if (localStorage.getItem("AcodeX_Current_Session")) { - this.changeSession(localStorage.getItem("AcodeX_Current_Session"), true); - } else { - this.$terminalContent.innerHTML = ""; - this.createSession(); - } - } - - transparentColor(element) { - let currentBackgroundColor = - window.getComputedStyle(element).backgroundColor; - // Extract the RGB values - var rgbValues = currentBackgroundColor.match(/\d+/g); - // Convert the RGB values to RGBA by adding 1 for the alpha (transparency) value - var currentAlpha = parseFloat(rgbValues[3]) || 1.0; - return `rgba(${rgbValues[0]}, ${rgbValues[1]}, ${rgbValues[2]}, 0.5)`; - } - - async createXtermTerminal(port) { - this.$terminal = this.terminalObj; - this.$fitAddon = new FitAddon(); - this.$webglAddon = new WebglAddon(); - this.$unicode11Addon = new Unicode11Addon(); - this.$webLinkAddon = new WebLinksAddon(async (event, uri) => { - const linkOpenConfirm = await confirm( - "AcodeX Link", - `Do you want to open ${uri} in browser?` - ); - if (linkOpenConfirm) { - system.openInBrowser(uri); - } - }); - this.$searchAddon = new SearchAddon(); - this.$terminal.loadAddon(this.$fitAddon); - this.$terminal.loadAddon(this.$unicode11Addon); - this.$terminal.loadAddon(this.$webLinkAddon); - this.$terminal.loadAddon(this.$searchAddon); - - this.fitTerminal(); - if (this.$webglAddon) { - try { - this.$terminal.loadAddon(this.$webglAddon); - this.$terminal.open(this.$terminalContent); - } catch (e) { - window.toast("error during loading webgl addon: " + e, 4000); - this.$webglAddon.dispose(); - this.$webglAddon = undefined; - } - } - if (!this.$terminal.element) { - // webgl loading failed for some reason, attach with DOM renderer - this.$terminal.open(this.$terminalContent); - } - this.$terminal.focus(); - this._updateTerminalHeight(); - } - - async attachSocketToXterm(port, pid) { - this.$terminal.onResize(async (size) => { - if (!pid) return; - const cols = size.cols.toString(); - const rows = size.rows.toString(); - const url = `http://${this.settings.serverHost}:${port}/terminals/${pid}/resize`; - - await fetch(url,{ - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ cols, rows }), - }); - }); - this.socket = new WebSocket( - `ws://${this.settings.serverHost}:${port}/terminals/${pid}` - ); - this.socket.onopen = () => { - this.$attachAddon = new AttachAddon(this.socket); - this.$terminal.loadAddon(this.$attachAddon); - this.$terminal.unicode.activeVersion = "11"; - this._updateTerminalHeight(); - localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); - localStorage.setItem( - "AcodeX_Terminal_Cont_Height", - this.$terminalContainer.offsetHeight - ); - // check for is terminal minimised - if (localStorage.getItem("AcodeX_Terminal_Is_Minimised") === "true") { - this.minimise(); - } - this.$terminal.focus(); - this._updateTerminalHeight(); - }; - this.socket.onerror = (error) => { - acode.alert("AcodeX Error", JSON.stringify(error)); - }; - this.$terminal.attachCustomKeyEventHandler(async (e) => { - if (e.type === "keydown") { - const jsonData = await this.$cacheFile.readFile("utf8"); - let sessionsData = jsonData ? JSON.parse(jsonData) : []; - if (e.ctrlKey && (e.key === "N" || e.key === "n")) { - // ctrl+n - this.createSession(); - return false; - } else if (e.ctrlKey && (e.key === "W" || e.key === "w")) { - // ctrl+w - this.closeTerminal(); - return false; - } else if (e.ctrlKey && e.shiftKey && (e.key === "V" || e.key === "v")) { - // ctrl+shift+v - clipboard.paste((text) => { - this.$terminal?.paste(text); - }); - return false; - } else if (e.ctrlKey && e.keyCode >= 49 && e.keyCode <= 53) { - // ctrl+1 to ctrl+5 - // 49 is the keyCode for '1', 50 for '2', and so on - const sessionIndex = e.keyCode - 49; - if (sessionsData.length > sessionIndex) { - const selectedSession = sessionsData[sessionIndex]; - this.changeSession(selectedSession.name); - return false; - } - } else if (e.ctrlKey && e.key === "ArrowLeft") { - // Ctrl+ArrowLeft - const currentIndex = sessionsData.findIndex( - (session) => - session.name === localStorage.getItem("AcodeX_Current_Session") - ); - if (currentIndex > 0) { - const previousSession = sessionsData[currentIndex - 1]; - this.changeSession(previousSession.name); - return false; - } - } else if (e.ctrlKey && e.key === "ArrowRight") { - // Ctrl+ArrowRight - const currentIndex = sessionsData.findIndex( - (session) => - session.name === localStorage.getItem("AcodeX_Current_Session") - ); - if (currentIndex < sessionsData.length - 1) { - const nextSession = sessionsData[currentIndex + 1]; - this.changeSession(nextSession.name); - return false; - } - } else if (e.ctrlKey && e.key === "+") { - // Ctrl + Plus(+) - this.$terminal.options.fontSize = this.$terminal.options.fontSize + 1; - this.$terminal.refresh(0, this.$terminal.rows - 1); - this.settings.fontSize = this.$terminal.options.fontSize; - appSettings.update(false); - return false; - } else if (e.ctrlKey && e.key === "-") { - // Ctrl + Minus(-) - const newFontSize = this.$terminal.options.fontSize - 1; - if (newFontSize < 1) return; - this.$terminal.options.fontSize = newFontSize; - this.$terminal.refresh(0, this.$terminal.rows - 1); - this.settings.fontSize = this.$terminal.options.fontSize; - appSettings.update(false); - return false; - } else if (e.ctrlKey && e.shiftKey && (e.key === "c" || e.key === "C")) { - // currently its not added because acode ctrl key remove focus from terminal while using ctrl key - // Ctrl + shift + c - if(!this.$terminal?.hasSelection()) return; - const selectedStr = this.$terminal?.getSelection(); - if(selectedStr) - clipboard.copy(selectedStr); - window.toast('Copied ✅', 3000); - this.$terminal.focus(); - return false; - } - } - }); - } - - async createSession() { - /* - creates terminal session - */ - let pid; - const jsonData = await this.$cacheFile.readFile("utf8"); - let sessionsData = jsonData ? JSON.parse(jsonData) : []; - - if (sessionsData.length === 0) { - this.createXtermTerminal(this.settings.port); - pid = await this._generateProcessId(); - if (!pid) return; - sessionsData = [{ name: "AcodeX1", pid: pid }]; - } else { - this._hideTerminalSession(); - // Find the highest session number among existing sessions - const highestSessionNumber = sessionsData.reduce((maxNumber, session) => { - const sessionName = session.name; - const match = sessionName.match(/^AcodeX(\d+)$/); - if (match) { - const sessionNumber = parseInt(match[1], 10); - return Math.max(maxNumber, sessionNumber); - } - return maxNumber; - }, 0); - - // Generate the next session name with an incremented number - const nextSessionNumber = highestSessionNumber + 1; - const nextSessionName = `AcodeX${nextSessionNumber}`; - - this.createXtermTerminal(this.settings.port); - pid = await this._generateProcessId(); - if (!pid) return; - sessionsData.push({ name: nextSessionName, pid }); - } - - await Promise.all([ - this.$cacheFile.writeFile(sessionsData), - this.attachSocketToXterm(this.settings.port, pid), - ]); - this._updateTerminalHeight(); - localStorage.setItem( - "AcodeX_Current_Session", - sessionsData[sessionsData.length - 1].name - ); - this.$terminalTitle.textContent = - sessionsData[sessionsData.length - 1].name; - window.toast( - `Created Session: ${sessionsData[sessionsData.length - 1].name}`, - 3000 - ); - } - - _hideTerminalSession() { - this.$attachAddon.dispose(); - this.$fitAddon.dispose(); - this.$unicode11Addon.dispose(); - this.$webLinkAddon.dispose(); - this.$searchAddon.dispose(); - this.$webglAddon.dispose(); - this.$terminal.dispose(); - this.socket.close(); - this.socket = null; - this.$terminal = undefined; - this.$attachAddon = undefined; - this.$fitAddon = undefined; - this.$unicode11Addon = undefined; - this.$webLinkAddon = undefined; - this.$searchAddon = undefined; - this.$webglAddon = undefined; - this.$terminalContent.innerHTML = ""; - } - - async _generateProcessId() { - try { - const cols = this.$terminal.cols.toString(); - const rows = this.$terminal.rows.toString(); - const res = await fetch( - `http://${this.settings.serverHost}:${this.settings.port}/terminals`, - { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ cols, rows }), - } - ); - if (!res.ok) { - throw new Error("Failed to create terminal"); - } - return await res.text(); - } catch (err) { - if (!this.$terminalContainer.classList.contains("hide")) - this.$terminalContainer.classList.add("hide"); - if (!this.$showTermBtn.classList.contains("hide")) - this.$showTermBtn.classList.add("hide"); - this.isTerminalMinimized = false; - this.isTerminalOpened = false; - localStorage.setItem( - "AcodeX_Terminal_Is_Minimised", - this.isTerminalMinimized - ); - localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); - this.$terminalContainer.style.height = this.previousTerminalHeight; - localStorage.setItem( - "AcodeX_Terminal_Cont_Height", - this.$terminalContainer.offsetHeight - ); - localStorage.removeItem("AcodeX_Current_Session"); - window.toast("Start the acodex server in termux first!", 4000); - } - } - - async changeSession(sessionName, isFirst = false) { - if (isFirst) { - this.createXtermTerminal(this.settings.port); - const pid = await this._getPidBySessionName(sessionName); - if (!pid) { - if (!this.$terminalContainer.classList.contains("hide")) - this.$terminalContainer.classList.add("hide"); - if (!this.$showTermBtn.classList.contains("hide")) - this.$showTermBtn.classList.add("hide"); - this.isTerminalMinimized = false; - this.isTerminalOpened = false; - localStorage.setItem( - "AcodeX_Terminal_Is_Minimised", - this.isTerminalMinimized - ); - localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); - this.$terminalContainer.style.height = this.previousTerminalHeight; - localStorage.setItem( - "AcodeX_Terminal_Cont_Height", - this.$terminalContainer.offsetHeight - ); - localStorage.removeItem("AcodeX_Current_Session"); - window.toast("Oops! Something went wrong in the Core 😔", 4000); - return; - } - this.attachSocketToXterm(this.settings.port, pid); - localStorage.setItem("AcodeX_Current_Session", sessionName); - this.$terminalTitle.textContent = sessionName; - } else { - if (sessionName === localStorage.getItem("AcodeX_Current_Session")) - return; - const pid = await this._getPidBySessionName(sessionName); - if (!pid) return; - this._hideTerminalSession(); - this.createXtermTerminal(this.settings.port); - this.attachSocketToXterm(this.settings.port, pid); - localStorage.setItem("AcodeX_Current_Session", sessionName); - this.$terminalTitle.textContent = sessionName; - } - } - - async _getPidBySessionName(sessionName) { - const jsonData = await this.$cacheFile.readFile("utf8"); - let sessionsData = jsonData ? JSON.parse(jsonData) : []; - - // Check if the sessions data is an array - if (Array.isArray(sessionsData)) { - // Find the session by name - const session = sessionsData.find((s) => s.name === sessionName); - - // Check if the session was found - if (session) { - // Return the PID associated with the session - return session.pid; - } else { - console.log(`Error: Session '${sessionName}' not found in JSON file.`); - return null; - } - } else { - console.log("Error: Sessions data is not an array in JSON file."); - return null; - } - } - - _saveSetting() { - appSettings.value[plugin.id] = { - port: 8767, - serverHost: "localhost", - transparency: ALLOW_TRANSPRANCY, - showTerminalBtnSize: showTerminalBtnSize, - blurValue: "4px", - cursorBlink: CURSOR_BLINK, - cursorStyle: CURSOR_STYLE[0], - cursorInactiveStyle: CURSOR_INACTIVE_STYLE[0], - fontSize: FONT_SIZE, - fontFamily: FONT_FAMILY, - fontWeight: FONT_WEIGHT[0], - customFontStyleSheet: "", - scrollBack: SCROLLBACK, - scrollSensitivity: SCROLL_SENSITIVITY, - theme: DEFAULT_THEME, - background: themes[DEFAULT_THEME].background, - foreground: themes[DEFAULT_THEME].foreground, - cursor: themes[DEFAULT_THEME].cursor || "", - cursorAccent: themes[DEFAULT_THEME].cursorAccent || "", - selectionBackground: themes[DEFAULT_THEME].selectionBackground, - black: themes[DEFAULT_THEME].black, - blue: themes[DEFAULT_THEME].blue, - brightBlack: themes[DEFAULT_THEME].brightBlack, - brightBlue: themes[DEFAULT_THEME].brightBlue, - brightCyan: themes[DEFAULT_THEME].brightCyan, - brightGreen: themes[DEFAULT_THEME].brightGreen, - brightMagenta: themes[DEFAULT_THEME].brightMagenta, - brightRed: themes[DEFAULT_THEME].brightWhite, - brightWhite: themes[DEFAULT_THEME].brightWhite, - brightYellow: themes[DEFAULT_THEME].brightYellow, - cyan: themes[DEFAULT_THEME].cyan, - green: themes[DEFAULT_THEME].green, - magenta: themes[DEFAULT_THEME].magenta, - red: themes[DEFAULT_THEME].red, - white: themes[DEFAULT_THEME].white, - yellow: themes[DEFAULT_THEME].yellow, - }; - appSettings.update(false); - } - - _loadCustomFontStyleSheet() { - if (this.settings.customFontStyleSheet != "") { - if (!document.querySelector("#customFontAcodeXStyleSheet")) { - const fontStyleSheet = tag("link", { - href: this.settings.customFontStyleSheet, - rel: "stylesheet", - id: "customFontAcodeXStyleSheet", - }); - document.head.append(fontStyleSheet); - } else { - document.querySelector("#customFontAcodeXStyleSheet").href = - this.settings.customFontStyleSheet; - } - } - } - - _updateTerminalHeight() { - const terminalHeaderHeight = this.$terminalHeader.offsetHeight; - this.$terminalContent.style.height = `calc(100vh - ${terminalHeaderHeight + 1}px)`; - localStorage.setItem( - "AcodeX_Terminal_Cont_Height", - this.$terminalContainer.offsetHeight - ); - this.fitTerminal(); - } - - fitTerminal() { - const dimensions = this.$fitAddon.proposeDimensions(); - if (dimensions) { - this.$terminal.resize(dimensions.cols + 2, dimensions.rows + 1); - } - } - - async _getLastSessionName() { - try { - // Read the JSON file - const jsonData = await this.$cacheFile.readFile("utf8"); - let sessionsData = jsonData ? JSON.parse(jsonData) : []; - - // Check if the sessions data is an array - if (Array.isArray(sessionsData) && sessionsData.length > 0) { - // Get the last session name - const lastSession = sessionsData[sessionsData.length - 1]; - return lastSession.name; - } else { - console.error( - "Error: No sessions found in JSON file or sessions data is not an array." - ); - return null; - } - } catch (error) { - console.error("Error reading or parsing JSON file:", error); - return null; - } - } - - async closeTerminal() { - /* - remove terminal from app - */ - let confirmation = await confirm("Warning", "Are you sure ?"); - if (!confirmation) return; - - if ( - this.$terminal != null && - localStorage.getItem("AcodeX_Current_Session") - ) { - const pidOfCurrentSession = await this._getPidBySessionName( - localStorage.getItem("AcodeX_Current_Session") - ); - if(!pidOfCurrentSession) return; - fetch( - `http://${this.settings.serverHost}:${this.settings.port}/terminals/${pidOfCurrentSession}/terminate`, - { - method: "POST", - } - ) - .then(async (response) => { - if (response.ok) { - const jsonData = await this.$cacheFile.readFile("utf8"); - let sessionsData = jsonData ? JSON.parse(jsonData) : []; - - // Filter out the session to delete - sessionsData = sessionsData.filter( - (session) => - session.name !== localStorage.getItem("AcodeX_Current_Session") - ); - - // Save the updated sessionsData back to the JSON file - await this.$cacheFile.writeFile(sessionsData); - - // Check if there are any remaining sessions - if (sessionsData.length > 0) { - // Get the next session name - const nextSessionName = await this._getLastSessionName(); - this.changeSession(nextSessionName); - } else { - this._hideTerminalSession(); - if (!this.$terminalContainer.classList.contains("hide")) - this.$terminalContainer.classList.add("hide"); - if (!this.$showTermBtn.classList.contains("hide")) - this.$showTermBtn.classList.add("hide"); - this.isTerminalMinimized = false; - this.isTerminalOpened = false; - localStorage.removeItem("AcodeX_Current_Session"); - localStorage.setItem( - "AcodeX_Terminal_Is_Minimised", - this.isTerminalMinimized - ); - localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); - this.$terminalContainer.style.height = - this.previousTerminalHeight; - localStorage.setItem( - "AcodeX_Terminal_Cont_Height", - this.$terminalContainer.offsetHeight - ); - } - } else { - acode.alert( - "AcodeX Error", - `Failed to close terminal ${this.pid}.` - ); - } - }) - .catch(async (error) => { - if (!this.$terminalContainer.classList.contains("hide")) - this.$terminalContainer.style.opacity = 1; - this.$terminalContainer.classList.add("hide"); - if (!this.$showTermBtn.classList.contains("hide")) - this.$showTermBtn.classList.add("hide"); - this.isTerminalMinimized = false; - this.isTerminalOpened = false; - localStorage.setItem( - "AcodeX_Terminal_Is_Minimised", - this.isTerminalMinimized - ); - localStorage.setItem("AcodeX_Is_Opened", this.isTerminalOpened); - this.$terminalContainer.style.height = this.previousTerminalHeight; - localStorage.setItem( - "AcodeX_Terminal_Cont_Height", - this.$terminalContainer.offsetHeight - ); - localStorage.removeItem("AcodeX_Current_Session"); - await this.$cacheFile.writeFile(""); - acode.alert( - "AcodeX Server", - "Disconnected from server because server gets closed 😞!" - ); - console.error(`Error while closing terminal ${this.pid}: ${error}`); - }); - } - } - - startDraggingFlotingBtn(e) { - try { - this.isFlotBtnDragging = true; - this.$showTermBtn.style.border = "2px solid #fff"; - if (e.type === "touchstart") { - this.btnStartPosX = e.touches[0].clientX; - this.btnStartPosY = e.touches[0].clientY; - } else { - this.btnStartPosX = e.clientX; - this.btnStartPosY = e.clientY; - } - } catch (err) { - window.alert(err); - } - } - - dragFlotButton(e) { - try { - if (!this.isFlotBtnDragging) return; - e.preventDefault(); - let currentX, currentY; - if (e.type === "touchmove") { - currentX = e.touches[0].clientX; - currentY = e.touches[0].clientY; - } else { - currentX = e.clientX; - currentY = e.clientY; - } - let newX = this.btnStartPosX - currentX; - let newY = this.btnStartPosY - currentY; - - this.btnStartPosX = currentX; - this.btnStartPosY = currentY; - - let buttonBottom = - window.innerHeight - - (this.$showTermBtn.offsetTop + this.$showTermBtn.offsetHeight) + - newY; - let buttonLeft = this.$showTermBtn.offsetLeft - newX; - let headerHeight = document.querySelector("#root header")?.offsetHeight; - let fileTabHeight = document.querySelector("#root ul")?.offsetHeight || 0; - const totalHeaderHeight = headerHeight + fileTabHeight; - let maxX = window.innerWidth - this.$showTermBtn.offsetWidth; - let maxY = - window.innerHeight - totalHeaderHeight - this.$showTermBtn.offsetHeight; - - this.$showTermBtn.style.bottom = - Math.max(0, Math.min(maxY, buttonBottom)) + "px"; - this.$showTermBtn.style.left = - Math.max(0, Math.min(maxX, buttonLeft)) + "px"; - } catch (err) { - window.alert(err); - } - } - - stopDraggingFlotBtn() { - try { - this.isFlotBtnDragging = false; - this.$showTermBtn.style.border = "none"; - } catch (err) { - window.alert(err); - } - } - - startDragging(e) { - if (e.type === "touchstart") { - this.startY = e.touches[0].clientY; - } else { - e.preventDefault(); - this.startY = e.clientY; - } - this.startHeight = this.$terminalContainer.clientHeight; - this.isDragging = true; - this.$terminalContainer.style.borderTop = - "1px solid var(--link-text-color)"; - } - - drag(e) { - if (!this.isDragging) return; - - e.preventDefault(); - - let currentY; - if (e.type === "touchmove") { - currentY = e.touches[0].clientY; - } else { - currentY = e.clientY; - } - const diffY = currentY - this.startY; - - let newHeight = this.startHeight - diffY; - let headerHeight = document.querySelector("#root header")?.offsetHeight; - let fileTabHeight = document.querySelector("#root ul")?.offsetHeight || 0; - const totalHeaderHeight = headerHeight + fileTabHeight; - const totalFooterHeight = - document.querySelector("#quick-tools")?.offsetHeight || 0; - const maximumHeight = - window.innerHeight - (totalHeaderHeight + totalFooterHeight); - const minimumHeight = 100; - newHeight = Math.max(minimumHeight, Math.min(newHeight, maximumHeight)); - - this.$terminalContainer.style.height = newHeight + "px"; - localStorage.setItem("AcodeX_Terminal_Cont_Height", newHeight); - this._updateTerminalHeight(); - } - - stopDragging(e) { - this.isDragging = false; - this.$terminalContainer.style.borderTop = - "1px solid var(--popup-border-color)"; - } - - minimise() { - /* - hide terminal and active the show terminal button - */ - try { - if (!this.isTerminalMinimized) { - this.previousTerminalHeight = window.getComputedStyle( - this.$terminalContainer - ).height; - localStorage.setItem( - "AcodeX_Terminal_Cont_Height", - this.$terminalContainer.offsetHeight - ); - this.$terminalContainer.style.height = "0px"; - this.$terminalContainer.classList.add("hide"); - this.isTerminalMinimized = true; - localStorage.setItem( - "AcodeX_Terminal_Is_Minimised", - this.isTerminalMinimized - ); - this.$showTermBtn.classList.remove("hide"); - } - } catch (err) { - window.alert(err); - } - } - - maxmise() { - /* - show terminal and hide the show terminal button - */ - if (this.isTerminalMinimized) { - if (parseInt(localStorage.getItem("AcodeX_Terminal_Cont_Height")) <= 50) { - this.$terminalContainer.style.height = "50px"; - } else { - this.$terminalContainer.style.height = - localStorage.getItem("AcodeX_Terminal_Cont_Height") + "px"; - } - this.$terminalContainer.classList.remove("hide"); - this.$terminalContent.style.height = `calc(100% - ${this.$terminalContainer.offsetHeight}px)`; - this.fitTerminal(); - localStorage.setItem( - "AcodeX_Terminal_Cont_Height", - this.$terminalContainer.offsetHeight - ); - this.$showTermBtn.classList.add("hide"); - this.isTerminalMinimized = false; - localStorage.setItem( - "AcodeX_Terminal_Is_Minimised", - this.isTerminalMinimized - ); - this._updateTerminalHeight(); - } - } - - _findPreviousMatchofSearch() { - const searchInput = document.querySelector(".search-input-container input").value; - this.$searchAddon?.findPrevious(searchInput); - } - - _findNextMatchofSearch() { - const searchInput = document.querySelector(".search-input-container input").value; - this.$searchAddon?.findNext(searchInput); - } - - _convertPath(path) { - if (path.startsWith("content://com.termux.documents/tree")) { - let termuxPath = path - .split("::")[1] - .substring(0, path.split("::")[1].lastIndexOf("/")) - .replace(/^\/data\/data\/com\.termux\/files\/home/, "$HOME"); - return termuxPath; - } else if (path.startsWith("file:///storage/emulated/0/")) { - let sdcardPath = - "/sdcard" + - path - .substr("file:///storage/emulated/0".length) - .replace(/\.[^/.]+$/, "") - .split("/") - .slice(0, -1) - .join("/") + - "/"; - return sdcardPath; - } else if ( - path.startsWith( - "content://com.android.externalstorage.documents/tree/primary" - ) - ) { - let androidPath = - "/sdcard/" + - path - .split("::primary:")[1] - .substring(0, path.split("::primary:")[1].lastIndexOf("/")); - return androidPath; - } else { - return false; - } - } - - async _cdToActiveDir() { - const { activeFile } = editorManager; - if(activeFile.uri){ - const realPath = this._convertPath(activeFile.uri); - if (!realPath) { - window.toast("unsupported path type.", 3000); - return; - } - this.socket.send(`cd "${realPath}"\r`); - } - } - - async destroy() { - this.$style.remove(); - this.xtermCss.remove(); - await fsOperation(window.DATA_STORAGE + "acodex_fonts").delete(); - editorManager.editor.commands.removeCommand("terminal:open_terminal"); - editorManager.editor.commands.removeCommand("terminal:close_terminal"); - this.$terminalContainer.remove(); - this.$showTermBtn.remove(); - document.removeEventListener("mousemove", this.dragFlotButton.bind(this)); - document.removeEventListener( - "mouseup", - this.stopDraggingFlotBtn.bind(this) - ); - document.removeEventListener("touchmove", this.dragFlotButton.bind(this)); - document.removeEventListener( - "touchend", - this.stopDraggingFlotBtn.bind(this) - ); - window.removeEventListener("mousemove", this.drag); - window.removeEventListener("touchmove", this.drag); - window.removeEventListener("mouseup", this.stopDragging); - window.removeEventListener("touchend", this.stopDragging); - - localStorage.removeItem("AcodeX_Terminal_Is_Minimised"); - localStorage.removeItem("AcodeX_Current_Session"); - localStorage.removeItem("AcodeX_Terminal_Cont_Height"); - localStorage.removeItem("AcodeX_Is_Opened"); - } - - async setCustomFontFile() { - const { url } = await acode.fileBrowser( - "file", - "select custom font stylesheet" - ); - if (!url) return; - let realUrl = this._convertPath(url); - if (realUrl.startsWith("/sdcard")) { - realUrl = realUrl.replace("/sdcard", "file:///storage/emulated/0"); - } else if (realUrl.startsWith("$HOME")) { - return; - } - const urlSegments = url.split("/"); - const fileNameWithExtension = urlSegments[urlSegments.length - 1]; - realUrl = realUrl + "/" + fileNameWithExtension; - const newUrl = await toInternalUrl(realUrl); - this.settings.customFontStyleSheet = newUrl; - appSettings.update(); - } - - async applyTheme(themeName) { - const theme = themes[themeName]; - this.settings.theme = themeName; - this.settings.background = theme.background; - this.settings.foreground = theme.foreground; - this.settings.cursor = theme.cursor || "#fff"; - this.settings.cursorAccent = theme.cursorAccent || "#fff"; - this.settings.selectionBackground = theme.selectionBackground; - this.settings.black = theme.black; - this.settings.blue = theme.blue; - this.settings.brightBlack = theme.brightBlack; - this.settings.brightBlue = theme.brightBlue; - this.settings.brightCyan = theme.brightCyan; - this.settings.brightGreen = theme.brightGreen; - this.settings.brightMagenta = theme.brightMagenta; - this.settings.brightRed = theme.brightRed; - this.settings.brightWhite = theme.brightWhite; - this.settings.brightYellow = theme.brightYellow; - this.settings.cyan = theme.cyan; - this.settings.green = theme.green; - this.settings.magenta = theme.magenta; - this.settings.red = theme.red; - this.settings.white = theme.white; - this.settings.yellow = theme.yellow; - appSettings.update(); - } - - hexToTransparentRGBA(hex, alpha) { - // Remove the hash character if it's present - hex = hex.replace("#", ""); - - // Parse the hex value to RGB - const r = parseInt(hex.substring(0, 2), 16); - const g = parseInt(hex.substring(2, 4), 16); - const b = parseInt(hex.substring(4, 6), 16); - - // Return the RGBA string with the specified alpha value - return `rgba(${r}, ${g}, ${b}, ${alpha})`; - } - - get terminalThemeObj() { - return { - background: this.settings.transparency - ? this.hexToTransparentRGBA(this.settings.background, 0.5) - : this.settings.background, - foreground: this.settings.foreground, - selectionBackground: this.settings.selectionBackground, - cursor: this.settings.cursor, - cursorAccent: this.settings.cursorAccent, - black: this.settings.black, - blue: this.settings.blue, - brightBlack: this.settings.brightBlack, - brightBlue: this.settings.brightBlue, - brightCyan: this.settings.brightCyan, - brightGreen: this.settings.brightGreen, - brightMagenta: this.settings.brightMagenta, - brightRed: this.settings.brightRed, - brightWhite: this.settings.brightWhite, - brightYellow: this.settings.brightYellow, - cyan: this.settings.cyan, - green: this.settings.green, - magenta: this.settings.magenta, - red: this.settings.red, - white: this.settings.white, - yellow: this.settings.yellow, - }; - } - - get terminalObj() { - return new Terminal({ - allowTransparency: this.settings.transparency, - allowProposedApi: true, - scrollOnUserInput: true, - cursorBlink: this.settings.cursorBlink, - cursorStyle: this.settings.cursorStyle, - cursorInactiveStyle: this.settings.cursorInactiveStyle, - scrollBack: this.settings.scrollBack, - scrollSensitivity: this.settings.scrollSensitivity, - fontSize: this.settings.fontSize, - fontFamily: this.settings.fontFamily, - fontWeight: this.settings.fontWeight, - theme: this.terminalThemeObj, - }); - } - - async clearCache() { - await this.$cacheFile.writeFile(""); - window.toast("Cache cleared 🔥", 3000); - } - - get fontsList() { - return [ - [ - appSettings.get("editorFont"), - "Default Editor Font", - "file file_type_font", - true, - ], - [ - "Fira Code Bold Nerd Font", - "Fira Code Bold Nerd Font", - "file file_type_font", - true, - ], - [ - "Fira Code Medium Nerd Font", - "Fira Code Medium Nerd Font", - "file file_type_font", - true, - ], - [ - "JetBrains Mono Bold Nerd Font", - "JetBrains Mono Bold Nerd Font", - "file file_type_font", - true, - ], - [ - "JetBrains Mono Medium Nerd Font", - "JetBrains Mono Medium Nerd Font", - "file file_type_font", - true, - ], - [ - "VictorMonoNerdFont Bold", - "VictorMonoNerdFont Bold", - "file file_type_font", - true, - ], - [ - "VictorMonoNerdFont BoldItalic", - "VictorMonoNerdFont BoldItalic", - "file file_type_font", - true, - ], - [ - "VictorMonoNerdFont Medium", - "VictorMonoNerdFont Medium", - "file file_type_font", - true, - ], - [ - "VictorMonoNerdFont Italic", - "VictorMonoNerdFont Italic", - "file file_type_font", - true, - ], - [ - "SauceCodeProNerdFont Bold", - "SauceCodeProNerdFont Bold", - "file file_type_font", - true, - ], - [ - "SauceCodeProNerdFont Medium", - "SauceCodeProNerdFont Medium", - "file file_type_font", - true, - ], - [ - "MesloLGS NF Bold Italic", - "MesloLGS NF Bold Italic", - "file file_type_font", - true, - ], - ["MesloLGS NF Bold", "MesloLGS NF Bold", "file file_type_font", true], - ["MesloLGS NF Italic", "MesloLGS NF Italic", "file file_type_font", true], - [ - "MesloLGS NF Regular", - "MesloLGS NF Regular", - "file file_type_font", - true, - ], - ]; - } - - async downloadFont() { - try { - const baseFontDir = window.DATA_STORAGE + "acodex_fonts"; - const baseFontUrl = - "https://cdn.jsdelivr.net/gh/bajrangCoder/acode-plugin-acodex@main/fonts/"; - const fontsUrls = [ - baseFontUrl + "Fira Code Bold Nerd Font.ttf", - baseFontUrl + "Fira Code Medium Nerd Font Complete Mono.ttf", - baseFontUrl + "JetBrains Mono Bold Nerd Font Complete.ttf", - baseFontUrl + "JetBrains Mono Medium Nerd Font Complete.ttf", - baseFontUrl + "MesloLGS NF Bold Italic.ttf", - baseFontUrl + "MesloLGS NF Bold.ttf", - baseFontUrl + "MesloLGS NF Italic.ttf", - baseFontUrl + "MesloLGS NF Regular.ttf", - baseFontUrl + "SauceCodeProNerdFont-Bold.ttf", - baseFontUrl + "SauceCodeProNerdFont-Medium.ttf", - baseFontUrl + "VictorMonoNerdFont-Bold.ttf", - baseFontUrl + "VictorMonoNerdFont-BoldItalic.ttf", - baseFontUrl + "VictorMonoNerdFont-Italic.ttf", - baseFontUrl + "VictorMonoNerdFont-Medium.ttf", - ]; - if (!(await fsOperation(baseFontDir).exists())) { - await fsOperation(window.DATA_STORAGE).createDirectory("acodex_fonts"); - const fontDownloadLoader = loader.create( - "AcodeX", - "Downloading Fonts..." - ); - for (const fontFileURL of fontsUrls) { - const fileName = fontFileURL.split("/").pop(); - fontDownloadLoader.setMessage(`Downloading Font: ${fileName}`); - fetch(fontFileURL) - .then((response) => response.blob()) - .then(async (blob) => { - await fsOperation(baseFontDir).createFile(fileName, blob); - }) - .catch((error) => { - fontDownloadLoader.destroy(); - window.toast( - `Error fetching font file: ${error.toString()}`, - 4000 - ); - }); - } - fontDownloadLoader.destroy(); - window.toast("Fonts Downloaded successfully 💥", 3000); - } - } catch (err) { - console.log(err); - loader.destroy(); - } - } - - get settingsObj() { - if (this.settings.theme === "custom") { - return { - list: settingsList.concat(settingsListWithThemeColor), - cb: (key, value) => this.settingsSaveCallback(key, value), - }; - } else { - return { - list: settingsList, - cb: (key, value) => this.settingsSaveCallback(key, value), - }; - } - } - - settingsSaveCallback(key, value) { - switch (key) { - case "customFontStyleSheet": - this.setCustomFontFile(); - break; - - case "theme": - this.applyTheme(value); - if (value === "custom") { - acode.alert("AcodeX Warning", "Restart the app please"); - } - if (this.$terminal) { - this.$terminal.options.theme = this.terminalThemeObj; - } - break; - case "clearCache": - this.clearCache(); - break; - case "showTerminalBtnSize": - if (this.$showTermBtn) { - this.$showTermBtn.style.height = value + "px"; - this.$showTermBtn.style.width = value + "px"; - } - case "fontSize": - if (this.$terminal) { - this.$terminal.options.fontSize = value; - } - this.settings[key] = value; - appSettings.update(); - break; - case "fontFamily": - if (this.$terminal) { - this.$terminal.options.fontFamily = value; - } - this.settings[key] = value; - appSettings.update(); - break; - case "fontWeight": - if (this.$terminal) { - this.$terminal.options.fontWeight = value; - } - this.settings[key] = value; - appSettings.update(); - break; - case "cursorBlink": - if (this.$terminal) { - this.$terminal.options.cursorBlink = value; - } - this.settings[key] = value; - appSettings.update(); - break; - case "cursorStyle": - if (this.$terminal) { - this.$terminal.options.cursorStyle = value; - } - this.settings[key] = value; - appSettings.update(); - break; - case "cursorInactiveStyle": - if (this.$terminal) { - this.$terminal.options.cursorInactiveStyle = value; - } - this.settings[key] = value; - appSettings.update(); - break; - - default: - this.settings[key] = value; - appSettings.update(); - } - } - - get settings() { - return appSettings.value[plugin.id]; - } -} if (window.acode) { const acodePlugin = new AcodeX(); diff --git a/src/services/AiService.js b/src/services/AiService.js new file mode 100644 index 0000000..8e625a2 --- /dev/null +++ b/src/services/AiService.js @@ -0,0 +1,107 @@ +import { Ollama } from 'ollama/browser'; + +class AIResponseHandler { + constructor(apiKey = null) { + this.apiKey = apiKey; + this.deepseekAPI = "https://api.deepseek.com/v1/chat/completions"; + this.chatgptAPI = "https://api.openai.com/v1/chat/completions"; + this.geminiAPI = `https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=${this.apiKey}`; + if(apiKey===null) { + // check local storage, if user want to provide custom host for ollama + let host = window.localStorage.getItem("Ollama-Host") + ? window.localStorage.getItem("Ollama-Host") + : "http://localhost:11434"; + this.ollama = new Ollama({ host }); + } + } + + async generateDeepseekResponse(prompt) { + const data = { + model: "deepseek-chat", + messages: [ + { role: "system", content: "You are a helpful terminal assistant. You have to return terminal commands only when user give prompt, no explanation, just return command in response, if user ask any irrelevant questions or query which are not related to terminal or terminal commands then ignore it, for eg: how to get path of current directory: pwd and Also return response in plain text format, not in markdowns, etc." }, + { role: "user", content: prompt } + ] + }; + + return this._fetchAndProcessResponse(this.deepseekAPI, data, this.apiKey); + } + + async generateChatgptResponse(prompt) { + const data = { + model: "gpt-3.5-turbo-0125", + messages: [ + { role: "system", content: "You are a helpful terminal assistant. You have to return terminal commands only when user give prompt, no explanation, just return command in response, if user ask any irrelevant questions or query which are not related to terminal or terminal commands then ignore it, for eg: how to get path of current directory: pwd and Also return response in plain text format, not in markdowns, etc" }, + { role: "user", content: prompt } + ] + }; + + return this._fetchAndProcessResponse(this.chatgptAPI, data, this.apiKey); + } + + async generateGeminiResponse(prompt) { + const promptTemplate = `You are a helpful terminal assistant. You have to return terminal commands only for my prompt, no explanation, just return command in response, if i ask any irrelevant questions or query which are not related to terminal or terminal commands then ignore it, for eg: if i ask path of current directory then : pwd and Also return response in plain text format, not in markdowns, etc. My query: ${prompt}`; + const data = { + contents: [ + { + parts: [{ text: promptTemplate }] + } + ] + }; + + return this._fetchAndProcessResponse(this.geminiAPI, data, null); + } + + async getListOfOllamaModels() { + try { + const list = await this.ollama.list(); + let modelList = list.models.map((item) => item.model); + return modelList; + } catch(err) { + return err; + } + } + + async generateOllamaResponse(model,prompt) { + try { + const res = await this.ollama.generate({ + model, + system: `You are a helpful terminal assistant. You have to return terminal commands only when user give prompt, no explanation, just return command in response, if user ask any irrelevant questions or query which are not related to terminal or terminal commands then ignore it, for eg: how to get path of current directory: pwd and Also return response in plain text format, not in markdowns, etc`, + prompt + }); + return res; + } catch (err) { + return err; + } + } + + async _fetchAndProcessResponse(url, data, apiKey) { + try { + const headers = { + "Content-Type": "application/json" + }; + if (apiKey) { + headers.Authorization = `Bearer ${apiKey}`; + } + const response = await fetch(url, { + method: "POST", + headers, + body: JSON.stringify(data) + }); + + const responseData = await response.json(); + + if (response.ok) { + // Process and return the response data + return { response: responseData }; + } else { + throw new Error(responseData.detail ? responseData.detail : responseData.error.message || "Failed to fetch response"); + } + } catch (error) { + return { error: error.message }; + } + } + +} + +export default AIResponseHandler; \ No newline at end of file diff --git a/src/settings.js b/src/settings.js deleted file mode 100644 index ec23c40..0000000 --- a/src/settings.js +++ /dev/null @@ -1,323 +0,0 @@ -import plugin from "../plugin.json"; -import { - FONT_WEIGHT, - CURSOR_INACTIVE_STYLE, - CURSOR_STYLE, - FONTS_LIST, - THEME_LIST, -} from "./constants"; - -const appSettings = acode.require("settings"); - -export const settingsList = [ - { - key: "port", - text: "Server Port", - value: appSettings.value[plugin.id].port, - info: "Port which is displayed on termux when starting the server", - prompt: "Server Port", - promptType: "number", - promptOption: [ - { - required: true, - }, - ], - }, - { - key: "serverHost", - text: "Server Host Name", - value: appSettings.value[plugin.id].serverHost, - info: "Hostname which is displayed on termux when starting the server", - prompt: "Server Host Name", - promptType: "text", - promptOption: [ - { - required: true, - }, - ], - }, - { - key: "fontWeight", - text: "Font Weight", - value: appSettings.value[plugin.id].fontWeight, - info: "The font weight used to render non-bold text.", - select: FONT_WEIGHT, - }, - { - key: "showTerminalBtnSize", - text: "Show Terminal button size", - value: appSettings.value[plugin.id].showTerminalBtnSize, - info: "Size of terminal show button (in px)", - prompt: "Show Terminal button size", - promptType: "number", - promptOption: [ - { - required: true, - }, - ], - }, - { - key: "blurValue", - text: "Blur Value(in px)", - value: appSettings.value[plugin.id].blurValue, - info: "Blur value for terminal in transparent mode", - prompt: "Blur Value", - promptType: "text", - promptOption: [ - { - required: true, - }, - ], - }, - { - key: "clearCache", - text: "Clear Cache", - info: "Helps in clearing cache which contains session details in case of any problems or bug", - }, - { - key: "transparency", - text: "Allow Transparent Terminal", - info: "Makes terminal transparent but it will also led to slightly performance decrement", - checkbox: !!appSettings.value[plugin.id].transparency, - }, - { - index: 7, - key: "customFontStyleSheet", - text: "Custom Font Stylesheet file", - info: "Select css file in which you have to define about your custom font.", - value: appSettings.value[plugin.id].customFontStyleSheet, - }, - { - index: 0, - key: "cursorBlink", - text: "Cursor Blink", - info: "Whether the cursor blinks.", - checkbox: !!appSettings.value[plugin.id].cursorBlink, - }, - { - index: 1, - key: "cursorStyle", - text: "Cursor Style", - value: appSettings.value[plugin.id].cursorStyle, - info: "The style of the cursor.", - select: CURSOR_STYLE, - }, - { - key: "cursorInactiveStyle", - text: "Cursor Inactive Style", - value: appSettings.value[plugin.id].cursorInactiveStyle, - info: "The style of the cursor when the terminal is not focused.", - select: CURSOR_INACTIVE_STYLE, - }, - { - index: 2, - key: "fontSize", - text: "Font Size", - value: appSettings.value[plugin.id].fontSize, - info: "The font size used to render text.", - prompt: "Font Size", - promptType: "text", - promptOption: [ - { - match: /^[0-9]+$/, - required: true, - }, - ], - }, - { - index: 3, - key: "fontFamily", - text: "Font Family", - value: appSettings.value[plugin.id].fontFamily, - info: "The font family used to render text.", - select: FONTS_LIST, - }, - { - index: 4, - key: "scrollBack", - text: "Scroll Back", - value: appSettings.value[plugin.id].scrollBack, - info: "The amount of scrollback in the terminal. Scrollback is the amount of rows that are retained when lines are scrolled beyond the initial viewport.", - prompt: "Scroll Back", - promptType: "number", - promptOption: [ - { - match: /^[0-9]+$/, - required: true, - }, - ], - }, - { - index: 5, - key: "scrollSensitivity", - text: "Scroll Sensitivity", - value: appSettings.value[plugin.id].scrollSensitivity, - info: "The scrolling speed multiplier used for adjusting normal scrolling speed.", - prompt: "Scroll Sensitivity", - promptType: "number", - promptOption: [ - { - match: /^[0-9]+$/, - required: true, - }, - ], - }, - { - index: 6, - key: "theme", - text: "Theme", - value: appSettings.value[plugin.id].theme, - info: "Theme of terminal.", - select: THEME_LIST, - }, -]; - -export const settingsListWithThemeColor = [ - { - index: 8, - key: "background", - text: "Background Color", - value: appSettings.value[plugin.id].background, - color: appSettings.value[plugin.id].background, - }, - { - index: 9, - key: "foreground", - text: "Foreground Color", - value: appSettings.value[plugin.id].foreground, - color: appSettings.value[plugin.id].foreground, - }, - { - index: 10, - key: "selectionBackground", - text: "Selection Background Color", - value: appSettings.value[plugin.id].selectionBackground, - color: appSettings.value[plugin.id].selectionBackground, - }, - { - index: 11, - key: "cursor", - text: "Cursor Color", - value: appSettings.value[plugin.id].cursor, - color: appSettings.value[plugin.id].cursor, - }, - { - index: 12, - key: "cursorAccent", - text: "Cursor Accent Color", - value: appSettings.value[plugin.id].cursorAccent, - color: appSettings.value[plugin.id].cursorAccent, - }, - { - index: 13, - key: "black", - text: "Black Color", - value: appSettings.value[plugin.id].black, - color: appSettings.value[plugin.id].black, - }, - { - index: 14, - key: "blue", - text: "Blue Color", - value: appSettings.value[plugin.id].blue, - color: appSettings.value[plugin.id].blue, - }, - { - index: 15, - key: "brightBlack", - text: "Bright Black Color", - value: appSettings.value[plugin.id].brightBlack, - color: appSettings.value[plugin.id].brightBlack, - }, - { - index: 16, - key: "brightBlue", - text: "Bright Blue Color", - value: appSettings.value[plugin.id].brightBlue, - color: appSettings.value[plugin.id].brightBlue, - }, - { - index: 17, - key: "brightCyan", - text: "Bright Cyan Color", - value: appSettings.value[plugin.id].brightCyan, - color: appSettings.value[plugin.id].brightCyan, - }, - { - index: 18, - key: "brightGreen", - text: "Bright Green Color", - value: appSettings.value[plugin.id].brightGreen, - color: appSettings.value[plugin.id].brightGreen, - }, - { - index: 19, - key: "brightMagenta", - text: "Bright Magenta Color", - value: appSettings.value[plugin.id].brightMagenta, - color: appSettings.value[plugin.id].brightMagenta, - }, - { - index: 20, - key: "brightRed", - text: "Bright Red Color", - value: appSettings.value[plugin.id].brightRed, - color: appSettings.value[plugin.id].brightRed, - }, - { - index: 21, - key: "brightWhite", - text: "Bright White Color", - value: appSettings.value[plugin.id].brightWhite, - color: appSettings.value[plugin.id].brightWhite, - }, - { - index: 22, - key: "brightYellow", - text: "Bright Yellow Color", - value: appSettings.value[plugin.id].brightYellow, - color: appSettings.value[plugin.id].brightYellow, - }, - { - index: 23, - key: "cyan", - text: "Cyan Color", - value: appSettings.value[plugin.id].cyan, - color: appSettings.value[plugin.id].cyan, - }, - { - index: 24, - key: "green", - text: "Green Color", - value: appSettings.value[plugin.id].green, - color: appSettings.value[plugin.id].green, - }, - { - index: 25, - key: "magenta", - text: "Magenta Color", - value: appSettings.value[plugin.id].magenta, - color: appSettings.value[plugin.id].magenta, - }, - { - index: 26, - key: "red", - text: "Red Color", - value: appSettings.value[plugin.id].red, - color: appSettings.value[plugin.id].red, - }, - { - index: 27, - key: "white", - text: "White Color", - value: appSettings.value[plugin.id].white, - color: appSettings.value[plugin.id].white, - }, - { - index: 28, - key: "yellow", - text: "Yellow Color", - value: appSettings.value[plugin.id].yellow, - color: appSettings.value[plugin.id].yellow, - }, -]; diff --git a/src/style.scss b/src/style.scss deleted file mode 100644 index bb87fbc..0000000 --- a/src/style.scss +++ /dev/null @@ -1,110 +0,0 @@ -.terminal-panel { - position: absolute; - bottom: 0; - left: 0; - display: flex; - flex-direction: column; - background-color: var(--popup-background-color); - width: 100%; - border-top: 1px solid var(--popup-border-color); - border-bottom: 1px solid var(--popup-border-color); - border-radius: 2px; - overflow: hidden; - z-index: 107; - box-shadow: 0px -10px 15px -6px var(--box-shadow-color); - box-sizing: border-box; - transition: opacity 0.5s ease-in-out; - .terminal-title-bar { - display: flex; - justify-content: space-between; - align-items: center; - padding: 10px; - background-color: var(--primary-color); - cursor: row-resize; - touch-action: none; - border-bottom: 1px solid var(--popup-border-color); - height: 28px; - .session-info { - display: flex; - align-items: center; - .pointer-indicator { - width: 10px; - height: 10px; - background-color: var(--button-background-color); - margin-right: 8px; - border-radius: 50%; - box-shadow: 0 0 8px var(--button-background-color); - } - .session-name { - font-size: 16px; - font-weight: bold; - } - } - .action-buttons { - display: flex; - gap: 10px; - transition: opacity 0.3s ease; - - .search-input-container { - position: relative; - align-items: center; - display: none; - - input { - max-width: 0; - padding: 8px; - margin-bottom: 8px; - border: none; - border-bottom: 1px solid var(--button-background-color); - transition: max-width 0.3s ease, display 0.3s ease; - } - &.show { - display: flex; - } - } - .action-button { - background-color: transparent; - color: var(--primary-text-color); - border: none; - cursor: pointer; - font-size: 18px; - padding: 5px; - border-radius: 4px; - transition: background-color 0.3s ease, color 0.3s ease, - transform 0.2s ease; - - &:active { - background-color: var(--active-icon-color); - } - } - } - } - .terminal-content { - flex-grow: 1; - overflow-y: auto; - box-sizing: border-box; - background: inherit; - width: 100%; - } -} -.show-terminal-btn { - height: 35px; - width: 35px; - background: var(--button-background-color); - border: none; - outline: none; - color: var(--primary-text-color); - position: fixed; - bottom: 70px; - left: 29px; - z-index: 115; - border-radius: 50%; - place-items: center; - touch-action: none; - box-shadow: rgba(0, 0, 0, 0.4) 0px 2px 4px, - rgba(0, 0, 0, 0.3) 0px 7px 13px -3px, rgba(0, 0, 0, 0.2) 0px -3px 0px inset; -} -.hide { - display: none; - opacity: 0; -} diff --git a/src/styles/style.scss b/src/styles/style.scss new file mode 100644 index 0000000..772dcae --- /dev/null +++ b/src/styles/style.scss @@ -0,0 +1,228 @@ +.terminal-panel { + position: absolute; + bottom: 0; + left: 0; + display: flex; + flex-direction: column; + background-color: var(--popup-background-color); + width: 100%; + border-top: 1px solid var(--popup-border-color); + border-bottom: 1px solid var(--popup-border-color); + border-radius: 2px; + overflow: hidden; + z-index: 107; + box-shadow: 0px -10px 15px -6px var(--box-shadow-color); + transition: opacity 0.5s ease-in-out; + + .terminal-title-bar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 2px 16px; + background-color: var(--primary-color); + cursor: row-resize; + touch-action: none; + border-bottom: 1px solid var(--popup-border-color); + height: 48px; + + .left-section, + .btn-section { + display: flex; + align-items: center; + } + + .session-info { + display: flex; + align-items: center; + gap: 12px; + + .pointer-indicator { + width: 8px; + height: 8px; + background-color: var(--button-background-color); + border-radius: 50%; + box-shadow: 0 0 8px var(--button-background-color); + } + + .session-name { + font-size: 14px; + font-weight: 600; + color: var(--primary-text-color); + } + } + + .action-button { + background: none; + border: none; + color: var(--primary-text-color); + cursor: pointer; + padding: 5px; + margin: 0 2px; + font-size: 20px; + border-radius: 4px; + transition: background-color 0.2s ease; + + &:active { + background-color: var(--active-icon-color); + } + + svg { + width: 18px; + height: 18px; + } + } + + .search-input-container { + display: none; + align-items: center; + border-radius: 4px; + margin-left: 8px; + background: var(--popup-background-color); + + input { + background: none; + border: none; + color: var(--primary-text-color); + padding: 4px 8px !important; + font-size: 12px; + width: 150px; + height: 100% !important; + + &::placeholder { + color: var(--active-color); + } + + &:focus { + outline: none; + } + } + + &.show { + display: flex; + } + + .action-button { + padding: 6px; + } + } + + } + + .terminal-content { + flex-grow: 1; + overflow-y: auto; + box-sizing: border-box; + background: inherit; + width: 100%; + } +} + +.show-terminal-btn { + height: 35px; + width: 35px; + background: var(--button-background-color); + border: none; + outline: none; + color: var(--primary-text-color); + position: fixed; + bottom: 70px; + left: 29px; + z-index: 115; + border-radius: 50%; + place-items: center; + touch-action: none; + box-shadow: + rgba(0, 0, 0, 0.4) 0px 2px 4px, + rgba(0, 0, 0, 0.3) 0px 7px 13px -3px, + rgba(0, 0, 0, 0.2) 0px -3px 0px inset; +} + +.hide { + display: none; + opacity: 0; +} + +#acodeXAiPromptBox { + background: inherit; + width: 100%; + outline: none; + padding: 5px; + border-radius: 8px; + color: var(--popup-text-color); + font-size: 0.8em; + resize: none; + border: 1px solid var(--box-shadow-color); +} + +.ai-loader-container { + padding: 0; + margin: 0; + box-sizing: border-box; + display: none; + justify-content: center; + align-items: center; + + .wave { + width: 5px; + height: 50px; + background: linear-gradient(45deg, cyan, #fff); + margin: 10px; + animation: wave 1s linear infinite; + border-radius: 20px; + + &:nth-child(2) { + animation-delay: 0.1s; + } + + &:nth-child(3) { + animation-delay: 0.2s; + } + + &:nth-child(4) { + animation-delay: 0.3s; + } + + &:nth-child(5) { + animation-delay: 0.4s; + } + + &:nth-child(6) { + animation-delay: 0.5s; + } + + @keyframes wave { + 0% { + transform: scale(0); + } + + 50% { + transform: scale(1); + } + + 100% { + transform: scale(0); + } + } + } +} + +.selection-handle { + position: absolute; + width: 25px; + height: 25px; + background-color: rgba(0, 0, 255, 0.7); + border-radius: 50% 50% 50% 0; + transform: rotate(135deg); + z-index: 999; + display: none; +} + +/********* GUI Viewer Page ************/ +#acodex-gui-viewer { + .gui-viewer-canvas { + width: 100%; + height: 100%; + box-sizing: border-box; + overflow: auto; + } +} \ No newline at end of file diff --git a/src/constants.js b/src/utils/constants.js similarity index 73% rename from src/constants.js rename to src/utils/constants.js index 7783bf0..45815d6 100644 --- a/src/constants.js +++ b/src/utils/constants.js @@ -1,8 +1,14 @@ const appSettings = acode.require("settings"); +// ai models logo +acode.addIcon("deepseek", "https://raw.githubusercontent.com/deepseek-ai/DeepSeek-Coder/main/pictures/home.png"); +acode.addIcon("chatgpt", "https://upload.wikimedia.org/wikipedia/commons/0/04/ChatGPT_logo.svg"); +acode.addIcon("gemini", "https://upload.wikimedia.org/wikipedia/commons/4/45/Gemini_language_model_logo.png"); + +export const GUI_VIEWER = false; +export const IMAGE_RENDERING = false; export const ALLOW_TRANSPRANCY = false; export const CURSOR_BLINK = true; -export const SHOW_ARROW_BTN = false; export const CURSOR_STYLE = ["block", "underline", "bar"]; export const CURSOR_INACTIVE_STYLE = [ "outline", @@ -12,7 +18,7 @@ export const CURSOR_INACTIVE_STYLE = [ "none", ]; export const FONT_SIZE = 11; -export const FONT_FAMILY = appSettings.get("editorFont"); +export const FONT_FAMILY = "MesloLGS NF Regular"; export const FONT_WEIGHT = [ "normal", "bold", @@ -29,6 +35,7 @@ export const FONT_WEIGHT = [ export const SCROLLBACK = 1000; export const SCROLL_SENSITIVITY = 1000; export const showTerminalBtnSize = 35; +export const showTerminalBtn = true; // to hide/unhide show terminal button export const DEFAULT_THEME = "catppuccin"; export const THEME_LIST = [ "ayuDark", @@ -125,3 +132,31 @@ export const FONTS_LIST = [ ["MesloLGS NF Italic", "MesloLGS NF Italic", "file file_type_font", true], ["MesloLGS NF Regular", "MesloLGS NF Regular", "file file_type_font", true], ]; + +export const AI_MODEL = "deepseek"; +export const AVAILABLE_AI_MODELS = [ + [ + "deepseek", + "Deepseek", + "deepseek", + true + ], + [ + "chatgpt", + "ChatGPT", + "chatgpt", + true + ], + [ + "gemini-pro", + "Gemini Pro", + "gemini", + true + ], + [ + "local-llm", + "Local LLM(ollama)", + "icon phone_android", + true + ] +]; \ No newline at end of file diff --git a/src/utils/helpers.js b/src/utils/helpers.js new file mode 100644 index 0000000..2362e02 --- /dev/null +++ b/src/utils/helpers.js @@ -0,0 +1,222 @@ + +export function isTouchDevice() { + return 'ontouchstart' in window || navigator.maxTouchPoints > 0; +} + +export function transparentColor(element) { + let currentBackgroundColor = + window.getComputedStyle(element).backgroundColor; + var rgbValues = currentBackgroundColor.match(/\d+/g); + var currentAlpha = parseFloat(rgbValues[3]) || 1.0; + return `rgba(${rgbValues[0]}, ${rgbValues[1]}, ${rgbValues[2]}, 0.5)`; +} + +export function filterTermInputData(data) { + /** + * Function to filter out non-printable characters and control sequences + **/ + let filteredData = ""; + for (let i = 0; i < data.length; i++) { + const charCode = data.charCodeAt(i); + if ( + (charCode >= 32 && charCode <= 126) || + charCode === 13 || // Carriage return (Enter) + charCode === 8 // Backspace + ) { + filteredData += data[i]; + } + } + return filteredData; +} + +export function convertPath(path) { + if (path.startsWith("content://com.termux.documents/tree")) { + let termuxPath = path + .split("::")[1] + .substring(0, path.split("::")[1].lastIndexOf("/")) + .replace(/^\/data\/data\/com\.termux\/files\/home/, "$HOME"); + return termuxPath; + } else if (path.startsWith("file:///storage/emulated/0/")) { + let sdcardPath = + "/sdcard" + + path + .substr("file:///storage/emulated/0".length) + .replace(/\.[^/.]+$/, "") + .split("/") + .slice(0, -1) + .join("/") + + "/"; + return sdcardPath; + } else if ( + path.startsWith( + "content://com.android.externalstorage.documents/tree/primary" + ) + ) { + let androidPath = + "/sdcard/" + + path + .split("::primary:")[1] + .substring(0, path.split("::primary:")[1].lastIndexOf("/")); + return androidPath; + } else { + return false; + } +} + +export function hexToTransparentRGBA(hex, alpha) { + // Remove the hash character if it's present + hex = hex.replace("#", ""); + + // Parse the hex value to RGB + const r = parseInt(hex.substring(0, 2), 16); + const g = parseInt(hex.substring(2, 4), 16); + const b = parseInt(hex.substring(4, 6), 16); + + // Return the RGBA string with the specified alpha value + return `rgba(${r}, ${g}, ${b}, ${alpha})`; +} + +export async function downloadFont(fsOperation, loader) { + try { + const baseFontDir = window.DATA_STORAGE + "acodex_fonts"; + const baseFontUrl = + "https://cdn.jsdelivr.net/gh/bajrangCoder/acode-plugin-acodex@main/fonts/"; + const fontsUrls = [ + baseFontUrl + "Fira Code Bold Nerd Font.ttf", + baseFontUrl + "Fira Code Medium Nerd Font Complete Mono.ttf", + baseFontUrl + "JetBrains Mono Bold Nerd Font Complete.ttf", + baseFontUrl + "JetBrains Mono Medium Nerd Font Complete.ttf", + baseFontUrl + "MesloLGS NF Bold Italic.ttf", + baseFontUrl + "MesloLGS NF Bold.ttf", + baseFontUrl + "MesloLGS NF Italic.ttf", + baseFontUrl + "MesloLGS NF Regular.ttf", + baseFontUrl + "SauceCodeProNerdFont-Bold.ttf", + baseFontUrl + "SauceCodeProNerdFont-Medium.ttf", + baseFontUrl + "VictorMonoNerdFont-Bold.ttf", + baseFontUrl + "VictorMonoNerdFont-BoldItalic.ttf", + baseFontUrl + "VictorMonoNerdFont-Italic.ttf", + baseFontUrl + "VictorMonoNerdFont-Medium.ttf" + ]; + if (!(await fsOperation(baseFontDir).exists())) { + await fsOperation(window.DATA_STORAGE).createDirectory("acodex_fonts"); + const fontDownloadLoader = loader.create( + "AcodeX", + "Downloading Fonts..." + ); + for (const fontFileURL of fontsUrls) { + const fileName = fontFileURL.split("/").pop(); + fontDownloadLoader.setMessage(`Downloading Font: ${fileName}`); + fetch(fontFileURL) + .then(response => response.blob()) + .then(async blob => { + await fsOperation(baseFontDir).createFile(fileName, blob); + }) + .catch(error => { + fontDownloadLoader.destroy(); + window.toast( + `Error fetching font file: ${error.toString()}`, + 4000 + ); + }); + } + fontDownloadLoader.destroy(); + window.toast("Fonts Downloaded successfully 💥", 3000); + } + } catch (err) { + console.log(err); + loader.destroy(); + } +} + + +export function fontsStyleSheetStr(baseFontUrl) { + return ` +@font-face { + font-family: "Fira Code Bold Nerd Font"; + src: url("${baseFontUrl}Fira Code Bold Nerd Font.ttf") format("truetype"); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: "Fira Code Medium Nerd Font"; + src: url("${baseFontUrl}Fira Code Medium Nerd Font Complete Mono.ttf") + format("truetype"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "JetBrains Mono Bold Nerd Font"; + src: url("${baseFontUrl}JetBrains Mono Bold Nerd Font Complete.ttf") + format("truetype"); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: "JetBrains Mono Medium Nerd Font"; + src: url("${baseFontUrl}JetBrains Mono Medium Nerd Font Complete.ttf") + format("truetype"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "VictorMonoNerdFont Bold"; + src: url("${baseFontUrl}VictorMonoNerdFont-Bold.ttf") format("truetype"); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: "VictorMonoNerdFont BoldItalic"; + src: url("${baseFontUrl}VictorMonoNerdFont-BoldItalic.ttf") format("truetype"); + font-weight: bold; + font-style: italic; +} +@font-face { + font-family: "VictorMonoNerdFont Medium"; + src: url("${baseFontUrl}VictorMonoNerdFont-Medium.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "VictorMonoNerdFont Italic"; + src: url("${baseFontUrl}VictorMonoNerdFont-Italic.ttf") format("truetype"); + font-weight: normal; + font-style: italic; +} +@font-face { + font-family: "SauceCodeProNerdFont Bold"; + src: url("${baseFontUrl}SauceCodeProNerdFont-Bold.ttf") format("truetype"); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: "SauceCodeProNerdFont Medium"; + src: url("${baseFontUrl}SauceCodeProNerdFont-Medium.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: "MesloLGS NF Bold Italic"; + src: url("${baseFontUrl}MesloLGS NF Bold Italic.ttf") format("truetype"); + font-weight: bold; + font-style: italic; +} +@font-face { + font-family: "MesloLGS NF Bold"; + src: url("${baseFontUrl}MesloLGS NF Bold.ttf") format("truetype"); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: "MesloLGS NF Italic"; + src: url("${baseFontUrl}MesloLGS NF Italic.ttf") format("truetype"); + font-weight: normal; + font-style: italic; +} +@font-face { + font-family: "MesloLGS NF Regular"; + src: url("${baseFontUrl}MesloLGS NF Regular.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} + `; +} \ No newline at end of file diff --git a/src/themes.js b/src/utils/themes.js similarity index 100% rename from src/themes.js rename to src/utils/themes.js