diff --git a/package.json b/package.json
index ce0fa1b..d2b22a8 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,8 @@
"dev": "nodemon src/app.js",
"start": "open http://localhost:3000 && npm run dev HAXCMS_DISABLE_JWT_CHECKS",
"build": "rm -rf dist && babel src --out-dir dist --copy-files --include-dotfiles && chmod 774 dist/local.js && chmod 774 dist/app.js && chmod 774 dist/cli.js",
- "release": "npm run build && commit-and-tag-version && git push --follow-tags origin main && npm publish"
+ "release": "npm run build && commit-and-tag-version && git push --follow-tags origin main && npm publish",
+ "haxcms-nodejs-cli": "haxcms-nodejs-cli"
},
"repository": {
"type": "git",
diff --git a/src/cli.js b/src/cli.js
index 0987538..e8bb654 100644
--- a/src/cli.js
+++ b/src/cli.js
@@ -4,58 +4,27 @@
process.env.haxcms_middleware = "node-cli";
// HAXcms core settings
const { HAXCMS } = require('./lib/HAXCMS.js');
-/**
- * @todo need a configuration resolver of some kind
- * if we are invoking stand alone, it'll need to install haxcms in place
- * if it's in an existing HAXcms deploy, it should read off that _config / other multi-site directories
- * if it's a HAXSite then it needs to supply config that works relative to that one
- * This also influnces the entry index.html file
- */
const RoutesMap = require('./lib/RoutesMap.js');
// process arguments from commandline appropriately
-const args = process.argv;
-args.shift();
-args.shift();
let body = {};
-let cliOp = 'listCalls';
-// 1st 2 args call the program itself
-for (var i in args) {
- let arg = args[i].split('=');
- let param = arg[0].replace('--','');
- let value = arg[1];
- switch (param) {
- case 'op':
- cliOp = value;
- break;
- case "nodeTitle":
- body.node = body.node || {};
- body.node.title = value;
- break;
- case "site":
- body.site = {
- name: value
- };
- break;
- // set everything else as parameters
- default:
- body[param] = value;
- break;
- }
-}
+let cliOp = null;
const cli = {
- post: (path, callback) => callback({
- route: {
- path: path
+ post: (path, callback) =>
+ callback(
+ {
+ route: {
+ path: path
+ },
+ body: body,
+ method: "post"
},
- body: body,
- method: "post"
- },
- {
- query: {},
- send: (data) => console.log(data),
- }),
+ {
+ query: {},
+ send: (data) => console.log(data),
+ }
+ ),
get: (path, callback) => callback({
route: {
path: path
@@ -91,4 +60,29 @@ for (var method in RoutesMap) {
});
}
}
-}
\ No newline at end of file
+}
+
+// method to bridge api calls in similar manner given a site already loaded into scope
+export function cliBridge(op, body = {}) {
+ let req = {
+ route: {
+ path: `${HAXCMS.basePath}${HAXCMS.systemRequestBase}${route}`
+ },
+ body: body,
+ method: "post"
+ };
+ let res = {
+ query: {},
+ send: (data) => console.log(data),
+ };
+ const rMethod = req.method.toLowerCase();
+ if (HAXCMS.validateJWT(req, res)) {
+ // call the method
+ RoutesMap.RoutesMap[rMethod][op](req, res);
+ }
+ else {
+ console.error("route connection issue");
+ }
+}
+
+export { cli };
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/d-d-d/lib/DDDStyles.js b/src/public/build/es6/node_modules/@haxtheweb/d-d-d/lib/DDDStyles.js
index 708e346..d3709f6 100644
--- a/src/public/build/es6/node_modules/@haxtheweb/d-d-d/lib/DDDStyles.js
+++ b/src/public/build/es6/node_modules/@haxtheweb/d-d-d/lib/DDDStyles.js
@@ -1111,7 +1111,6 @@ import{css as d,html as a,unsafeCSS as t}from"../../../lit/index.js";import{Simp
border-top-style: solid;
margin: 0 auto;
padding: 0;
- transition:;
}
.h-invert {
@@ -1477,16 +1476,6 @@ import{css as d,html as a,unsafeCSS as t}from"../../../lit/index.js";import{Simp
content: "+";
margin-left: auto;
text-align: right;
- color: light-dark(
- var(
- --lowContrast-override,
- var(--ddd-theme-primary, var(--ddd-theme-default-nittanyNavy))
- ),
- var(
- --lowContrast-override,
- var(--ddd-theme-primary, var(--ddd-theme-default-linkLight))
- )
- );
font-weight: var(--ddd-font-weight-regular);
font-size: var(--ddd-font-size-m);
line-height: 1;
diff --git a/src/public/build/es6/node_modules/@haxtheweb/la-tex/lib/latex2html5.js b/src/public/build/es6/node_modules/@haxtheweb/la-tex/lib/latex2html5.js
index c561de1..79dbbd4 100644
--- a/src/public/build/es6/node_modules/@haxtheweb/la-tex/lib/latex2html5.js
+++ b/src/public/build/es6/node_modules/@haxtheweb/la-tex/lib/latex2html5.js
@@ -11,4 +11,4 @@
* @contributor David Ellis
* @license MIT
*/
-var a=t("url"),s=t("child_process").spawn,u=t("fs");n.XMLHttpRequest=function(){var n,c,f=this,h=t("http"),d=t("https"),p={},g=!1,v={"User-Agent":"node-XMLHttpRequest",Accept:"*/*"},b={},_={},w=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","content-transfer-encoding","cookie","cookie2","date","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"],M=["TRACE","TRACK","CONNECT"],E=!1,T=!1,S={};this.UNSENT=0,this.OPENED=1,this.HEADERS_RECEIVED=2,this.LOADING=3,this.DONE=4,this.readyState=this.UNSENT,this.onreadystatechange=null,this.responseText="",this.responseXML="",this.status=null,this.statusText=null,this.withCredentials=!1;this.open=function(t,e,n,i,a){if(this.abort(),T=!1,!function(t){return t&&-1===M.indexOf(t)}(t))throw new Error("SecurityError: Request method not allowed");p={method:t,url:e.toString(),async:"boolean"!=typeof n||n,user:i||null,password:a||null},setState(this.OPENED)},this.setDisableHeaderCheck=function(t){g=t},this.setRequestHeader=function(t,e){if(this.readyState!==this.OPENED)throw new Error("INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN");if(function(t){return g||t&&-1===w.indexOf(t.toLowerCase())}(t)){if(E)throw new Error("INVALID_STATE_ERR: send flag is true");t=_[t.toLowerCase()]||t,_[t.toLowerCase()]=t,b[t]=b[t]?b[t]+", "+e:e}else console.warn('Refused to set unsafe header "'+t+'"')},this.getResponseHeader=function(t){return"string"==typeof t&&this.readyState>this.OPENED&&c&&c.headers&&c.headers[t.toLowerCase()]&&!T?c.headers[t.toLowerCase()]:null},this.getAllResponseHeaders=function(){if(this.readyState"+e[1]+"":t})).join("\n"),n=document.createElement("ul");return n.className="math",n.innerHTML=e,n}},{}],112:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){var e=document.createElement("div");return e.id="latex-macros",e.style.display="none",e.className="verbatim",e.innerHTML=a.default,e};var a=i(t("latex2js-macros"))},{"@babel/runtime/helpers/interopRequireDefault":6,"latex2js-macros":119}],113:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){var e=document.createElement("span");return e.className="math",e.innerHTML=t.lines.join("\n"),e}},{}],114:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){var e=document.createElement("span");return e.className="math nicebox",e.innerHTML=t.lines.join("\n"),e}},{}],115:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireWildcard"),a=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){var e=u.psgraph.getSize.call(t),n=("width: ".concat(e.width,"px; height: ").concat(e.height,"px;"),"".concat(e.width,"px")),i="".concat(e.height,"px"),a=document.createElement("div");a.className="pspicture",a.style.width=n,a.style.height=i;var f=document.createElementNS("http://www.w3.org/2000/svg","svg");f.setAttribute("width",n),f.setAttribute("height",i);var h=c.select(f);t.$el=a,u.psgraph.pspicture.call(t,h),a.appendChild(f);var d=t.env,p=t.plot,g=d.sliders;g&&g.length&&g.forEach((function(t){var e=t.latex,n=t.scalar,i=t.variable,c=t.value,f=t.min,g=t.max,v=document.createElement("label"),b=document.createTextNode(e),_=document.createElement("input");_.setAttribute("min",f*n),_.setAttribute("max",g*n),_.setAttribute("type","range"),_.setAttribute("value",c),v.appendChild(b),v.appendChild(_),a.appendChild(v),_.addEventListener("input",(function(t){!function onChange(t){var e=t.target.value/n;d.variables[i]=e,h.selectAll(".psplot").remove(),Object.entries(p).forEach((function(t){var e=(0,s.default)(t,2),n=e[0],i=e[1];n.match(/psplot/)&&i.forEach((function(t){var e=t.fn.call(t.env,t.match);u.psgraph[n]&&e&&h&&u.psgraph[n].call(e,h)}))}))}(t)}))}));return a};var s=a(t("@babel/runtime/helpers/slicedToArray")),u=t("latex2js-pstricks"),c=i(t("d3"))},{"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/interopRequireWildcard":7,"@babel/runtime/helpers/slicedToArray":10,d3:73,"latex2js-pstricks":121}],116:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){return document.createElement("input")}},{}],117:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){var e=document.createElement("pre");return e.className="verbatim",e.innerHTML=t.lines.join("\n"),e}},{}],118:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=render,Object.defineProperty(n,"pspicture",{enumerable:!0,get:function get(){return u.default}}),Object.defineProperty(n,"nicebox",{enumerable:!0,get:function get(){return c.default}}),Object.defineProperty(n,"enumerate",{enumerable:!0,get:function get(){return f.default}}),Object.defineProperty(n,"verbatim",{enumerable:!0,get:function get(){return h.default}}),Object.defineProperty(n,"math",{enumerable:!0,get:function get(){return d.default}}),Object.defineProperty(n,"macros",{enumerable:!0,get:function get(){return p.default}}),n.init=void 0;var a=i(t("latex2js")),s=t("latex2js-mathjax"),u=i(t("./components/pspicture")),c=i(t("./components/nicebox")),f=i(t("./components/enumerate")),h=i(t("./components/verbatim")),d=(i(t("./components/slider")),i(t("./components/math"))),p=i(t("./components/macros")),g={pspicture:u.default,nicebox:c.default,enumerate:f.default,verbatim:h.default,math:d.default,macros:p.default};function render(t,e){var n=function done(){var n=(new a.default).parse(t),i=document.createElement("div");i.className="latex-container",n&&n.forEach&&n.forEach((function(t){g.hasOwnProperty(t.type)&&i.appendChild(g[t.type](t))})),e(i)};if((0,s.getMathJax)())return n();(0,s.loadMathJax)(n)}n.init=function init(){(0,s.loadMathJax)(),document.querySelectorAll("la-tex:not([hydrated])").forEach((function(t){render(t.innerHTML,(function(e){t.shadowRoot.querySelector(".wrapper").innerHTML="",t.shadowRoot.querySelector(".wrapper").appendChild(e),t.hydrated=!0}))}))}},{"./components/enumerate":111,"./components/macros":112,"./components/math":113,"./components/nicebox":114,"./components/pspicture":115,"./components/slider":116,"./components/verbatim":117,"@babel/runtime/helpers/interopRequireDefault":6,latex2js:126,"latex2js-mathjax":120}],119:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=i(t("@babel/runtime/helpers/taggedTemplateLiteral"));function _templateObject_67ec83207b7811efafde790a70668382(){var t=(0,a.default)(["\n $$\n % create the definition symbol\n def\bydef{stackrel{Delta}{=}}\n %defcircconv{otimes}\n defcircconv{circledast}\n\n \newcommand{qed}{mbox{ } Box}\n\n\n \newcommand{infint}{int_{-infty}^{infty}}\n\n % z transform\n \newcommand{ztp}{ ~~ mathop{mathcal{Z}}limits_{longleftrightarrow} ~~ }\n \newcommand{iztp}{ ~~ mathop{mathcal{Z}^{-1}}limits_{longleftrightarrow} ~~ }\n % fourier transform pair\n \newcommand{\ftp}{ ~~ mathop{mathcal{F}}limits_{longleftrightarrow} ~~ }\n \newcommand{iftp}{ ~~ mathop{mathcal{F}^{-1}}limits_{longleftrightarrow} ~~ }\n % laplace transform\n \newcommand{ltp}{ ~~ mathop{mathcal{L}}limits_{longleftrightarrow} ~~ }\n \newcommand{iltp}{ ~~ mathop{mathcal{L}^{-1}}limits_{longleftrightarrow} ~~ }\n\n \newcommand{\ftrans}[1]{ mathcal{F} left{#1\right} }\n \newcommand{iftrans}[1]{ mathcal{F}^{-1} left{#1\right} }\n \newcommand{ztrans}[1]{ mathcal{Z} left{#1\right} }\n \newcommand{iztrans}[1]{ mathcal{Z}^{-1} left{#1\right} }\n \newcommand{ltrans}[1]{ mathcal{L} left{#1\right} }\n \newcommand{iltrans}[1]{ mathcal{L}^{-1} left{#1\right} }\n\n\n % coordinate vector relative to a basis (linear algebra)\n \newcommand{cvrb}[2]{left[ \vec{#1} \right]_{#2} }\n % change of coordinate matrix (linear algebra)\n \newcommand{cocm}[2]{ mathop{P}limits_{#2 leftarrow #1} }\n % Transformed vector set\n \newcommand{\tset}[3]{{#1lr{\vec{#2}_1}, #1lr{\vec{#2}_2}, dots, #1lr{\vec{#2}_{#3}}}}\n % sum transformed vector set\n \newcommand{\tsetcsum}[4]{{#1}_1#2(\vec{#3}_1) + {#1}_2#2(\vec{#3}_2) + cdots + {#1}_{#4}#2(\vec{#3}_{#4})}\n \newcommand{\tsetcsumall}[4]{#2lr{{#1}_1\vec{#3}_1 + {#1}_2\vec{#3}_2 + cdots + {#1}_{#4}\vec{#3}_{#4}}}\n \newcommand{cvecsum}[3]{{#1}_1\vec{#2}_1 + {#1}_2\vec{#2}_2 + cdots + {#1}_{#3}\vec{#2}_{#3}}\n\n\n % function def\n \newcommand{\fndef}[3]{#1:#2 \to #3}\n % vector set\n \newcommand{\vset}[2]{{\vec{#1}_1, \vec{#1}_2, dots, \vec{#1}_{#2}}}\n % absolute value\n \newcommand{abs}[1]{left| #1 \right|}\n % vector norm\n \newcommand{\norm}[1]{left|left| #1 \right|\right|}\n % trans\n \newcommand{\trans}{mapsto}\n % evaluate integral\n \newcommand{evalint}[3]{left. #1 \right|_{#2}^{#3}}\n % slist\n \newcommand{slist}[2]{{#1}_{1},{#1}_{2},dots,{#1}_{#2}}\n\n % vectors\n \newcommand{\vc}[1]{\textbf{#1}}\n\n % real\n \newcommand{Real}[1]{{Re mit{e}left{{#1}\right}}}\n % imaginary\n \newcommand{Imag}[1]{{Im mit{m}left{{#1}\right}}}\n\n \newcommand{mcal}[1]{mathcal{#1}}\n \newcommand{\bb}[1]{mathbb{#1}}\n \newcommand{N}{mathbb{N}}\n \newcommand{Z}{mathbb{Z}}\n \newcommand{Q}{mathbb{Q}}\n \newcommand{R}{mathbb{R}}\n \newcommand{C}{mathbb{C}}\n \newcommand{I}{mathbb{I}}\n \newcommand{Th}[1]{mathopmathrm{Th(#1)}}\n \newcommand{intersect}{cap}\n \newcommand{\\union}{cup}\n \newcommand{intersectop}{\bigcap}\n \newcommand{\\unionop}{\bigcup}\n \newcommand{setdiff}{\backslash}\n \newcommand{iso}{cong}\n \newcommand{aut}[1]{mathop{mathrm{Aut(#1)}}}\n \newcommand{inn}[1]{mathop{mathrm{Inn(#1)}}}\n \newcommand{Ann}[1]{mathop{mathrm{Ann(#1)}}}\n \newcommand{dom}[1]{mathop{mathrm{dom} #1}}\n \newcommand{cod}[1]{mathop{mathrm{cod} #1}}\n \newcommand{id}{mathrm{id}}\n \newcommand{st}{ | }\n \newcommand{mbf}[1]{mathbf{#1}}\n \newcommand{enclose}[1]{leftlangle #1\right\rangle}\n \newcommand{lr}[1]{left( #1\right)}\n \newcommand{lrsq}[1]{left[ #1\right]}\n \newcommand{op}{mathrm{op}}\n \newcommand{dotarr}{dot{\rightarrow}}\n %Category Names:\n \newcommand{Grp}{mathbf{Grp}}\n \newcommand{Ab}{mathbf{Ab}}\n \newcommand{Set}{mathbf{Set}}\n \newcommand{Matr}{mathbf{Matr}}\n \newcommand{IntDom}{mathbf{IntDom}}\n \newcommand{Field}{mathbf{Field}}\n \newcommand{Vect}{mathbf{Vect}}\n\n \newcommand{\thm}[1]{\begin{theorem} #1 end{theorem}}\n \newcommand{clm}[1]{\begin{claim} #1 end{claim}}\n \newcommand{cor}[1]{\begin{corollary} #1 end{corollary}}\n \newcommand{ex}[1]{\begin{example} #1 end{example}}\n \newcommand{prf}[1]{\begin{proof} #1 end{proof}}\n \newcommand{prbm}[1]{\begin{problem} #1 end{problem}}\n \newcommand{soln}[1]{\begin{solution} #1 end{solution}}\n \newcommand{\rmk}[1]{\begin{remark} #1 end{remark}}\n \newcommand{defn}[1]{\begin{definition} #1 end{definition}}\n\n \newcommand{ifff}{LeftRightArrow}\n\n \x3c!-- For the set of reals and integers --\x3e\n \newcommand{\rr}{R}\n \newcommand{\reals}{R}\n \newcommand{ii}{Z}\n \newcommand{cc}{C}\n \newcommand{\nn}{N}\n \newcommand{\nats}{N}\n\n \x3c!-- For terms being indexed.\n Puts them in standard font face and creates an index entry.\n arg: The term being defined.\n \newcommand{pointer}[1]{#1index{#1}} --\x3e\n\n \x3c!-- For bold terms to be index, but defined elsewhere\n Puts them in bold face and creates an index entry.\n arg: The term being defined. --\x3e\n \newcommand{strong}[1]{\textbf{#1}}\n\n \x3c!-- For set names.\n Puts them in italics. In math mode, yields decent spacing.\n arg: The name of the set. --\x3e\n \newcommand{set}[1]{\textit{#1}}\n\n $$\n "],["\n $$\n % create the definition symbol\n \\def\\bydef{\\stackrel{\\Delta}{=}}\n %\\def\\circconv{\\otimes}\n \\def\\circconv{\\circledast}\n\n \\newcommand{\\qed}{\\mbox{ } \\Box}\n\n\n \\newcommand{\\infint}{\\int_{-\\infty}^{\\infty}}\n\n % z transform\n \\newcommand{\\ztp}{ ~~ \\mathop{\\mathcal{Z}}\\limits_{\\longleftrightarrow} ~~ }\n \\newcommand{\\iztp}{ ~~ \\mathop{\\mathcal{Z}^{-1}}\\limits_{\\longleftrightarrow} ~~ }\n % fourier transform pair\n \\newcommand{\\ftp}{ ~~ \\mathop{\\mathcal{F}}\\limits_{\\longleftrightarrow} ~~ }\n \\newcommand{\\iftp}{ ~~ \\mathop{\\mathcal{F}^{-1}}\\limits_{\\longleftrightarrow} ~~ }\n % laplace transform\n \\newcommand{\\ltp}{ ~~ \\mathop{\\mathcal{L}}\\limits_{\\longleftrightarrow} ~~ }\n \\newcommand{\\iltp}{ ~~ \\mathop{\\mathcal{L}^{-1}}\\limits_{\\longleftrightarrow} ~~ }\n\n \\newcommand{\\ftrans}[1]{ \\mathcal{F} \\left\\{#1\\right\\} }\n \\newcommand{\\iftrans}[1]{ \\mathcal{F}^{-1} \\left\\{#1\\right\\} }\n \\newcommand{\\ztrans}[1]{ \\mathcal{Z} \\left\\{#1\\right\\} }\n \\newcommand{\\iztrans}[1]{ \\mathcal{Z}^{-1} \\left\\{#1\\right\\} }\n \\newcommand{\\ltrans}[1]{ \\mathcal{L} \\left\\{#1\\right\\} }\n \\newcommand{\\iltrans}[1]{ \\mathcal{L}^{-1} \\left\\{#1\\right\\} }\n\n\n % coordinate vector relative to a basis (linear algebra)\n \\newcommand{\\cvrb}[2]{\\left[ \\vec{#1} \\right]_{#2} }\n % change of coordinate matrix (linear algebra)\n \\newcommand{\\cocm}[2]{ \\mathop{P}\\limits_{#2 \\leftarrow #1} }\n % Transformed vector set\n \\newcommand{\\tset}[3]{\\{#1\\lr{\\vec{#2}_1}, #1\\lr{\\vec{#2}_2}, \\dots, #1\\lr{\\vec{#2}_{#3}}\\}}\n % sum transformed vector set\n \\newcommand{\\tsetcsum}[4]{{#1}_1#2(\\vec{#3}_1) + {#1}_2#2(\\vec{#3}_2) + \\cdots + {#1}_{#4}#2(\\vec{#3}_{#4})}\n \\newcommand{\\tsetcsumall}[4]{#2\\lr{{#1}_1\\vec{#3}_1 + {#1}_2\\vec{#3}_2 + \\cdots + {#1}_{#4}\\vec{#3}_{#4}}}\n \\newcommand{\\cvecsum}[3]{{#1}_1\\vec{#2}_1 + {#1}_2\\vec{#2}_2 + \\cdots + {#1}_{#3}\\vec{#2}_{#3}}\n\n\n % function def\n \\newcommand{\\fndef}[3]{#1:#2 \\to #3}\n % vector set\n \\newcommand{\\vset}[2]{\\{\\vec{#1}_1, \\vec{#1}_2, \\dots, \\vec{#1}_{#2}\\}}\n % absolute value\n \\newcommand{\\abs}[1]{\\left| #1 \\right|}\n % vector norm\n \\newcommand{\\norm}[1]{\\left|\\left| #1 \\right|\\right|}\n % trans\n \\newcommand{\\trans}{\\mapsto}\n % evaluate integral\n \\newcommand{\\evalint}[3]{\\left. #1 \\right|_{#2}^{#3}}\n % slist\n \\newcommand{\\slist}[2]{{#1}_{1},{#1}_{2},\\dots,{#1}_{#2}}\n\n % vectors\n \\newcommand{\\vc}[1]{\\textbf{#1}}\n\n % real\n \\newcommand{\\Real}[1]{{\\Re \\mit{e}\\left\\{{#1}\\right\\}}}\n % imaginary\n \\newcommand{\\Imag}[1]{{\\Im \\mit{m}\\left\\{{#1}\\right\\}}}\n\n \\newcommand{\\mcal}[1]{\\mathcal{#1}}\n \\newcommand{\\bb}[1]{\\mathbb{#1}}\n \\newcommand{\\N}{\\mathbb{N}}\n \\newcommand{\\Z}{\\mathbb{Z}}\n \\newcommand{\\Q}{\\mathbb{Q}}\n \\newcommand{\\R}{\\mathbb{R}}\n \\newcommand{\\C}{\\mathbb{C}}\n \\newcommand{\\I}{\\mathbb{I}}\n \\newcommand{\\Th}[1]{\\mathop\\mathrm{Th(#1)}}\n \\newcommand{\\intersect}{\\cap}\n \\newcommand{\\\\union}{\\cup}\n \\newcommand{\\intersectop}{\\bigcap}\n \\newcommand{\\\\unionop}{\\bigcup}\n \\newcommand{\\setdiff}{\\backslash}\n \\newcommand{\\iso}{\\cong}\n \\newcommand{\\aut}[1]{\\mathop{\\mathrm{Aut(#1)}}}\n \\newcommand{\\inn}[1]{\\mathop{\\mathrm{Inn(#1)}}}\n \\newcommand{\\Ann}[1]{\\mathop{\\mathrm{Ann(#1)}}}\n \\newcommand{\\dom}[1]{\\mathop{\\mathrm{dom} #1}}\n \\newcommand{\\cod}[1]{\\mathop{\\mathrm{cod} #1}}\n \\newcommand{\\id}{\\mathrm{id}}\n \\newcommand{\\st}{\\ |\\ }\n \\newcommand{\\mbf}[1]{\\mathbf{#1}}\n \\newcommand{\\enclose}[1]{\\left\\langle #1\\right\\rangle}\n \\newcommand{\\lr}[1]{\\left( #1\\right)}\n \\newcommand{\\lrsq}[1]{\\left[ #1\\right]}\n \\newcommand{\\op}{\\mathrm{op}}\n \\newcommand{\\dotarr}{\\dot{\\rightarrow}}\n %Category Names:\n \\newcommand{\\Grp}{\\mathbf{Grp}}\n \\newcommand{\\Ab}{\\mathbf{Ab}}\n \\newcommand{\\Set}{\\mathbf{Set}}\n \\newcommand{\\Matr}{\\mathbf{Matr}}\n \\newcommand{\\IntDom}{\\mathbf{IntDom}}\n \\newcommand{\\Field}{\\mathbf{Field}}\n \\newcommand{\\Vect}{\\mathbf{Vect}}\n\n \\newcommand{\\thm}[1]{\\begin{theorem} #1 \\end{theorem}}\n \\newcommand{\\clm}[1]{\\begin{claim} #1 \\end{claim}}\n \\newcommand{\\cor}[1]{\\begin{corollary} #1 \\end{corollary}}\n \\newcommand{\\ex}[1]{\\begin{example} #1 \\end{example}}\n \\newcommand{\\prf}[1]{\\begin{proof} #1 \\end{proof}}\n \\newcommand{\\prbm}[1]{\\begin{problem} #1 \\end{problem}}\n \\newcommand{\\soln}[1]{\\begin{solution} #1 \\end{solution}}\n \\newcommand{\\rmk}[1]{\\begin{remark} #1 \\end{remark}}\n \\newcommand{\\defn}[1]{\\begin{definition} #1 \\end{definition}}\n\n \\newcommand{\\ifff}{\\LeftRightArrow}\n\n \x3c!-- For the set of reals and integers --\x3e\n \\newcommand{\\rr}{\\R}\n \\newcommand{\\reals}{\\R}\n \\newcommand{\\ii}{\\Z}\n \\newcommand{\\cc}{\\C}\n \\newcommand{\\nn}{\\N}\n \\newcommand{\\nats}{\\N}\n\n \x3c!-- For terms being indexed.\n Puts them in standard font face and creates an index entry.\n arg: The term being defined.\n \\newcommand{\\pointer}[1]{#1\\index{#1}} --\x3e\n\n \x3c!-- For bold terms to be index, but defined elsewhere\n Puts them in bold face and creates an index entry.\n arg: The term being defined. --\x3e\n \\newcommand{\\strong}[1]{\\textbf{#1}}\n\n \x3c!-- For set names.\n Puts them in italics. In math mode, yields decent spacing.\n arg: The name of the set. --\x3e\n \\newcommand{\\set}[1]{\\textit{#1}}\n\n $$\n "]);return _templateObject_67ec83207b7811efafde790a70668382=function _templateObject_67ec83207b7811efafde790a70668382(){return t},t}var s=String.raw(_templateObject_67ec83207b7811efafde790a70668382());n.default=s},{"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/taggedTemplateLiteral":11}],120:[function(t,e,n){(function(e){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.loadMathJax=n.getMathJax=n.DEFAULT_OPTIONS=n.DEFAULT_SCRIPT=void 0;var a=i(t("load-script")),s=e.env.MATHJAX_CDN||"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js";n.DEFAULT_SCRIPT=s;var u={TeX:{extensions:["AMSmath.js","AMSsymbols.js"]},extensions:["tex2jax.js"],showProcessingMessages:!1,jax:["input/TeX","output/HTML-CSS"],messageStyle:"none",showMathMenu:!1,showMathMenuMSIE:!1,tex2jax:{processEnvironments:!0,inlineMath:[["$","$"],["\\(","\\)"]],displayMath:[["$$","$$"],["\\[","\\]"]],preview:"none",processEscapes:!0},"HTML-CSS":{linebreaks:{automatic:!0,width:"container"}}};n.DEFAULT_OPTIONS=u;n.getMathJax=function getMathJax(){return"undefined"==typeof MathJax?void 0:MathJax};n.loadMathJax=function loadMathJax(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u,i=function onLoad(){MathJax.Hub.Config(n),t()};if(!e)return i();(0,a.default)(e,i)}}).call(this,t("_process"))},{"@babel/runtime/helpers/interopRequireDefault":6,_process:100,"load-script":99}],121:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"pstricks",{enumerable:!0,get:function get(){return a.default}}),Object.defineProperty(n,"psgraph",{enumerable:!0,get:function get(){return s.default}}),n.default=void 0;var a=i(t("./lib/pstricks")),s=i(t("./lib/psgraph")),u={pstricks:a.default,psgraph:s.default};n.default=u},{"./lib/psgraph":122,"./lib/pstricks":123,"@babel/runtime/helpers/interopRequireDefault":6}],122:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireWildcard"),a=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var s=a(t("@babel/runtime/helpers/slicedToArray")),u=t("latex2js-utils"),c=i(t("d3"));function arrow(t,e,n,i){var a=Math.PI/6,s=n-t,u=i-e,c=Math.sqrt(s*s+u*u),f=Math.cos(a),h=Math.sin(a),d=8/c,p=n-(s*f-u*h)*d,g=i-(u*f+s*h)*d,v=[];return v.push("M"),v.push(n),v.push(i),v.push("L"),v.push(p),v.push(g),p=n-(s*(f=Math.cos(-a))-u*(h=Math.sin(-a)))*d,g=i-(u*f+s*h)*d,v.push(p),v.push(g),v.push("Z"),v.join(" ")}var f={getSize:function getSize(){this.env.scale=1;var t=Math.max(document.documentElement.clientWidth,window.innerWidth||0)-20;return t<=this.env.w*this.env.xunit&&(this.env.scale=t/this.env.w/this.env.xunit),{width:this.env.w*this.env.xunit,height:this.env.h*this.env.yunit}},psframe:function psframe(t){t.append("svg:line").attr("x1",this.x1).attr("y1",this.y1).attr("x2",this.x2).attr("y2",this.y1).style("stroke-width",2).style("stroke","rgb(0,0,0)").style("stroke-opacity",1),t.append("svg:line").attr("x1",this.x2).attr("y1",this.y1).attr("x2",this.x2).attr("y2",this.y2).style("stroke-width",2).style("stroke","rgb(0,0,0)").style("stroke-opacity",1),t.append("svg:line").attr("x1",this.x2).attr("y1",this.y2).attr("x2",this.x1).attr("y2",this.y2).style("stroke-width",2).style("stroke","rgb(0,0,0)").style("stroke-opacity",1),t.append("svg:line").attr("x1",this.x1).attr("y1",this.y2).attr("x2",this.x1).attr("y2",this.y1).style("stroke-width",2).style("stroke","rgb(0,0,0)").style("stroke-opacity",1)},pscircle:function pscircle(t){t.append("svg:circle").attr("cx",this.cx).attr("cy",this.cy).attr("r",this.r).style("stroke","black").style("fill","none").style("stroke-width",2).style("stroke-opacity",1)},psplot:function psplot(t){var e=[];e.push("M"),"solid"===this.fillstyle?(e.push(this.data[0]),e.push(u.Y.call(this.global,0))):(e.push(this.data[0]),e.push(this.data[1])),e.push("L"),this.data.forEach((function(t){e.push(t)})),"solid"===this.fillstyle&&(e.push(this.data[this.data.length-2]),e.push(u.Y.call(this.global,0)),e.push("Z")),t.append("svg:path").attr("d",e.join(" ")).attr("class","psplot").style("stroke-width",this.linewidth).style("stroke-opacity",1).style("fill","none"===this.fillstyle?"none":this.fillcolor).style("stroke",this.linecolor)},pspolygon:function pspolygon(t){var e=[];e.push("M"),e.push(this.data[0]),e.push(this.data[1]),e.push("L"),this.data.forEach((function(t){e.push(t)})),e.push("Z"),t.append("svg:path").attr("d",e.join(" ")).style("stroke-width",this.linewidth).style("stroke-opacity",1).style("fill","none"===this.fillstyle?"none":this.fillcolor).style("stroke","black")},psarc:function psarc(t){var e=[];e.push("M"),e.push(this.cx),e.push(this.cy),e.push("L"),e.push(this.A.x),e.push(this.A.y),e.push("A"),e.push(this.A.x),e.push(this.A.y),e.push(0),e.push(0),e.push(0),e.push(this.B.x),e.push(this.B.y),t.append("svg:path").attr("d",e.join(" ")).style("stroke-width",2).style("stroke-opacity",1).style("fill","blue").style("stroke","black")},psaxes:function psaxes(t){var e=[this.bottomLeft[0],this.topRight[0]],n=[this.bottomLeft[1],this.topRight[1]],i=this.origin;function line(e,n,i,a){t.append("svg:path").attr("d","M "+e+" "+n+" L "+i+" "+a).style("stroke-width",2).style("stroke","rgb(0,0,0)").style("stroke-opacity",1)}var a=function xticks(){for(var t=e[0];t<=e[1];t+=this.dx)line(t,i[1]-5,t,i[1]+5)},s=function yticks(){for(var t=n[0];t<=n[1];t+=this.dy)line(i[0]-5,t,i[0]+5,t)};line(e[0],i[1],e[1],i[1]),line(i[0],n[0],i[0],n[1]),this.ticks.match(/all/)?(a(),s()):this.ticks.match(/x/)?a():this.ticks.match(/y/)&&s(),this.arrows[0]&&(t.append("path").attr("d",arrow(e[1],i[1],e[0],i[1])).style("fill","black").style("stroke","black"),t.append("path").attr("d",arrow(i[0],n[1],i[0],n[0])).style("fill","black").style("stroke","black")),this.arrows[1]&&(t.append("path").attr("d",arrow(e[0],i[1],e[1],i[1])).style("fill","black").style("stroke","black"),t.append("path").attr("d",arrow(i[0],n[0],i[0],n[1])).style("fill","black").style("stroke","black"))},psline:function psline(t){var e=this.linewidth,n=this.linecolor;this.linestyle.match(/dotted/)?function dotted(i,a,s,u){t.append("svg:path").attr("d","M "+i+" "+a+" L "+s+" "+u).style("stroke-width",e).style("stroke",n).style("stroke-dasharray","9,5").style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2):this.linestyle.match(/dashed/)?function dashed(i,a,s,u){t.append("svg:path").attr("d","M "+i+" "+a+" L "+s+" "+u).style("stroke-width",e).style("stroke",n).style("stroke-dasharray","9,5").style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2):function solid(i,a,s,u){t.append("svg:path").attr("d","M "+i+" "+a+" L "+s+" "+u).style("stroke-width",e).style("stroke",n).style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2),this.dots[0]&&t.append("svg:circle").attr("cx",this.x1).attr("cy",this.y1).attr("r",3).style("stroke",this.linecolor).style("fill",this.linecolor).style("stroke-width",1).style("stroke-opacity",1),this.dots[1]&&t.append("svg:circle").attr("cx",this.x2).attr("cy",this.y2).attr("r",3).style("stroke",this.linecolor).style("fill",this.linecolor).style("stroke-width",1).style("stroke-opacity",1);var i=this.x1,a=this.y1,s=this.x2,u=this.y2;this.arrows[0]&&t.append("path").attr("d",arrow(s,u,i,a)).style("fill",this.linecolor).style("stroke",this.linecolor),this.arrows[1]&&t.append("path").attr("d",arrow(i,a,s,u)).style("fill",this.linecolor).style("stroke",this.linecolor)},userline:function userline(t){var e=this.linewidth,n=this.linecolor;this.linestyle.match(/dotted/)?function dotted(i,a,s,u){t.append("svg:path").attr("d","M "+i+" "+a+" L "+s+" "+u).attr("class","userline").style("stroke-width",e).style("stroke",n).style("stroke-dasharray","9,5").style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2):this.linestyle.match(/dashed/)?function dashed(i,a,s,u){t.append("svg:path").attr("d","M "+i+" "+a+" L "+s+" "+u).attr("class","userline").style("stroke-width",e).style("stroke",n).style("stroke-dasharray","9,5").style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2):function solid(i,a,s,u){t.append("svg:path").attr("class","userline").attr("d","M "+i+" "+a+" L "+s+" "+u).style("stroke-width",e).style("stroke",n).style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2),this.dots[0]&&t.append("svg:circle").attr("cx",this.x1).attr("cy",this.y1).attr("r",3).attr("class","userline").style("stroke",this.linecolor).style("fill",this.linecolor).style("stroke-width",1).style("stroke-opacity",1),this.dots[1]&&t.append("svg:circle").attr("cx",this.x2).attr("cy",this.y2).attr("r",3).attr("class","userline").style("stroke",this.linecolor).style("fill",this.linecolor).style("stroke-width",1).style("stroke-opacity",1);var i=this.x1,a=this.y1,s=this.x2,u=this.y2;this.arrows[0]&&t.append("path").attr("d",arrow(s,u,i,a)).attr("class","userline").style("fill",this.linecolor).style("stroke",this.linecolor),this.arrows[1]&&t.append("path").attr("d",arrow(i,a,s,u)).attr("class","userline").style("fill",this.linecolor).style("stroke",this.linecolor)},rput:function rput(t){var e=document.createElement("div"),n=this.x,i=this.y;e.innerHTML=this.text,e.className="math",e.style.visibility="hidden",e.style.position="absolute",e.style.top="".concat(i,"px"),e.style.left="".concat(n,"px"),t.appendChild(e);MathJax.Hub.Queue(["Typeset",MathJax.Hub,e],[function done(){var t=e.getBoundingClientRect(),a=t.width/2,s=t.height/2;e.style.visibility="visible",e.style.top="".concat(i-s,"px"),e.style.left="".concat(n-a,"px")}])},pspicture:function pspicture(t){var e=this,n=this.env,i=this.$el;Object.keys(this.plot).forEach((function(i){var a=e.plot[i];i.match(/rput/)||f.hasOwnProperty(i)&&a.forEach((function(e){e.data.global=n,f[i].call(e.data,t)}))})),t.on("touchmove",(function(){c.event.preventDefault(),userEvent(c.touches(this)[0])}),!1),t.on("mousemove",(function(){userEvent(c.mouse(this))}),!1);var a=this.plot;function userEvent(e){t.selectAll(".userline").remove(),t.selectAll(".psplot").remove();var i={};Object.entries(a||{}).forEach((function(t){var n=(0,s.default)(t,2),a=n[0],u=n[1];a.match(/uservariable/)&&u.forEach((function(t){t.env.userx=e[0],t.env.usery=e[1];var n=t.fn.call(t.env,t.match);i[t.data.name]=n.value}))})),Object.entries(a||{}).forEach((function(a){var u=(0,s.default)(a,2),c=u[0],h=u[1];c.match(/psplot/)&&h.forEach((function(e){Object.entries(i||{}).forEach((function(t){var n=(0,s.default)(t,2),i=n[0],a=n[1];e.env.variables[i]=a}));var a=e.fn.call(e.env,e.match);a.global={},Object.assign(a.global,n),f[c].call(a,t)})),c.match(/userline/)&&h.forEach((function(i){var a=i.fn.call(i.env,i.match);i.env.x2=e[0],i.env.y2=e[1],i.data.x2=i.env.x2,i.data.y2=i.env.y2,i.data.xExp2?(i.data.x2=a.userx2(e),i.data.x1=a.userx(e)):i.data.xExp&&(i.data.x2=a.userx(e)),i.data.yExp2?(i.data.y2=a.usery2(e),i.data.y1=a.usery(e)):i.data.yExp&&(i.data.y2=a.usery(e)),a.global={},Object.assign(a.global,n),Object.assign(a,i.data),f[c].call(a,t)}))}))}this.plot.rput.forEach((function(t){f.rput.call(t.data,i)}))}},h=f;n.default=h},{"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/interopRequireWildcard":7,"@babel/runtime/helpers/slicedToArray":10,d3:73,"latex2js-utils":125}],123:[function(require,module,exports){var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Functions=exports.Expressions=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")),_latex2jsUtils=require("latex2js-utils"),_latex2jsSettings=_interopRequireDefault(require("latex2js-settings")),Expressions={pspicture:/\\begin\{pspicture\}\(\s*(.*),(.*)\s*\)\(\s*(.*),(.*)\s*\)/,psframe:/\\psframe\(\s*(.*),(.*)\s*\)\(\s*(.*),(.*)\s*\)/,psplot:/\\psplot(\[[^\]]*\])?\{([^\}]*)\}\{([^\}]*)\}\{([^\}]*)\}/,psarc:new RegExp("\\\\psarc"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.type+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle),pscircle:/\\pscircle.*\(\s*(.*),(.*)\s*\)\{(.*)\}/,pspolygon:new RegExp("\\\\pspolygon"+_latex2jsUtils.RE.options+"(.*)"),psaxes:new RegExp("\\\\psaxes"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.type+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.coordsOpt+_latex2jsUtils.RE.coordsOpt),slider:new RegExp("\\\\slider"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle),psline:new RegExp("\\\\psline"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.type+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.coordsOpt),userline:new RegExp("\\\\userline"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.type+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.squiggleOpt+_latex2jsUtils.RE.squiggleOpt+_latex2jsUtils.RE.squiggleOpt+_latex2jsUtils.RE.squiggleOpt),uservariable:new RegExp("\\\\uservariable"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.squiggle),rput:/\\rput\((.*),(.*)\)\{(.*)\}/,psset:/\\psset\{(.*)\}/};exports.Expressions=Expressions;var Functions={slider:function slider(t){var e={scalar:1,min:Number(t[2]),max:Number(t[3]),variable:t[4],latex:t[5],value:Number(t[6])};return this.variables=this.variables||{},this.variables[e.variable]=e.value,this.sliders=this.sliders||[],this.sliders.push(e),t[1]&&Object.assign(e,(0,_latex2jsUtils.parseOptions)(t[1])),e},pspicture:function pspicture(t){var e={x0:Number(t[1]),y0:Number(t[2]),x1:Number(t[3]),y1:Number(t[4])},n={w:e.x1-e.x0,h:e.y1-e.y0};return Object.assign(this,e,n),Object.assign(e,n)},psframe:function psframe(t){return{x1:_latex2jsUtils.X.call(this,t[1]),y1:_latex2jsUtils.Y.call(this,t[2]),x2:_latex2jsUtils.X.call(this,t[3]),y2:_latex2jsUtils.Y.call(this,t[4])}},pscircle:function pscircle(t){return{cx:_latex2jsUtils.X.call(this,t[1]),cy:_latex2jsUtils.Y.call(this,t[2]),r:this.xunit*t[3]}},psaxes:function psaxes(t){var e={dx:1*this.xunit,dy:1*this.yunit,arrows:[0,0],dots:[0,0],ticks:"all"};if(t[1]){var n=(0,_latex2jsUtils.parseOptions)(t[1]);n.Dx&&(e.dx=Number(n.Dx)*this.xunit),n.Dy&&(e.dy=Number(n.Dy)*this.yunit)}var i=(0,_latex2jsUtils.parseArrows)(t[2]);return e.arrows=i.arrows,e.dots=i.dots,t[5]&&!t[8]?(e.origin=[_latex2jsUtils.X.call(this,t[3]),_latex2jsUtils.Y.call(this,t[4])],e.bottomLeft=[_latex2jsUtils.X.call(this,t[3]),_latex2jsUtils.Y.call(this,t[4])],e.topRight=[_latex2jsUtils.X.call(this,t[6]),_latex2jsUtils.Y.call(this,t[7])]):t[5]||t[8]?(e.origin=[_latex2jsUtils.X.call(this,t[3]),_latex2jsUtils.Y.call(this,t[4])],e.bottomLeft=[_latex2jsUtils.X.call(this,t[6]),_latex2jsUtils.Y.call(this,t[7])],e.topRight=[_latex2jsUtils.X.call(this,t[9]),_latex2jsUtils.Y.call(this,t[10])]):(e.origin=[_latex2jsUtils.X.call(this,0),_latex2jsUtils.Y.call(this,0)],e.bottomLeft=[_latex2jsUtils.X.call(this,0),_latex2jsUtils.Y.call(this,0)],e.topRight=[_latex2jsUtils.X.call(this,t[3]),_latex2jsUtils.Y.call(this,t[6])]),e},psplot:function psplot(m){var startX=_latex2jsUtils.evaluate.call(this,m[2]),endX=_latex2jsUtils.evaluate.call(this,m[3]),data=[],x,expression="";for(Object.entries(this.variables||{}).forEach((function(t){var e=(0,_slicedToArray2.default)(t,2),n=e[0],i=e[1];expression+="var "+n+" = "+i+";"})),expression+="with (Math){"+m[4]+"}",x=startX;x<=endX;x+=.005)data.push(_latex2jsUtils.X.call(this,x)),data.push(_latex2jsUtils.Y.call(this,eval(expression)));var obj={linecolor:"black",linestyle:"solid",fillstyle:"none",fillcolor:"none",linewidth:2};return m[1]&&Object.assign(obj,(0,_latex2jsUtils.parseOptions)(m[1])),obj.data=data,obj},pspolygon:function pspolygon(t){var e=this,n=t[2];if(n){var i=new RegExp(_latex2jsUtils.RE.coords,"g"),a=n.match(i),s=new RegExp(_latex2jsUtils.RE.coords),u=[];a.forEach((function(t){var n=s.exec(t);u.push(_latex2jsUtils.X.call(e,n[1])),u.push(_latex2jsUtils.Y.call(e,n[2]))}));var c={linecolor:"black",linestyle:"solid",fillstyle:"none",fillcolor:"black",linewidth:2,data:u};return t[1]&&Object.assign(c,(0,_latex2jsUtils.parseOptions)(t[1])),c}},psarc:function psarc(t){var e=(0,_latex2jsUtils.parseArrows)(t[2]),n={linecolor:"black",linestyle:"solid",fillstyle:"solid",fillcolor:"black",linewidth:2,arrows:e.arrows,dots:e.dots,cx:_latex2jsUtils.X.call(this,0),cy:_latex2jsUtils.Y.call(this,0)};return t[1]&&Object.assign(n,(0,_latex2jsUtils.parseOptions)(t[1])),t[3]&&(n.cx=_latex2jsUtils.X.call(this,t[3])),t[4]&&(n.cy=_latex2jsUtils.Y.call(this,t[4])),n.r=Number(t[5])*this.xunit,n.angleA=Number(t[6])*Math.PI/180,n.angleB=Number(t[7])*Math.PI/180,n.A={x:_latex2jsUtils.X.call(this,Number(t[5])*Math.cos(n.angleA)),y:_latex2jsUtils.Y.call(this,Number(t[5])*Math.sin(n.angleA))},n.B={x:_latex2jsUtils.X.call(this,Number(t[5])*Math.cos(n.angleB)),y:_latex2jsUtils.Y.call(this,Number(t[5])*Math.sin(n.angleB))},n},psline:function psline(t){var e=t[1],n=t[2],i=(0,_latex2jsUtils.parseArrows)(n),a={linecolor:"black",linestyle:"solid",fillstyle:"solid",fillcolor:"black",linewidth:2,arrows:i.arrows,dots:i.dots};return t[5]?(a.x1=_latex2jsUtils.X.call(this,t[3]),a.y1=_latex2jsUtils.Y.call(this,t[4]),a.x2=_latex2jsUtils.X.call(this,t[6]),a.y2=_latex2jsUtils.Y.call(this,t[7])):(a.x1=_latex2jsUtils.X.call(this,0),a.y1=_latex2jsUtils.Y.call(this,0),a.x2=_latex2jsUtils.X.call(this,t[3]),a.y2=_latex2jsUtils.Y.call(this,t[4])),e&&Object.assign(a,(0,_latex2jsUtils.parseOptions)(e)),"string"==typeof a.linewidth&&(a.linewidth=2),a},uservariable:function uservariable(m){var options=m[1],coords=[];this.userx&&this.usery?(coords.push(Number(this.userx)),coords.push(Number(this.usery))):(coords.push(_latex2jsUtils.X.call(this,m[3])),coords.push(_latex2jsUtils.Y.call(this,m[4])));var nx1=_latex2jsUtils.Xinv.call(this,coords[0]),ny1=_latex2jsUtils.Yinv.call(this,coords[1]),expx1="var x = "+nx1+";",expy1="var y = "+ny1+";",obj={name:m[2],x:_latex2jsUtils.X.call(this,m[3]),y:_latex2jsUtils.Y.call(this,m[4]),func:m[5],value:eval(expx1+expy1+m[5])};return obj},userline:function userline(m){var _this2=this,options=m[1],lineType=m[2],l=(0,_latex2jsUtils.parseArrows)(lineType),arrows=l.arrows,dots=l.dots,xExp=m[7],yExp=m[8];xExp&&(xExp="with (Math){"+xExp.replace(/^\{/,"").replace(/\}$/,"")+"}"),yExp&&(yExp="with (Math){"+yExp.replace(/^\{/,"").replace(/\}$/,"")+"}");var xExp2=m[9],yExp2=m[10];xExp2&&(xExp2="with (Math){"+xExp2.replace(/^\{/,"").replace(/\}$/,"")+"}"),yExp2&&(yExp2="with (Math){"+yExp2.replace(/^\{/,"").replace(/\}$/,"")+"}");var expression="";Object.entries(this.variables||{}).forEach((function(t){var e=(0,_slicedToArray2.default)(t,2),n=e[0],i=e[1];expression+="var "+n+" = "+i+";"}));var obj={x1:_latex2jsUtils.X.call(this,m[3]),y1:_latex2jsUtils.Y.call(this,m[4]),x2:_latex2jsUtils.X.call(this,m[5]),y2:_latex2jsUtils.Y.call(this,m[6]),xExp,yExp,xExp2,yExp2,userx:function userx(coords){var nx1=_latex2jsUtils.Xinv.call(_this2,coords[0]),ny1=_latex2jsUtils.Yinv.call(_this2,coords[1]),expx1="var x = "+nx1+";",expy1="var y = "+ny1+";";return _latex2jsUtils.X.call(_this2,eval(expression+expy1+expx1+xExp))},usery:function usery(coords){var nx2=_latex2jsUtils.Xinv.call(_this2,coords[0]),ny2=_latex2jsUtils.Yinv.call(_this2,coords[1]),expx2="var x = "+nx2+";",expy2="var y = "+ny2+";";return _latex2jsUtils.Y.call(_this2,eval(expression+expy2+expx2+yExp))},userx2:function userx2(coords){var nx3=_latex2jsUtils.Xinv.call(_this2,coords[0]),ny3=_latex2jsUtils.Yinv.call(_this2,coords[1]),expx3="var x = "+nx3+";",expy3="var y = "+ny3+";";return _latex2jsUtils.X.call(_this2,eval(expression+expy3+expx3+xExp2))},usery2:function usery2(coords){var nx4=_latex2jsUtils.Xinv.call(_this2,coords[0]),ny4=_latex2jsUtils.Yinv.call(_this2,coords[1]),expx4="var x = "+nx4+";",expy4="var y = "+ny4+";";return _latex2jsUtils.Y.call(_this2,eval(expression+expy4+expx4+yExp2))},linecolor:"black",linestyle:"solid",fillstyle:"solid",fillcolor:"black",linewidth:2,arrows,dots};return options&&Object.assign(obj,(0,_latex2jsUtils.parseOptions)(options)),"string"==typeof obj.linewidth&&(obj.linewidth=2),obj},rput:function rput(t){return{x:_latex2jsUtils.X.call(this,t[1]),y:_latex2jsUtils.Y.call(this,t[2]),text:t[3]}},psset:function psset(t){var e=t[1].split(",").map((function(t){return t.split("=")})),n={};return e.forEach((function(t){var e=t[0],i=t[1];Object.keys(_latex2jsSettings.default.Expressions).forEach((function(t){var a=_latex2jsSettings.default.Expressions[t];e.match(a)&&_latex2jsSettings.default.Functions[t](n,i)}))})),n}};exports.Functions=Functions;var _default={Expressions,Functions};exports.default=_default},{"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/slicedToArray":10,"latex2js-settings":124,"latex2js-utils":125}],124:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.Functions=n.Expressions=void 0;var i=t("latex2js-utils"),a={fillcolor:/^fillcolor$/,fillstyle:/^fillstyle$/,linecolor:/^linecolor$/,linestyle:/^linestyle$/,unit:/^unit/,runit:/^runit/,xunit:/^xunit/,yunit:/^yunit/};n.Expressions=a;var s={fillcolor:function fillcolor(t,e){t.fillcolor=e},fillstyle:function fillstyle(t,e){t.fillstyle=e},linecolor:function linecolor(t,e){t.linecolor=e},linestyle:function linestyle(t,e){t.linestyle=e},unit:function unit(t,e){e=(0,i.convertUnits)(e),t.unit=e,t.runit=e,t.xunit=e,t.yunit=e},runit:function runit(t,e){e=(0,i.convertUnits)(e),t.runit=e},xunit:function xunit(t,e){e=(0,i.convertUnits)(e),t.xunit=e},yunit:function yunit(t,e){e=(0,i.convertUnits)(e),t.yunit=e}};n.Functions=s;var u={Expressions:a,Functions:s};n.default=u},{"latex2js-utils":125}],125:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.Yinv=exports.Y=exports.Xinv=exports.X=exports.evaluate=exports.parseArrows=exports.parseOptions=exports.RE=exports.convertUnits=exports.matchrepl=exports.simplerepl=void 0;var simplerepl=function simplerepl(t,e){return function(n,i){return i.replace(t,e)}};exports.simplerepl=simplerepl;var matchrepl=function matchrepl(t,e){return function(n,i){return Array.isArray(n)&&n.forEach((function(n){var a=n.match(t);i=i.replace(a.input,e(a))})),i}};exports.matchrepl=matchrepl;var convertUnits=function convertUnits(t){var e=null;return(e=t.match(/([^c]+)\s*cm/))?50*Number(e[1]):(e=t.match(/([^i]+)\s*in/))?20*Number(e[1]):(e=t.match(/(.*)/))?50*Number(e[1]):Number(t)};exports.convertUnits=convertUnits;var RE={options:"(\\[[^\\]]*\\])?",type:"(\\{[^\\}]*\\})?",squiggle:"\\{([^\\}]*)\\}",squiggleOpt:"(\\{[^\\}]*\\})?",coordsOpt:"(\\(\\s*([^\\)]*),([^\\)]*)\\s*\\))?",coords:"\\(\\s*([^\\)]*),([^\\)]*)\\s*\\)"};exports.RE=RE;var parseOptions=function parseOptions(t){var e=t.replace(/[\]\[]/g,"").split(","),n={};return e.forEach((function(t){var e=t.split("=");2==e.length&&(n[e[0].trim()]=e[1].trim())})),n};exports.parseOptions=parseOptions;var parseArrows=function parseArrows(t){var e=[0,0],n=[0,0];if(t){var i=t.match(/\{([^\-]*)?\-([^\-]*)?\}/);i&&(i[1]&&(i[1].match(/\*/)?n[0]=1:i[1].match(/)&&(e[0]=1)),i[2]&&(i[2].match(/\*/)?n[1]=1:i[2].match(/>/)&&(e[1]=1)))}return{arrows:e,dots:n}};exports.parseArrows=parseArrows;var evaluate=function evaluate(exp){var _this=this,num=Number(exp);if(isNaN(num)){var expression="";return this.variables=this.variables||{},Object.keys(this.variables).map((function(t){var e=_this.variables[t];expression+="var "+t+" = "+e+";"})),expression+="with (Math){"+exp+"}",eval(expression)}return num};exports.evaluate=evaluate;var X=function X(t){return(this.w-(this.x1-Number(t)))*this.xunit};exports.X=X;var Xinv=function Xinv(t){return Number(t)/this.xunit-this.w+this.x1};exports.Xinv=Xinv;var Y=function Y(t){return(this.y1-Number(t))*this.yunit};exports.Y=Y;var Yinv=function Yinv(t){return this.y1-Number(t)/this.yunit};exports.Yinv=Yinv},{}],126:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=i(t("@babel/runtime/helpers/classCallCheck")),s=i(t("@babel/runtime/helpers/createClass")),u=i(t("./lib/text")),c=i(t("./lib/headers")),f=t("latex2js-pstricks"),h=i(t("./lib/environments")),d=i(t("./lib/ignore")),p=i(t("./lib/parser")),g=function(){function LaTeX2HTML5(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u.default,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.default,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.default,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:d.default,p=arguments.length>4&&void 0!==arguments[4]?arguments[4]:f.pstricks,g=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};(0,a.default)(this,LaTeX2HTML5),this.Text=e,this.Headers=n,this.Environments=i,this.Ignore=s,this.PSTricks=p,this.Views=g,this.Delimiters={},i.forEach((function(e){t.addEnvironment(e)}))}return(0,s.default)(LaTeX2HTML5,[{key:"addEnvironment",value:function addEnvironment(t){var e={begin:new RegExp("\\\\begin\\{"+t+"\\}"),end:new RegExp("\\\\end\\{"+t+"\\}")};this.Delimiters[t]=e}},{key:"addView",value:function addView(t,e){this.addEnvironment(t)}},{key:"addText",value:function addText(t,e,n){this.Text.Expressions[t]=e,this.Text.Functions[t]=n}},{key:"addHeaders",value:function addHeaders(t,e,n){var i={},a=t+"begin",s=t+"end";i[a]=new RegExp("\\\\begin\\{"+t+"\\}"),i[s]=new RegExp("\\\\end\\{"+t+"\\}"),Object.assign(this.Headers.Expressions,i);var u={};u[a]=function(){return e||""},u[s]=function(){return n||""},Object.assign(this.Headers.Functions,u)}},{key:"getParser",value:function getParser(){return new p.default(this)}},{key:"parse",value:function parse(t){var e=new p.default(this).parse(t);return e.forEach((function(t){if(!t.hasOwnProperty("type"))throw new Error("no type!")})),e}}]),LaTeX2HTML5}();n.default=g},{"./lib/environments":127,"./lib/headers":128,"./lib/ignore":129,"./lib/parser":130,"./lib/text":131,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":4,"@babel/runtime/helpers/interopRequireDefault":6,"latex2js-pstricks":121}],127:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;n.default=["pspicture","verbatim","enumerate","print","nicebox"]},{}],128:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.Functions=n.Expressions=void 0;var i={bq:/\\begin\{quotation\}/,claim:/\\begin\{claim\}/,corollary:/\\begin\{corollary\}/,definition:/\\begin\{definition\}/,endclaim:/\\end\{claim\}/,endcorallary:/\\end\{corallary\}/,enddefinition:/\\end\{definition\}/,endexample:/\\end\{example\}/,endproblem:/\\end\{problem\}/,endsolution:/\\end\{solution\}/,endtheorem:/\\end\{theorem\}/,eq:/\\end\{quotation\}/,example:/\\begin\{example\}/,problem:/\\begin\{problem\}/,proof:/\\begin\{proof\}/,qed:/\\end\{proof\}/,solution:/\\begin\{solution\}/,theorem:/\\begin\{theorem\}/};n.Expressions=i;var a={bq:function bq(){return''},claim:function claim(){return"
Claim
"},corollary:function corollary(){return"Corollary
"},definition:function definition(){return"Definition
"},endclaim:function endclaim(){return""},endcorollary:function endcorollary(){return""},enddefinition:function enddefinition(){return""},endexample:function endexample(){return""},endproblem:function endproblem(){return""},endsolution:function endsolution(){return""},endtheorem:function endtheorem(){return""},eq:function eq(){return"
"},example:function example(){return"Example
"},problem:function problem(){return"Problem
"},proof:function proof(){return"Proof
"},qed:function qed(){return"$\\qed$"},solution:function solution(){return"Solution
"},theorem:function theorem(){return"Theorem
"}};n.Functions=a;var s={Expressions:i,Functions:a};n.default=s},{}],129:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;n.default=[/^\%/,/\\begin\{document\}/,/\\end\{document\}/,/\\begin\{interactive\}/,/\\end\{interactive\}/,/\\usepackage/,/\\documentclass/,/\\tableofcontents/,/\\author/,/\\date/,/\\maketitle/,/\\title/,/\\pagestyle/,/\\smallskip/,/\\medskip/,/\\bigskip/,/\\nobreak/,/\\begin\{center\}/,/\\end\{center\}/]},{}],130:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=i(t("@babel/runtime/helpers/slicedToArray")),s=i(t("@babel/runtime/helpers/defineProperty"));function ownKeys(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function Parser(t){this.Ignore=t.Ignore,this.Delimiters=t.Delimiters,this.Text=t.Text,this.PSTricks=t.PSTricks,this.Headers=t.Headers,this.objects=[],this.environment=null,this.settings=this.PSTricks.Functions.psset.call(this,["","units=1cm,linecolor=black,linestyle=solid,fillstyle=none"])}Parser.prototype={parse:function parse(t){var e=this;if(!t)return{};var n=t.split("\n");return this.parseEnvText(n),this.parseEnv(n),this.objects.forEach((function(t){t.type.match(/pspicture/)&&(t.plot=e.parsePSTricks(t.lines,t.env))})),this.objects},newEnvironment:function newEnvironment(t){this.environment&&this.environment.lines.length&&(this.environment.settings=function _objectSpread(t){for(var e=1;e"))}))},parsePSExpression:function parsePSExpression(t,e,n,i,a){var s=t.match(e);return!!s&&(n[i].push({data:this.PSTricks.Functions[i].call(a,s),env:a,match:s,fn:this.PSTricks.Functions[i]}),!0)},parsePSVariables:function parsePSVariables(t,e,n,i,a){var s=t.match(e);if(s&&i.match(/uservariable/)){var u=this.PSTricks.Functions[i].call(a,s);a.variables=a.variables||{},a.variables[u.name]=u.value}},parsePSTricks:function parsePSTricks(t,e){var n=this,i={},s=Object.entries(this.PSTricks.Expressions);return s.forEach((function(t){var e=(0,a.default)(t,2),n=e[0];e[1];i[n]=[]})),t.forEach((function(t){s.forEach((function(s){var u=(0,a.default)(s,2),c=u[0],f=u[1];n.parsePSVariables(t,f,i,c,e),n.parsePSExpression(t,f,i,c,e)}))})),i},parseTextExpression:function parseTextExpression(t,e,n,i){var a=t.match(e);return a?this.Text.Functions[n].call(this,a,i):i},parseHeadersExpression:function parseHeadersExpression(t,e,n,i){return t.match(e)?this.Headers.Functions[n].call(this):i},parseText:function parseText(t){var e=this,n=t;return Object.entries(this.Text.Expressions).forEach((function(i){var s=(0,a.default)(i,2),u=s[0],c=s[1];n=e.parseTextExpression(t,c,u,n)})),Object.entries(this.Headers.Expressions).forEach((function(i){var s=(0,a.default)(i,2),u=s[0],c=s[1];n=e.parseHeadersExpression(t,c,u,n)})),n}};var u=Parser;n.default=u},{"@babel/runtime/helpers/defineProperty":5,"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/slicedToArray":10}],131:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.Functions=n.Expressions=void 0;var i=t("latex2js-utils"),a={emph:/\\emph\{[^}]*\}/g,bf:/\{*\\bf [^}]*\}/g,rm:/\{*\\rm [^}]*\}/g,sl:/\{*\\sl [^}]*\}/g,it:/\{*\\it [^}]*\}/g,tt:/\{*\\tt [^}]*\}/g,mdash:/---/g,ndash:/--/g,openq:/``/g,closeq:/''/g,TeX:/\\TeX\\|\\TeX/g,LaTeX:/\\LaTeX\\|\\LaTeX/g,vspace:/\\vspace/g,cite:/\\cite\[\d+\]\{[^}]*\}/g,href:/\\href\{[^}]*\}\{[^}]*\}/g,img:/\\img\{[^}]*\}/g,set:/\\set\{[^}]*\}/g,youtube:/\\youtube\{[^}]*\}/g,euler:/Euler\^/g};n.Expressions=a;var s={cite:function cite(t,e){return t.forEach((function(t){var n=t.match(/\\cite\[(\d+)\]\{([^}]*)\}/),i=location.pathname.match(/\/books\/(\d+)\//),a=0;i&&(a=i[1]),e=e.replace(n.input,'[p'+n[1]+"]")})),e},img:(0,i.matchrepl)(/\\img\{([^}]*)\}/,(function(t){return''})),youtube:(0,i.matchrepl)(/\\youtube\{([^}]*)\}/,(function(t){return''})),href:(0,i.matchrepl)(/\\href\{([^}]*)\}\{([^}]*)\}/,(function(t){return''+t[2]+""})),set:(0,i.matchrepl)(/\\set\{([^}]*)\}/,(function(t){return""+t[1]+""})),euler:(0,i.simplerepl)(/Euler\^/,"exp"),emph:(0,i.matchrepl)(/\{([^}]*)\}/,(function(t){return""+t[1]+""})),bf:(0,i.matchrepl)(/\{*\\bf ([^}]*)\}/,(function(t){return""+t[1]+""})),rm:(0,i.matchrepl)(/\{*\\rm ([^}]*)\}/,(function(t){return''+t[1]+""})),sl:(0,i.matchrepl)(/\{*\\sl ([^}]*)\}/,(function(t){return""+t[1]+""})),it:(0,i.matchrepl)(/\{*\\it ([^}]*)\}/,(function(t){return""+t[1]+""})),tt:(0,i.matchrepl)(/\{*\\tt ([^}]*)\}/,(function(t){return''+t[1]+""})),ndash:(0,i.simplerepl)(/--/g,"–"),mdash:(0,i.simplerepl)(/---/g,"—"),openq:(0,i.simplerepl)(/``/g,"“"),closeq:(0,i.simplerepl)(/''/g,"”"),vspace:(0,i.simplerepl)(/\\vspace/g,"
"),TeX:(0,i.simplerepl)(/\\TeX\\|\\TeX/g,"$\\TeX$"),LaTeX:(0,i.simplerepl)(/\\LaTeX\\|\\LaTeX/g,"$\\LaTeX$")};n.Functions=s;var u={Expressions:a,Functions:s};n.default=u},{"latex2js-utils":125}]},{},[118])(118)}));
\ No newline at end of file
+var a=t("url"),s=t("child_process").spawn,u=t("fs");n.XMLHttpRequest=function(){var n,c,f=this,h=t("http"),d=t("https"),p={},g=!1,v={"User-Agent":"node-XMLHttpRequest",Accept:"*/*"},b={},_={},w=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","content-transfer-encoding","cookie","cookie2","date","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"],M=["TRACE","TRACK","CONNECT"],E=!1,T=!1,S={};this.UNSENT=0,this.OPENED=1,this.HEADERS_RECEIVED=2,this.LOADING=3,this.DONE=4,this.readyState=this.UNSENT,this.onreadystatechange=null,this.responseText="",this.responseXML="",this.status=null,this.statusText=null,this.withCredentials=!1;this.open=function(t,e,n,i,a){if(this.abort(),T=!1,!function(t){return t&&-1===M.indexOf(t)}(t))throw new Error("SecurityError: Request method not allowed");p={method:t,url:e.toString(),async:"boolean"!=typeof n||n,user:i||null,password:a||null},setState(this.OPENED)},this.setDisableHeaderCheck=function(t){g=t},this.setRequestHeader=function(t,e){if(this.readyState!==this.OPENED)throw new Error("INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN");if(function(t){return g||t&&-1===w.indexOf(t.toLowerCase())}(t)){if(E)throw new Error("INVALID_STATE_ERR: send flag is true");t=_[t.toLowerCase()]||t,_[t.toLowerCase()]=t,b[t]=b[t]?b[t]+", "+e:e}else console.warn('Refused to set unsafe header "'+t+'"')},this.getResponseHeader=function(t){return"string"==typeof t&&this.readyState>this.OPENED&&c&&c.headers&&c.headers[t.toLowerCase()]&&!T?c.headers[t.toLowerCase()]:null},this.getAllResponseHeaders=function(){if(this.readyState"+e[1]+"":t})).join("\n"),n=document.createElement("ul");return n.className="math",n.innerHTML=e,n}},{}],112:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){var e=document.createElement("div");return e.id="latex-macros",e.style.display="none",e.className="verbatim",e.innerHTML=a.default,e};var a=i(t("latex2js-macros"))},{"@babel/runtime/helpers/interopRequireDefault":6,"latex2js-macros":119}],113:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){var e=document.createElement("span");return e.className="math",e.innerHTML=t.lines.join("\n"),e}},{}],114:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){var e=document.createElement("span");return e.className="math nicebox",e.innerHTML=t.lines.join("\n"),e}},{}],115:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireWildcard"),a=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){var e=u.psgraph.getSize.call(t),n=("width: ".concat(e.width,"px; height: ").concat(e.height,"px;"),"".concat(e.width,"px")),i="".concat(e.height,"px"),a=document.createElement("div");a.className="pspicture",a.style.width=n,a.style.height=i;var f=document.createElementNS("http://www.w3.org/2000/svg","svg");f.setAttribute("width",n),f.setAttribute("height",i);var h=c.select(f);t.$el=a,u.psgraph.pspicture.call(t,h),a.appendChild(f);var d=t.env,p=t.plot,g=d.sliders;g&&g.length&&g.forEach((function(t){var e=t.latex,n=t.scalar,i=t.variable,c=t.value,f=t.min,g=t.max,v=document.createElement("label"),b=document.createTextNode(e),_=document.createElement("input");_.setAttribute("min",f*n),_.setAttribute("max",g*n),_.setAttribute("type","range"),_.setAttribute("value",c),v.appendChild(b),v.appendChild(_),a.appendChild(v),_.addEventListener("input",(function(t){!function onChange(t){var e=t.target.value/n;d.variables[i]=e,h.selectAll(".psplot").remove(),Object.entries(p).forEach((function(t){var e=(0,s.default)(t,2),n=e[0],i=e[1];n.match(/psplot/)&&i.forEach((function(t){var e=t.fn.call(t.env,t.match);u.psgraph[n]&&e&&h&&u.psgraph[n].call(e,h)}))}))}(t)}))}));return a};var s=a(t("@babel/runtime/helpers/slicedToArray")),u=t("latex2js-pstricks"),c=i(t("d3"))},{"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/interopRequireWildcard":7,"@babel/runtime/helpers/slicedToArray":10,d3:73,"latex2js-pstricks":121}],116:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){return document.createElement("input")}},{}],117:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=function render(t){var e=document.createElement("pre");return e.className="verbatim",e.innerHTML=t.lines.join("\n"),e}},{}],118:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=render,Object.defineProperty(n,"pspicture",{enumerable:!0,get:function get(){return u.default}}),Object.defineProperty(n,"nicebox",{enumerable:!0,get:function get(){return c.default}}),Object.defineProperty(n,"enumerate",{enumerable:!0,get:function get(){return f.default}}),Object.defineProperty(n,"verbatim",{enumerable:!0,get:function get(){return h.default}}),Object.defineProperty(n,"math",{enumerable:!0,get:function get(){return d.default}}),Object.defineProperty(n,"macros",{enumerable:!0,get:function get(){return p.default}}),n.init=void 0;var a=i(t("latex2js")),s=t("latex2js-mathjax"),u=i(t("./components/pspicture")),c=i(t("./components/nicebox")),f=i(t("./components/enumerate")),h=i(t("./components/verbatim")),d=(i(t("./components/slider")),i(t("./components/math"))),p=i(t("./components/macros")),g={pspicture:u.default,nicebox:c.default,enumerate:f.default,verbatim:h.default,math:d.default,macros:p.default};function render(t,e){var n=function done(){var n=(new a.default).parse(t),i=document.createElement("div");i.className="latex-container",n&&n.forEach&&n.forEach((function(t){g.hasOwnProperty(t.type)&&i.appendChild(g[t.type](t))})),e(i)};if((0,s.getMathJax)())return n();(0,s.loadMathJax)(n)}n.init=function init(){(0,s.loadMathJax)(),document.querySelectorAll("la-tex:not([hydrated])").forEach((function(t){render(t.innerHTML,(function(e){t.shadowRoot.querySelector(".wrapper").innerHTML="",t.shadowRoot.querySelector(".wrapper").appendChild(e),t.hydrated=!0}))}))}},{"./components/enumerate":111,"./components/macros":112,"./components/math":113,"./components/nicebox":114,"./components/pspicture":115,"./components/slider":116,"./components/verbatim":117,"@babel/runtime/helpers/interopRequireDefault":6,latex2js:126,"latex2js-mathjax":120}],119:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=i(t("@babel/runtime/helpers/taggedTemplateLiteral"));function _templateObject_bda82fd08a6911ef92e7a36ece546115(){var t=(0,a.default)(["\n $$\n % create the definition symbol\n def\bydef{stackrel{Delta}{=}}\n %defcircconv{otimes}\n defcircconv{circledast}\n\n \newcommand{qed}{mbox{ } Box}\n\n\n \newcommand{infint}{int_{-infty}^{infty}}\n\n % z transform\n \newcommand{ztp}{ ~~ mathop{mathcal{Z}}limits_{longleftrightarrow} ~~ }\n \newcommand{iztp}{ ~~ mathop{mathcal{Z}^{-1}}limits_{longleftrightarrow} ~~ }\n % fourier transform pair\n \newcommand{\ftp}{ ~~ mathop{mathcal{F}}limits_{longleftrightarrow} ~~ }\n \newcommand{iftp}{ ~~ mathop{mathcal{F}^{-1}}limits_{longleftrightarrow} ~~ }\n % laplace transform\n \newcommand{ltp}{ ~~ mathop{mathcal{L}}limits_{longleftrightarrow} ~~ }\n \newcommand{iltp}{ ~~ mathop{mathcal{L}^{-1}}limits_{longleftrightarrow} ~~ }\n\n \newcommand{\ftrans}[1]{ mathcal{F} left{#1\right} }\n \newcommand{iftrans}[1]{ mathcal{F}^{-1} left{#1\right} }\n \newcommand{ztrans}[1]{ mathcal{Z} left{#1\right} }\n \newcommand{iztrans}[1]{ mathcal{Z}^{-1} left{#1\right} }\n \newcommand{ltrans}[1]{ mathcal{L} left{#1\right} }\n \newcommand{iltrans}[1]{ mathcal{L}^{-1} left{#1\right} }\n\n\n % coordinate vector relative to a basis (linear algebra)\n \newcommand{cvrb}[2]{left[ \vec{#1} \right]_{#2} }\n % change of coordinate matrix (linear algebra)\n \newcommand{cocm}[2]{ mathop{P}limits_{#2 leftarrow #1} }\n % Transformed vector set\n \newcommand{\tset}[3]{{#1lr{\vec{#2}_1}, #1lr{\vec{#2}_2}, dots, #1lr{\vec{#2}_{#3}}}}\n % sum transformed vector set\n \newcommand{\tsetcsum}[4]{{#1}_1#2(\vec{#3}_1) + {#1}_2#2(\vec{#3}_2) + cdots + {#1}_{#4}#2(\vec{#3}_{#4})}\n \newcommand{\tsetcsumall}[4]{#2lr{{#1}_1\vec{#3}_1 + {#1}_2\vec{#3}_2 + cdots + {#1}_{#4}\vec{#3}_{#4}}}\n \newcommand{cvecsum}[3]{{#1}_1\vec{#2}_1 + {#1}_2\vec{#2}_2 + cdots + {#1}_{#3}\vec{#2}_{#3}}\n\n\n % function def\n \newcommand{\fndef}[3]{#1:#2 \to #3}\n % vector set\n \newcommand{\vset}[2]{{\vec{#1}_1, \vec{#1}_2, dots, \vec{#1}_{#2}}}\n % absolute value\n \newcommand{abs}[1]{left| #1 \right|}\n % vector norm\n \newcommand{\norm}[1]{left|left| #1 \right|\right|}\n % trans\n \newcommand{\trans}{mapsto}\n % evaluate integral\n \newcommand{evalint}[3]{left. #1 \right|_{#2}^{#3}}\n % slist\n \newcommand{slist}[2]{{#1}_{1},{#1}_{2},dots,{#1}_{#2}}\n\n % vectors\n \newcommand{\vc}[1]{\textbf{#1}}\n\n % real\n \newcommand{Real}[1]{{Re mit{e}left{{#1}\right}}}\n % imaginary\n \newcommand{Imag}[1]{{Im mit{m}left{{#1}\right}}}\n\n \newcommand{mcal}[1]{mathcal{#1}}\n \newcommand{\bb}[1]{mathbb{#1}}\n \newcommand{N}{mathbb{N}}\n \newcommand{Z}{mathbb{Z}}\n \newcommand{Q}{mathbb{Q}}\n \newcommand{R}{mathbb{R}}\n \newcommand{C}{mathbb{C}}\n \newcommand{I}{mathbb{I}}\n \newcommand{Th}[1]{mathopmathrm{Th(#1)}}\n \newcommand{intersect}{cap}\n \newcommand{\\union}{cup}\n \newcommand{intersectop}{\bigcap}\n \newcommand{\\unionop}{\bigcup}\n \newcommand{setdiff}{\backslash}\n \newcommand{iso}{cong}\n \newcommand{aut}[1]{mathop{mathrm{Aut(#1)}}}\n \newcommand{inn}[1]{mathop{mathrm{Inn(#1)}}}\n \newcommand{Ann}[1]{mathop{mathrm{Ann(#1)}}}\n \newcommand{dom}[1]{mathop{mathrm{dom} #1}}\n \newcommand{cod}[1]{mathop{mathrm{cod} #1}}\n \newcommand{id}{mathrm{id}}\n \newcommand{st}{ | }\n \newcommand{mbf}[1]{mathbf{#1}}\n \newcommand{enclose}[1]{leftlangle #1\right\rangle}\n \newcommand{lr}[1]{left( #1\right)}\n \newcommand{lrsq}[1]{left[ #1\right]}\n \newcommand{op}{mathrm{op}}\n \newcommand{dotarr}{dot{\rightarrow}}\n %Category Names:\n \newcommand{Grp}{mathbf{Grp}}\n \newcommand{Ab}{mathbf{Ab}}\n \newcommand{Set}{mathbf{Set}}\n \newcommand{Matr}{mathbf{Matr}}\n \newcommand{IntDom}{mathbf{IntDom}}\n \newcommand{Field}{mathbf{Field}}\n \newcommand{Vect}{mathbf{Vect}}\n\n \newcommand{\thm}[1]{\begin{theorem} #1 end{theorem}}\n \newcommand{clm}[1]{\begin{claim} #1 end{claim}}\n \newcommand{cor}[1]{\begin{corollary} #1 end{corollary}}\n \newcommand{ex}[1]{\begin{example} #1 end{example}}\n \newcommand{prf}[1]{\begin{proof} #1 end{proof}}\n \newcommand{prbm}[1]{\begin{problem} #1 end{problem}}\n \newcommand{soln}[1]{\begin{solution} #1 end{solution}}\n \newcommand{\rmk}[1]{\begin{remark} #1 end{remark}}\n \newcommand{defn}[1]{\begin{definition} #1 end{definition}}\n\n \newcommand{ifff}{LeftRightArrow}\n\n \x3c!-- For the set of reals and integers --\x3e\n \newcommand{\rr}{R}\n \newcommand{\reals}{R}\n \newcommand{ii}{Z}\n \newcommand{cc}{C}\n \newcommand{\nn}{N}\n \newcommand{\nats}{N}\n\n \x3c!-- For terms being indexed.\n Puts them in standard font face and creates an index entry.\n arg: The term being defined.\n \newcommand{pointer}[1]{#1index{#1}} --\x3e\n\n \x3c!-- For bold terms to be index, but defined elsewhere\n Puts them in bold face and creates an index entry.\n arg: The term being defined. --\x3e\n \newcommand{strong}[1]{\textbf{#1}}\n\n \x3c!-- For set names.\n Puts them in italics. In math mode, yields decent spacing.\n arg: The name of the set. --\x3e\n \newcommand{set}[1]{\textit{#1}}\n\n $$\n "],["\n $$\n % create the definition symbol\n \\def\\bydef{\\stackrel{\\Delta}{=}}\n %\\def\\circconv{\\otimes}\n \\def\\circconv{\\circledast}\n\n \\newcommand{\\qed}{\\mbox{ } \\Box}\n\n\n \\newcommand{\\infint}{\\int_{-\\infty}^{\\infty}}\n\n % z transform\n \\newcommand{\\ztp}{ ~~ \\mathop{\\mathcal{Z}}\\limits_{\\longleftrightarrow} ~~ }\n \\newcommand{\\iztp}{ ~~ \\mathop{\\mathcal{Z}^{-1}}\\limits_{\\longleftrightarrow} ~~ }\n % fourier transform pair\n \\newcommand{\\ftp}{ ~~ \\mathop{\\mathcal{F}}\\limits_{\\longleftrightarrow} ~~ }\n \\newcommand{\\iftp}{ ~~ \\mathop{\\mathcal{F}^{-1}}\\limits_{\\longleftrightarrow} ~~ }\n % laplace transform\n \\newcommand{\\ltp}{ ~~ \\mathop{\\mathcal{L}}\\limits_{\\longleftrightarrow} ~~ }\n \\newcommand{\\iltp}{ ~~ \\mathop{\\mathcal{L}^{-1}}\\limits_{\\longleftrightarrow} ~~ }\n\n \\newcommand{\\ftrans}[1]{ \\mathcal{F} \\left\\{#1\\right\\} }\n \\newcommand{\\iftrans}[1]{ \\mathcal{F}^{-1} \\left\\{#1\\right\\} }\n \\newcommand{\\ztrans}[1]{ \\mathcal{Z} \\left\\{#1\\right\\} }\n \\newcommand{\\iztrans}[1]{ \\mathcal{Z}^{-1} \\left\\{#1\\right\\} }\n \\newcommand{\\ltrans}[1]{ \\mathcal{L} \\left\\{#1\\right\\} }\n \\newcommand{\\iltrans}[1]{ \\mathcal{L}^{-1} \\left\\{#1\\right\\} }\n\n\n % coordinate vector relative to a basis (linear algebra)\n \\newcommand{\\cvrb}[2]{\\left[ \\vec{#1} \\right]_{#2} }\n % change of coordinate matrix (linear algebra)\n \\newcommand{\\cocm}[2]{ \\mathop{P}\\limits_{#2 \\leftarrow #1} }\n % Transformed vector set\n \\newcommand{\\tset}[3]{\\{#1\\lr{\\vec{#2}_1}, #1\\lr{\\vec{#2}_2}, \\dots, #1\\lr{\\vec{#2}_{#3}}\\}}\n % sum transformed vector set\n \\newcommand{\\tsetcsum}[4]{{#1}_1#2(\\vec{#3}_1) + {#1}_2#2(\\vec{#3}_2) + \\cdots + {#1}_{#4}#2(\\vec{#3}_{#4})}\n \\newcommand{\\tsetcsumall}[4]{#2\\lr{{#1}_1\\vec{#3}_1 + {#1}_2\\vec{#3}_2 + \\cdots + {#1}_{#4}\\vec{#3}_{#4}}}\n \\newcommand{\\cvecsum}[3]{{#1}_1\\vec{#2}_1 + {#1}_2\\vec{#2}_2 + \\cdots + {#1}_{#3}\\vec{#2}_{#3}}\n\n\n % function def\n \\newcommand{\\fndef}[3]{#1:#2 \\to #3}\n % vector set\n \\newcommand{\\vset}[2]{\\{\\vec{#1}_1, \\vec{#1}_2, \\dots, \\vec{#1}_{#2}\\}}\n % absolute value\n \\newcommand{\\abs}[1]{\\left| #1 \\right|}\n % vector norm\n \\newcommand{\\norm}[1]{\\left|\\left| #1 \\right|\\right|}\n % trans\n \\newcommand{\\trans}{\\mapsto}\n % evaluate integral\n \\newcommand{\\evalint}[3]{\\left. #1 \\right|_{#2}^{#3}}\n % slist\n \\newcommand{\\slist}[2]{{#1}_{1},{#1}_{2},\\dots,{#1}_{#2}}\n\n % vectors\n \\newcommand{\\vc}[1]{\\textbf{#1}}\n\n % real\n \\newcommand{\\Real}[1]{{\\Re \\mit{e}\\left\\{{#1}\\right\\}}}\n % imaginary\n \\newcommand{\\Imag}[1]{{\\Im \\mit{m}\\left\\{{#1}\\right\\}}}\n\n \\newcommand{\\mcal}[1]{\\mathcal{#1}}\n \\newcommand{\\bb}[1]{\\mathbb{#1}}\n \\newcommand{\\N}{\\mathbb{N}}\n \\newcommand{\\Z}{\\mathbb{Z}}\n \\newcommand{\\Q}{\\mathbb{Q}}\n \\newcommand{\\R}{\\mathbb{R}}\n \\newcommand{\\C}{\\mathbb{C}}\n \\newcommand{\\I}{\\mathbb{I}}\n \\newcommand{\\Th}[1]{\\mathop\\mathrm{Th(#1)}}\n \\newcommand{\\intersect}{\\cap}\n \\newcommand{\\\\union}{\\cup}\n \\newcommand{\\intersectop}{\\bigcap}\n \\newcommand{\\\\unionop}{\\bigcup}\n \\newcommand{\\setdiff}{\\backslash}\n \\newcommand{\\iso}{\\cong}\n \\newcommand{\\aut}[1]{\\mathop{\\mathrm{Aut(#1)}}}\n \\newcommand{\\inn}[1]{\\mathop{\\mathrm{Inn(#1)}}}\n \\newcommand{\\Ann}[1]{\\mathop{\\mathrm{Ann(#1)}}}\n \\newcommand{\\dom}[1]{\\mathop{\\mathrm{dom} #1}}\n \\newcommand{\\cod}[1]{\\mathop{\\mathrm{cod} #1}}\n \\newcommand{\\id}{\\mathrm{id}}\n \\newcommand{\\st}{\\ |\\ }\n \\newcommand{\\mbf}[1]{\\mathbf{#1}}\n \\newcommand{\\enclose}[1]{\\left\\langle #1\\right\\rangle}\n \\newcommand{\\lr}[1]{\\left( #1\\right)}\n \\newcommand{\\lrsq}[1]{\\left[ #1\\right]}\n \\newcommand{\\op}{\\mathrm{op}}\n \\newcommand{\\dotarr}{\\dot{\\rightarrow}}\n %Category Names:\n \\newcommand{\\Grp}{\\mathbf{Grp}}\n \\newcommand{\\Ab}{\\mathbf{Ab}}\n \\newcommand{\\Set}{\\mathbf{Set}}\n \\newcommand{\\Matr}{\\mathbf{Matr}}\n \\newcommand{\\IntDom}{\\mathbf{IntDom}}\n \\newcommand{\\Field}{\\mathbf{Field}}\n \\newcommand{\\Vect}{\\mathbf{Vect}}\n\n \\newcommand{\\thm}[1]{\\begin{theorem} #1 \\end{theorem}}\n \\newcommand{\\clm}[1]{\\begin{claim} #1 \\end{claim}}\n \\newcommand{\\cor}[1]{\\begin{corollary} #1 \\end{corollary}}\n \\newcommand{\\ex}[1]{\\begin{example} #1 \\end{example}}\n \\newcommand{\\prf}[1]{\\begin{proof} #1 \\end{proof}}\n \\newcommand{\\prbm}[1]{\\begin{problem} #1 \\end{problem}}\n \\newcommand{\\soln}[1]{\\begin{solution} #1 \\end{solution}}\n \\newcommand{\\rmk}[1]{\\begin{remark} #1 \\end{remark}}\n \\newcommand{\\defn}[1]{\\begin{definition} #1 \\end{definition}}\n\n \\newcommand{\\ifff}{\\LeftRightArrow}\n\n \x3c!-- For the set of reals and integers --\x3e\n \\newcommand{\\rr}{\\R}\n \\newcommand{\\reals}{\\R}\n \\newcommand{\\ii}{\\Z}\n \\newcommand{\\cc}{\\C}\n \\newcommand{\\nn}{\\N}\n \\newcommand{\\nats}{\\N}\n\n \x3c!-- For terms being indexed.\n Puts them in standard font face and creates an index entry.\n arg: The term being defined.\n \\newcommand{\\pointer}[1]{#1\\index{#1}} --\x3e\n\n \x3c!-- For bold terms to be index, but defined elsewhere\n Puts them in bold face and creates an index entry.\n arg: The term being defined. --\x3e\n \\newcommand{\\strong}[1]{\\textbf{#1}}\n\n \x3c!-- For set names.\n Puts them in italics. In math mode, yields decent spacing.\n arg: The name of the set. --\x3e\n \\newcommand{\\set}[1]{\\textit{#1}}\n\n $$\n "]);return _templateObject_bda82fd08a6911ef92e7a36ece546115=function _templateObject_bda82fd08a6911ef92e7a36ece546115(){return t},t}var s=String.raw(_templateObject_bda82fd08a6911ef92e7a36ece546115());n.default=s},{"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/taggedTemplateLiteral":11}],120:[function(t,e,n){(function(e){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.loadMathJax=n.getMathJax=n.DEFAULT_OPTIONS=n.DEFAULT_SCRIPT=void 0;var a=i(t("load-script")),s=e.env.MATHJAX_CDN||"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js";n.DEFAULT_SCRIPT=s;var u={TeX:{extensions:["AMSmath.js","AMSsymbols.js"]},extensions:["tex2jax.js"],showProcessingMessages:!1,jax:["input/TeX","output/HTML-CSS"],messageStyle:"none",showMathMenu:!1,showMathMenuMSIE:!1,tex2jax:{processEnvironments:!0,inlineMath:[["$","$"],["\\(","\\)"]],displayMath:[["$$","$$"],["\\[","\\]"]],preview:"none",processEscapes:!0},"HTML-CSS":{linebreaks:{automatic:!0,width:"container"}}};n.DEFAULT_OPTIONS=u;n.getMathJax=function getMathJax(){return"undefined"==typeof MathJax?void 0:MathJax};n.loadMathJax=function loadMathJax(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:u,i=function onLoad(){MathJax.Hub.Config(n),t()};if(!e)return i();(0,a.default)(e,i)}}).call(this,t("_process"))},{"@babel/runtime/helpers/interopRequireDefault":6,_process:100,"load-script":99}],121:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"pstricks",{enumerable:!0,get:function get(){return a.default}}),Object.defineProperty(n,"psgraph",{enumerable:!0,get:function get(){return s.default}}),n.default=void 0;var a=i(t("./lib/pstricks")),s=i(t("./lib/psgraph")),u={pstricks:a.default,psgraph:s.default};n.default=u},{"./lib/psgraph":122,"./lib/pstricks":123,"@babel/runtime/helpers/interopRequireDefault":6}],122:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireWildcard"),a=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var s=a(t("@babel/runtime/helpers/slicedToArray")),u=t("latex2js-utils"),c=i(t("d3"));function arrow(t,e,n,i){var a=Math.PI/6,s=n-t,u=i-e,c=Math.sqrt(s*s+u*u),f=Math.cos(a),h=Math.sin(a),d=8/c,p=n-(s*f-u*h)*d,g=i-(u*f+s*h)*d,v=[];return v.push("M"),v.push(n),v.push(i),v.push("L"),v.push(p),v.push(g),p=n-(s*(f=Math.cos(-a))-u*(h=Math.sin(-a)))*d,g=i-(u*f+s*h)*d,v.push(p),v.push(g),v.push("Z"),v.join(" ")}var f={getSize:function getSize(){this.env.scale=1;var t=Math.max(document.documentElement.clientWidth,window.innerWidth||0)-20;return t<=this.env.w*this.env.xunit&&(this.env.scale=t/this.env.w/this.env.xunit),{width:this.env.w*this.env.xunit,height:this.env.h*this.env.yunit}},psframe:function psframe(t){t.append("svg:line").attr("x1",this.x1).attr("y1",this.y1).attr("x2",this.x2).attr("y2",this.y1).style("stroke-width",2).style("stroke","rgb(0,0,0)").style("stroke-opacity",1),t.append("svg:line").attr("x1",this.x2).attr("y1",this.y1).attr("x2",this.x2).attr("y2",this.y2).style("stroke-width",2).style("stroke","rgb(0,0,0)").style("stroke-opacity",1),t.append("svg:line").attr("x1",this.x2).attr("y1",this.y2).attr("x2",this.x1).attr("y2",this.y2).style("stroke-width",2).style("stroke","rgb(0,0,0)").style("stroke-opacity",1),t.append("svg:line").attr("x1",this.x1).attr("y1",this.y2).attr("x2",this.x1).attr("y2",this.y1).style("stroke-width",2).style("stroke","rgb(0,0,0)").style("stroke-opacity",1)},pscircle:function pscircle(t){t.append("svg:circle").attr("cx",this.cx).attr("cy",this.cy).attr("r",this.r).style("stroke","black").style("fill","none").style("stroke-width",2).style("stroke-opacity",1)},psplot:function psplot(t){var e=[];e.push("M"),"solid"===this.fillstyle?(e.push(this.data[0]),e.push(u.Y.call(this.global,0))):(e.push(this.data[0]),e.push(this.data[1])),e.push("L"),this.data.forEach((function(t){e.push(t)})),"solid"===this.fillstyle&&(e.push(this.data[this.data.length-2]),e.push(u.Y.call(this.global,0)),e.push("Z")),t.append("svg:path").attr("d",e.join(" ")).attr("class","psplot").style("stroke-width",this.linewidth).style("stroke-opacity",1).style("fill","none"===this.fillstyle?"none":this.fillcolor).style("stroke",this.linecolor)},pspolygon:function pspolygon(t){var e=[];e.push("M"),e.push(this.data[0]),e.push(this.data[1]),e.push("L"),this.data.forEach((function(t){e.push(t)})),e.push("Z"),t.append("svg:path").attr("d",e.join(" ")).style("stroke-width",this.linewidth).style("stroke-opacity",1).style("fill","none"===this.fillstyle?"none":this.fillcolor).style("stroke","black")},psarc:function psarc(t){var e=[];e.push("M"),e.push(this.cx),e.push(this.cy),e.push("L"),e.push(this.A.x),e.push(this.A.y),e.push("A"),e.push(this.A.x),e.push(this.A.y),e.push(0),e.push(0),e.push(0),e.push(this.B.x),e.push(this.B.y),t.append("svg:path").attr("d",e.join(" ")).style("stroke-width",2).style("stroke-opacity",1).style("fill","blue").style("stroke","black")},psaxes:function psaxes(t){var e=[this.bottomLeft[0],this.topRight[0]],n=[this.bottomLeft[1],this.topRight[1]],i=this.origin;function line(e,n,i,a){t.append("svg:path").attr("d","M "+e+" "+n+" L "+i+" "+a).style("stroke-width",2).style("stroke","rgb(0,0,0)").style("stroke-opacity",1)}var a=function xticks(){for(var t=e[0];t<=e[1];t+=this.dx)line(t,i[1]-5,t,i[1]+5)},s=function yticks(){for(var t=n[0];t<=n[1];t+=this.dy)line(i[0]-5,t,i[0]+5,t)};line(e[0],i[1],e[1],i[1]),line(i[0],n[0],i[0],n[1]),this.ticks.match(/all/)?(a(),s()):this.ticks.match(/x/)?a():this.ticks.match(/y/)&&s(),this.arrows[0]&&(t.append("path").attr("d",arrow(e[1],i[1],e[0],i[1])).style("fill","black").style("stroke","black"),t.append("path").attr("d",arrow(i[0],n[1],i[0],n[0])).style("fill","black").style("stroke","black")),this.arrows[1]&&(t.append("path").attr("d",arrow(e[0],i[1],e[1],i[1])).style("fill","black").style("stroke","black"),t.append("path").attr("d",arrow(i[0],n[0],i[0],n[1])).style("fill","black").style("stroke","black"))},psline:function psline(t){var e=this.linewidth,n=this.linecolor;this.linestyle.match(/dotted/)?function dotted(i,a,s,u){t.append("svg:path").attr("d","M "+i+" "+a+" L "+s+" "+u).style("stroke-width",e).style("stroke",n).style("stroke-dasharray","9,5").style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2):this.linestyle.match(/dashed/)?function dashed(i,a,s,u){t.append("svg:path").attr("d","M "+i+" "+a+" L "+s+" "+u).style("stroke-width",e).style("stroke",n).style("stroke-dasharray","9,5").style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2):function solid(i,a,s,u){t.append("svg:path").attr("d","M "+i+" "+a+" L "+s+" "+u).style("stroke-width",e).style("stroke",n).style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2),this.dots[0]&&t.append("svg:circle").attr("cx",this.x1).attr("cy",this.y1).attr("r",3).style("stroke",this.linecolor).style("fill",this.linecolor).style("stroke-width",1).style("stroke-opacity",1),this.dots[1]&&t.append("svg:circle").attr("cx",this.x2).attr("cy",this.y2).attr("r",3).style("stroke",this.linecolor).style("fill",this.linecolor).style("stroke-width",1).style("stroke-opacity",1);var i=this.x1,a=this.y1,s=this.x2,u=this.y2;this.arrows[0]&&t.append("path").attr("d",arrow(s,u,i,a)).style("fill",this.linecolor).style("stroke",this.linecolor),this.arrows[1]&&t.append("path").attr("d",arrow(i,a,s,u)).style("fill",this.linecolor).style("stroke",this.linecolor)},userline:function userline(t){var e=this.linewidth,n=this.linecolor;this.linestyle.match(/dotted/)?function dotted(i,a,s,u){t.append("svg:path").attr("d","M "+i+" "+a+" L "+s+" "+u).attr("class","userline").style("stroke-width",e).style("stroke",n).style("stroke-dasharray","9,5").style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2):this.linestyle.match(/dashed/)?function dashed(i,a,s,u){t.append("svg:path").attr("d","M "+i+" "+a+" L "+s+" "+u).attr("class","userline").style("stroke-width",e).style("stroke",n).style("stroke-dasharray","9,5").style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2):function solid(i,a,s,u){t.append("svg:path").attr("class","userline").attr("d","M "+i+" "+a+" L "+s+" "+u).style("stroke-width",e).style("stroke",n).style("stroke-opacity",1)}(this.x1,this.y1,this.x2,this.y2),this.dots[0]&&t.append("svg:circle").attr("cx",this.x1).attr("cy",this.y1).attr("r",3).attr("class","userline").style("stroke",this.linecolor).style("fill",this.linecolor).style("stroke-width",1).style("stroke-opacity",1),this.dots[1]&&t.append("svg:circle").attr("cx",this.x2).attr("cy",this.y2).attr("r",3).attr("class","userline").style("stroke",this.linecolor).style("fill",this.linecolor).style("stroke-width",1).style("stroke-opacity",1);var i=this.x1,a=this.y1,s=this.x2,u=this.y2;this.arrows[0]&&t.append("path").attr("d",arrow(s,u,i,a)).attr("class","userline").style("fill",this.linecolor).style("stroke",this.linecolor),this.arrows[1]&&t.append("path").attr("d",arrow(i,a,s,u)).attr("class","userline").style("fill",this.linecolor).style("stroke",this.linecolor)},rput:function rput(t){var e=document.createElement("div"),n=this.x,i=this.y;e.innerHTML=this.text,e.className="math",e.style.visibility="hidden",e.style.position="absolute",e.style.top="".concat(i,"px"),e.style.left="".concat(n,"px"),t.appendChild(e);MathJax.Hub.Queue(["Typeset",MathJax.Hub,e],[function done(){var t=e.getBoundingClientRect(),a=t.width/2,s=t.height/2;e.style.visibility="visible",e.style.top="".concat(i-s,"px"),e.style.left="".concat(n-a,"px")}])},pspicture:function pspicture(t){var e=this,n=this.env,i=this.$el;Object.keys(this.plot).forEach((function(i){var a=e.plot[i];i.match(/rput/)||f.hasOwnProperty(i)&&a.forEach((function(e){e.data.global=n,f[i].call(e.data,t)}))})),t.on("touchmove",(function(){c.event.preventDefault(),userEvent(c.touches(this)[0])}),!1),t.on("mousemove",(function(){userEvent(c.mouse(this))}),!1);var a=this.plot;function userEvent(e){t.selectAll(".userline").remove(),t.selectAll(".psplot").remove();var i={};Object.entries(a||{}).forEach((function(t){var n=(0,s.default)(t,2),a=n[0],u=n[1];a.match(/uservariable/)&&u.forEach((function(t){t.env.userx=e[0],t.env.usery=e[1];var n=t.fn.call(t.env,t.match);i[t.data.name]=n.value}))})),Object.entries(a||{}).forEach((function(a){var u=(0,s.default)(a,2),c=u[0],h=u[1];c.match(/psplot/)&&h.forEach((function(e){Object.entries(i||{}).forEach((function(t){var n=(0,s.default)(t,2),i=n[0],a=n[1];e.env.variables[i]=a}));var a=e.fn.call(e.env,e.match);a.global={},Object.assign(a.global,n),f[c].call(a,t)})),c.match(/userline/)&&h.forEach((function(i){var a=i.fn.call(i.env,i.match);i.env.x2=e[0],i.env.y2=e[1],i.data.x2=i.env.x2,i.data.y2=i.env.y2,i.data.xExp2?(i.data.x2=a.userx2(e),i.data.x1=a.userx(e)):i.data.xExp&&(i.data.x2=a.userx(e)),i.data.yExp2?(i.data.y2=a.usery2(e),i.data.y1=a.usery(e)):i.data.yExp&&(i.data.y2=a.usery(e)),a.global={},Object.assign(a.global,n),Object.assign(a,i.data),f[c].call(a,t)}))}))}this.plot.rput.forEach((function(t){f.rput.call(t.data,i)}))}},h=f;n.default=h},{"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/interopRequireWildcard":7,"@babel/runtime/helpers/slicedToArray":10,d3:73,"latex2js-utils":125}],123:[function(require,module,exports){var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Functions=exports.Expressions=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")),_latex2jsUtils=require("latex2js-utils"),_latex2jsSettings=_interopRequireDefault(require("latex2js-settings")),Expressions={pspicture:/\\begin\{pspicture\}\(\s*(.*),(.*)\s*\)\(\s*(.*),(.*)\s*\)/,psframe:/\\psframe\(\s*(.*),(.*)\s*\)\(\s*(.*),(.*)\s*\)/,psplot:/\\psplot(\[[^\]]*\])?\{([^\}]*)\}\{([^\}]*)\}\{([^\}]*)\}/,psarc:new RegExp("\\\\psarc"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.type+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle),pscircle:/\\pscircle.*\(\s*(.*),(.*)\s*\)\{(.*)\}/,pspolygon:new RegExp("\\\\pspolygon"+_latex2jsUtils.RE.options+"(.*)"),psaxes:new RegExp("\\\\psaxes"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.type+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.coordsOpt+_latex2jsUtils.RE.coordsOpt),slider:new RegExp("\\\\slider"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.squiggle),psline:new RegExp("\\\\psline"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.type+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.coordsOpt),userline:new RegExp("\\\\userline"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.type+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.squiggleOpt+_latex2jsUtils.RE.squiggleOpt+_latex2jsUtils.RE.squiggleOpt+_latex2jsUtils.RE.squiggleOpt),uservariable:new RegExp("\\\\uservariable"+_latex2jsUtils.RE.options+_latex2jsUtils.RE.squiggle+_latex2jsUtils.RE.coords+_latex2jsUtils.RE.squiggle),rput:/\\rput\((.*),(.*)\)\{(.*)\}/,psset:/\\psset\{(.*)\}/};exports.Expressions=Expressions;var Functions={slider:function slider(t){var e={scalar:1,min:Number(t[2]),max:Number(t[3]),variable:t[4],latex:t[5],value:Number(t[6])};return this.variables=this.variables||{},this.variables[e.variable]=e.value,this.sliders=this.sliders||[],this.sliders.push(e),t[1]&&Object.assign(e,(0,_latex2jsUtils.parseOptions)(t[1])),e},pspicture:function pspicture(t){var e={x0:Number(t[1]),y0:Number(t[2]),x1:Number(t[3]),y1:Number(t[4])},n={w:e.x1-e.x0,h:e.y1-e.y0};return Object.assign(this,e,n),Object.assign(e,n)},psframe:function psframe(t){return{x1:_latex2jsUtils.X.call(this,t[1]),y1:_latex2jsUtils.Y.call(this,t[2]),x2:_latex2jsUtils.X.call(this,t[3]),y2:_latex2jsUtils.Y.call(this,t[4])}},pscircle:function pscircle(t){return{cx:_latex2jsUtils.X.call(this,t[1]),cy:_latex2jsUtils.Y.call(this,t[2]),r:this.xunit*t[3]}},psaxes:function psaxes(t){var e={dx:1*this.xunit,dy:1*this.yunit,arrows:[0,0],dots:[0,0],ticks:"all"};if(t[1]){var n=(0,_latex2jsUtils.parseOptions)(t[1]);n.Dx&&(e.dx=Number(n.Dx)*this.xunit),n.Dy&&(e.dy=Number(n.Dy)*this.yunit)}var i=(0,_latex2jsUtils.parseArrows)(t[2]);return e.arrows=i.arrows,e.dots=i.dots,t[5]&&!t[8]?(e.origin=[_latex2jsUtils.X.call(this,t[3]),_latex2jsUtils.Y.call(this,t[4])],e.bottomLeft=[_latex2jsUtils.X.call(this,t[3]),_latex2jsUtils.Y.call(this,t[4])],e.topRight=[_latex2jsUtils.X.call(this,t[6]),_latex2jsUtils.Y.call(this,t[7])]):t[5]||t[8]?(e.origin=[_latex2jsUtils.X.call(this,t[3]),_latex2jsUtils.Y.call(this,t[4])],e.bottomLeft=[_latex2jsUtils.X.call(this,t[6]),_latex2jsUtils.Y.call(this,t[7])],e.topRight=[_latex2jsUtils.X.call(this,t[9]),_latex2jsUtils.Y.call(this,t[10])]):(e.origin=[_latex2jsUtils.X.call(this,0),_latex2jsUtils.Y.call(this,0)],e.bottomLeft=[_latex2jsUtils.X.call(this,0),_latex2jsUtils.Y.call(this,0)],e.topRight=[_latex2jsUtils.X.call(this,t[3]),_latex2jsUtils.Y.call(this,t[6])]),e},psplot:function psplot(m){var startX=_latex2jsUtils.evaluate.call(this,m[2]),endX=_latex2jsUtils.evaluate.call(this,m[3]),data=[],x,expression="";for(Object.entries(this.variables||{}).forEach((function(t){var e=(0,_slicedToArray2.default)(t,2),n=e[0],i=e[1];expression+="var "+n+" = "+i+";"})),expression+="with (Math){"+m[4]+"}",x=startX;x<=endX;x+=.005)data.push(_latex2jsUtils.X.call(this,x)),data.push(_latex2jsUtils.Y.call(this,eval(expression)));var obj={linecolor:"black",linestyle:"solid",fillstyle:"none",fillcolor:"none",linewidth:2};return m[1]&&Object.assign(obj,(0,_latex2jsUtils.parseOptions)(m[1])),obj.data=data,obj},pspolygon:function pspolygon(t){var e=this,n=t[2];if(n){var i=new RegExp(_latex2jsUtils.RE.coords,"g"),a=n.match(i),s=new RegExp(_latex2jsUtils.RE.coords),u=[];a.forEach((function(t){var n=s.exec(t);u.push(_latex2jsUtils.X.call(e,n[1])),u.push(_latex2jsUtils.Y.call(e,n[2]))}));var c={linecolor:"black",linestyle:"solid",fillstyle:"none",fillcolor:"black",linewidth:2,data:u};return t[1]&&Object.assign(c,(0,_latex2jsUtils.parseOptions)(t[1])),c}},psarc:function psarc(t){var e=(0,_latex2jsUtils.parseArrows)(t[2]),n={linecolor:"black",linestyle:"solid",fillstyle:"solid",fillcolor:"black",linewidth:2,arrows:e.arrows,dots:e.dots,cx:_latex2jsUtils.X.call(this,0),cy:_latex2jsUtils.Y.call(this,0)};return t[1]&&Object.assign(n,(0,_latex2jsUtils.parseOptions)(t[1])),t[3]&&(n.cx=_latex2jsUtils.X.call(this,t[3])),t[4]&&(n.cy=_latex2jsUtils.Y.call(this,t[4])),n.r=Number(t[5])*this.xunit,n.angleA=Number(t[6])*Math.PI/180,n.angleB=Number(t[7])*Math.PI/180,n.A={x:_latex2jsUtils.X.call(this,Number(t[5])*Math.cos(n.angleA)),y:_latex2jsUtils.Y.call(this,Number(t[5])*Math.sin(n.angleA))},n.B={x:_latex2jsUtils.X.call(this,Number(t[5])*Math.cos(n.angleB)),y:_latex2jsUtils.Y.call(this,Number(t[5])*Math.sin(n.angleB))},n},psline:function psline(t){var e=t[1],n=t[2],i=(0,_latex2jsUtils.parseArrows)(n),a={linecolor:"black",linestyle:"solid",fillstyle:"solid",fillcolor:"black",linewidth:2,arrows:i.arrows,dots:i.dots};return t[5]?(a.x1=_latex2jsUtils.X.call(this,t[3]),a.y1=_latex2jsUtils.Y.call(this,t[4]),a.x2=_latex2jsUtils.X.call(this,t[6]),a.y2=_latex2jsUtils.Y.call(this,t[7])):(a.x1=_latex2jsUtils.X.call(this,0),a.y1=_latex2jsUtils.Y.call(this,0),a.x2=_latex2jsUtils.X.call(this,t[3]),a.y2=_latex2jsUtils.Y.call(this,t[4])),e&&Object.assign(a,(0,_latex2jsUtils.parseOptions)(e)),"string"==typeof a.linewidth&&(a.linewidth=2),a},uservariable:function uservariable(m){var options=m[1],coords=[];this.userx&&this.usery?(coords.push(Number(this.userx)),coords.push(Number(this.usery))):(coords.push(_latex2jsUtils.X.call(this,m[3])),coords.push(_latex2jsUtils.Y.call(this,m[4])));var nx1=_latex2jsUtils.Xinv.call(this,coords[0]),ny1=_latex2jsUtils.Yinv.call(this,coords[1]),expx1="var x = "+nx1+";",expy1="var y = "+ny1+";",obj={name:m[2],x:_latex2jsUtils.X.call(this,m[3]),y:_latex2jsUtils.Y.call(this,m[4]),func:m[5],value:eval(expx1+expy1+m[5])};return obj},userline:function userline(m){var _this2=this,options=m[1],lineType=m[2],l=(0,_latex2jsUtils.parseArrows)(lineType),arrows=l.arrows,dots=l.dots,xExp=m[7],yExp=m[8];xExp&&(xExp="with (Math){"+xExp.replace(/^\{/,"").replace(/\}$/,"")+"}"),yExp&&(yExp="with (Math){"+yExp.replace(/^\{/,"").replace(/\}$/,"")+"}");var xExp2=m[9],yExp2=m[10];xExp2&&(xExp2="with (Math){"+xExp2.replace(/^\{/,"").replace(/\}$/,"")+"}"),yExp2&&(yExp2="with (Math){"+yExp2.replace(/^\{/,"").replace(/\}$/,"")+"}");var expression="";Object.entries(this.variables||{}).forEach((function(t){var e=(0,_slicedToArray2.default)(t,2),n=e[0],i=e[1];expression+="var "+n+" = "+i+";"}));var obj={x1:_latex2jsUtils.X.call(this,m[3]),y1:_latex2jsUtils.Y.call(this,m[4]),x2:_latex2jsUtils.X.call(this,m[5]),y2:_latex2jsUtils.Y.call(this,m[6]),xExp,yExp,xExp2,yExp2,userx:function userx(coords){var nx1=_latex2jsUtils.Xinv.call(_this2,coords[0]),ny1=_latex2jsUtils.Yinv.call(_this2,coords[1]),expx1="var x = "+nx1+";",expy1="var y = "+ny1+";";return _latex2jsUtils.X.call(_this2,eval(expression+expy1+expx1+xExp))},usery:function usery(coords){var nx2=_latex2jsUtils.Xinv.call(_this2,coords[0]),ny2=_latex2jsUtils.Yinv.call(_this2,coords[1]),expx2="var x = "+nx2+";",expy2="var y = "+ny2+";";return _latex2jsUtils.Y.call(_this2,eval(expression+expy2+expx2+yExp))},userx2:function userx2(coords){var nx3=_latex2jsUtils.Xinv.call(_this2,coords[0]),ny3=_latex2jsUtils.Yinv.call(_this2,coords[1]),expx3="var x = "+nx3+";",expy3="var y = "+ny3+";";return _latex2jsUtils.X.call(_this2,eval(expression+expy3+expx3+xExp2))},usery2:function usery2(coords){var nx4=_latex2jsUtils.Xinv.call(_this2,coords[0]),ny4=_latex2jsUtils.Yinv.call(_this2,coords[1]),expx4="var x = "+nx4+";",expy4="var y = "+ny4+";";return _latex2jsUtils.Y.call(_this2,eval(expression+expy4+expx4+yExp2))},linecolor:"black",linestyle:"solid",fillstyle:"solid",fillcolor:"black",linewidth:2,arrows,dots};return options&&Object.assign(obj,(0,_latex2jsUtils.parseOptions)(options)),"string"==typeof obj.linewidth&&(obj.linewidth=2),obj},rput:function rput(t){return{x:_latex2jsUtils.X.call(this,t[1]),y:_latex2jsUtils.Y.call(this,t[2]),text:t[3]}},psset:function psset(t){var e=t[1].split(",").map((function(t){return t.split("=")})),n={};return e.forEach((function(t){var e=t[0],i=t[1];Object.keys(_latex2jsSettings.default.Expressions).forEach((function(t){var a=_latex2jsSettings.default.Expressions[t];e.match(a)&&_latex2jsSettings.default.Functions[t](n,i)}))})),n}};exports.Functions=Functions;var _default={Expressions,Functions};exports.default=_default},{"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/slicedToArray":10,"latex2js-settings":124,"latex2js-utils":125}],124:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.Functions=n.Expressions=void 0;var i=t("latex2js-utils"),a={fillcolor:/^fillcolor$/,fillstyle:/^fillstyle$/,linecolor:/^linecolor$/,linestyle:/^linestyle$/,unit:/^unit/,runit:/^runit/,xunit:/^xunit/,yunit:/^yunit/};n.Expressions=a;var s={fillcolor:function fillcolor(t,e){t.fillcolor=e},fillstyle:function fillstyle(t,e){t.fillstyle=e},linecolor:function linecolor(t,e){t.linecolor=e},linestyle:function linestyle(t,e){t.linestyle=e},unit:function unit(t,e){e=(0,i.convertUnits)(e),t.unit=e,t.runit=e,t.xunit=e,t.yunit=e},runit:function runit(t,e){e=(0,i.convertUnits)(e),t.runit=e},xunit:function xunit(t,e){e=(0,i.convertUnits)(e),t.xunit=e},yunit:function yunit(t,e){e=(0,i.convertUnits)(e),t.yunit=e}};n.Functions=s;var u={Expressions:a,Functions:s};n.default=u},{"latex2js-utils":125}],125:[function(require,module,exports){Object.defineProperty(exports,"__esModule",{value:!0}),exports.Yinv=exports.Y=exports.Xinv=exports.X=exports.evaluate=exports.parseArrows=exports.parseOptions=exports.RE=exports.convertUnits=exports.matchrepl=exports.simplerepl=void 0;var simplerepl=function simplerepl(t,e){return function(n,i){return i.replace(t,e)}};exports.simplerepl=simplerepl;var matchrepl=function matchrepl(t,e){return function(n,i){return Array.isArray(n)&&n.forEach((function(n){var a=n.match(t);i=i.replace(a.input,e(a))})),i}};exports.matchrepl=matchrepl;var convertUnits=function convertUnits(t){var e=null;return(e=t.match(/([^c]+)\s*cm/))?50*Number(e[1]):(e=t.match(/([^i]+)\s*in/))?20*Number(e[1]):(e=t.match(/(.*)/))?50*Number(e[1]):Number(t)};exports.convertUnits=convertUnits;var RE={options:"(\\[[^\\]]*\\])?",type:"(\\{[^\\}]*\\})?",squiggle:"\\{([^\\}]*)\\}",squiggleOpt:"(\\{[^\\}]*\\})?",coordsOpt:"(\\(\\s*([^\\)]*),([^\\)]*)\\s*\\))?",coords:"\\(\\s*([^\\)]*),([^\\)]*)\\s*\\)"};exports.RE=RE;var parseOptions=function parseOptions(t){var e=t.replace(/[\]\[]/g,"").split(","),n={};return e.forEach((function(t){var e=t.split("=");2==e.length&&(n[e[0].trim()]=e[1].trim())})),n};exports.parseOptions=parseOptions;var parseArrows=function parseArrows(t){var e=[0,0],n=[0,0];if(t){var i=t.match(/\{([^\-]*)?\-([^\-]*)?\}/);i&&(i[1]&&(i[1].match(/\*/)?n[0]=1:i[1].match(/)&&(e[0]=1)),i[2]&&(i[2].match(/\*/)?n[1]=1:i[2].match(/>/)&&(e[1]=1)))}return{arrows:e,dots:n}};exports.parseArrows=parseArrows;var evaluate=function evaluate(exp){var _this=this,num=Number(exp);if(isNaN(num)){var expression="";return this.variables=this.variables||{},Object.keys(this.variables).map((function(t){var e=_this.variables[t];expression+="var "+t+" = "+e+";"})),expression+="with (Math){"+exp+"}",eval(expression)}return num};exports.evaluate=evaluate;var X=function X(t){return(this.w-(this.x1-Number(t)))*this.xunit};exports.X=X;var Xinv=function Xinv(t){return Number(t)/this.xunit-this.w+this.x1};exports.Xinv=Xinv;var Y=function Y(t){return(this.y1-Number(t))*this.yunit};exports.Y=Y;var Yinv=function Yinv(t){return this.y1-Number(t)/this.yunit};exports.Yinv=Yinv},{}],126:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=i(t("@babel/runtime/helpers/classCallCheck")),s=i(t("@babel/runtime/helpers/createClass")),u=i(t("./lib/text")),c=i(t("./lib/headers")),f=t("latex2js-pstricks"),h=i(t("./lib/environments")),d=i(t("./lib/ignore")),p=i(t("./lib/parser")),g=function(){function LaTeX2HTML5(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u.default,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.default,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.default,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:d.default,p=arguments.length>4&&void 0!==arguments[4]?arguments[4]:f.pstricks,g=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};(0,a.default)(this,LaTeX2HTML5),this.Text=e,this.Headers=n,this.Environments=i,this.Ignore=s,this.PSTricks=p,this.Views=g,this.Delimiters={},i.forEach((function(e){t.addEnvironment(e)}))}return(0,s.default)(LaTeX2HTML5,[{key:"addEnvironment",value:function addEnvironment(t){var e={begin:new RegExp("\\\\begin\\{"+t+"\\}"),end:new RegExp("\\\\end\\{"+t+"\\}")};this.Delimiters[t]=e}},{key:"addView",value:function addView(t,e){this.addEnvironment(t)}},{key:"addText",value:function addText(t,e,n){this.Text.Expressions[t]=e,this.Text.Functions[t]=n}},{key:"addHeaders",value:function addHeaders(t,e,n){var i={},a=t+"begin",s=t+"end";i[a]=new RegExp("\\\\begin\\{"+t+"\\}"),i[s]=new RegExp("\\\\end\\{"+t+"\\}"),Object.assign(this.Headers.Expressions,i);var u={};u[a]=function(){return e||""},u[s]=function(){return n||""},Object.assign(this.Headers.Functions,u)}},{key:"getParser",value:function getParser(){return new p.default(this)}},{key:"parse",value:function parse(t){var e=new p.default(this).parse(t);return e.forEach((function(t){if(!t.hasOwnProperty("type"))throw new Error("no type!")})),e}}]),LaTeX2HTML5}();n.default=g},{"./lib/environments":127,"./lib/headers":128,"./lib/ignore":129,"./lib/parser":130,"./lib/text":131,"@babel/runtime/helpers/classCallCheck":3,"@babel/runtime/helpers/createClass":4,"@babel/runtime/helpers/interopRequireDefault":6,"latex2js-pstricks":121}],127:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;n.default=["pspicture","verbatim","enumerate","print","nicebox"]},{}],128:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.Functions=n.Expressions=void 0;var i={bq:/\\begin\{quotation\}/,claim:/\\begin\{claim\}/,corollary:/\\begin\{corollary\}/,definition:/\\begin\{definition\}/,endclaim:/\\end\{claim\}/,endcorallary:/\\end\{corallary\}/,enddefinition:/\\end\{definition\}/,endexample:/\\end\{example\}/,endproblem:/\\end\{problem\}/,endsolution:/\\end\{solution\}/,endtheorem:/\\end\{theorem\}/,eq:/\\end\{quotation\}/,example:/\\begin\{example\}/,problem:/\\begin\{problem\}/,proof:/\\begin\{proof\}/,qed:/\\end\{proof\}/,solution:/\\begin\{solution\}/,theorem:/\\begin\{theorem\}/};n.Expressions=i;var a={bq:function bq(){return''},claim:function claim(){return"
Claim
"},corollary:function corollary(){return"Corollary
"},definition:function definition(){return"Definition
"},endclaim:function endclaim(){return""},endcorollary:function endcorollary(){return""},enddefinition:function enddefinition(){return""},endexample:function endexample(){return""},endproblem:function endproblem(){return""},endsolution:function endsolution(){return""},endtheorem:function endtheorem(){return""},eq:function eq(){return""},example:function example(){return"Example
"},problem:function problem(){return"Problem
"},proof:function proof(){return"Proof
"},qed:function qed(){return"$\\qed$"},solution:function solution(){return"Solution
"},theorem:function theorem(){return"Theorem
"}};n.Functions=a;var s={Expressions:i,Functions:a};n.default=s},{}],129:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;n.default=[/^\%/,/\\begin\{document\}/,/\\end\{document\}/,/\\begin\{interactive\}/,/\\end\{interactive\}/,/\\usepackage/,/\\documentclass/,/\\tableofcontents/,/\\author/,/\\date/,/\\maketitle/,/\\title/,/\\pagestyle/,/\\smallskip/,/\\medskip/,/\\bigskip/,/\\nobreak/,/\\begin\{center\}/,/\\end\{center\}/]},{}],130:[function(t,e,n){var i=t("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=i(t("@babel/runtime/helpers/slicedToArray")),s=i(t("@babel/runtime/helpers/defineProperty"));function ownKeys(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function Parser(t){this.Ignore=t.Ignore,this.Delimiters=t.Delimiters,this.Text=t.Text,this.PSTricks=t.PSTricks,this.Headers=t.Headers,this.objects=[],this.environment=null,this.settings=this.PSTricks.Functions.psset.call(this,["","units=1cm,linecolor=black,linestyle=solid,fillstyle=none"])}Parser.prototype={parse:function parse(t){var e=this;if(!t)return{};var n=t.split("\n");return this.parseEnvText(n),this.parseEnv(n),this.objects.forEach((function(t){t.type.match(/pspicture/)&&(t.plot=e.parsePSTricks(t.lines,t.env))})),this.objects},newEnvironment:function newEnvironment(t){this.environment&&this.environment.lines.length&&(this.environment.settings=function _objectSpread(t){for(var e=1;e"))}))},parsePSExpression:function parsePSExpression(t,e,n,i,a){var s=t.match(e);return!!s&&(n[i].push({data:this.PSTricks.Functions[i].call(a,s),env:a,match:s,fn:this.PSTricks.Functions[i]}),!0)},parsePSVariables:function parsePSVariables(t,e,n,i,a){var s=t.match(e);if(s&&i.match(/uservariable/)){var u=this.PSTricks.Functions[i].call(a,s);a.variables=a.variables||{},a.variables[u.name]=u.value}},parsePSTricks:function parsePSTricks(t,e){var n=this,i={},s=Object.entries(this.PSTricks.Expressions);return s.forEach((function(t){var e=(0,a.default)(t,2),n=e[0];e[1];i[n]=[]})),t.forEach((function(t){s.forEach((function(s){var u=(0,a.default)(s,2),c=u[0],f=u[1];n.parsePSVariables(t,f,i,c,e),n.parsePSExpression(t,f,i,c,e)}))})),i},parseTextExpression:function parseTextExpression(t,e,n,i){var a=t.match(e);return a?this.Text.Functions[n].call(this,a,i):i},parseHeadersExpression:function parseHeadersExpression(t,e,n,i){return t.match(e)?this.Headers.Functions[n].call(this):i},parseText:function parseText(t){var e=this,n=t;return Object.entries(this.Text.Expressions).forEach((function(i){var s=(0,a.default)(i,2),u=s[0],c=s[1];n=e.parseTextExpression(t,c,u,n)})),Object.entries(this.Headers.Expressions).forEach((function(i){var s=(0,a.default)(i,2),u=s[0],c=s[1];n=e.parseHeadersExpression(t,c,u,n)})),n}};var u=Parser;n.default=u},{"@babel/runtime/helpers/defineProperty":5,"@babel/runtime/helpers/interopRequireDefault":6,"@babel/runtime/helpers/slicedToArray":10}],131:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.Functions=n.Expressions=void 0;var i=t("latex2js-utils"),a={emph:/\\emph\{[^}]*\}/g,bf:/\{*\\bf [^}]*\}/g,rm:/\{*\\rm [^}]*\}/g,sl:/\{*\\sl [^}]*\}/g,it:/\{*\\it [^}]*\}/g,tt:/\{*\\tt [^}]*\}/g,mdash:/---/g,ndash:/--/g,openq:/``/g,closeq:/''/g,TeX:/\\TeX\\|\\TeX/g,LaTeX:/\\LaTeX\\|\\LaTeX/g,vspace:/\\vspace/g,cite:/\\cite\[\d+\]\{[^}]*\}/g,href:/\\href\{[^}]*\}\{[^}]*\}/g,img:/\\img\{[^}]*\}/g,set:/\\set\{[^}]*\}/g,youtube:/\\youtube\{[^}]*\}/g,euler:/Euler\^/g};n.Expressions=a;var s={cite:function cite(t,e){return t.forEach((function(t){var n=t.match(/\\cite\[(\d+)\]\{([^}]*)\}/),i=location.pathname.match(/\/books\/(\d+)\//),a=0;i&&(a=i[1]),e=e.replace(n.input,'[p'+n[1]+"]")})),e},img:(0,i.matchrepl)(/\\img\{([^}]*)\}/,(function(t){return''})),youtube:(0,i.matchrepl)(/\\youtube\{([^}]*)\}/,(function(t){return''})),href:(0,i.matchrepl)(/\\href\{([^}]*)\}\{([^}]*)\}/,(function(t){return''+t[2]+""})),set:(0,i.matchrepl)(/\\set\{([^}]*)\}/,(function(t){return""+t[1]+""})),euler:(0,i.simplerepl)(/Euler\^/,"exp"),emph:(0,i.matchrepl)(/\{([^}]*)\}/,(function(t){return""+t[1]+""})),bf:(0,i.matchrepl)(/\{*\\bf ([^}]*)\}/,(function(t){return""+t[1]+""})),rm:(0,i.matchrepl)(/\{*\\rm ([^}]*)\}/,(function(t){return''+t[1]+""})),sl:(0,i.matchrepl)(/\{*\\sl ([^}]*)\}/,(function(t){return""+t[1]+""})),it:(0,i.matchrepl)(/\{*\\it ([^}]*)\}/,(function(t){return""+t[1]+""})),tt:(0,i.matchrepl)(/\{*\\tt ([^}]*)\}/,(function(t){return''+t[1]+""})),ndash:(0,i.simplerepl)(/--/g,"–"),mdash:(0,i.simplerepl)(/---/g,"—"),openq:(0,i.simplerepl)(/``/g,"“"),closeq:(0,i.simplerepl)(/''/g,"”"),vspace:(0,i.simplerepl)(/\\vspace/g,"
"),TeX:(0,i.simplerepl)(/\\TeX\\|\\TeX/g,"$\\TeX$"),LaTeX:(0,i.simplerepl)(/\\LaTeX\\|\\LaTeX/g,"$\\LaTeX$")};n.Functions=s;var u={Expressions:a,Functions:s};n.default=u},{"latex2js-utils":125}]},{},[118])(118)}));
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/lib/loading.html b/src/public/build/es6/node_modules/@haxtheweb/web-container/lib/loading.html
new file mode 100644
index 0000000..2aa8fc8
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/lib/loading.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/lib/web-container.haxProperties.json b/src/public/build/es6/node_modules/@haxtheweb/web-container/lib/web-container.haxProperties.json
new file mode 100644
index 0000000..cac9c9d
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/lib/web-container.haxProperties.json
@@ -0,0 +1,51 @@
+{
+ "api": "1",
+ "canScale": true,
+ "canEditSource": true,
+ "type": "element",
+ "designSystem": {
+ "accent": true,
+ "primary": true,
+ "card": true,
+ "text": true,
+ "designTreatment": false
+ },
+ "gizmo": {
+ "title": "web-container",
+ "description": "",
+ "icon": "icons:android",
+ "color": "purple",
+ "tags": [
+ "Other"
+ ],
+ "handles": [],
+ "meta": {
+ "author": "haxtheweb"
+ }
+ },
+ "settings": {
+ "configure": [
+ {
+ "property": "title",
+ "title": "Title",
+ "description": "",
+ "inputMethod": "textfield",
+ "icon": "editor:title",
+ "required": true
+ }
+ ]
+ },
+ "saveOptions": {
+ "wipeSlot": false,
+ "unsetAttributes": []
+ },
+ "demoSchema": [
+ {
+ "tag": "web-container",
+ "properties": {
+ "title": "Sample property title"
+ },
+ "content": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.ar.haxProperties.json b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.ar.haxProperties.json
new file mode 100644
index 0000000..f92260f
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.ar.haxProperties.json
@@ -0,0 +1,16 @@
+{
+ "settings": {
+ "configure": [
+ {
+ "title": "عنوان"
+ }
+ ]
+ },
+ "demoSchema": [
+ {
+ "properties": {
+ "title": "قيمة مخصصة"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.ar.json b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.ar.json
new file mode 100644
index 0000000..1fc8f3d
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.ar.json
@@ -0,0 +1,3 @@
+{
+ "title": "عنوان"
+}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.es.haxProperties.json b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.es.haxProperties.json
new file mode 100644
index 0000000..2b055c9
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.es.haxProperties.json
@@ -0,0 +1,16 @@
+{
+ "settings": {
+ "configure": [
+ {
+ "title": "Título"
+ }
+ ]
+ },
+ "demoSchema": [
+ {
+ "properties": {
+ "title": "Valor personalizado"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.es.json b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.es.json
new file mode 100644
index 0000000..59c0b61
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.es.json
@@ -0,0 +1,3 @@
+{
+ "title": "título"
+}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.hi.haxProperties.json b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.hi.haxProperties.json
new file mode 100644
index 0000000..6b78fa7
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.hi.haxProperties.json
@@ -0,0 +1,16 @@
+{
+ "settings": {
+ "configure": [
+ {
+ "title": "शीर्षक"
+ }
+ ]
+ },
+ "demoSchema": [
+ {
+ "properties": {
+ "title": "कस्टम मूल्य"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.hi.json b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.hi.json
new file mode 100644
index 0000000..3d4a982
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.hi.json
@@ -0,0 +1,3 @@
+{
+ "title": "शीर्षक"
+}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.zh.haxProperties.json b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.zh.haxProperties.json
new file mode 100644
index 0000000..78dada0
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.zh.haxProperties.json
@@ -0,0 +1,16 @@
+{
+ "settings": {
+ "configure": [
+ {
+ "title": "标题"
+ }
+ ]
+ },
+ "demoSchema": [
+ {
+ "properties": {
+ "title": "定制值"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.zh.json b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.zh.json
new file mode 100644
index 0000000..cc8a97b
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/locales/web-container.zh.json
@@ -0,0 +1,3 @@
+{
+ "title": "标题"
+}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@haxtheweb/web-container/web-container.js b/src/public/build/es6/node_modules/@haxtheweb/web-container/web-container.js
new file mode 100644
index 0000000..04ffc6a
--- /dev/null
+++ b/src/public/build/es6/node_modules/@haxtheweb/web-container/web-container.js
@@ -0,0 +1,247 @@
+/**
+ * Copyright 2024 haxtheweb
+ * @license Apache-2.0, see LICENSE for full text.
+ */
+import{LitElement as e,html as t,css as r}from"../../lit/index.js";import{DDDSuper as o}from"../d-d-d/d-d-d.js";import{I18NMixin as i}from"../i18n-manager/lib/I18NMixin.js";import{WebContainer as n}from"../../@webcontainer/api/dist/index.js";import{Terminal as s}from"../../@xterm/xterm/lib/xterm.mjs";import{FitAddon as a}from"../../@xterm/addon-fit/lib/addon-fit.mjs";const l={"index.js":{file:{contents:""}},"package.json":{file:{contents:'\n {\n "name": "hax-webcontainer",\n "type": "module",\n "dependencies": {\n "@haxtheweb/haxcms-nodejs": "latest",\n "nodemon": "latest"\n },\n "scripts": {\n "start": "npx @haxtheweb/haxcms-nodejs"\n }\n }'}}};export class webContainer extends(o(i(e))){static get tag(){return"web-container"}constructor(){super(),this.webcontainerInstance=null,this.t=this.t||{},this.t={...this.t,title:"Title"},this.registerLocalization({context:this,localesPath:new URL("./locales/web-container.ar.json",import.meta.url).href+"/../",locales:["ar","es","hi","zh"]}),globalThis.addEventListener("load",(async()=>{const e=new a,t=new s({convertEol:!0});t.loadAddon(e),t.open(this.shadowRoot.querySelector(".terminal")),e.fit(),this.webcontainerInstance=await n.boot(),await this.webcontainerInstance.mount(l),await this.installDependencies(),await this.startDevServer(),this.webcontainerInstance.on("server-ready",((e,t)=>{this.shadowRoot.querySelector("iframe").src=t}));const r=await this.startShell(t);globalThis.addEventListener("resize",(()=>{e.fit(),r.resize({cols:t.cols,rows:t.rows})}))}))}async installDependencies(){const e=await this.webcontainerInstance.spawn("npm",["install"]);return e.output.pipeTo(new WritableStream({write(e){console.log(e)}})),e.exit}async startDevServer(){await this.webcontainerInstance.spawn("npm",["run","start"])}async startShell(e){const t=await this.webcontainerInstance.spawn("jsh",{terminal:{cols:e.cols,rows:e.rows}});t.output.pipeTo(new WritableStream({write(t){e.write(t)}}));const r=t.input.getWriter();return e.onData((e=>{r.write(e)})),t}async writeIndexJS(e){await this.webcontainerInstance.fs.writeFile("/index.js",e)}static get properties(){return{...super.properties}}static get styles(){return[super.styles,r`
+ :host {
+ display: block;
+ color: var(--ddd-theme-primary);
+ background-color: var(--ddd-theme-accent);
+ font-family: var(--ddd-font-navigation);
+ }
+ iframe {
+ width: 100%;
+ border: none;
+ background-color: transparent;
+ }
+
+ .terminal {
+ padding: 0;
+ margin: 0;
+ overflow: hidden;
+ }
+ /**
+ * Copyright (c) 2014 The xterm.js authors. All rights reserved.
+ * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
+ * https://github.com/chjj/term.js
+ * @license MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ * Originally forked from (with the author's permission):
+ * Fabrice Bellard's javascript vt100 for jslinux:
+ * http://bellard.org/jslinux/
+ * Copyright (c) 2011 Fabrice Bellard
+ * The original design remains. The terminal itself
+ * has been extended to include xterm CSI codes, among
+ * other features.
+ */
+
+ /**
+ * Default styles for xterm.js
+ */
+
+ .xterm {
+ cursor: text;
+ position: relative;
+ user-select: none;
+ -ms-user-select: none;
+ -webkit-user-select: none;
+ }
+
+ .xterm.focus,
+ .xterm:focus {
+ outline: none;
+ }
+
+ .xterm .xterm-helpers {
+ position: absolute;
+ top: 0;
+ /**
+ * The z-index of the helpers must be higher than the canvases in order for
+ * IMEs to appear on top.
+ */
+ z-index: 5;
+ }
+
+ .xterm .xterm-helper-textarea {
+ padding: 0;
+ border: 0;
+ margin: 0;
+ /* Move textarea out of the screen to the far left, so that the cursor is not visible */
+ position: absolute;
+ opacity: 0;
+ left: -9999em;
+ top: 0;
+ width: 0;
+ height: 0;
+ z-index: -5;
+ /** Prevent wrapping so the IME appears against the textarea at the correct position */
+ white-space: nowrap;
+ overflow: hidden;
+ resize: none;
+ }
+
+ .xterm .composition-view {
+ /* TODO: Composition position got messed up somewhere */
+ background: #000;
+ color: #FFF;
+ display: none;
+ position: absolute;
+ white-space: nowrap;
+ z-index: 1;
+ }
+
+ .xterm .composition-view.active {
+ display: block;
+ }
+
+ .xterm .xterm-viewport {
+ /* On OS X this is required in order for the scroll bar to appear fully opaque */
+ background-color: #000;
+ overflow-y: scroll;
+ cursor: default;
+ position: absolute;
+ right: 0;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ }
+
+ .xterm .xterm-screen {
+ position: relative;
+ }
+
+ .xterm .xterm-screen canvas {
+ position: absolute;
+ left: 0;
+ top: 0;
+ }
+
+ .xterm .xterm-scroll-area {
+ visibility: hidden;
+ }
+
+ .xterm-char-measure-element {
+ display: inline-block;
+ visibility: hidden;
+ position: absolute;
+ top: 0;
+ left: -9999em;
+ line-height: normal;
+ }
+
+ .xterm.enable-mouse-events {
+ /* When mouse events are enabled (eg. tmux), revert to the standard pointer cursor */
+ cursor: default;
+ }
+
+ .xterm.xterm-cursor-pointer,
+ .xterm .xterm-cursor-pointer {
+ cursor: pointer;
+ }
+
+ .xterm.column-select.focus {
+ /* Column selection mode */
+ cursor: crosshair;
+ }
+
+ .xterm .xterm-accessibility:not(.debug),
+ .xterm .xterm-message {
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ z-index: 10;
+ color: transparent;
+ 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;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+ }
+
+ .xterm-dim {
+ /* Dim should not apply to background, so the opacity of the foreground color is applied
+ * explicitly in the generated class and reset to 1 here */
+ opacity: 1 !important;
+ }
+
+ .xterm-underline-1 { text-decoration: underline; }
+ .xterm-underline-2 { text-decoration: double underline; }
+ .xterm-underline-3 { text-decoration: wavy underline; }
+ .xterm-underline-4 { text-decoration: dotted underline; }
+ .xterm-underline-5 { text-decoration: dashed underline; }
+
+ .xterm-overline {
+ text-decoration: overline;
+ }
+
+ .xterm-overline.xterm-underline-1 { text-decoration: overline underline; }
+ .xterm-overline.xterm-underline-2 { text-decoration: overline double underline; }
+ .xterm-overline.xterm-underline-3 { text-decoration: overline wavy underline; }
+ .xterm-overline.xterm-underline-4 { text-decoration: overline dotted underline; }
+ .xterm-overline.xterm-underline-5 { text-decoration: overline dashed underline; }
+
+ .xterm-strikethrough {
+ text-decoration: line-through;
+ }
+
+ .xterm-screen .xterm-decoration-container .xterm-decoration {
+ z-index: 6;
+ position: absolute;
+ }
+
+ .xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer {
+ z-index: 7;
+ }
+
+ .xterm-decoration-overview-ruler {
+ z-index: 8;
+ position: absolute;
+ top: 0;
+ right: 0;
+ pointer-events: none;
+ }
+
+ .xterm-decoration-top {
+ z-index: 2;
+ position: relative;
+ }
+ `]}render(){return t`
+
+ `}static get haxProperties(){return new URL(`./lib/${this.tag}.haxProperties.json`,import.meta.url).href}}globalThis.customElements.define(webContainer.tag,webContainer);
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/entities.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/entities.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/entities.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/index.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/index.js
new file mode 100644
index 0000000..cfef51a
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/index.js
@@ -0,0 +1 @@
+import{authState as e,assertAuthTokens as t}from"./internal/auth-state.js";import{formatFileSystemTree as r}from"./util.js";import{PreviewMessageType as n}from"./preview-message-types.js";import{Comlink as s}from"./vendor/index.js";import{auth as i}from"./internal/auth-state.js";import{addAccessTokenChangedListener as o}from"./internal/tokens.js";import{iframeSettings as a}from"./internal/iframe-url.js";import{isPreviewMessage as c}from"./utils.js";export const auth=i;export{n as PreviewMessageType};export*from"./utils.js";let l=null,h=null,u={};const d=new TextDecoder,w=new TextEncoder;export class WebContainer{_instance;_runtimeInfo;fs;static _instance=null;_tornDown=!1;_unsubscribeFromTokenChangedListener=()=>{};constructor(r,n,s){this._instance=r,this._runtimeInfo=s,this.fs=new FileSystemAPIClient(n);e.initialized&&(this._unsubscribeFromTokenChangedListener=o((t=>{this._instance.setCredentials({accessToken:t,editorOrigin:e.editorOrigin})})),(async()=>{await e.authComplete.promise,this._tornDown||(t(e.tokens),await this._instance.setCredentials({accessToken:e.tokens.access,editorOrigin:e.editorOrigin}))})().catch((e=>{console.error(e)})))}async spawn(e,t,r){let n,s=[];Array.isArray(t)?s=t:r=t;let i,o,a=new ReadableStream;if(!1!==r?.output){const e=function streamWithPush(){let e=null;const t=new ReadableStream({start(t){e=t}});return{stream:t,push:t=>{null!=t?e?.enqueue(t):(e?.close(),e=null)}}}();n=e.push,a=e.stream}const c=proxyListener(binaryListener(n)),l=proxyListener(binaryListener(i)),h=proxyListener(binaryListener(o)),u=await this._instance.run({command:e,args:s,cwd:r?.cwd,env:r?.env,terminal:r?.terminal},l,h,c);return new WebContainerProcessImpl(u,a,undefined,undefined)}on(e,t){if("preview-message"===e){const e=t;t=t=>{c(t)&&e(t)}}const{listener:r,subscribe:n}=function syncSubscription(e){let t=!1,unsubscribe=()=>{};const wrapped=(...r)=>{t||e(...r)};return{subscribe:e=>(e.then((e=>{unsubscribe=e,t&&unsubscribe()})),()=>{t=!0,unsubscribe()}),listener:wrapped}}(t);return n(this._instance.on(e,s.proxy(r)))}mount(e,t){const n=e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):w.encode(JSON.stringify(r(e)));return this._instance.loadFiles(s.transfer(n,[n.buffer]),{mountPoints:t?.mountPoint})}get path(){return this._runtimeInfo.path}get workdir(){return this._runtimeInfo.cwd}teardown(){if(this._tornDown)throw new Error("WebContainer already torn down");this._tornDown=!0,this._unsubscribeFromTokenChangedListener(),this.fs._teardown(),this._instance.teardown(),this._instance[s.releaseProxy](),WebContainer._instance===this&&(WebContainer._instance=null)}static async boot(t={}){const{workdirName:r}=t;if(window.crossOriginIsolated&&"none"===t.coep&&console.warn("A Cross-Origin-Embedder-Policy header is required in cross origin isolated environments.\nSet the 'coep' option to 'require-corp'."),r?.includes("/")||".."===r||"."===r)throw new Error("workdirName should be a valid folder name");for(e.bootCalled=!0;l;)await l;if(WebContainer._instance)throw new Error("Only a single WebContainer instance can be booted");const n=async function unsynchronizedBoot(e){const{serverPromise:t}=function serverFactory(e){if(null!=h)return e.coep!==u.coep&&(console.warn(`Attempting to boot WebContainer with 'coep: ${e.coep}'`),console.warn(`First boot had 'coep: ${u.coep}', new settings will not take effect!`)),{serverPromise:h};const t=document.createElement("iframe");t.style.display="none",t.setAttribute("allow","cross-origin-isolated");const r=a.url;e.coep&&r.searchParams.set("coep",e.coep);t.src=r.toString();const{origin:n}=r;return u={...e},h=new Promise((e=>{const onMessage=t=>{if(t.origin!==n)return;const{data:r}=t;"init"!==r.type?"warning"!==r.type||console[r.level].call(console,r.message):e(s.wrap(t.ports[0]))};window.addEventListener("message",onMessage)})),document.body.insertBefore(t,null),{serverPromise:h}}(e),r=await t,n=await r.build({host:window.location.host,version:"1.3.0",workdirName:e.workdirName,forwardPreviewErrors:e.forwardPreviewErrors}),i=await n.fs(),o=await n.runtimeInfo();return new WebContainer(n,i,o)}(t);l=n.catch((()=>{}));try{const e=await n;return WebContainer._instance=e,e}finally{l=null}}}export function configureAPIKey(t){if(e.bootCalled)throw new Error("`configureAPIKey` should always be called before `WebContainer.boot`");a.setQueryParam("client_id",t)}class DirEntImpl{name;_type;constructor(e,t){this.name=e,this._type=t}isFile(){return 1===this._type}isDirectory(){return 2===this._type}}class FSWatcher{_apiClient;_path;_options;_listener;_wrappedListener;_watcher;_closed=!1;constructor(e,t,r,n){this._apiClient=e,this._path=t,this._options=r,this._listener=n,this._apiClient._watchers.add(this),this._wrappedListener=(e,t)=>{this._listener&&!this._closed&&this._listener(e,t)},this._apiClient._fs.watch(this._path,this._options,proxyListener(this._wrappedListener)).then((e=>{this._watcher=e,this._closed&&this._teardown()})).catch(console.error)}close(){this._closed||(this._closed=!0,this._apiClient._watchers.delete(this),this._teardown())}_teardown(){this._watcher?.close().finally((()=>{this._watcher?.[s.releaseProxy]()}))}}class WebContainerProcessImpl{output;input;exit;_process;stdout;stderr;constructor(e,t,r,n){this.output=t,this._process=e,this.input=new WritableStream({write:e=>{this._getProcess()?.write(e).catch((()=>{}))}}),this.exit=this._onExit(),this.stdout=r,this.stderr=n}kill(){this._getProcess()?.kill()}resize(e){this._getProcess()?.resize(e)}async _onExit(){try{return await this._process.onExit}finally{this._process?.[s.releaseProxy](),this._process=null}}_getProcess(){return null==this._process&&console.warn("This process already exited"),this._process}}class FileSystemAPIClient{_fs;_watchers=new Set([]);constructor(e){this._fs=e}rm(...e){return this._fs.rm(...e)}async readFile(e,t){return await this._fs.readFile(e,t)}async rename(e,t){return await this._fs.rename(e,t)}async writeFile(e,t,r){if(t instanceof Uint8Array){const e=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);t=s.transfer(new Uint8Array(e),[e])}await this._fs.writeFile(e,t,r)}async readdir(e,t){const r=await this._fs.readdir(e,t);if(function isStringArray(e){return"string"==typeof e[0]}(r))return r;if(function isTypedArrayCollection(e){return e[0]instanceof Uint8Array}(r))return r;return r.map((e=>new DirEntImpl(e.name,e["Symbol(type)"])))}async mkdir(e,t){return await this._fs.mkdir(e,t)}watch(e,t,r){return"function"==typeof t&&(r=t,t=null),new FSWatcher(this,e,t,r)}_teardown(){this._fs[s.releaseProxy]();for(const e of this._watchers)e.close()}}function binaryListener(e){if(null!=e)return t=>{t instanceof Uint8Array?e(d.decode(t)):null==t&&e(null)}}function proxyListener(e){if(null!=e)return s.proxy(e)}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/TypedEventTarget.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/TypedEventTarget.js
new file mode 100644
index 0000000..b0a16ee
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/TypedEventTarget.js
@@ -0,0 +1 @@
+export class TypedEventTarget{_bus=new EventTarget;listen(e){function wrappedListener(s){e(s.data)}return this._bus.addEventListener("message",wrappedListener),()=>this._bus.removeEventListener("message",wrappedListener)}fireEvent(e){this._bus.dispatchEvent(new MessageEvent("message",{data:e}))}}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/api-server.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/api-server.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/api-server.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/auth-state.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/auth-state.js
new file mode 100644
index 0000000..49d3c06
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/auth-state.js
@@ -0,0 +1 @@
+import{Tokens as t,clearTokensInStorage as e}from"./tokens.js";import{SEARCH_PARAM_AUTH_CODE as a,SEARCH_PARAM_ERROR as o,STORAGE_CODE_VERIFIER_NAME as r,BROADCAST_CHANNEL_NAME as n,STORAGE_POPUP_NAME as i,SEARCH_PARAM_ERROR_DESCRIPTION as s}from"./constants.js";import{iframeSettings as u}from"./iframe-url.js";import{S256 as h,newCodeVerifier as d}from"./code.js";import{resettablePromise as l}from"./reset-promise.js";import{TypedEventTarget as c}from"./TypedEventTarget.js";export const authState={initialized:!1,bootCalled:!1,forwardAuth:!0,redirectUri:"",authComplete:l(),clientId:"",oauthScope:"",broadcastChannel:null,get editorOrigin(){return u.editorOrigin},tokens:null,cleanup:[]};const p=new c,f=new c;function broadcastMessage(t){authState.broadcastChannel&&(authState.broadcastChannel.postMessage(t),"true"===localStorage.getItem(i)&&"auth-logout"!==t.type&&(localStorage.removeItem(i),setTimeout((()=>{window.close()}))))}export const auth={init({editorOrigin:i,clientId:h,scope:d,forwardAuth:l,redirectUri:c}){if(authState.initialized)throw new Error("Init should only be called once");if(authState.bootCalled)throw new Error("`auth.init` should always be called before `WebContainer.boot`");authState.initialized=!0,authState.forwardAuth=l??!0,authState.redirectUri=c??defaultRedirectUri();let w=!0;if(authState.tokens=t.fromStorage(),authState.clientId=h,authState.oauthScope=d,authState.broadcastChannel=new BroadcastChannel(n),u.setQueryParam("client_id",h),i&&(u.editorOrigin=new URL(i).origin),f.listen((()=>authState.authComplete.reset())),authState.broadcastChannel.addEventListener("message",(async function onChannelMessage(e){const a=e.data;if("auth-complete"===a.type)return authState.tokens=t.fromStorage(),authState.tokens,await authState.tokens.activate(w,onFailedTokenRefresh),void authState.authComplete.resolve();if("auth-failed"===a.type)return void p.fireEvent(a);if("auth-logout"===a.type)return void f.fireEvent()})),authState.tokens){const t=authState.tokens;if(t.origin===authState.editorOrigin)return(async()=>{if(await t.activate(w,onFailedTokenRefresh))authState.authComplete.resolve();else{if(authState.tokens!==t)return;f.fireEvent()}})(),{status:"authorized"};e(),authState.tokens=null}const g=new URL(window.location.href),{searchParams:S}=g,updateURL=()=>window.history.replaceState({},document.title,g);if(S.has(o)){const t=S.get(o),e=S.get(s);return S.delete(o),S.delete(s),updateURL(),broadcastMessage({type:"auth-failed",error:t,description:e}),{status:"auth-failed",error:t,description:e}}if(S.has(a)){const e=S.get(a),o=authState.editorOrigin;S.delete(a),updateURL();const n=localStorage.getItem(r);if(!n)return{status:"need-auth"};localStorage.removeItem(r);let i=defaultRedirectUri();return t.fromAuthCode({editorOrigin:o,clientId:authState.clientId,authCode:e,codeVerifier:n,redirectUri:i}).then((async t=>{authState.tokens=t,assertAuthTokens(authState.tokens);if(!await authState.tokens.activate(w,onFailedTokenRefresh))throw new Error;authState.authComplete.resolve(),broadcastMessage({type:"auth-complete"})})).catch((t=>{console.error(t),f.fireEvent(),broadcastMessage({type:"auth-logout"})})),{status:"authorized"}}return{status:"need-auth"}},async startAuthFlow({popup:t}={}){if(!authState.initialized)throw new Error("auth.init must be called first");if(t){localStorage.setItem(i,"true");const t=500,e=620,a=window.screenLeft+(window.outerWidth-e)/2,o=window.screenTop+(window.outerHeight-t)/2;window.open(await generateOAuthRequest(),"_blank",`popup,width=${e},height=${t},left=${a},top=${o}`)}else window.location.href=await generateOAuthRequest()},async logout({ignoreRevokeError:t}={}){await(authState.tokens?.revoke(authState.clientId,t??!1)),f.fireEvent(),broadcastMessage({type:"auth-logout"})},loggedIn:()=>authState.authComplete.promise,on(t,e){switch(t){case"auth-failed":return p.listen(e);case"logged-out":return f.listen(e);default:throw new Error(`Unsupported event type '${t}'.`)}}};function onFailedTokenRefresh(){f.fireEvent(),broadcastMessage({type:"auth-logout"})}function defaultRedirectUri(){return window.location.href}async function generateOAuthRequest(){const t=d();localStorage.setItem(r,t);const e=await h(t),a=new URL("/oauth/authorize",authState.editorOrigin),{searchParams:o}=a;let n=defaultRedirectUri();return o.append("response_type","code"),o.append("client_id",authState.clientId),o.append("redirect_uri",n),o.append("scope",authState.oauthScope),o.append("code_challenge",e),o.append("code_challenge_method","S256"),a.toString()}export function assertAuthTokens(t){if(!t)throw new Error("Oops! Tokens is not defined when it always should be.")}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/code.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/code.js
new file mode 100644
index 0000000..b210188
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/code.js
@@ -0,0 +1 @@
+export async function S256(e){const r=(new TextEncoder).encode(e),n=new Uint8Array(await crypto.subtle.digest("SHA-256",r));return btoa(n.reduce(((e,r)=>e+String.fromCodePoint(r)),"")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}export function newCodeVerifier(){const e=new Uint8Array(96);crypto.getRandomValues(e);let r="";for(let n=0;n<32;++n)r+=nextFourChars(e[3*n+0],e[3*n+1],e[3*n+2]);return r}function nextFourChars(e,r,n){return[e>>2,(3&e)<<4|r>>4,15&r|(192&n)>>2,63&n].map(unreservedCharacters).join("")}function unreservedCharacters(e){let r;return r=e<26?e+65:e<52?e-26+97:e<62?e-52+48:62===e?30:45,String.fromCharCode(r)}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/constants.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/constants.js
new file mode 100644
index 0000000..b155f44
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/constants.js
@@ -0,0 +1 @@
+export const DEFAULT_EDITOR_ORIGIN="https://stackblitz.com";export const SEARCH_PARAM_AUTH_CODE="code";export const SEARCH_PARAM_ERROR="error";export const SEARCH_PARAM_ERROR_DESCRIPTION="error_description";export const BROADCAST_CHANNEL_NAME="__wc_api_bc__";export const STORAGE_TOKENS_NAME="__wc_api_tokens__";export const STORAGE_CODE_VERIFIER_NAME="__wc_api_verifier__";export const STORAGE_POPUP_NAME="__wc_api_popup__";
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/iframe-url.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/iframe-url.js
new file mode 100644
index 0000000..4315d1c
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/iframe-url.js
@@ -0,0 +1 @@
+import{DEFAULT_EDITOR_ORIGIN as e}from"./constants.js";const r={};let t=null;export const iframeSettings={get editorOrigin(){return null==t&&(t=new URL(globalThis.WEBCONTAINER_API_IFRAME_URL??e).origin),t},set editorOrigin(e){t=new URL(e).origin},setQueryParam(e,t){r[e]=t},get url(){const e=new URL(this.editorOrigin);e.pathname="/headless";for(const t in r)e.searchParams.set(t,r[t]);return e.searchParams.set("version","1.3.0"),e}};
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/reset-promise.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/reset-promise.js
new file mode 100644
index 0000000..35e8bff
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/reset-promise.js
@@ -0,0 +1 @@
+export function resettablePromise(){let e,r;function reset(){r=new Promise((r=>e=r))}return reset(),{get promise(){return r},resolve:r=>e(r),reset}}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/tokens.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/tokens.js
new file mode 100644
index 0000000..d61e18f
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/internal/tokens.js
@@ -0,0 +1 @@
+import{STORAGE_TOKENS_NAME as e}from"./constants.js";import{TypedEventTarget as t}from"./TypedEventTarget.js";const r=new Error;r.stack="";const o=new t;export class Tokens{origin;refresh;access;expires;_revoked=new AbortController;constructor(e,t,r,o){this.origin=e,this.refresh=t,this.access=r,this.expires=o}async activate(e,t){if(this._revoked.signal.aborted)throw new Error("Token revoked");return!(e&&this.expiressetTimeout(t,e)))}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/preview-message-types.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/preview-message-types.js
new file mode 100644
index 0000000..100ac92
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/preview-message-types.js
@@ -0,0 +1 @@
+export var PreviewMessageType;!function(e){e.UncaughtException="PREVIEW_UNCAUGHT_EXCEPTION",e.UnhandledRejection="PREVIEW_UNHANDLED_REJECTION",e.ConsoleError="PREVIEW_CONSOLE_ERROR"}(PreviewMessageType||(PreviewMessageType={}));
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/util.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/util.js
new file mode 100644
index 0000000..8a38475
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/util.js
@@ -0,0 +1 @@
+export function formatFileSystemTree(t){const n={d:{}};for(const e of Object.keys(t)){const o=t[e];if("file"in o){const t=o.file.contents,r="string"==typeof t?t:binaryString(t),i="string"==typeof t?{}:{b:!0};n.d[e]={f:{c:r,...i}};continue}const r=formatFileSystemTree(o.directory);n.d[e]=r}return n}function binaryString(t){let n="";for(const e of t)n+=String.fromCharCode(e);return n}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/utils.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/utils.js
new file mode 100644
index 0000000..8c89b03
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/utils.js
@@ -0,0 +1 @@
+export{reloadPreview}from"./utils/reload-preview.js";export{PreviewMessageType}from"./preview-message-types.js";export{isPreviewMessage}from"./utils/is-preview-message.js";
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/utils/is-preview-message.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/utils/is-preview-message.js
new file mode 100644
index 0000000..9c47798
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/utils/is-preview-message.js
@@ -0,0 +1 @@
+import{PreviewMessageType as e}from"../preview-message-types.js";const n=[e.ConsoleError,e.UncaughtException,e.UnhandledRejection];export function isPreviewMessage(e){return null!=e&&"object"==typeof e&&!(!("type"in e)||!n.includes(e.type))}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/utils/reload-preview.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/utils/reload-preview.js
new file mode 100644
index 0000000..67b3a12
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/utils/reload-preview.js
@@ -0,0 +1 @@
+export function reloadPreview(e,t=200){const{port1:o,port2:n}=new MessageChannel;let s;const c=new Promise((e=>{s=e})),done=()=>{s(),n.close()},r=setTimeout((()=>{const t=e.src;e.src=t,done()}),t);return n.addEventListener("message",(e=>{const t=e.data;null!=t&&"object"==typeof t&&"LOCALSERVICE_WINDOW_RELOADED"===t.type&&(clearTimeout(r),done())})),e.contentWindow?.postMessage({type:"LOCALSERVICE_RELOAD_WINDOW",callback:o},"*",[o]),c}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@webcontainer/api/dist/vendor/index.js b/src/public/build/es6/node_modules/@webcontainer/api/dist/vendor/index.js
new file mode 100644
index 0000000..cef64e0
--- /dev/null
+++ b/src/public/build/es6/node_modules/@webcontainer/api/dist/vendor/index.js
@@ -0,0 +1 @@
+var e=Object.defineProperty,t={};((t,r)=>{for(var n in r)e(t,n,{get:r[n],enumerable:!0})})(t,{createEndpoint:()=>n,expose:()=>expose,proxy:()=>proxy,proxyMarker:()=>r,releaseProxy:()=>a,transfer:()=>transfer,transferHandlers:()=>o,windowEndpoint:()=>windowEndpoint,wrap:()=>wrap});var r=Symbol("Comlink.proxy"),n=Symbol("Comlink.endpoint"),a=Symbol("Comlink.releaseProxy"),s=Symbol("Comlink.thrown"),isObject=e=>"object"==typeof e&&null!==e||"function"==typeof e,o=new Map([["proxy",{canHandle:e=>isObject(e)&&e[r],serialize(e){const{port1:t,port2:r}=new MessageChannel;return expose(e,t),[r,[r]]},deserialize:e=>(e.start(),wrap(e))}],["throw",{canHandle:e=>isObject(e)&&s in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function expose(e,t=self){t.addEventListener("message",(function callback(r){if(!r||!r.data)return;const{id:n,type:a,path:o}=Object.assign({path:[]},r.data),i=(r.data.argumentList||[]).map(fromWireValue);let u;try{const t=o.slice(0,-1).reduce(((e,t)=>e[t]),e),n=o.reduce(((e,t)=>e[t]),e);switch(a){case 0:u=n;break;case 1:t[o.slice(-1)[0]]=fromWireValue(r.data.value),u=!0;break;case 2:u=n.apply(t,i);break;case 3:u=proxy(new n(...i));break;case 4:{const{port1:t,port2:r}=new MessageChannel;expose(e,r),u=transfer(t,[t])}break;case 5:u=void 0}}catch(e){u={value:e,[s]:0}}Promise.resolve(u).catch((e=>({value:e,[s]:0}))).then((e=>{const[r,s]=toWireValue(e);t.postMessage(Object.assign(Object.assign({},r),{id:n}),s),5===a&&(t.removeEventListener("message",callback),closeEndPoint(t))}))})),t.start&&t.start()}function closeEndPoint(e){(function isMessagePort(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function wrap(e,t){return createProxy(e,[],t)}function throwIfProxyReleased(e){if(e)throw new Error("Proxy has been released and is not useable")}function createProxy(e,t=[],r=function(){}){let s=!1;const o=new Proxy(r,{get(r,n){if(throwIfProxyReleased(s),n===a)return()=>requestResponseMessage(e,{type:5,path:t.map((e=>e.toString()))}).then((()=>{closeEndPoint(e),s=!0}));if("then"===n){if(0===t.length)return{then:()=>o};const r=requestResponseMessage(e,{type:0,path:t.map((e=>e.toString()))}).then(fromWireValue);return r.then.bind(r)}return createProxy(e,[...t,n])},set(r,n,a){throwIfProxyReleased(s);const[o,i]=toWireValue(a);return requestResponseMessage(e,{type:1,path:[...t,n].map((e=>e.toString())),value:o},i).then(fromWireValue)},apply(r,a,o){throwIfProxyReleased(s);const i=t[t.length-1];if(i===n)return requestResponseMessage(e,{type:4}).then(fromWireValue);if("bind"===i)return createProxy(e,t.slice(0,-1));const[u,c]=processArguments(o);return requestResponseMessage(e,{type:2,path:t.map((e=>e.toString())),argumentList:u},c).then(fromWireValue)},construct(r,n){throwIfProxyReleased(s);const[a,o]=processArguments(n);return requestResponseMessage(e,{type:3,path:t.map((e=>e.toString())),argumentList:a},o).then(fromWireValue)}});return o}function processArguments(e){const t=e.map(toWireValue);return[t.map((e=>e[0])),(r=t.map((e=>e[1])),Array.prototype.concat.apply([],r))];var r}var i=new WeakMap;function transfer(e,t){return i.set(e,t),e}function proxy(e){return Object.assign(e,{[r]:!0})}function windowEndpoint(e,t=self,r="*"){return{postMessage:(t,n)=>e.postMessage(t,r,n),addEventListener:t.addEventListener.bind(t),removeEventListener:t.removeEventListener.bind(t)}}function toWireValue(e){for(const[t,r]of o)if(r.canHandle(e)){const[n,a]=r.serialize(e);return[{type:3,name:t,value:n},a]}return[{type:0,value:e},i.get(e)||[]]}function fromWireValue(e){switch(e.type){case 3:return o.get(e.name).deserialize(e.value);case 0:return e.value}}function requestResponseMessage(e,t,r){return new Promise((n=>{const a=function generateUUID(){return new Array(4).fill(0).map((()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16))).join("-")}();e.addEventListener("message",(function l(t){t.data&&t.data.id&&t.data.id===a&&(e.removeEventListener("message",l),n(t.data))})),e.start&&e.start(),e.postMessage(Object.assign({id:a},t),r)}))}export{t as Comlink};
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.js b/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.js
new file mode 100644
index 0000000..0680fc5
--- /dev/null
+++ b/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.js
@@ -0,0 +1 @@
+var e,t;e=globalThis,t=()=>{return e=t={},Object.defineProperty(e,"__esModule",{value:!0}),e.FitAddon=void 0,e.FitAddon=class{activate(e){this._terminal=e}dispose(){}fit(){const e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;const t=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal)return;if(!this._terminal.element||!this._terminal.element.parentElement)return;const e=this._terminal._core._renderService.dimensions;if(0===e.css.cell.width||0===e.css.cell.height)return;const t=0===this._terminal.options.scrollback?0:this._terminal.options.overviewRuler?.width||14,r=window.getComputedStyle(this._terminal.element.parentElement),i=parseInt(r.getPropertyValue("height")),o=Math.max(0,parseInt(r.getPropertyValue("width"))),s=window.getComputedStyle(this._terminal.element),n=i-(parseInt(s.getPropertyValue("padding-top"))+parseInt(s.getPropertyValue("padding-bottom"))),l=o-(parseInt(s.getPropertyValue("padding-right"))+parseInt(s.getPropertyValue("padding-left")))-t;return{cols:Math.max(2,Math.floor(l/e.css.cell.width)),rows:Math.max(1,Math.floor(n/e.css.cell.height))}}},t;var e,t},"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FitAddon=t():e.FitAddon=t();
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.js.map b/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.js.map
new file mode 100644
index 0000000..15f7b97
--- /dev/null
+++ b/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"addon-fit.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAkB,SAAID,IAEtBD,EAAe,SAAIC,GACpB,CATD,CASGK,YAAY,I,mHCgBf,iBAGS,QAAAC,CAASC,GACdC,KAAKC,UAAYF,CACnB,CAEO,OAAAG,GAAiB,CAEjB,GAAAC,GACL,MAAMC,EAAOJ,KAAKK,oBAClB,IAAKD,IAASJ,KAAKC,WAAaK,MAAMF,EAAKG,OAASD,MAAMF,EAAKI,MAC7D,OAIF,MAAMC,EAAQT,KAAKC,UAAkBS,MAGjCV,KAAKC,UAAUO,OAASJ,EAAKI,MAAQR,KAAKC,UAAUM,OAASH,EAAKG,OACpEE,EAAKE,eAAeC,QACpBZ,KAAKC,UAAUY,OAAOT,EAAKG,KAAMH,EAAKI,MAE1C,CAEO,iBAAAH,GACL,IAAKL,KAAKC,UACR,OAGF,IAAKD,KAAKC,UAAUa,UAAYd,KAAKC,UAAUa,QAAQC,cACrD,OAIF,MACMX,EADQJ,KAAKC,UAAkBS,MACAC,eAAeK,WAEpD,GAA4B,IAAxBZ,EAAKa,IAAIC,KAAKC,OAAwC,IAAzBf,EAAKa,IAAIC,KAAKE,OAC7C,OAGF,MAAMC,EAAwD,IAAtCrB,KAAKC,UAAUqB,QAAQC,WAC3C,EACCvB,KAAKC,UAAUqB,QAAQE,eAAeL,OAAS,GAE9CM,EAAqBC,OAAOC,iBAAiB3B,KAAKC,UAAUa,QAAQC,eACpEa,EAAsBC,SAASJ,EAAmBK,iBAAiB,WACnEC,EAAqBC,KAAKC,IAAI,EAAGJ,SAASJ,EAAmBK,iBAAiB,WAC9EI,EAAeR,OAAOC,iBAAiB3B,KAAKC,UAAUa,SAStDqB,EAAkBP,GAPjBC,SAASK,EAAaJ,iBAAiB,gBACpCD,SAASK,EAAaJ,iBAAiB,oBAO3CM,EAAiBL,GANdF,SAASK,EAAaJ,iBAAiB,kBACxCD,SAASK,EAAaJ,iBAAiB,kBAKiBT,EAKhE,MAJiB,CACfd,KAAMyB,KAAKC,IAhEI,EAgEcD,KAAKK,MAAMD,EAAiBhC,EAAKa,IAAIC,KAAKC,QACvEX,KAAMwB,KAAKC,IAhEI,EAgEcD,KAAKK,MAAMF,EAAkB/B,EAAKa,IAAIC,KAAKE,SAG5E,E","sources":["webpack://FitAddon/webpack/universalModuleDefinition","webpack://FitAddon/./src/FitAddon.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FitAddon\"] = factory();\n\telse\n\t\troot[\"FitAddon\"] = factory();\n})(globalThis, () => {\nreturn ","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport type { Terminal, ITerminalAddon } from '@xterm/xterm';\nimport type { FitAddon as IFitApi } from '@xterm/addon-fit';\nimport { IRenderDimensions } from 'browser/renderer/shared/Types';\nimport { ViewportConstants } from 'browser/shared/Constants';\n\ninterface ITerminalDimensions {\n /**\n * The number of rows in the terminal.\n */\n rows: number;\n\n /**\n * The number of columns in the terminal.\n */\n cols: number;\n}\n\nconst MINIMUM_COLS = 2;\nconst MINIMUM_ROWS = 1;\n\nexport class FitAddon implements ITerminalAddon , IFitApi {\n private _terminal: Terminal | undefined;\n\n public activate(terminal: Terminal): void {\n this._terminal = terminal;\n }\n\n public dispose(): void {}\n\n public fit(): void {\n const dims = this.proposeDimensions();\n if (!dims || !this._terminal || isNaN(dims.cols) || isNaN(dims.rows)) {\n return;\n }\n\n // TODO: Remove reliance on private API\n const core = (this._terminal as any)._core;\n\n // Force a full render\n if (this._terminal.rows !== dims.rows || this._terminal.cols !== dims.cols) {\n core._renderService.clear();\n this._terminal.resize(dims.cols, dims.rows);\n }\n }\n\n public proposeDimensions(): ITerminalDimensions | undefined {\n if (!this._terminal) {\n return undefined;\n }\n\n if (!this._terminal.element || !this._terminal.element.parentElement) {\n return undefined;\n }\n\n // TODO: Remove reliance on private API\n const core = (this._terminal as any)._core;\n const dims: IRenderDimensions = core._renderService.dimensions;\n\n if (dims.css.cell.width === 0 || dims.css.cell.height === 0) {\n return undefined;\n }\n\n const scrollbarWidth = (this._terminal.options.scrollback === 0\n ? 0\n : (this._terminal.options.overviewRuler?.width || ViewportConstants.DEFAULT_SCROLL_BAR_WIDTH));\n\n const parentElementStyle = window.getComputedStyle(this._terminal.element.parentElement);\n const parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height'));\n const parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width')));\n const elementStyle = window.getComputedStyle(this._terminal.element);\n const elementPadding = {\n top: parseInt(elementStyle.getPropertyValue('padding-top')),\n bottom: parseInt(elementStyle.getPropertyValue('padding-bottom')),\n right: parseInt(elementStyle.getPropertyValue('padding-right')),\n left: parseInt(elementStyle.getPropertyValue('padding-left'))\n };\n const elementPaddingVer = elementPadding.top + elementPadding.bottom;\n const elementPaddingHor = elementPadding.right + elementPadding.left;\n const availableHeight = parentElementHeight - elementPaddingVer;\n const availableWidth = parentElementWidth - elementPaddingHor - scrollbarWidth;\n const geometry = {\n cols: Math.max(MINIMUM_COLS, Math.floor(availableWidth / dims.css.cell.width)),\n rows: Math.max(MINIMUM_ROWS, Math.floor(availableHeight / dims.css.cell.height))\n };\n return geometry;\n }\n}\n"],"names":["root","factory","exports","module","define","amd","globalThis","activate","terminal","this","_terminal","dispose","fit","dims","proposeDimensions","isNaN","cols","rows","core","_core","_renderService","clear","resize","element","parentElement","dimensions","css","cell","width","height","scrollbarWidth","options","scrollback","overviewRuler","parentElementStyle","window","getComputedStyle","parentElementHeight","parseInt","getPropertyValue","parentElementWidth","Math","max","elementStyle","availableHeight","availableWidth","floor"],"sourceRoot":""}
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.mjs b/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.mjs
new file mode 100644
index 0000000..24d4f61
--- /dev/null
+++ b/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.mjs
@@ -0,0 +1,18 @@
+/**
+ * Copyright (c) 2014-2024 The xterm.js authors. All rights reserved.
+ * @license MIT
+ *
+ * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
+ * @license MIT
+ *
+ * Originally forked from (with the author's permission):
+ * Fabrice Bellard's javascript vt100 for jslinux:
+ * http://bellard.org/jslinux/
+ * Copyright (c) 2011 Fabrice Bellard
+ */
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+var h=2,_=1,o=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let t=this._terminal._core._renderService.dimensions;if(t.css.cell.width===0||t.css.cell.height===0)return;let s=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,r=window.getComputedStyle(this._terminal.element.parentElement),l=parseInt(r.getPropertyValue("height")),a=Math.max(0,parseInt(r.getPropertyValue("width"))),i=window.getComputedStyle(this._terminal.element),n={top:parseInt(i.getPropertyValue("padding-top")),bottom:parseInt(i.getPropertyValue("padding-bottom")),right:parseInt(i.getPropertyValue("padding-right")),left:parseInt(i.getPropertyValue("padding-left"))},m=n.top+n.bottom,d=n.right+n.left,c=l-m,p=a-d-s;return{cols:Math.max(h,Math.floor(p/t.css.cell.width)),rows:Math.max(_,Math.floor(c/t.css.cell.height))}}};export{o as FitAddon};
+//# sourceMappingURL=addon-fit.mjs.map
diff --git a/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.mjs.map b/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.mjs.map
new file mode 100644
index 0000000..f6c8a48
--- /dev/null
+++ b/src/public/build/es6/node_modules/@xterm/addon-fit/lib/addon-fit.mjs.map
@@ -0,0 +1,7 @@
+{
+ "version": 3,
+ "sources": ["../src/FitAddon.ts"],
+ "sourcesContent": ["/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport type { Terminal, ITerminalAddon } from '@xterm/xterm';\nimport type { FitAddon as IFitApi } from '@xterm/addon-fit';\nimport { IRenderDimensions } from 'browser/renderer/shared/Types';\nimport { ViewportConstants } from 'browser/shared/Constants';\n\ninterface ITerminalDimensions {\n /**\n * The number of rows in the terminal.\n */\n rows: number;\n\n /**\n * The number of columns in the terminal.\n */\n cols: number;\n}\n\nconst MINIMUM_COLS = 2;\nconst MINIMUM_ROWS = 1;\n\nexport class FitAddon implements ITerminalAddon , IFitApi {\n private _terminal: Terminal | undefined;\n\n public activate(terminal: Terminal): void {\n this._terminal = terminal;\n }\n\n public dispose(): void {}\n\n public fit(): void {\n const dims = this.proposeDimensions();\n if (!dims || !this._terminal || isNaN(dims.cols) || isNaN(dims.rows)) {\n return;\n }\n\n // TODO: Remove reliance on private API\n const core = (this._terminal as any)._core;\n\n // Force a full render\n if (this._terminal.rows !== dims.rows || this._terminal.cols !== dims.cols) {\n core._renderService.clear();\n this._terminal.resize(dims.cols, dims.rows);\n }\n }\n\n public proposeDimensions(): ITerminalDimensions | undefined {\n if (!this._terminal) {\n return undefined;\n }\n\n if (!this._terminal.element || !this._terminal.element.parentElement) {\n return undefined;\n }\n\n // TODO: Remove reliance on private API\n const core = (this._terminal as any)._core;\n const dims: IRenderDimensions = core._renderService.dimensions;\n\n if (dims.css.cell.width === 0 || dims.css.cell.height === 0) {\n return undefined;\n }\n\n const scrollbarWidth = (this._terminal.options.scrollback === 0\n ? 0\n : (this._terminal.options.overviewRuler?.width || ViewportConstants.DEFAULT_SCROLL_BAR_WIDTH));\n\n const parentElementStyle = window.getComputedStyle(this._terminal.element.parentElement);\n const parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height'));\n const parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width')));\n const elementStyle = window.getComputedStyle(this._terminal.element);\n const elementPadding = {\n top: parseInt(elementStyle.getPropertyValue('padding-top')),\n bottom: parseInt(elementStyle.getPropertyValue('padding-bottom')),\n right: parseInt(elementStyle.getPropertyValue('padding-right')),\n left: parseInt(elementStyle.getPropertyValue('padding-left'))\n };\n const elementPaddingVer = elementPadding.top + elementPadding.bottom;\n const elementPaddingHor = elementPadding.right + elementPadding.left;\n const availableHeight = parentElementHeight - elementPaddingVer;\n const availableWidth = parentElementWidth - elementPaddingHor - scrollbarWidth;\n const geometry = {\n cols: Math.max(MINIMUM_COLS, Math.floor(availableWidth / dims.css.cell.width)),\n rows: Math.max(MINIMUM_ROWS, Math.floor(availableHeight / dims.css.cell.height))\n };\n return geometry;\n }\n}\n"],
+ "mappings": ";;;;;;;;;;;;;;;;AAsBA,IAAMA,EAAe,EACfC,EAAe,EAERC,EAAN,KAAmD,CAGjD,SAASC,EAA0B,CACxC,KAAK,UAAYA,CACnB,CAEO,SAAgB,CAAC,CAEjB,KAAY,CACjB,IAAMC,EAAO,KAAK,kBAAkB,EACpC,GAAI,CAACA,GAAQ,CAAC,KAAK,WAAa,MAAMA,EAAK,IAAI,GAAK,MAAMA,EAAK,IAAI,EACjE,OAIF,IAAMC,EAAQ,KAAK,UAAkB,OAGjC,KAAK,UAAU,OAASD,EAAK,MAAQ,KAAK,UAAU,OAASA,EAAK,QACpEC,EAAK,eAAe,MAAM,EAC1B,KAAK,UAAU,OAAOD,EAAK,KAAMA,EAAK,IAAI,EAE9C,CAEO,mBAAqD,CAK1D,GAJI,CAAC,KAAK,WAIN,CAAC,KAAK,UAAU,SAAW,CAAC,KAAK,UAAU,QAAQ,cACrD,OAKF,IAAMA,EADQ,KAAK,UAAkB,MACA,eAAe,WAEpD,GAAIA,EAAK,IAAI,KAAK,QAAU,GAAKA,EAAK,IAAI,KAAK,SAAW,EACxD,OAGF,IAAME,EAAkB,KAAK,UAAU,QAAQ,aAAe,EAC1D,EACC,KAAK,UAAU,QAAQ,eAAe,OAAS,GAE9CC,EAAqB,OAAO,iBAAiB,KAAK,UAAU,QAAQ,aAAa,EACjFC,EAAsB,SAASD,EAAmB,iBAAiB,QAAQ,CAAC,EAC5EE,EAAqB,KAAK,IAAI,EAAG,SAASF,EAAmB,iBAAiB,OAAO,CAAC,CAAC,EACvFG,EAAe,OAAO,iBAAiB,KAAK,UAAU,OAAO,EAC7DC,EAAiB,CACrB,IAAK,SAASD,EAAa,iBAAiB,aAAa,CAAC,EAC1D,OAAQ,SAASA,EAAa,iBAAiB,gBAAgB,CAAC,EAChE,MAAO,SAASA,EAAa,iBAAiB,eAAe,CAAC,EAC9D,KAAM,SAASA,EAAa,iBAAiB,cAAc,CAAC,CAC9D,EACME,EAAoBD,EAAe,IAAMA,EAAe,OACxDE,EAAoBF,EAAe,MAAQA,EAAe,KAC1DG,EAAkBN,EAAsBI,EACxCG,EAAiBN,EAAqBI,EAAoBP,EAKhE,MAJiB,CACf,KAAM,KAAK,IAAIN,EAAc,KAAK,MAAMe,EAAiBX,EAAK,IAAI,KAAK,KAAK,CAAC,EAC7E,KAAM,KAAK,IAAIH,EAAc,KAAK,MAAMa,EAAkBV,EAAK,IAAI,KAAK,MAAM,CAAC,CACjF,CAEF,CACF",
+ "names": ["MINIMUM_COLS", "MINIMUM_ROWS", "FitAddon", "terminal", "dims", "core", "scrollbarWidth", "parentElementStyle", "parentElementHeight", "parentElementWidth", "elementStyle", "elementPadding", "elementPaddingVer", "elementPaddingHor", "availableHeight", "availableWidth"]
+}
diff --git a/src/public/build/es6/node_modules/@xterm/xterm/lib/xterm.js b/src/public/build/es6/node_modules/@xterm/xterm/lib/xterm.js
new file mode 100644
index 0000000..7ad73e8
--- /dev/null
+++ b/src/public/build/es6/node_modules/@xterm/xterm/lib/xterm.js
@@ -0,0 +1 @@
+!function(N,j){if("object"==typeof exports&&"object"==typeof module)module.exports=j();else if("function"==typeof define&&define.amd)define([],j);else{var X=j();for(var ie in X)("object"==typeof exports?exports:N)[ie]=X[ie]}}(globalThis,(()=>(()=>{var N={2840:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.AccessibilityManager=void 0;const le=X(7721),he=X(4292),ce=X(7150),_e=X(7098),me=X(6501),ve=X(7093);let Se=class extends ce.Disposable{constructor(N,j,X,ie){super(),this._terminal=N,this._coreBrowserService=X,this._renderService=ie,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="";const se=this._coreBrowserService.mainDocument;this._accessibilityContainer=se.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=se.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let N=0;Nthis._handleBoundaryFocus(N,0),this._bottomBoundaryFocusListener=N=>this._handleBoundaryFocus(N,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=se.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this._register(new he.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((N=>this._handleResize(N.rows)))),this._register(this._terminal.onRender((N=>this._refreshRows(N.start,N.end)))),this._register(this._terminal.onScroll((()=>this._refreshRows()))),this._register(this._terminal.onA11yChar((N=>this._handleChar(N)))),this._register(this._terminal.onLineFeed((()=>this._handleChar("\n")))),this._register(this._terminal.onA11yTab((N=>this._handleTab(N)))),this._register(this._terminal.onKey((N=>this._handleKey(N.key)))),this._register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this._register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this._register((0,ve.addDisposableListener)(se,"selectionchange",(()=>this._handleSelectionChange()))),this._register(this._coreBrowserService.onDprChange((()=>this._refreshRowsDimensions()))),this._refreshRowsDimensions(),this._refreshRows(),this._register((0,ce.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(N){for(let j=0;j0?this._charsToConsume.shift()!==N&&(this._charsToAnnounce+=N):this._charsToAnnounce+=N,"\n"===N&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=le.tooMuchOutput.get())))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(N){this._clearLiveRegion(),/\p{Control}/u.test(N)||this._charsToConsume.push(N)}_refreshRows(N,j){this._liveRegionDebouncer.refresh(N,j,this._terminal.rows)}_renderRows(N,j){const X=this._terminal.buffer,ie=X.lines.length.toString();for(let se=N;se<=j;se++){const N=X.lines.get(X.ydisp+se),j=[],le=N?.translateToString(!0,void 0,void 0,j)||"",he=(X.ydisp+se+1).toString(),ce=this._rowElements[se];ce&&(0===le.length?(ce.innerText=" ",this._rowColumns.set(ce,[0,1])):(ce.textContent=le,this._rowColumns.set(ce,j)),ce.setAttribute("aria-posinset",he),ce.setAttribute("aria-setsize",ie),this._alignRowWidth(ce))}this._announceCharacters()}_announceCharacters(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(N,j){const X=N.target,ie=this._rowElements[0===j?1:this._rowElements.length-2];if(X.getAttribute("aria-posinset")===(0===j?"1":`${this._terminal.buffer.lines.length}`))return;if(N.relatedTarget!==ie)return;let se,le;if(0===j?(se=X,le=this._rowElements.pop(),this._rowContainer.removeChild(le)):(se=this._rowElements.shift(),le=X,this._rowContainer.removeChild(se)),se.removeEventListener("focus",this._topBoundaryFocusListener),le.removeEventListener("focus",this._bottomBoundaryFocusListener),0===j){const N=this._createAccessibilityTreeNode();this._rowElements.unshift(N),this._rowContainer.insertAdjacentElement("afterbegin",N)}else{const N=this._createAccessibilityTreeNode();this._rowElements.push(N),this._rowContainer.appendChild(N)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===j?-1:1),this._rowElements[0===j?1:this._rowElements.length-2].focus(),N.preventDefault(),N.stopImmediatePropagation()}_handleSelectionChange(){if(0===this._rowElements.length)return;const N=this._coreBrowserService.mainDocument.getSelection();if(!N)return;if(N.isCollapsed)return void(this._rowContainer.contains(N.anchorNode)&&this._terminal.clearSelection());if(!N.anchorNode||!N.focusNode)return void console.error("anchorNode and/or focusNode are null");let j={node:N.anchorNode,offset:N.anchorOffset},X={node:N.focusNode,offset:N.focusOffset};if((j.node.compareDocumentPosition(X.node)&Node.DOCUMENT_POSITION_PRECEDING||j.node===X.node&&j.offset>X.offset)&&([j,X]=[X,j]),j.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(j={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(j.node))return;const ie=this._rowElements.slice(-1)[0];if(X.node.compareDocumentPosition(ie)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(X={node:ie,offset:ie.textContent?.length??0}),!this._rowContainer.contains(X.node))return;const r=({node:N,offset:j})=>{const X=N instanceof Text?N.parentNode:N;let ie=parseInt(X?.getAttribute("aria-posinset"),10)-1;if(isNaN(ie))return console.warn("row is invalid. Race condition?"),null;const se=this._rowColumns.get(X);if(!se)return console.warn("columns is null. Race condition?"),null;let le=j=this._terminal.cols&&(++ie,le=0),{row:ie,column:le}},se=r(j),le=r(X);if(se&&le){if(se.row>le.row||se.row===le.row&&se.column>=le.column)throw new Error("invalid range");this._terminal.select(se.column,se.row,(le.row-se.row)*this._terminal.cols-se.column+le.column)}}_handleResize(N){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let N=this._rowContainer.children.length;NN;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const N=this._coreBrowserService.mainDocument.createElement("div");return N.setAttribute("role","listitem"),N.tabIndex=-1,this._refreshRowDimensions(N),N}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){Object.assign(this._accessibilityContainer.style,{width:`${this._renderService.dimensions.css.canvas.width}px`,fontSize:`${this._terminal.options.fontSize}px`}),this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let N=0;N{function i(N){return N.replace(/\r?\n/g,"\r")}function s(N,j){return j?"[200~"+N+"[201~":N}function r(N,j,X,ie){N=s(N=i(N),X.decPrivateModes.bracketedPasteMode&&!0!==ie.rawOptions.ignoreBracketedPasteMode),X.triggerDataEvent(N,!0),j.value=""}function n(N,j,X){const ie=X.getBoundingClientRect(),se=N.clientX-ie.left-10,le=N.clientY-ie.top-10;j.style.width="20px",j.style.height="20px",j.style.left=`${se}px`,j.style.top=`${le}px`,j.style.zIndex="1000",j.focus()}Object.defineProperty(j,"__esModule",{value:!0}),j.prepareTextForTerminal=i,j.bracketTextForPaste=s,j.copyHandler=function(N,j){N.clipboardData&&N.clipboardData.setData("text/plain",j.selectionText),N.preventDefault()},j.handlePasteEvent=function(N,j,X,ie){N.stopPropagation(),N.clipboardData&&r(N.clipboardData.getData("text/plain"),j,X,ie)},j.paste=r,j.moveTextAreaUnderMouseCursor=n,j.rightClickHandler=function(N,j,X,ie,se){n(N,j,X),se&&ie.rightClickSelect(N),j.value=ie.selectionText,j.select()}},7174:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.ColorContrastCache=void 0;const ie=X(7710);j.ColorContrastCache=class{constructor(){this._color=new ie.TwoKeyMap,this._css=new ie.TwoKeyMap}setCss(N,j,X){this._css.set(N,j,X)}getCss(N,j){return this._css.get(N,j)}setColor(N,j,X){this._color.set(N,j,X)}getColor(N,j){return this._color.get(N,j)}clear(){this._color.clear(),this._css.clear()}}},1718:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.CoreBrowserTerminal=void 0;const ie=X(7861),se=X(7721),le=X(3285),he=X(4017),ce=X(4196),_e=X(9925),me=X(3618),ve=X(3955),Se=X(4792),be=X(945),Ce=X(9574),ye=X(9820),we=X(9784),Ee=X(5783),De=X(2079),Le=X(7098),Ae=X(9078),Re=X(4103),Te=X(5777),ke=X(701),Me=X(6107),Oe=X(3534),Ie=X(706),Pe=X(8693),xe=X(4720),Be=X(6501),Ne=X(2486),Ue=X(2840),Fe=X(8906),We=X(802),He=X(7093),Ke=X(7150);class x extends Te.CoreTerminal{get linkifier(){return this._linkifier.value}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(N={}){super(N),this._linkifier=this._register(new Ke.MutableDisposable),this.browser=ke,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new Ke.MutableDisposable),this._onCursorMove=this._register(new We.Emitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this._register(new We.Emitter),this.onKey=this._onKey.event,this._onRender=this._register(new We.Emitter),this.onRender=this._onRender.event,this._onSelectionChange=this._register(new We.Emitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this._register(new We.Emitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this._register(new We.Emitter),this.onBell=this._onBell.event,this._onFocus=this._register(new We.Emitter),this._onBlur=this._register(new We.Emitter),this._onA11yCharEmitter=this._register(new We.Emitter),this._onA11yTabEmitter=this._register(new We.Emitter),this._onWillOpen=this._register(new We.Emitter),this._setup(),this._decorationService=this._instantiationService.createInstance(xe.DecorationService),this._instantiationService.setService(Be.IDecorationService,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(ye.LinkProviderService),this._instantiationService.setService(Le.ILinkProviderService,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(le.OscLinkProvider)),this._register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this._register(this._inputHandler.onRequestRefreshRows((N=>this.refresh(N?.start??0,N?.end??this.rows-1)))),this._register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this._register(this._inputHandler.onRequestReset((()=>this.reset()))),this._register(this._inputHandler.onRequestWindowsOptionsReport((N=>this._reportWindowsOptions(N)))),this._register(this._inputHandler.onColor((N=>this._handleColorEvent(N)))),this._register(We.Event.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register(We.Event.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register(We.Event.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register(We.Event.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize((N=>this._afterResize(N.cols,N.rows)))),this._register((0,Ke.toDisposable)((()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)})))}_handleColorEvent(N){if(this._themeService)for(const j of N){let N,X="";switch(j.index){case 256:N="foreground",X="10";break;case 257:N="background",X="11";break;case 258:N="cursor",X="12";break;default:N="ansi",X="4;"+j.index}switch(j.type){case 0:const ie=Re.color.toColorRGB("ansi"===N?this._themeService.colors.ansi[j.index]:this._themeService.colors[N]);this.coreService.triggerDataEvent(`${Oe.C0.ESC}]${X};${(0,Pe.toRgbString)(ie)}${Oe.C1_ESCAPED.ST}`);break;case 1:if("ansi"===N)this._themeService.modifyColors((N=>N.ansi[j.index]=Re.channels.toColor(...j.color)));else{const X=N;this._themeService.modifyColors((N=>N[X]=Re.channels.toColor(...j.color)))}break;case 2:this._themeService.restoreColor(j.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(N){N?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(Ue.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(N){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(Oe.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(Oe.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;const N=this.buffer.ybase+this.buffer.y,j=this.buffer.lines.get(N);if(!j)return;const X=Math.min(this.buffer.x,this.cols-1),ie=this._renderService.dimensions.css.cell.height,se=j.getWidth(X),le=this._renderService.dimensions.css.cell.width*se,he=this.buffer.y*this._renderService.dimensions.css.cell.height,ce=X*this._renderService.dimensions.css.cell.width;this.textarea.style.left=ce+"px",this.textarea.style.top=he+"px",this.textarea.style.width=le+"px",this.textarea.style.height=ie+"px",this.textarea.style.lineHeight=ie+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this._register((0,He.addDisposableListener)(this.element,"copy",(N=>{this.hasSelection()&&(0,ie.copyHandler)(N,this._selectionService)})));const e=N=>(0,ie.handlePasteEvent)(N,this.textarea,this.coreService,this.optionsService);this._register((0,He.addDisposableListener)(this.textarea,"paste",e)),this._register((0,He.addDisposableListener)(this.element,"paste",e)),ke.isFirefox?this._register((0,He.addDisposableListener)(this.element,"mousedown",(N=>{2===N.button&&(0,ie.rightClickHandler)(N,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this._register((0,He.addDisposableListener)(this.element,"contextmenu",(N=>{(0,ie.rightClickHandler)(N,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),ke.isLinux&&this._register((0,He.addDisposableListener)(this.element,"auxclick",(N=>{1===N.button&&(0,ie.moveTextAreaUnderMouseCursor)(N,this.textarea,this.screenElement)})))}_bindKeys(){this._register((0,He.addDisposableListener)(this.textarea,"keyup",(N=>this._keyUp(N)),!0)),this._register((0,He.addDisposableListener)(this.textarea,"keydown",(N=>this._keyDown(N)),!0)),this._register((0,He.addDisposableListener)(this.textarea,"keypress",(N=>this._keyPress(N)),!0)),this._register((0,He.addDisposableListener)(this.textarea,"compositionstart",(()=>this._compositionHelper.compositionstart()))),this._register((0,He.addDisposableListener)(this.textarea,"compositionupdate",(N=>this._compositionHelper.compositionupdate(N)))),this._register((0,He.addDisposableListener)(this.textarea,"compositionend",(()=>this._compositionHelper.compositionend()))),this._register((0,He.addDisposableListener)(this.textarea,"input",(N=>this._inputEvent(N)),!0)),this._register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(N){if(!N)throw new Error("Terminal requires a parent element.");if(N.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=N.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"),N.appendChild(this.element);const j=this._document.createDocumentFragment();this._viewportElement=this._document.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),j.appendChild(this._viewportElement),this.screenElement=this._document.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._register((0,He.addDisposableListener)(this.screenElement,"mousemove",(N=>this.updateCursorStyle(N)))),this._helperContainer=this._document.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),j.appendChild(this.screenElement),this.textarea=this._document.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",se.promptLabel.get()),ke.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(Ce.CoreBrowserService,this.textarea,N.ownerDocument.defaultView??window,this._document??"undefined"!=typeof window?window.document:null)),this._instantiationService.setService(Le.ICoreBrowserService,this._coreBrowserService),this._register((0,He.addDisposableListener)(this.textarea,"focus",(N=>this._handleTextAreaFocus(N)))),this._register((0,He.addDisposableListener)(this.textarea,"blur",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(Se.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(Le.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(Ae.ThemeService),this._instantiationService.setService(Le.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(be.CharacterJoinerService),this._instantiationService.setService(Le.ICharacterJoinerService,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(Ee.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(Le.IRenderService,this._renderService),this._register(this._renderService.onRenderedViewportChange((N=>this._onRender.fire(N)))),this.onResize((N=>this._renderService.resize(N.cols,N.rows))),this._compositionView=this._document.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(me.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(we.MouseService),this._instantiationService.setService(Le.IMouseService,this._mouseService);const X=this._linkifier.value=this._register(this._instantiationService.createInstance(Fe.Linkifier,this.screenElement));this.element.appendChild(j);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),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._viewport=this._register(this._instantiationService.createInstance(he.Viewport,this.element,this.screenElement)),this._register(this._viewport.onRequestScrollLines((N=>{super.scrollLines(N,!1),this.refresh(0,this.rows-1)}))),this._selectionService=this._register(this._instantiationService.createInstance(De.SelectionService,this.element,this.screenElement,X)),this._instantiationService.setService(Le.ISelectionService,this._selectionService),this._register(this._selectionService.onRequestScrollLines((N=>this.scrollLines(N.amount,N.suppressScrollEvent)))),this._register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this._register(this._selectionService.onRequestRedraw((N=>this._renderService.handleSelectionChanged(N.start,N.end,N.columnSelectMode)))),this._register(this._selectionService.onLinuxMouseSelection((N=>{this.textarea.value=N,this.textarea.focus(),this.textarea.select()}))),this._register(this._onScroll.event((()=>this._selectionService.refresh()))),this._register(this._instantiationService.createInstance(ce.BufferDecorationRenderer,this.screenElement)),this._register((0,He.addDisposableListener)(this.element,"mousedown",(N=>this._selectionService.handleMouseDown(N)))),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(Ue.AccessibilityManager,this)),this._register(this.optionsService.onSpecificOptionChange("screenReaderMode",(N=>this._handleScreenReaderModeOptionChange(N)))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(_e.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRuler",(N=>{!this._overviewRulerRenderer&&N&&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(ve.DomRenderer,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){const N=this,j=this.element;function i(j){const X=N._mouseService.getMouseReportCoords(j,N.screenElement);if(!X)return!1;let ie,se;switch(j.overrideType||j.type){case"mousemove":se=32,void 0===j.buttons?(ie=3,void 0!==j.button&&(ie=j.button<3?j.button:3)):ie=1&j.buttons?0:4&j.buttons?1:2&j.buttons?2:3;break;case"mouseup":se=0,ie=j.button<3?j.button:3;break;case"mousedown":se=1,ie=j.button<3?j.button:3;break;case"wheel":if(N._customWheelEventHandler&&!1===N._customWheelEventHandler(j))return!1;const X=j.deltaY;if(0===X)return!1;se=X<0?0:1,ie=4;break;default:return!1}return!(void 0===se||void 0===ie||ie>4)&&N.coreMouseService.triggerMouseEvent({col:X.col,row:X.row,x:X.x,y:X.y,button:ie,action:se,ctrl:j.ctrlKey,alt:j.altKey,shift:j.shiftKey})}const X={mouseup:null,wheel:null,mousedrag:null,mousemove:null},ie={mouseup:N=>(i(N),N.buttons||(this._document.removeEventListener("mouseup",X.mouseup),X.mousedrag&&this._document.removeEventListener("mousemove",X.mousedrag)),this.cancel(N)),wheel:N=>(i(N),this.cancel(N,!0)),mousedrag:N=>{N.buttons&&i(N)},mousemove:N=>{N.buttons||i(N)}};this._register(this.coreMouseService.onProtocolChange((N=>{N?("debug"===this.optionsService.rawOptions.logLevel&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(N)),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&N?X.mousemove||(j.addEventListener("mousemove",ie.mousemove),X.mousemove=ie.mousemove):(j.removeEventListener("mousemove",X.mousemove),X.mousemove=null),16&N?X.wheel||(j.addEventListener("wheel",ie.wheel,{passive:!1}),X.wheel=ie.wheel):(j.removeEventListener("wheel",X.wheel),X.wheel=null),2&N?X.mouseup||(X.mouseup=ie.mouseup):(this._document.removeEventListener("mouseup",X.mouseup),X.mouseup=null),4&N?X.mousedrag||(X.mousedrag=ie.mousedrag):(this._document.removeEventListener("mousemove",X.mousedrag),X.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this._register((0,He.addDisposableListener)(j,"mousedown",(N=>{if(N.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(N))return i(N),X.mouseup&&this._document.addEventListener("mouseup",X.mouseup),X.mousedrag&&this._document.addEventListener("mousemove",X.mousedrag),this.cancel(N)}))),this._register((0,He.addDisposableListener)(j,"wheel",(N=>{if(!X.wheel){if(this._customWheelEventHandler&&!1===this._customWheelEventHandler(N))return!1;if(!this.buffer.hasScrollback){if(0===N.deltaY)return!1;const j=Oe.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(N.deltaY<0?"A":"B");return this.coreService.triggerDataEvent(j,!0),this.cancel(N,!0)}}}),{passive:!1}))}refresh(N,j){this._renderService?.refreshRows(N,j)}updateCursorStyle(N){this._selectionService?.shouldColumnSelect(N)?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(N,j){this._viewport?this._viewport.scrollLines(N):super.scrollLines(N,j),this.refresh(0,this.rows-1)}scrollPages(N){this.scrollLines(N*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(N){N&&this._viewport?this._viewport.scrollToLine(this.buffer.ybase,!0):this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(N){const j=N-this._bufferService.buffer.ydisp;0!==j&&this.scrollLines(j)}paste(N){(0,ie.paste)(N,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(N){this._customKeyEventHandler=N}attachCustomWheelEventHandler(N){this._customWheelEventHandler=N}registerLinkProvider(N){return this._linkProviderService.registerLinkProvider(N)}registerCharacterJoiner(N){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");const j=this._characterJoinerService.register(N);return this.refresh(0,this.rows-1),j}deregisterCharacterJoiner(N){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(N)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(N){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+N)}registerDecoration(N){return this._decorationService.registerDecoration(N)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(N,j,X){this._selectionService.setSelection(N,j,X)}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(N,j){this._selectionService?.selectLines(N,j)}_keyDown(N){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&!1===this._customKeyEventHandler(N))return!1;const j=this.browser.isMac&&this.options.macOptionIsMeta&&N.altKey;if(!j&&!this._compositionHelper.keydown(N))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(!0),!1;j||"Dead"!==N.key&&"AltGraph"!==N.key||(this._unprocessedDeadKey=!0);const X=(0,Ie.evaluateKeyboardEvent)(N,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(N),3===X.type||2===X.type){const j=this.rows-1;return this.scrollLines(2===X.type?-j:j),this.cancel(N,!0)}return 1===X.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,N)||(X.cancel&&this.cancel(N,!0),!X.key||!!(N.key&&!N.ctrlKey&&!N.altKey&&!N.metaKey&&1===N.key.length&&N.key.charCodeAt(0)>=65&&N.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(X.key!==Oe.C0.ETX&&X.key!==Oe.C0.CR||(this.textarea.value=""),this._onKey.fire({key:X.key,domEvent:N}),this._showCursor(),this.coreService.triggerDataEvent(X.key,!0),!this.optionsService.rawOptions.screenReaderMode||N.altKey||N.ctrlKey?this.cancel(N,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(N,j){const X=N.isMac&&!this.options.macOptionIsMeta&&j.altKey&&!j.ctrlKey&&!j.metaKey||N.isWindows&&j.altKey&&j.ctrlKey&&!j.metaKey||N.isWindows&&j.getModifierState("AltGraph");return"keypress"===j.type?X:X&&(!j.keyCode||j.keyCode>47)}_keyUp(N){this._keyDownSeen=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(N)||(function(N){return 16===N.keyCode||17===N.keyCode||18===N.keyCode}(N)||this.focus(),this.updateCursorStyle(N),this._keyPressHandled=!1)}_keyPress(N){let j;if(this._keyPressHandled=!1,this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(N))return!1;if(this.cancel(N),N.charCode)j=N.charCode;else if(null===N.which||void 0===N.which)j=N.keyCode;else{if(0===N.which||0===N.charCode)return!1;j=N.which}return!(!j||(N.altKey||N.ctrlKey||N.metaKey)&&!this._isThirdLevelShift(this.browser,N)||(j=String.fromCharCode(j),this._onKey.fire({key:j,domEvent:N}),this._showCursor(),this.coreService.triggerDataEvent(j,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(N){if(N.data&&"insertText"===N.inputType&&(!N.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const j=N.data;return this.coreService.triggerDataEvent(j,!0),this.cancel(N),!0}return!1}resize(N,j){N!==this.cols||j!==this.rows?super.resize(N,j):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(N,j){this._charSizeService?.measure()}clear(){if(0!==this.buffer.ybase||0!==this.buffer.y){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 N=1;N=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.Linkifier=void 0;const le=X(7150),he=X(6501),ce=X(7098),_e=X(802),me=X(7093);let ve=class extends le.Disposable{get currentLink(){return this._currentLink}constructor(N,j,X,ie,se){super(),this._element=N,this._mouseService=j,this._renderService=X,this._bufferService=ie,this._linkProviderService=se,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this._register(new _e.Emitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this._register(new _e.Emitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this._register((0,le.toDisposable)((()=>{(0,le.dispose)(this._linkCacheDisposables),this._linkCacheDisposables.length=0,this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()}))),this._register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this._register((0,me.addDisposableListener)(this._element,"mouseleave",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this._register((0,me.addDisposableListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this._register((0,me.addDisposableListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this._register((0,me.addDisposableListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(N){this._lastMouseEvent=N;const j=this._positionFromMouseEvent(N,this._element,this._mouseService);if(!j)return;this._isMouseOut=!1;const X=N.composedPath();for(let N=0;N{N?.forEach((N=>{N.link.dispose&&N.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=N.y);let X=!1;for(const[ie,se]of this._linkProviderService.linkProviders.entries())if(j){const j=this._activeProviderReplies?.get(ie);j&&(X=this._checkLinkProviderResult(ie,N,X))}else se.provideLinks(N.y,(j=>{if(this._isMouseOut)return;const se=j?.map((N=>({link:N})));this._activeProviderReplies?.set(ie,se),X=this._checkLinkProviderResult(ie,N,X),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(N.y,this._activeProviderReplies)}))}_removeIntersectingLinks(N,j){const X=new Set;for(let ie=0;ieN?this._bufferService.cols:ie.link.range.end.x;for(let N=le;N<=he;N++){if(X.has(N)){se.splice(j--,1);break}X.add(N)}}}}_checkLinkProviderResult(N,j,X){if(!this._activeProviderReplies)return X;const ie=this._activeProviderReplies.get(N);let se=!1;for(let j=0;jthis._linkAtPosition(N.link,j)));N&&(X=!0,this._handleNewLink(N))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!X)for(let N=0;Nthis._linkAtPosition(N.link,j)));if(ie){X=!0,this._handleNewLink(ie);break}}return X}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(N){if(!this._currentLink)return;const j=this._positionFromMouseEvent(N,this._element,this._mouseService);var X,ie;j&&this._mouseDownLink&&(X=this._mouseDownLink.link,ie=this._currentLink.link,X.text===ie.text&&X.range.start.x===ie.range.start.x&&X.range.start.y===ie.range.start.y&&X.range.end.x===ie.range.end.x&&X.range.end.y===ie.range.end.y)&&this._linkAtPosition(this._currentLink.link,j)&&this._currentLink.link.activate(N,this._currentLink.link.text)}_clearCurrentLink(N,j){this._currentLink&&this._lastMouseEvent&&(!N||!j||this._currentLink.link.range.start.y>=N&&this._currentLink.link.range.end.y<=j)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,le.dispose)(this._linkCacheDisposables),this._linkCacheDisposables.length=0)}_handleNewLink(N){if(!this._lastMouseEvent)return;const j=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);j&&this._linkAtPosition(N.link,j)&&(this._currentLink=N,this._currentLink.state={decorations:{underline:void 0===N.link.decorations||N.link.decorations.underline,pointerCursor:void 0===N.link.decorations||N.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,N.link,this._lastMouseEvent),N.link.decorations={},Object.defineProperties(N.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:N=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==N&&(this._currentLink.state.decorations.pointerCursor=N,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",N))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:j=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==j&&(this._currentLink.state.decorations.underline=j,this._currentLink.state.isHovered&&this._fireUnderlineEvent(N.link,j))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((N=>{if(!this._currentLink)return;const j=0===N.start?0:N.start+1+this._bufferService.buffer.ydisp,X=this._bufferService.buffer.ydisp+1+N.end;if(this._currentLink.link.range.start.y>=j&&this._currentLink.link.range.end.y<=X&&(this._clearCurrentLink(j,X),this._lastMouseEvent)){const N=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);N&&this._askForLink(N,!1)}}))))}_linkHover(N,j,X){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(j,!0),this._currentLink.state.decorations.pointerCursor&&N.classList.add("xterm-cursor-pointer")),j.hover&&j.hover(X,j.text)}_fireUnderlineEvent(N,j){const X=N.range,ie=this._bufferService.buffer.ydisp,se=this._createLinkUnderlineEvent(X.start.x-1,X.start.y-ie-1,X.end.x,X.end.y-ie-1,void 0);(j?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(se)}_linkLeave(N,j,X){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(j,!1),this._currentLink.state.decorations.pointerCursor&&N.classList.remove("xterm-cursor-pointer")),j.leave&&j.leave(X,j.text)}_linkAtPosition(N,j){const X=N.range.start.y*this._bufferService.cols+N.range.start.x,ie=N.range.end.y*this._bufferService.cols+N.range.end.x,se=j.y*this._bufferService.cols+j.x;return X<=se&&se<=ie}_positionFromMouseEvent(N,j,X){const ie=X.getCoords(N,j,this._bufferService.cols,this._bufferService.rows);if(ie)return{x:ie[0],y:ie[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(N,j,X,ie,se){return{x1:N,y1:j,x2:X,y2:ie,cols:this._bufferService.cols,fg:se}}};j.Linkifier=ve,j.Linkifier=ve=ie([se(1,ce.IMouseService),se(2,ce.IRenderService),se(3,he.IBufferService),se(4,ce.ILinkProviderService)],ve)},7721:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.tooMuchOutput=j.promptLabel=void 0;let X="Terminal input";const ie={get:()=>X,set:N=>X=N};j.promptLabel=ie;let se="Too much output to announce, navigate to rows manually to read";const le={get:()=>se,set:N=>se=N};j.tooMuchOutput=le},3285:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.OscLinkProvider=void 0;const le=X(3055),he=X(6501);let ce=class{constructor(N,j,X){this._bufferService=N,this._optionsService=j,this._oscLinkService=X}provideLinks(N,j){const X=this._bufferService.buffer.lines.get(N-1);if(!X)return void j(void 0);const ie=[],se=this._optionsService.rawOptions.linkHandler,he=new le.CellData,ce=X.getTrimmedLength();let _e=-1,me=-1,ve=!1;for(let j=0;jse?se.activate(N,j,le):l(0,j),hover:(N,j)=>se?.hover?.(N,j,le),leave:(N,j)=>se?.leave?.(N,j,le)})}ve=!1,he.hasExtendedAttrs()&&he.extended.urlId?(me=j,_e=he.extended.urlId):(me=-1,_e=-1)}}j(ie)}};function l(N,j){if(confirm(`Do you want to navigate to ${j}?\n\nWARNING: This link could potentially be dangerous`)){const N=window.open();if(N){try{N.opener=null}catch{}N.location.href=j}else console.warn("Opening link blocked as opener could not be cleared")}}j.OscLinkProvider=ce,j.OscLinkProvider=ce=ie([se(0,he.IBufferService),se(1,he.IOptionsService),se(2,he.IOscLinkService)],ce)},4852:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.RenderDebouncer=void 0,j.RenderDebouncer=class{constructor(N,j){this._renderCallback=N,this._coreBrowserService=j,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,j,X){this._rowCount=X,N=void 0!==N?N:0,j=void 0!==j?j:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,N):N,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,j):j,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return void this._runRefreshCallbacks();const N=Math.max(this._rowStart,0),j=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(N,j),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(const N of this._refreshCallbacks)N(0);this._refreshCallbacks=[]}}},4292:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.TimeBasedDebouncer=void 0,j.TimeBasedDebouncer=class{constructor(N,j=1e3){this._renderCallback=N,this._debounceThresholdMS=j,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(N,j,X){this._rowCount=X,N=void 0!==N?N:0,j=void 0!==j?j:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,N):N,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,j):j;const ie=Date.now();if(ie-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=ie,this._innerRefresh();else if(!this._additionalRefreshRequested){const N=ie-this._lastRefreshMs,j=this._debounceThresholdMS-N;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),j)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;const N=Math.max(this._rowStart,0),j=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(N,j)}}},9302:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.DEFAULT_ANSI_COLORS=void 0;const ie=X(4103);j.DEFAULT_ANSI_COLORS=Object.freeze((()=>{const N=[ie.css.toColor("#2e3436"),ie.css.toColor("#cc0000"),ie.css.toColor("#4e9a06"),ie.css.toColor("#c4a000"),ie.css.toColor("#3465a4"),ie.css.toColor("#75507b"),ie.css.toColor("#06989a"),ie.css.toColor("#d3d7cf"),ie.css.toColor("#555753"),ie.css.toColor("#ef2929"),ie.css.toColor("#8ae234"),ie.css.toColor("#fce94f"),ie.css.toColor("#729fcf"),ie.css.toColor("#ad7fa8"),ie.css.toColor("#34e2e2"),ie.css.toColor("#eeeeec")],j=[0,95,135,175,215,255];for(let X=0;X<216;X++){const se=j[X/36%6|0],le=j[X/6%6|0],he=j[X%6];N.push({css:ie.channels.toCss(se,le,he),rgba:ie.channels.toRgba(se,le,he)})}for(let j=0;j<24;j++){const X=8+10*j;N.push({css:ie.channels.toCss(X,X,X),rgba:ie.channels.toRgba(X,X,X)})}return N})())},4017:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.Viewport=void 0;const le=X(7098),he=X(7150),ce=X(6501),_e=X(7093),me=X(8234),ve=X(802),Se=X(9881);let be=class extends he.Disposable{constructor(N,j,X,ie,se,le,ce,be){super(),this._bufferService=X,this._optionsService=ce,this._renderService=be,this._onRequestScrollLines=this._register(new ve.Emitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._isSyncing=!1,this._isHandlingScroll=!1,this._suppressOnScrollHandler=!1;const Ce=this._register(new Se.Scrollable({forceIntegerValues:!1,smoothScrollDuration:this._optionsService.rawOptions.smoothScrollDuration,scheduleAtNextAnimationFrame:N=>(0,_e.scheduleAtNextAnimationFrame)(ie.window,N)}));this._register(this._optionsService.onSpecificOptionChange("smoothScrollDuration",(()=>{Ce.setSmoothScrollDuration(this._optionsService.rawOptions.smoothScrollDuration)}))),this._scrollableElement=this._register(new me.SmoothScrollableElement(j,{vertical:1,horizontal:2,useShadows:!1,mouseWheelSmoothScroll:!0,...this._getChangeOptions()},Ce)),this._register(this._optionsService.onMultipleOptionChange(["scrollSensitivity","fastScrollSensitivity","overviewRuler"],(()=>this._scrollableElement.updateOptions(this._getChangeOptions())))),this._register(se.onProtocolChange((N=>{this._scrollableElement.updateOptions({handleMouseWheel:!(16&N)})}))),this._scrollableElement.setScrollDimensions({height:0,scrollHeight:0}),this._register(ve.Event.runAndSubscribe(le.onChangeColors,(()=>{this._scrollableElement.getDomNode().style.backgroundColor=le.colors.background.css}))),N.appendChild(this._scrollableElement.getDomNode()),this._register((0,he.toDisposable)((()=>this._scrollableElement.getDomNode().remove()))),this._styleElement=ie.mainDocument.createElement("style"),j.appendChild(this._styleElement),this._register((0,he.toDisposable)((()=>this._styleElement.remove()))),this._register(ve.Event.runAndSubscribe(le.onChangeColors,(()=>{this._styleElement.textContent=[".xterm .xterm-scrollable-element > .scrollbar > .slider {",` background: ${le.colors.scrollbarSliderBackground.css};`,"}",".xterm .xterm-scrollable-element > .scrollbar > .slider:hover {",` background: ${le.colors.scrollbarSliderHoverBackground.css};`,"}",".xterm .xterm-scrollable-element > .scrollbar > .slider.active {",` background: ${le.colors.scrollbarSliderActiveBackground.css};`,"}"].join("\n")}))),this._register(this._bufferService.onResize((()=>this._queueSync()))),this._register(this._bufferService.buffers.onBufferActivate((()=>this._queueSync()))),this._register(this._bufferService.onScroll((()=>this._sync()))),this._register(this._scrollableElement.onScroll((N=>this._handleScroll(N))))}scrollLines(N){const j=this._scrollableElement.getScrollPosition();this._scrollableElement.setScrollPosition({reuseAnimation:!0,scrollTop:j.scrollTop+N*this._renderService.dimensions.css.cell.height})}scrollToLine(N,j){j&&(this._latestYDisp=N),this._scrollableElement.setScrollPosition({reuseAnimation:!j,scrollTop:N*this._renderService.dimensions.css.cell.height})}_getChangeOptions(){return{mouseWheelScrollSensitivity:this._optionsService.rawOptions.scrollSensitivity,fastScrollSensitivity:this._optionsService.rawOptions.fastScrollSensitivity,verticalScrollbarSize:this._optionsService.rawOptions.overviewRuler?.width||14}}_queueSync(N){void 0!==N&&(this._latestYDisp=N),void 0===this._queuedAnimationFrame&&(this._queuedAnimationFrame=this._renderService.addRefreshCallback((()=>{this._queuedAnimationFrame=void 0,this._sync(this._latestYDisp)})))}_sync(N=this._bufferService.buffer.ydisp){this._renderService&&!this._isSyncing&&(this._isSyncing=!0,this._suppressOnScrollHandler=!0,this._scrollableElement.setScrollDimensions({height:this._renderService.dimensions.css.canvas.height,scrollHeight:this._renderService.dimensions.css.cell.height*this._bufferService.buffer.lines.length}),this._suppressOnScrollHandler=!1,N!==this._latestYDisp&&this._scrollableElement.setScrollPosition({scrollTop:N*this._renderService.dimensions.css.cell.height}),this._isSyncing=!1)}_handleScroll(N){if(!this._renderService)return;if(this._isHandlingScroll||this._suppressOnScrollHandler)return;this._isHandlingScroll=!0;const j=Math.round(N.scrollTop/this._renderService.dimensions.css.cell.height),X=j-this._bufferService.buffer.ydisp;0!==X&&(this._latestYDisp=j,this._onRequestScrollLines.fire(X)),this._isHandlingScroll=!1}};j.Viewport=be,j.Viewport=be=ie([se(2,ce.IBufferService),se(3,le.ICoreBrowserService),se(4,ce.ICoreMouseService),se(5,le.IThemeService),se(6,ce.IOptionsService),se(7,le.IRenderService)],be)},4196:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.BufferDecorationRenderer=void 0;const le=X(7098),he=X(7150),ce=X(6501);let _e=class extends he.Disposable{constructor(N,j,X,ie,se){super(),this._screenElement=N,this._bufferService=j,this._coreBrowserService=X,this._decorationService=ie,this._renderService=se,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((N=>this._removeDecoration(N)))),this._register((0,he.toDisposable)((()=>{this._container.remove(),this._decorationElements.clear()})))}_queueRefresh(){void 0===this._animationFrame&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this._doRefreshDecorations(),this._animationFrame=void 0})))}_doRefreshDecorations(){for(const N of this._decorationService.decorations)this._renderDecoration(N);this._dimensionsChanged=!1}_renderDecoration(N){this._refreshStyle(N),this._dimensionsChanged&&this._refreshXPosition(N)}_createElement(N){const j=this._coreBrowserService.mainDocument.createElement("div");j.classList.add("xterm-decoration"),j.classList.toggle("xterm-decoration-top-layer","top"===N?.options?.layer),j.style.width=`${Math.round((N.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,j.style.height=(N.options.height||1)*this._renderService.dimensions.css.cell.height+"px",j.style.top=(N.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+"px",j.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;const X=N.options.x??0;return X&&X>this._bufferService.cols&&(j.style.display="none"),this._refreshXPosition(N,j),j}_refreshStyle(N){const j=N.marker.line-this._bufferService.buffers.active.ydisp;if(j<0||j>=this._bufferService.rows)N.element&&(N.element.style.display="none",N.onRenderEmitter.fire(N.element));else{let X=this._decorationElements.get(N);X||(X=this._createElement(N),N.element=X,this._decorationElements.set(N,X),this._container.appendChild(X),N.onDispose((()=>{this._decorationElements.delete(N),X.remove()}))),X.style.display=this._altBufferIsActive?"none":"block",this._altBufferIsActive||(X.style.width=`${Math.round((N.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,X.style.height=(N.options.height||1)*this._renderService.dimensions.css.cell.height+"px",X.style.top=j*this._renderService.dimensions.css.cell.height+"px",X.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`),N.onRenderEmitter.fire(X)}}_refreshXPosition(N,j=N.element){if(!j)return;const X=N.options.x??0;"right"===(N.options.anchor||"left")?j.style.right=X?X*this._renderService.dimensions.css.cell.width+"px":"":j.style.left=X?X*this._renderService.dimensions.css.cell.width+"px":""}_removeDecoration(N){this._decorationElements.get(N)?.remove(),this._decorationElements.delete(N),N.dispose()}};j.BufferDecorationRenderer=_e,j.BufferDecorationRenderer=_e=ie([se(1,ce.IBufferService),se(2,le.ICoreBrowserService),se(3,ce.IDecorationService),se(4,le.IRenderService)],_e)},957:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.ColorZoneStore=void 0,j.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(const j of this._zones)if(j.color===N.options.overviewRulerOptions.color&&j.position===N.options.overviewRulerOptions.position){if(this._lineIntersectsZone(j,N.marker.line))return;if(this._lineAdjacentToZone(j,N.marker.line,N.options.overviewRulerOptions.position))return void this._addLineToZone(j,N.marker.line)}if(this._zonePoolIndex=N.startBufferLine&&j<=N.endBufferLine}_lineAdjacentToZone(N,j,X){return j>=N.startBufferLine-this._linePadding[X||"full"]&&j<=N.endBufferLine+this._linePadding[X||"full"]}_addLineToZone(N,j){N.startBufferLine=Math.min(N.startBufferLine,j),N.endBufferLine=Math.max(N.endBufferLine,j)}}},9925:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.OverviewRulerRenderer=void 0;const le=X(957),he=X(7098),ce=X(7150),_e=X(6501),me={full:0,left:0,center:0,right:0},ve={full:0,left:0,center:0,right:0},Se={full:0,left:0,center:0,right:0};let be=class extends ce.Disposable{get _width(){return this._optionsService.options.overviewRuler?.width||0}constructor(N,j,X,ie,se,he,_e,me){super(),this._viewportElement=N,this._screenElement=j,this._bufferService=X,this._decorationService=ie,this._renderService=se,this._optionsService=he,this._themeService=_e,this._coreBrowserService=me,this._colorZoneStore=new le.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),this._register((0,ce.toDisposable)((()=>this._canvas?.remove())));const ve=this._canvas.getContext("2d");if(!ve)throw new Error("Ctx cannot be null");this._ctx=ve,this._register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this._register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0)))),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())}))),this._register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this._register(this._coreBrowserService.onDprChange((()=>this._queueRefresh(!0)))),this._register(this._optionsService.onSpecificOptionChange("overviewRuler",(()=>this._queueRefresh(!0)))),this._register(this._themeService.onChangeColors((()=>this._queueRefresh()))),this._queueRefresh(!0)}_refreshDrawConstants(){const N=Math.floor((this._canvas.width-1)/3),j=Math.ceil((this._canvas.width-1)/3);ve.full=this._canvas.width,ve.left=N,ve.center=j,ve.right=N,this._refreshDrawHeightConstants(),Se.full=1,Se.left=1,Se.center=1+ve.left,Se.right=1+ve.left+ve.center}_refreshDrawHeightConstants(){me.full=Math.round(2*this._coreBrowserService.dpr);const N=this._canvas.height/this._bufferService.buffer.lines.length,j=Math.round(Math.max(Math.min(N,12),6)*this._coreBrowserService.dpr);me.left=j,me.center=j,me.right=j}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*me.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*me.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*me.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*me.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(const N of this._decorationService.decorations)this._colorZoneStore.addDecoration(N);this._ctx.lineWidth=1,this._renderRulerOutline();const N=this._colorZoneStore.zones;for(const j of N)"full"!==j.position&&this._renderColorZone(j);for(const j of N)"full"===j.position&&this._renderColorZone(j);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderRulerOutline(){this._ctx.fillStyle=this._themeService.colors.overviewRulerBorder.css,this._ctx.fillRect(0,0,1,this._canvas.height),this._optionsService.rawOptions.overviewRuler.showTopBorder&&this._ctx.fillRect(1,0,this._canvas.width-1,1),this._optionsService.rawOptions.overviewRuler.showBottomBorder&&this._ctx.fillRect(1,this._canvas.height-1,this._canvas.width-1,this._canvas.height)}_renderColorZone(N){this._ctx.fillStyle=N.color,this._ctx.fillRect(Se[N.position||"full"],Math.round((this._canvas.height-1)*(N.startBufferLine/this._bufferService.buffers.active.lines.length)-me[N.position||"full"]/2),ve[N.position||"full"],Math.round((this._canvas.height-1)*((N.endBufferLine-N.startBufferLine)/this._bufferService.buffers.active.lines.length)+me[N.position||"full"]))}_queueRefresh(N,j){this._shouldUpdateDimensions=N||this._shouldUpdateDimensions,this._shouldUpdateAnchor=j||this._shouldUpdateAnchor,void 0===this._animationFrame&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};j.OverviewRulerRenderer=be,j.OverviewRulerRenderer=be=ie([se(2,_e.IBufferService),se(3,_e.IDecorationService),se(4,he.IRenderService),se(5,_e.IOptionsService),se(6,he.IThemeService),se(7,he.ICoreBrowserService)],be)},3618:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.CompositionHelper=void 0;const le=X(7098),he=X(6501),ce=X(3534);let _e=class{get isComposing(){return this._isComposing}constructor(N,j,X,ie,se,le){this._textarea=N,this._compositionView=j,this._bufferService=X,this._optionsService=ie,this._coreService=se,this._renderService=le,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(N){this._compositionView.textContent=N.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(N){if(this._isComposing||this._isSendingComposition){if(229===N.keyCode)return!1;if(16===N.keyCode||17===N.keyCode||18===N.keyCode)return!1;this._finalizeComposition(!1)}return 229!==N.keyCode||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(N){if(this._compositionView.classList.remove("active"),this._isComposing=!1,N){const N={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let j;this._isSendingComposition=!1,N.start+=this._dataAlreadySent.length,j=this._isComposing?this._textarea.value.substring(N.start,this._compositionPosition.start):this._textarea.value.substring(N.start),j.length>0&&this._coreService.triggerDataEvent(j,!0)}}),0)}else{this._isSendingComposition=!1;const N=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(N,!0)}}_handleAnyTextareaChanges(){const N=this._textarea.value;setTimeout((()=>{if(!this._isComposing){const j=this._textarea.value,X=j.replace(N,"");this._dataAlreadySent=X,j.length>N.length?this._coreService.triggerDataEvent(X,!0):j.lengththis.updateCompositionElements(!0)),0)}}};j.CompositionHelper=_e,j.CompositionHelper=_e=ie([se(2,he.IBufferService),se(3,he.IOptionsService),se(4,he.ICoreService),se(5,le.IRenderService)],_e)},5251:(N,j)=>{function i(N,j,X){const ie=X.getBoundingClientRect(),se=N.getComputedStyle(X),le=parseInt(se.getPropertyValue("padding-left")),he=parseInt(se.getPropertyValue("padding-top"));return[j.clientX-ie.left-le,j.clientY-ie.top-he]}Object.defineProperty(j,"__esModule",{value:!0}),j.getCoordsRelativeToElement=i,j.getCoords=function(N,j,X,ie,se,le,he,ce,_e){if(!le)return;const me=i(N,j,X);return me?(me[0]=Math.ceil((me[0]+(_e?he/2:0))/he),me[1]=Math.ceil(me[1]/ce),me[0]=Math.min(Math.max(me[0],1),ie+(_e?1:0)),me[1]=Math.min(Math.max(me[1],1),se),me):void 0}},9686:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.moveToCellSequence=function(N,j,X,ie){const se=X.buffer.x,le=X.buffer.y;if(!X.buffer.hasScrollback)return function(N,j,X,ie,se,le){return 0===r(j,ie,se,le).length?"":h(a(N,j,N,j-n(j,se),!1,se).length,l("D",le))}(se,le,0,j,X,ie)+r(le,j,X,ie)+function(N,j,X,ie,se,le){let he;he=r(j,ie,se,le).length>0?ie-n(ie,se):j;const ce=ie,_e=function(N,j,X,ie,se,le){let he;return he=r(X,ie,se,le).length>0?ie-n(ie,se):j,N=X&&heN?"D":"C",h(Math.abs(se-N),l(he,ie));he=le>j?"D":"C";const ce=Math.abs(le-j);return h(function(N,j){return j.cols-N}(le>j?N:se,X)+(ce-1)*X.cols+1+((le>j?se:N)-1),l(he,ie))};const ie=X(3534);function r(N,j,X,ie){const se=N-n(N,X),le=j-n(j,X),he=Math.abs(se-le)-function(N,j,X){let ie=0;const se=N-n(N,X),le=j-n(j,X);for(let he=0;he=0&&Nj?"A":"B"}function a(N,j,X,ie,se,le){let he=N,ce=j,_e="";for(;he!==X||ce!==ie;)he+=se?1:-1,se&&he>le.cols-1?(_e+=le.buffer.translateBufferLineToString(ce,!1,N,he),he=0,N=0,ce++):!se&&he<0&&(_e+=le.buffer.translateBufferLineToString(ce,!1,0,N+1),he=le.cols-1,N=he,ce--);return _e+le.buffer.translateBufferLineToString(ce,!1,N,he)}function l(N,j){const X=j?"O":"[";return ie.C0.ESC+X+N}function h(N,j){N=Math.floor(N);let X="";for(let ie=0;ie=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.DomRenderer=void 0;const le=X(1433),he=X(2744),ce=X(9176),_e=X(6181),me=X(2274),ve=X(7098),Se=X(4103),be=X(7150),Ce=X(6501),ye=X(802),we="xterm-dom-renderer-owner-",Ee="xterm-rows",De="xterm-fg-",Le="xterm-bg-",Ae="xterm-focus",Re="xterm-selection";let Te=1,ke=class extends be.Disposable{constructor(N,j,X,ie,se,ce,ve,Se,Ce,De,Le,Ae,ke){super(),this._terminal=N,this._document=j,this._element=X,this._screenElement=ie,this._viewportElement=se,this._helperContainer=ce,this._linkifier2=ve,this._charSizeService=Ce,this._optionsService=De,this._bufferService=Le,this._coreBrowserService=Ae,this._themeService=ke,this._terminalClass=Te++,this._rowElements=[],this._selectionRenderModel=(0,me.createSelectionRenderModel)(),this.onRequestRedraw=this._register(new ye.Emitter).event,this._rowContainer=this._document.createElement("div"),this._rowContainer.classList.add(Ee),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(Re),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions=(0,_e.createRenderDimensions)(),this._updateDimensions(),this._register(this._optionsService.onOptionChange((()=>this._handleOptionsChanged()))),this._register(this._themeService.onChangeColors((N=>this._injectCss(N)))),this._injectCss(this._themeService.colors),this._rowFactory=Se.createInstance(le.DomRendererRowFactory,document),this._element.classList.add(we+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this._register(this._linkifier2.onShowLinkUnderline((N=>this._handleLinkHover(N)))),this._register(this._linkifier2.onHideLinkUnderline((N=>this._handleLinkLeave(N)))),this._register((0,be.toDisposable)((()=>{this._element.classList.remove(we+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()}))),this._widthCache=new he.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(){const N=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*N,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*N),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/N),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/N),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(const N of this._rowElements)N.style.width=`${this.dimensions.css.canvas.width}px`,N.style.height=`${this.dimensions.css.cell.height}px`,N.style.lineHeight=`${this.dimensions.css.cell.height}px`,N.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));const j=`${this._terminalSelector} .${Ee} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=j,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(N){this._themeStyleElement||(this._themeStyleElement=this._document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let j=`${this._terminalSelector} .${Ee} { color: ${N.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;j+=`${this._terminalSelector} .${Ee} .xterm-dim { color: ${Se.color.multiplyOpacity(N.foreground,.5).css};}`,j+=`${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;}`;const X=`blink_underline_${this._terminalClass}`,ie=`blink_bar_${this._terminalClass}`,se=`blink_block_${this._terminalClass}`;j+=`@keyframes ${X} { 50% { border-bottom-style: hidden; }}`,j+=`@keyframes ${ie} { 50% { box-shadow: none; }}`,j+=`@keyframes ${se} { 0% { background-color: ${N.cursor.css}; color: ${N.cursorAccent.css}; } 50% { background-color: inherit; color: ${N.cursor.css}; }}`,j+=`${this._terminalSelector} .${Ee}.${Ae} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${X} 1s step-end infinite;}${this._terminalSelector} .${Ee}.${Ae} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${ie} 1s step-end infinite;}${this._terminalSelector} .${Ee}.${Ae} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${se} 1s step-end infinite;}${this._terminalSelector} .${Ee} .xterm-cursor.xterm-cursor-block { background-color: ${N.cursor.css}; color: ${N.cursorAccent.css};}${this._terminalSelector} .${Ee} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${N.cursor.css} !important; color: ${N.cursorAccent.css} !important;}${this._terminalSelector} .${Ee} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${N.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${Ee} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${N.cursor.css} inset;}${this._terminalSelector} .${Ee} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${N.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,j+=`${this._terminalSelector} .${Re} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${Re} div { position: absolute; background-color: ${N.selectionBackgroundOpaque.css};}${this._terminalSelector} .${Re} div { position: absolute; background-color: ${N.selectionInactiveBackgroundOpaque.css};}`;for(const[X,ie]of N.ansi.entries())j+=`${this._terminalSelector} .${De}${X} { color: ${ie.css}; }${this._terminalSelector} .${De}${X}.xterm-dim { color: ${Se.color.multiplyOpacity(ie,.5).css}; }${this._terminalSelector} .${Le}${X} { background-color: ${ie.css}; }`;j+=`${this._terminalSelector} .${De}${ce.INVERTED_DEFAULT_COLOR} { color: ${Se.color.opaque(N.background).css}; }${this._terminalSelector} .${De}${ce.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${Se.color.multiplyOpacity(Se.color.opaque(N.background),.5).css}; }${this._terminalSelector} .${Le}${ce.INVERTED_DEFAULT_COLOR} { background-color: ${N.foreground.css}; }`,this._themeStyleElement.textContent=j}_setDefaultSpacing(){const N=this.dimensions.css.cell.width-this._widthCache.get("W",!1,!1);this._rowContainer.style.letterSpacing=`${N}px`,this._rowFactory.defaultSpacing=N}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(N,j){for(let N=this._rowElements.length;N<=j;N++){const N=this._document.createElement("div");this._rowContainer.appendChild(N),this._rowElements.push(N)}for(;this._rowElements.length>j;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(N,j){this._refreshRowElements(N,j),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(Ae),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(Ae),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(N,j,X){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(N,j,X),this.renderRows(0,this._bufferService.rows-1),!N||!j)return;if(this._selectionRenderModel.update(this._terminal,N,j,X),!this._selectionRenderModel.hasSelection)return;const ie=this._selectionRenderModel.viewportStartRow,se=this._selectionRenderModel.viewportEndRow,le=this._selectionRenderModel.viewportCappedStartRow,he=this._selectionRenderModel.viewportCappedEndRow,ce=this._document.createDocumentFragment();if(X){const X=N[0]>j[0];ce.appendChild(this._createSelectionElement(le,X?j[0]:N[0],X?N[0]:j[0],he-le+1))}else{const X=ie===le?N[0]:0,_e=le===se?j[0]:this._bufferService.cols;ce.appendChild(this._createSelectionElement(le,X,_e));const me=he-le-1;if(ce.appendChild(this._createSelectionElement(le+1,0,this._bufferService.cols,me)),le!==he){const N=se===he?j[0]:this._bufferService.cols;ce.appendChild(this._createSelectionElement(he,0,N))}}this._selectionContainer.appendChild(ce)}_createSelectionElement(N,j,X,ie=1){const se=this._document.createElement("div"),le=j*this.dimensions.css.cell.width;let he=this.dimensions.css.cell.width*(X-j);return le+he>this.dimensions.css.canvas.width&&(he=this.dimensions.css.canvas.width-le),se.style.height=ie*this.dimensions.css.cell.height+"px",se.style.top=N*this.dimensions.css.cell.height+"px",se.style.left=`${le}px`,se.style.width=`${he}px`,se}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(const N of this._rowElements)N.replaceChildren()}renderRows(N,j){const X=this._bufferService.buffer,ie=X.ybase+X.y,se=Math.min(X.x,this._bufferService.cols-1),le=this._optionsService.rawOptions.cursorBlink,he=this._optionsService.rawOptions.cursorStyle,ce=this._optionsService.rawOptions.cursorInactiveStyle;for(let _e=N;_e<=j;_e++){const N=_e+X.ydisp,j=this._rowElements[_e],me=X.lines.get(N);if(!j||!me)break;j.replaceChildren(...this._rowFactory.createRow(me,N,N===ie,he,ce,se,le,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${we}${this._terminalClass}`}_handleLinkHover(N){this._setCellUnderline(N.x1,N.x2,N.y1,N.y2,N.cols,!0)}_handleLinkLeave(N){this._setCellUnderline(N.x1,N.x2,N.y1,N.y2,N.cols,!1)}_setCellUnderline(N,j,X,ie,se,le){X<0&&(N=0),ie<0&&(j=0);const he=this._bufferService.rows-1;X=Math.max(Math.min(X,he),0),ie=Math.max(Math.min(ie,he),0),se=Math.min(se,this._bufferService.cols);const ce=this._bufferService.buffer,_e=ce.ybase+ce.y,me=Math.min(ce.x,se-1),ve=this._optionsService.rawOptions.cursorBlink,Se=this._optionsService.rawOptions.cursorStyle,be=this._optionsService.rawOptions.cursorInactiveStyle;for(let he=X;he<=ie;++he){const Ce=he+ce.ydisp,ye=this._rowElements[he],we=ce.lines.get(Ce);if(!ye||!we)break;ye.replaceChildren(...this._rowFactory.createRow(we,Ce,Ce===_e,Se,be,me,ve,this.dimensions.css.cell.width,this._widthCache,le?he===X?N:0:-1,le?(he===ie?j:se)-1:-1))}}};j.DomRenderer=ke,j.DomRenderer=ke=ie([se(7,Ce.IInstantiationService),se(8,ve.ICharSizeService),se(9,Ce.IOptionsService),se(10,Ce.IBufferService),se(11,ve.ICoreBrowserService),se(12,ve.IThemeService)],ke)},1433:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.DomRendererRowFactory=void 0;const le=X(9176),he=X(8938),ce=X(3055),_e=X(6501),me=X(4103),ve=X(7098),Se=X(945),be=X(6181),Ce=X(5451);let ye=class{constructor(N,j,X,ie,se,le,he){this._document=N,this._characterJoinerService=j,this._optionsService=X,this._coreBrowserService=ie,this._coreService=se,this._decorationService=le,this._themeService=he,this._workCell=new ce.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(N,j,X){this._selectionStart=N,this._selectionEnd=j,this._columnSelectMode=X}createRow(N,j,X,ie,se,ce,_e,ve,be,ye,we){const Ee=[],De=this._characterJoinerService.getJoinedCharacters(j),Le=this._themeService.colors;let Ae,Re=N.getNoBgTrimmedLength();X&&Re0&&We===De[0][0]){He=!0;const j=De.shift();ze=new Se.JoinedCellData(this._workCell,N.translateToString(!0,j[0],j[1]),j[1]-j[0]),Ke=j[1]-1,Re=ze.getWidth()}const je=this._isCellInSelection(We,j),$e=X&&We===ce,Ve=Fe&&We>=ye&&We<=we;let Ge=!1;this._decorationService.forEachDecorationAtCell(We,j,void 0,(N=>{Ge=!0}));let qe=ze.getChars()||he.WHITESPACE_CELL_CHAR;if(" "===qe&&(ze.isUnderline()||ze.isOverline())&&(qe=" "),Ne=Re*ve-be.get(qe,ze.isBold(),ze.isItalic()),Ae){if(Te&&(je&&Be||!je&&!Be&&ze.bg===Me)&&(je&&Be&&Le.selectionForeground||ze.fg===Oe)&&ze.extended.ext===Ie&&Ve===Pe&&Ne===xe&&!$e&&!He&&!Ge){ze.isInvisible()?ke+=he.WHITESPACE_CELL_CHAR:ke+=qe,Te++;continue}Te&&(Ae.textContent=ke),Ae=this._document.createElement("span"),Te=0,ke=""}else Ae=this._document.createElement("span");if(Me=ze.bg,Oe=ze.fg,Ie=ze.extended.ext,Pe=Ve,xe=Ne,Be=je,He&&ce>=We&&ce<=Ke&&(ce=We),!this._coreService.isCursorHidden&&$e&&this._coreService.isCursorInitialized)if(Ue.push("xterm-cursor"),this._coreBrowserService.isFocused)_e&&Ue.push("xterm-cursor-blink"),Ue.push("bar"===ie?"xterm-cursor-bar":"underline"===ie?"xterm-cursor-underline":"xterm-cursor-block");else if(se)switch(se){case"outline":Ue.push("xterm-cursor-outline");break;case"block":Ue.push("xterm-cursor-block");break;case"bar":Ue.push("xterm-cursor-bar");break;case"underline":Ue.push("xterm-cursor-underline")}if(ze.isBold()&&Ue.push("xterm-bold"),ze.isItalic()&&Ue.push("xterm-italic"),ze.isDim()&&Ue.push("xterm-dim"),ke=ze.isInvisible()?he.WHITESPACE_CELL_CHAR:ze.getChars()||he.WHITESPACE_CELL_CHAR,ze.isUnderline()&&(Ue.push(`xterm-underline-${ze.extended.underlineStyle}`)," "===ke&&(ke=" "),!ze.isUnderlineColorDefault()))if(ze.isUnderlineColorRGB())Ae.style.textDecorationColor=`rgb(${Ce.AttributeData.toColorRGB(ze.getUnderlineColor()).join(",")})`;else{let N=ze.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&ze.isBold()&&N<8&&(N+=8),Ae.style.textDecorationColor=Le.ansi[N].css}ze.isOverline()&&(Ue.push("xterm-overline")," "===ke&&(ke=" ")),ze.isStrikethrough()&&Ue.push("xterm-strikethrough"),Ve&&(Ae.style.textDecoration="underline");let Xe=ze.getFgColor(),Ye=ze.getFgColorMode(),Ze=ze.getBgColor(),Qe=ze.getBgColorMode();const Je=!!ze.isInverse();if(Je){const N=Xe;Xe=Ze,Ze=N;const j=Ye;Ye=Qe,Qe=j}let et,tt,it,st=!1;switch(this._decorationService.forEachDecorationAtCell(We,j,void 0,(N=>{"top"!==N.options.layer&&st||(N.backgroundColorRGB&&(Qe=50331648,Ze=N.backgroundColorRGB.rgba>>8&16777215,et=N.backgroundColorRGB),N.foregroundColorRGB&&(Ye=50331648,Xe=N.foregroundColorRGB.rgba>>8&16777215,tt=N.foregroundColorRGB),st="top"===N.options.layer)})),!st&&je&&(et=this._coreBrowserService.isFocused?Le.selectionBackgroundOpaque:Le.selectionInactiveBackgroundOpaque,Ze=et.rgba>>8&16777215,Qe=50331648,st=!0,Le.selectionForeground&&(Ye=50331648,Xe=Le.selectionForeground.rgba>>8&16777215,tt=Le.selectionForeground)),st&&Ue.push("xterm-decoration-top"),Qe){case 16777216:case 33554432:it=Le.ansi[Ze],Ue.push(`xterm-bg-${Ze}`);break;case 50331648:it=me.channels.toColor(Ze>>16,Ze>>8&255,255&Ze),this._addStyle(Ae,`background-color:#${p((Ze>>>0).toString(16),"0",6)}`);break;default:Je?(it=Le.foreground,Ue.push(`xterm-bg-${le.INVERTED_DEFAULT_COLOR}`)):it=Le.background}switch(et||ze.isDim()&&(et=me.color.multiplyOpacity(it,.5)),Ye){case 16777216:case 33554432:ze.isBold()&&Xe<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(Xe+=8),this._applyMinimumContrast(Ae,it,Le.ansi[Xe],ze,et,void 0)||Ue.push(`xterm-fg-${Xe}`);break;case 50331648:const N=me.channels.toColor(Xe>>16&255,Xe>>8&255,255&Xe);this._applyMinimumContrast(Ae,it,N,ze,et,tt)||this._addStyle(Ae,`color:#${p(Xe.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(Ae,it,Le.foreground,ze,et,tt)||Je&&Ue.push(`xterm-fg-${le.INVERTED_DEFAULT_COLOR}`)}Ue.length&&(Ae.className=Ue.join(" "),Ue.length=0),$e||He||Ge?Ae.textContent=ke:Te++,Ne!==this.defaultSpacing&&(Ae.style.letterSpacing=`${Ne}px`),Ee.push(Ae),We=Ke}return Ae&&Te&&(Ae.textContent=ke),Ee}_applyMinimumContrast(N,j,X,ie,se,le){if(1===this._optionsService.rawOptions.minimumContrastRatio||(0,be.treatGlyphAsBackgroundColor)(ie.getCode()))return!1;const he=this._getContrastCache(ie);let ce;if(se||le||(ce=he.getColor(j.rgba,X.rgba)),void 0===ce){const N=this._optionsService.rawOptions.minimumContrastRatio/(ie.isDim()?2:1);ce=me.color.ensureContrastRatio(se||j,le||X,N),he.setColor((se||j).rgba,(le||X).rgba,ce??null)}return!!ce&&(this._addStyle(N,`color:${ce.css}`),!0)}_getContrastCache(N){return N.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(N,j){N.setAttribute("style",`${N.getAttribute("style")||""}${j};`)}_isCellInSelection(N,j){const X=this._selectionStart,ie=this._selectionEnd;return!(!X||!ie)&&(this._columnSelectMode?X[0]<=ie[0]?N>=X[0]&&j>=X[1]&&N=X[1]&&N>=ie[0]&&j<=ie[1]:j>X[1]&&j=X[0]&&N=X[0])}};function p(N,j,X){for(;N.length{Object.defineProperty(j,"__esModule",{value:!0}),j.WidthCache=void 0,j.WidthCache=class{constructor(N,j){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";const X=N.createElement("span");X.classList.add("xterm-char-measure-element");const ie=N.createElement("span");ie.classList.add("xterm-char-measure-element"),ie.style.fontWeight="bold";const se=N.createElement("span");se.classList.add("xterm-char-measure-element"),se.style.fontStyle="italic";const le=N.createElement("span");le.classList.add("xterm-char-measure-element"),le.style.fontWeight="bold",le.style.fontStyle="italic",this._measureElements=[X,ie,se,le],this._container.appendChild(X),this._container.appendChild(ie),this._container.appendChild(se),this._container.appendChild(le),j.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,j,X,ie){N===this._font&&j===this._fontSize&&X===this._weight&&ie===this._weightBold||(this._font=N,this._fontSize=j,this._weight=X,this._weightBold=ie,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${X}`,this._measureElements[1].style.fontWeight=`${ie}`,this._measureElements[2].style.fontWeight=`${X}`,this._measureElements[3].style.fontWeight=`${ie}`,this.clear())}get(N,j,X){let ie=0;if(!j&&!X&&1===N.length&&(ie=N.charCodeAt(0))<256){if(-9999!==this._flat[ie])return this._flat[ie];const j=this._measure(N,0);return j>0&&(this._flat[ie]=j),j}let se=N;j&&(se+="B"),X&&(se+="I");let le=this._holey.get(se);if(void 0===le){let ie=0;j&&(ie|=1),X&&(ie|=2),le=this._measure(N,ie),le>0&&this._holey.set(se,le)}return le}_measure(N,j){const X=this._measureElements[j];return X.textContent=N.repeat(32),X.offsetWidth/32}}},9176:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.TEXT_BASELINE=j.DIM_OPACITY=j.INVERTED_DEFAULT_COLOR=void 0;const ie=X(701);j.INVERTED_DEFAULT_COLOR=257,j.DIM_OPACITY=.5,j.TEXT_BASELINE=ie.isFirefox||ie.isLegacyEdge?"bottom":"ideographic"},6181:(N,j)=>{function i(N){return 57508<=N&&N<=57558}function s(N){return N>=128512&&N<=128591||N>=127744&&N<=128511||N>=128640&&N<=128767||N>=9728&&N<=9983||N>=9984&&N<=10175||N>=65024&&N<=65039||N>=129280&&N<=129535||N>=127462&&N<=127487}Object.defineProperty(j,"__esModule",{value:!0}),j.throwIfFalsy=function(N){if(!N)throw new Error("value must not be falsy");return N},j.isPowerlineGlyph=i,j.isRestrictedPowerlineGlyph=function(N){return 57520<=N&&N<=57527},j.isEmoji=s,j.allowRescaling=function(N,j,X,ie){return 1===j&&X>Math.ceil(1.5*ie)&&void 0!==N&&N>255&&!s(N)&&!i(N)&&!function(N){return 57344<=N&&N<=63743}(N)},j.treatGlyphAsBackgroundColor=function(N){return i(N)||function(N){return 9472<=N&&N<=9631}(N)},j.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}}}},j.computeNextVariantOffset=function(N,j,X=0){return(N-(2*Math.round(j)-X))%(2*Math.round(j))}},2274:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.createSelectionRenderModel=function(){return new i};class i{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(N,j,X,ie=!1){if(this.selectionStart=j,this.selectionEnd=X,!j||!X||j[0]===X[0]&&j[1]===X[1])return void this.clear();const se=N.buffers.active.ydisp,le=j[1]-se,he=X[1]-se,ce=Math.max(le,0),_e=Math.min(he,N.rows-1);ce>=N.rows||_e<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=ie,this.viewportStartRow=le,this.viewportEndRow=he,this.viewportCappedStartRow=ce,this.viewportCappedEndRow=_e,this.startCol=j[0],this.endCol=X[0])}isCellSelected(N,j,X){return!!this.hasSelection&&(X-=N.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?j>=this.startCol&&X>=this.viewportCappedStartRow&&j=this.viewportCappedStartRow&&j>=this.endCol&&X<=this.viewportCappedEndRow:X>this.viewportStartRow&&X=this.startCol&&j=this.startCol)}}},5959:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.SelectionModel=void 0,j.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()){const 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]){const 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(){const N=this.selectionStart,j=this.selectionEnd;return!(!N||!j)&&(N[1]>j[1]||N[1]===j[1]&&N[0]>j[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)}}},4792:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.CharSizeService=void 0;const le=X(6501),he=X(7150),ce=X(802);let _e=class extends he.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(N,j,X){super(),this._optionsService=X,this.width=0,this.height=0,this._onCharSizeChange=this._register(new ce.Emitter),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this._register(new d(this._optionsService))}catch{this._measureStrategy=this._register(new c(N,j,this._optionsService))}this._register(this._optionsService.onMultipleOptionChange(["fontFamily","fontSize"],(()=>this.measure())))}measure(){const N=this._measureStrategy.measure();N.width===this.width&&N.height===this.height||(this.width=N.width,this.height=N.height,this._onCharSizeChange.fire())}};j.CharSizeService=_e,j.CharSizeService=_e=ie([se(2,le.IOptionsService)],_e);class h extends he.Disposable{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(N,j){void 0!==N&&N>0&&void 0!==j&&j>0&&(this._result.width=N,this._result.height=j)}}class c extends h{constructor(N,j,X){super(),this._document=N,this._parentElement=j,this._optionsService=X,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 h{constructor(N){super(),this._optionsService=N,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext("2d");const j=this._ctx.measureText("W");if(!("width"in j&&"fontBoundingBoxAscent"in j&&"fontBoundingBoxDescent"in j))throw new Error("Required font metrics not supported")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;const N=this._ctx.measureText("W");return this._validateAndSet(N.width,N.fontBoundingBoxAscent+N.fontBoundingBoxDescent),this._result}}},945:function(N,j,X){var ie,se=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},le=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.CharacterJoinerService=j.JoinedCellData=void 0;const he=X(5451),ce=X(8938),_e=X(3055),me=X(6501);class c extends he.AttributeData{constructor(N,j,X){super(),this.content=0,this.combinedData="",this.fg=N.fg,this.bg=N.bg,this.combinedData=j,this._width=X}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(N){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}j.JoinedCellData=c;let ve=ie=class{constructor(N){this._bufferService=N,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new _e.CellData}register(N){const j={id:this._nextCharacterJoinerId++,handler:N};return this._characterJoiners.push(j),j.id}deregister(N){for(let j=0;j1){const N=this._getJoinedRanges(ie,he,le,j,se);for(let j=0;j1){const N=this._getJoinedRanges(ie,he,le,j,se);for(let j=0;j{Object.defineProperty(j,"__esModule",{value:!0}),j.CoreBrowserService=void 0;const ie=X(802),se=X(7093),le=X(7150);class o extends le.Disposable{constructor(N,j,X){super(),this._textarea=N,this._window=j,this.mainDocument=X,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=this._register(new a(this._window)),this._onDprChange=this._register(new ie.Emitter),this.onDprChange=this._onDprChange.event,this._onWindowChange=this._register(new ie.Emitter),this.onWindowChange=this._onWindowChange.event,this._register(this.onWindowChange((N=>this._screenDprMonitor.setWindow(N)))),this._register(ie.Event.forward(this._screenDprMonitor.onDprChange,this._onDprChange)),this._register((0,se.addDisposableListener)(this._textarea,"focus",(()=>this._isFocused=!0))),this._register((0,se.addDisposableListener)(this._textarea,"blur",(()=>this._isFocused=!1)))}get window(){return this._window}set window(N){this._window!==N&&(this._window=N,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return void 0===this._cachedIsFocused&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask((()=>this._cachedIsFocused=void 0))),this._cachedIsFocused}}j.CoreBrowserService=o;class a extends le.Disposable{constructor(N){super(),this._parentWindow=N,this._windowResizeListener=this._register(new le.MutableDisposable),this._onDprChange=this._register(new ie.Emitter),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this._register((0,le.toDisposable)((()=>this.clearListener())))}setWindow(N){this._parentWindow=N,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=(0,se.addDisposableListener)(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)}}},9820:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.LinkProviderService=void 0;const ie=X(7150);class r extends ie.Disposable{constructor(){super(),this.linkProviders=[],this._register((0,ie.toDisposable)((()=>this.linkProviders.length=0)))}registerLinkProvider(N){return this.linkProviders.push(N),{dispose:()=>{const j=this.linkProviders.indexOf(N);-1!==j&&this.linkProviders.splice(j,1)}}}}j.LinkProviderService=r},9784:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.MouseService=void 0;const le=X(7098),he=X(5251);let ce=class{constructor(N,j){this._renderService=N,this._charSizeService=j}getCoords(N,j,X,ie,se){return(0,he.getCoords)(window,N,j,X,ie,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,se)}getMouseReportCoords(N,j){const X=(0,he.getCoordsRelativeToElement)(window,N,j);if(this._charSizeService.hasValidSize)return X[0]=Math.min(Math.max(X[0],0),this._renderService.dimensions.css.canvas.width-1),X[1]=Math.min(Math.max(X[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(X[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(X[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(X[0]),y:Math.floor(X[1])}}};j.MouseService=ce,j.MouseService=ce=ie([se(0,le.IRenderService),se(1,le.ICharSizeService)],ce)},5783:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.RenderService=void 0;const le=X(4852),he=X(7098),ce=X(7150),_e=X(6168),me=X(6501),ve=X(802);let Se=class extends ce.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(N,j,X,ie,se,he,me,Se){super(),this._rowCount=N,this._charSizeService=ie,this._renderer=this._register(new ce.MutableDisposable),this._pausedResizeTask=new _e.DebouncedIdleTask,this._observerDisposable=this._register(new ce.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 ve.Emitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this._register(new ve.Emitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this._register(new ve.Emitter),this.onRender=this._onRender.event,this._onRefreshRequest=this._register(new ve.Emitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new le.RenderDebouncer(((N,j)=>this._renderRows(N,j)),me),this._register(this._renderDebouncer),this._register(me.onDprChange((()=>this.handleDevicePixelRatioChange()))),this._register(he.onResize((()=>this._fullRefresh()))),this._register(he.buffers.onBufferActivate((()=>this._renderer.value?.clear()))),this._register(X.onOptionChange((()=>this._handleOptionsChanged()))),this._register(this._charSizeService.onCharSizeChange((()=>this.handleCharSizeChanged()))),this._register(se.onDecorationRegistered((()=>this._fullRefresh()))),this._register(se.onDecorationRemoved((()=>this._fullRefresh()))),this._register(X.onMultipleOptionChange(["customGlyphs","drawBoldTextInBrightColors","letterSpacing","lineHeight","fontFamily","fontSize","fontWeight","fontWeightBold","minimumContrastRatio","rescaleOverlappingGlyphs"],(()=>{this.clear(),this.handleResize(he.cols,he.rows),this._fullRefresh()}))),this._register(X.onMultipleOptionChange(["cursorBlink","cursorStyle"],(()=>this.refreshRows(he.buffer.y,he.buffer.y,!0)))),this._register(Se.onChangeColors((()=>this._fullRefresh()))),this._registerIntersectionObserver(me.window,j),this._register(me.onWindowChange((N=>this._registerIntersectionObserver(N,j))))}_registerIntersectionObserver(N,j){if("IntersectionObserver"in N){const X=new N.IntersectionObserver((N=>this._handleIntersectionChange(N[N.length-1])),{threshold:0});X.observe(j),this._observerDisposable.value=(0,ce.toDisposable)((()=>X.disconnect()))}}_handleIntersectionChange(N){this._isPaused=void 0===N.isIntersecting?0===N.intersectionRatio:!N.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(N,j,X=!1){this._isPaused?this._needsFullRefresh=!0:(X||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(N,j,this._rowCount))}_renderRows(N,j){this._renderer.value&&(N=Math.min(N,this._rowCount-1),j=Math.min(j,this._rowCount-1),this._renderer.value.renderRows(N,j),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:N,end:j}),this._onRender.fire({start:N,end:j}),this._isNextRenderRedrawOnly=!0)}resize(N,j){this._rowCount=j,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(N){this._renderer.value=N,this._renderer.value&&(this._renderer.value.onRequestRedraw((N=>this.refreshRows(N.start,N.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(N){return this._renderDebouncer.addRefreshCallback(N)}_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(N,j){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set((()=>this._renderer.value?.handleResize(N,j))):this._renderer.value.handleResize(N,j),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(N,j,X){this._selectionState.start=N,this._selectionState.end=j,this._selectionState.columnSelectMode=X,this._renderer.value?.handleSelectionChanged(N,j,X)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};j.RenderService=Se,j.RenderService=Se=ie([se(2,me.IOptionsService),se(3,he.ICharSizeService),se(4,me.IDecorationService),se(5,me.IBufferService),se(6,he.ICoreBrowserService),se(7,he.IThemeService)],Se)},2079:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.SelectionService=void 0;const le=X(5251),he=X(9686),ce=X(5959),_e=X(7098),me=X(7150),ve=X(701),Se=X(9384),be=X(3055),Ce=X(6501),ye=X(802),we=String.fromCharCode(160),Ee=new RegExp(we,"g");let De=class extends me.Disposable{constructor(N,j,X,ie,se,le,he,_e,ve){super(),this._element=N,this._screenElement=j,this._linkifier=X,this._bufferService=ie,this._coreService=se,this._mouseService=le,this._optionsService=he,this._renderService=_e,this._coreBrowserService=ve,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new be.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this._register(new ye.Emitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this._register(new ye.Emitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this._register(new ye.Emitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this._register(new ye.Emitter),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 ce.SelectionModel(this._bufferService),this._activeSelectionMode=0,this._register((0,me.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(){const N=this._model.finalSelectionStart,j=this._model.finalSelectionEnd;return!(!N||!j||N[0]===j[0]&&N[1]===j[1])}get selectionText(){const N=this._model.finalSelectionStart,j=this._model.finalSelectionEnd;if(!N||!j)return"";const X=this._bufferService.buffer,ie=[];if(3===this._activeSelectionMode){if(N[0]===j[0])return"";const se=N[0]N.replace(Ee," "))).join(ve.isWindows?"\r\n":"\n")}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(N){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),ve.isLinux&&N&&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:3===this._activeSelectionMode})}_isClickInSelection(N){const j=this._getMouseBufferCoords(N),X=this._model.finalSelectionStart,ie=this._model.finalSelectionEnd;return!!(X&&ie&&j)&&this._areCoordsInSelection(j,X,ie)}isCellInSelection(N,j){const X=this._model.finalSelectionStart,ie=this._model.finalSelectionEnd;return!(!X||!ie)&&this._areCoordsInSelection([N,j],X,ie)}_areCoordsInSelection(N,j,X){return N[1]>j[1]&&N[1]=j[0]&&N[0]=j[0]}_selectWordAtCursor(N,j){const X=this._linkifier.currentLink?.link?.range;if(X)return this._model.selectionStart=[X.start.x-1,X.start.y-1],this._model.selectionStartLength=(0,Se.getRangeLength)(X,this._bufferService.cols),this._model.selectionEnd=void 0,!0;const ie=this._getMouseBufferCoords(N);return!!ie&&(this._selectWordAt(ie,j),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(N,j){this._model.clearSelection(),N=Math.max(N,0),j=Math.min(j,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,N],this._model.selectionEnd=[this._bufferService.cols,j],this.refresh(),this._onSelectionChange.fire()}_handleTrim(N){this._model.handleTrim(N)&&this.refresh()}_getMouseBufferCoords(N){const j=this._mouseService.getCoords(N,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(j)return j[0]--,j[1]--,j[1]+=this._bufferService.buffer.ydisp,j}_getMouseEventScrollAmount(N){let j=(0,le.getCoordsRelativeToElement)(this._coreBrowserService.window,N,this._screenElement)[1];const X=this._renderService.dimensions.css.canvas.height;return j>=0&&j<=X?0:(j>X&&(j-=X),j=Math.min(Math.max(j,-50),50),j/=50,j/Math.abs(j)+Math.round(14*j))}shouldForceSelection(N){return ve.isMac?N.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:N.shiftKey}handleMouseDown(N){if(this._mouseDownTimeStamp=N.timeStamp,(2!==N.button||!this.hasSelection)&&0===N.button){if(!this._enabled){if(!this.shouldForceSelection(N))return;N.stopPropagation()}N.preventDefault(),this._dragScrollAmount=0,this._enabled&&N.shiftKey?this._handleIncrementalClick(N):1===N.detail?this._handleSingleClick(N):2===N.detail?this._handleDoubleClick(N):3===N.detail&&this._handleTripleClick(N),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(N){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(N))}_handleSingleClick(N){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(N)?3:0,this._model.selectionStart=this._getMouseBufferCoords(N),!this._model.selectionStart)return;this._model.selectionEnd=void 0;const j=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);j&&j.length!==this._model.selectionStart[0]&&0===j.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_handleDoubleClick(N){this._selectWordAtCursor(N,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(N){const j=this._getMouseBufferCoords(N);j&&(this._activeSelectionMode=2,this._selectLineAt(j[1]))}shouldColumnSelect(N){return N.altKey&&!(ve.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(N){if(N.stopImmediatePropagation(),!this._model.selectionStart)return;const j=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(N),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));const X=this._bufferService.buffer;if(this._model.selectionEnd[1]0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(N.ydisp+this._bufferService.rows,N.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=N.ydisp),this.refresh()}}_handleMouseUp(N){const j=N.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&j<500&&N.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){const j=this._mouseService.getCoords(N,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(j&&void 0!==j[0]&&void 0!==j[1]){const N=(0,he.moveToCellSequence)(j[0]-1,j[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(N,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){const N=this._model.finalSelectionStart,j=this._model.finalSelectionEnd,X=!(!N||!j||N[0]===j[0]&&N[1]===j[1]);X?N&&j&&(this._oldSelectionStart&&this._oldSelectionEnd&&N[0]===this._oldSelectionStart[0]&&N[1]===this._oldSelectionStart[1]&&j[0]===this._oldSelectionEnd[0]&&j[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(N,j,X)):this._oldHasSelection&&this._fireOnSelectionChange(N,j,X)}_fireOnSelectionChange(N,j,X){this._oldSelectionStart=N,this._oldSelectionEnd=j,this._oldHasSelection=X,this._onSelectionChange.fire()}_handleBufferActivate(N){this.clearSelection(),this._trimListener.dispose(),this._trimListener=N.activeBuffer.lines.onTrim((N=>this._handleTrim(N)))}_convertViewportColToCharacterIndex(N,j){let X=j;for(let ie=0;j>=ie;ie++){const se=N.loadCell(ie,this._workCell).getChars().length;0===this._workCell.getWidth()?X--:se>1&&j!==ie&&(X+=se-1)}return X}setSelection(N,j,X){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[N,j],this._model.selectionStartLength=X,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(N){this._isClickInSelection(N)||(this._selectWordAtCursor(N,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(N,j,X=!0,ie=!0){if(N[0]>=this._bufferService.cols)return;const se=this._bufferService.buffer,le=se.lines.get(N[1]);if(!le)return;const he=se.translateBufferLineToString(N[1],!1);let ce=this._convertViewportColToCharacterIndex(le,N[0]),_e=ce;const me=N[0]-ce;let ve=0,Se=0,be=0,Ce=0;if(" "===he.charAt(ce)){for(;ce>0&&" "===he.charAt(ce-1);)ce--;for(;_e1&&(Ce+=ie-1,_e+=ie-1);j>0&&ce>0&&!this._isCharWordSeparator(le.loadCell(j-1,this._workCell));){le.loadCell(j-1,this._workCell);const N=this._workCell.getChars().length;0===this._workCell.getWidth()?(ve++,j--):N>1&&(be+=N-1,ce-=N-1),ce--,j--}for(;X1&&(Ce+=N-1,_e+=N-1),_e++,X++}}_e++;let ye=ce+me-ve+be,we=Math.min(this._bufferService.cols,_e-ce+ve+Se-be-Ce);if(j||""!==he.slice(ce,_e).trim()){if(X&&0===ye&&32!==le.getCodePoint(0)){const j=se.lines.get(N[1]-1);if(j&&le.isWrapped&&32!==j.getCodePoint(this._bufferService.cols-1)){const j=this._getWordAt([this._bufferService.cols-1,N[1]-1],!1,!0,!1);if(j){const N=this._bufferService.cols-j.start;ye-=N,we+=N}}}if(ie&&ye+we===this._bufferService.cols&&32!==le.getCodePoint(this._bufferService.cols-1)){const j=se.lines.get(N[1]+1);if(j?.isWrapped&&32!==j.getCodePoint(0)){const j=this._getWordAt([0,N[1]+1],!1,!1,!0);j&&(we+=j.length)}}return{start:ye,length:we}}}_selectWordAt(N,j){const X=this._getWordAt(N,j);if(X){for(;X.start<0;)X.start+=this._bufferService.cols,N[1]--;this._model.selectionStart=[X.start,N[1]],this._model.selectionStartLength=X.length}}_selectToWordAt(N){const j=this._getWordAt(N,!0);if(j){let X=N[1];for(;j.start<0;)j.start+=this._bufferService.cols,X--;if(!this._model.areSelectionValuesReversed())for(;j.start+j.length>this._bufferService.cols;)j.length-=this._bufferService.cols,X++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?j.start:j.start+j.length,X]}}_isCharWordSeparator(N){return 0!==N.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(N.getChars())>=0}_selectLineAt(N){const j=this._bufferService.buffer.getWrappedRangeForLine(N),X={start:{x:0,y:j.first},end:{x:this._bufferService.cols-1,y:j.last}};this._model.selectionStart=[0,j.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,Se.getRangeLength)(X,this._bufferService.cols)}};j.SelectionService=De,j.SelectionService=De=ie([se(3,Ce.IBufferService),se(4,Ce.ICoreService),se(5,_e.IMouseService),se(6,Ce.IOptionsService),se(7,_e.IRenderService),se(8,_e.ICoreBrowserService)],De)},7098:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.ILinkProviderService=j.IThemeService=j.ICharacterJoinerService=j.ISelectionService=j.IRenderService=j.IMouseService=j.ICoreBrowserService=j.ICharSizeService=void 0;const ie=X(6201);j.ICharSizeService=(0,ie.createDecorator)("CharSizeService"),j.ICoreBrowserService=(0,ie.createDecorator)("CoreBrowserService"),j.IMouseService=(0,ie.createDecorator)("MouseService"),j.IRenderService=(0,ie.createDecorator)("RenderService"),j.ISelectionService=(0,ie.createDecorator)("SelectionService"),j.ICharacterJoinerService=(0,ie.createDecorator)("CharacterJoinerService"),j.IThemeService=(0,ie.createDecorator)("ThemeService"),j.ILinkProviderService=(0,ie.createDecorator)("LinkProviderService")},9078:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.ThemeService=void 0;const le=X(7174),he=X(9302),ce=X(4103),_e=X(7150),me=X(6501),ve=X(802),Se=ce.css.toColor("#ffffff"),be=ce.css.toColor("#000000"),Ce=ce.css.toColor("#ffffff"),ye=be,we={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117},Ee=Se;let De=class extends _e.Disposable{get colors(){return this._colors}constructor(N){super(),this._optionsService=N,this._contrastCache=new le.ColorContrastCache,this._halfContrastCache=new le.ColorContrastCache,this._onChangeColors=this._register(new ve.Emitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:Se,background:be,cursor:Ce,cursorAccent:ye,selectionForeground:void 0,selectionBackgroundTransparent:we,selectionBackgroundOpaque:ce.color.blend(be,we),selectionInactiveBackgroundTransparent:we,selectionInactiveBackgroundOpaque:ce.color.blend(be,we),scrollbarSliderBackground:ce.color.opacity(Se,.2),scrollbarSliderHoverBackground:ce.color.opacity(Se,.4),scrollbarSliderActiveBackground:ce.color.opacity(Se,.5),overviewRulerBorder:Se,ansi:he.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(N={}){const j=this._colors;if(j.foreground=v(N.foreground,Se),j.background=v(N.background,be),j.cursor=v(N.cursor,Ce),j.cursorAccent=v(N.cursorAccent,ye),j.selectionBackgroundTransparent=v(N.selectionBackground,we),j.selectionBackgroundOpaque=ce.color.blend(j.background,j.selectionBackgroundTransparent),j.selectionInactiveBackgroundTransparent=v(N.selectionInactiveBackground,j.selectionBackgroundTransparent),j.selectionInactiveBackgroundOpaque=ce.color.blend(j.background,j.selectionInactiveBackgroundTransparent),j.selectionForeground=N.selectionForeground?v(N.selectionForeground,ce.NULL_COLOR):void 0,j.selectionForeground===ce.NULL_COLOR&&(j.selectionForeground=void 0),ce.color.isOpaque(j.selectionBackgroundTransparent)){const N=.3;j.selectionBackgroundTransparent=ce.color.opacity(j.selectionBackgroundTransparent,N)}if(ce.color.isOpaque(j.selectionInactiveBackgroundTransparent)){const N=.3;j.selectionInactiveBackgroundTransparent=ce.color.opacity(j.selectionInactiveBackgroundTransparent,N)}if(j.scrollbarSliderBackground=v(N.scrollbarSliderBackground,ce.color.opacity(j.foreground,.2)),j.scrollbarSliderHoverBackground=v(N.scrollbarSliderHoverBackground,ce.color.opacity(j.foreground,.4)),j.scrollbarSliderActiveBackground=v(N.scrollbarSliderActiveBackground,ce.color.opacity(j.foreground,.5)),j.overviewRulerBorder=v(N.overviewRulerBorder,Ee),j.ansi=he.DEFAULT_ANSI_COLORS.slice(),j.ansi[0]=v(N.black,he.DEFAULT_ANSI_COLORS[0]),j.ansi[1]=v(N.red,he.DEFAULT_ANSI_COLORS[1]),j.ansi[2]=v(N.green,he.DEFAULT_ANSI_COLORS[2]),j.ansi[3]=v(N.yellow,he.DEFAULT_ANSI_COLORS[3]),j.ansi[4]=v(N.blue,he.DEFAULT_ANSI_COLORS[4]),j.ansi[5]=v(N.magenta,he.DEFAULT_ANSI_COLORS[5]),j.ansi[6]=v(N.cyan,he.DEFAULT_ANSI_COLORS[6]),j.ansi[7]=v(N.white,he.DEFAULT_ANSI_COLORS[7]),j.ansi[8]=v(N.brightBlack,he.DEFAULT_ANSI_COLORS[8]),j.ansi[9]=v(N.brightRed,he.DEFAULT_ANSI_COLORS[9]),j.ansi[10]=v(N.brightGreen,he.DEFAULT_ANSI_COLORS[10]),j.ansi[11]=v(N.brightYellow,he.DEFAULT_ANSI_COLORS[11]),j.ansi[12]=v(N.brightBlue,he.DEFAULT_ANSI_COLORS[12]),j.ansi[13]=v(N.brightMagenta,he.DEFAULT_ANSI_COLORS[13]),j.ansi[14]=v(N.brightCyan,he.DEFAULT_ANSI_COLORS[14]),j.ansi[15]=v(N.brightWhite,he.DEFAULT_ANSI_COLORS[15]),N.extendedAnsi){const X=Math.min(j.ansi.length-16,N.extendedAnsi.length);for(let ie=0;ie{Object.defineProperty(j,"__esModule",{value:!0}),j.CircularList=void 0;const ie=X(7150),se=X(802);class n extends ie.Disposable{constructor(N){super(),this._maxLength=N,this.onDeleteEmitter=this._register(new se.Emitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this._register(new se.Emitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this._register(new se.Emitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(N){if(this._maxLength===N)return;const j=new Array(N);for(let X=0;Xthis._length)for(let j=this._length;j=N;j--)this._array[this._getCyclicIndex(j+X.length)]=this._array[this._getCyclicIndex(j)];for(let j=0;jthis._maxLength){const N=this._length+X.length-this._maxLength;this._startIndex+=N,this._length=this._maxLength,this.onTrimEmitter.fire(N)}else this._length+=X.length}trimStart(N){N>this._length&&(N=this._length),this._startIndex+=N,this._length-=N,this.onTrimEmitter.fire(N)}shiftElements(N,j,X){if(!(j<=0)){if(N<0||N>=this._length)throw new Error("start argument out of range");if(N+X<0)throw new Error("Cannot shift elements in list beyond index 0");if(X>0){for(let ie=j-1;ie>=0;ie--)this.set(N+ie+X,this.get(N+ie));const ie=N+j+X-this._length;if(ie>0)for(this._length+=ie;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let ie=0;ie{Object.defineProperty(j,"__esModule",{value:!0}),j.clone=function e(N,j=5){if("object"!=typeof N)return N;const X=Array.isArray(N)?[]:{};for(const ie in N)X[ie]=j<=1?N[ie]:N[ie]&&e(N[ie],j-1);return X}},4103:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.rgba=j.rgb=j.css=j.color=j.channels=j.NULL_COLOR=void 0,j.toPaddedHex=d,j.contrastRatio=u;let X=0,ie=0,se=0,le=0;var he,ce,_e,me,ve;function d(N){const j=N.toString(16);return j.length<2?"0"+j:j}function u(N,j){return N>>0},N.toColor=function(j,X,ie,se){return{css:N.toCss(j,X,ie,se),rgba:N.toRgba(j,X,ie,se)}}}(he||(j.channels=he={})),function(N){function t(N,j){return le=Math.round(255*j),[X,ie,se]=ve.toChannels(N.rgba),{css:he.toCss(X,ie,se,le),rgba:he.toRgba(X,ie,se,le)}}N.blend=function(N,j){if(le=(255&j.rgba)/255,1===le)return{css:j.css,rgba:j.rgba};const ce=j.rgba>>24&255,_e=j.rgba>>16&255,me=j.rgba>>8&255,ve=N.rgba>>24&255,Se=N.rgba>>16&255,be=N.rgba>>8&255;return X=ve+Math.round((ce-ve)*le),ie=Se+Math.round((_e-Se)*le),se=be+Math.round((me-be)*le),{css:he.toCss(X,ie,se),rgba:he.toRgba(X,ie,se)}},N.isOpaque=function(N){return!(255&~N.rgba)},N.ensureContrastRatio=function(N,j,X){const ie=ve.ensureContrastRatio(N.rgba,j.rgba,X);if(ie)return he.toColor(ie>>24&255,ie>>16&255,ie>>8&255)},N.opaque=function(N){const j=(255|N.rgba)>>>0;return[X,ie,se]=ve.toChannels(j),{css:he.toCss(X,ie,se),rgba:j}},N.opacity=t,N.multiplyOpacity=function(N,j){return le=255&N.rgba,t(N,le*j/255)},N.toColorRGB=function(N){return[N.rgba>>24&255,N.rgba>>16&255,N.rgba>>8&255]}}(ce||(j.color=ce={})),function(N){let j,ce;try{const N=document.createElement("canvas");N.width=1,N.height=1;const X=N.getContext("2d",{willReadFrequently:!0});X&&(j=X,j.globalCompositeOperation="copy",ce=j.createLinearGradient(0,0,1,1))}catch{}N.toColor=function(N){if(N.match(/#[\da-f]{3,8}/i))switch(N.length){case 4:return X=parseInt(N.slice(1,2).repeat(2),16),ie=parseInt(N.slice(2,3).repeat(2),16),se=parseInt(N.slice(3,4).repeat(2),16),he.toColor(X,ie,se);case 5:return X=parseInt(N.slice(1,2).repeat(2),16),ie=parseInt(N.slice(2,3).repeat(2),16),se=parseInt(N.slice(3,4).repeat(2),16),le=parseInt(N.slice(4,5).repeat(2),16),he.toColor(X,ie,se,le);case 7:return{css:N,rgba:(parseInt(N.slice(1),16)<<8|255)>>>0};case 9:return{css:N,rgba:parseInt(N.slice(1),16)>>>0}}const _e=N.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);if(_e)return X=parseInt(_e[1]),ie=parseInt(_e[2]),se=parseInt(_e[3]),le=Math.round(255*(void 0===_e[5]?1:parseFloat(_e[5]))),he.toColor(X,ie,se,le);if(!j||!ce)throw new Error("css.toColor: Unsupported css format");if(j.fillStyle=ce,j.fillStyle=N,"string"!=typeof j.fillStyle)throw new Error("css.toColor: Unsupported css format");if(j.fillRect(0,0,1,1),[X,ie,se,le]=j.getImageData(0,0,1,1).data,255!==le)throw new Error("css.toColor: Unsupported css format");return{rgba:he.toRgba(X,ie,se,le),css:N}}}(_e||(j.css=_e={})),function(N){function t(N,j,X){const ie=N/255,se=j/255,le=X/255;return.2126*(ie<=.03928?ie/12.92:Math.pow((ie+.055)/1.055,2.4))+.7152*(se<=.03928?se/12.92:Math.pow((se+.055)/1.055,2.4))+.0722*(le<=.03928?le/12.92:Math.pow((le+.055)/1.055,2.4))}N.relativeLuminance=function(N){return t(N>>16&255,N>>8&255,255&N)},N.relativeLuminance2=t}(me||(j.rgb=me={})),function(N){function t(N,j,X){const ie=N>>24&255,se=N>>16&255,le=N>>8&255;let he=j>>24&255,ce=j>>16&255,_e=j>>8&255,ve=u(me.relativeLuminance2(he,ce,_e),me.relativeLuminance2(ie,se,le));for(;ve0||ce>0||_e>0);)he-=Math.max(0,Math.ceil(.1*he)),ce-=Math.max(0,Math.ceil(.1*ce)),_e-=Math.max(0,Math.ceil(.1*_e)),ve=u(me.relativeLuminance2(he,ce,_e),me.relativeLuminance2(ie,se,le));return(he<<24|ce<<16|_e<<8|255)>>>0}function a(N,j,X){const ie=N>>24&255,se=N>>16&255,le=N>>8&255;let he=j>>24&255,ce=j>>16&255,_e=j>>8&255,ve=u(me.relativeLuminance2(he,ce,_e),me.relativeLuminance2(ie,se,le));for(;ve>>0}N.blend=function(N,j){if(le=(255&j)/255,1===le)return j;const ce=j>>24&255,_e=j>>16&255,me=j>>8&255,ve=N>>24&255,Se=N>>16&255,be=N>>8&255;return X=ve+Math.round((ce-ve)*le),ie=Se+Math.round((_e-Se)*le),se=be+Math.round((me-be)*le),he.toRgba(X,ie,se)},N.ensureContrastRatio=function(N,j,X){const ie=me.relativeLuminance(N>>8),se=me.relativeLuminance(j>>8);if(u(ie,se)>8));if(leu(ie,me.relativeLuminance(he>>8))?se:he}return se}const le=a(N,j,X),he=u(ie,me.relativeLuminance(le>>8));if(heu(ie,me.relativeLuminance(se>>8))?le:se}return le}},N.reduceLuminance=t,N.increaseLuminance=a,N.toChannels=function(N){return[N>>24&255,N>>16&255,N>>8&255,255&N]}}(ve||(j.rgba=ve={}))},5777:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.CoreTerminal=void 0;const ie=X(6501),se=X(6025),le=X(7276),he=X(9640),ce=X(56),_e=X(4071),me=X(7792),ve=X(6415),Se=X(5746),be=X(5882),Ce=X(2486),ye=X(3562),we=X(8811),Ee=X(802),De=X(7150);let Le=!1;class S extends De.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this._register(new Ee.Emitter),this._onScroll.event((N=>{this._onScrollApi?.fire(N.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(N){for(const j in N)this.optionsService.options[j]=N[j]}constructor(N){super(),this._windowsWrappingHeuristics=this._register(new De.MutableDisposable),this._onBinary=this._register(new Ee.Emitter),this.onBinary=this._onBinary.event,this._onData=this._register(new Ee.Emitter),this.onData=this._onData.event,this._onLineFeed=this._register(new Ee.Emitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this._register(new Ee.Emitter),this.onResize=this._onResize.event,this._onWriteParsed=this._register(new Ee.Emitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this._register(new Ee.Emitter),this._instantiationService=new se.InstantiationService,this.optionsService=this._register(new ce.OptionsService(N)),this._instantiationService.setService(ie.IOptionsService,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(he.BufferService)),this._instantiationService.setService(ie.IBufferService,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(le.LogService)),this._instantiationService.setService(ie.ILogService,this._logService),this.coreService=this._register(this._instantiationService.createInstance(_e.CoreService)),this._instantiationService.setService(ie.ICoreService,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(me.CoreMouseService)),this._instantiationService.setService(ie.ICoreMouseService,this.coreMouseService),this.unicodeService=this._register(this._instantiationService.createInstance(ve.UnicodeService)),this._instantiationService.setService(ie.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(Se.CharsetService),this._instantiationService.setService(ie.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(we.OscLinkService),this._instantiationService.setService(ie.IOscLinkService,this._oscLinkService),this._inputHandler=this._register(new Ce.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this._register(Ee.Event.forward(this._inputHandler.onLineFeed,this._onLineFeed)),this._register(this._inputHandler),this._register(Ee.Event.forward(this._bufferService.onResize,this._onResize)),this._register(Ee.Event.forward(this.coreService.onData,this._onData)),this._register(Ee.Event.forward(this.coreService.onBinary,this._onBinary)),this._register(this.coreService.onRequestScrollToBottom((()=>this.scrollToBottom(!0)))),this._register(this.coreService.onUserInput((()=>this._writeBuffer.handleUserInput()))),this._register(this.optionsService.onMultipleOptionChange(["windowsMode","windowsPty"],(()=>this._handleWindowsPtyOptionChange()))),this._register(this._bufferService.onScroll((()=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=this._register(new ye.WriteBuffer(((N,j)=>this._inputHandler.parse(N,j)))),this._register(Ee.Event.forward(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(N,j){this._writeBuffer.write(N,j)}writeSync(N,j){this._logService.logLevel<=ie.LogLevelEnum.WARN&&!Le&&(this._logService.warn("writeSync is unreliable and will be removed soon."),Le=!0),this._writeBuffer.writeSync(N,j)}input(N,j=!0){this.coreService.triggerDataEvent(N,j)}resize(N,j){isNaN(N)||isNaN(j)||(N=Math.max(N,he.MINIMUM_COLS),j=Math.max(j,he.MINIMUM_ROWS),this._bufferService.resize(N,j))}scroll(N,j=!1){this._bufferService.scroll(N,j)}scrollLines(N,j){this._bufferService.scrollLines(N,j)}scrollPages(N){this.scrollLines(N*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(N){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(N){const j=N-this._bufferService.buffer.ydisp;0!==j&&this.scrollLines(j)}registerEscHandler(N,j){return this._inputHandler.registerEscHandler(N,j)}registerDcsHandler(N,j){return this._inputHandler.registerDcsHandler(N,j)}registerCsiHandler(N,j){return this._inputHandler.registerCsiHandler(N,j)}registerOscHandler(N,j){return this._inputHandler.registerOscHandler(N,j)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let N=!1;const j=this.optionsService.rawOptions.windowsPty;j&&void 0!==j.buildNumber&&void 0!==j.buildNumber?N=!!("conpty"===j.backend&&j.buildNumber<21376):this.optionsService.rawOptions.windowsMode&&(N=!0),N?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){const N=[];N.push(this.onLineFeed(be.updateWindowsModeWrappedState.bind(null,this._bufferService))),N.push(this.registerCsiHandler({final:"H"},(()=>((0,be.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsWrappingHeuristics.value=(0,De.toDisposable)((()=>{for(const j of N)j.dispose()}))}}}j.CoreTerminal=S},2486:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.InputHandler=j.WindowsOptionsReportType=void 0,j.isValidColorIndex=A;const le=X(3534),he=X(6760),ce=X(6717),_e=X(7150),me=X(726),ve=X(6107),Se=X(8938),be=X(3055),Ce=X(5451),ye=X(6501),we=X(6415),Ee=X(1346),De=X(9823),Le=X(8693),Ae=X(802),Re={"(":0,")":1,"*":2,"+":3,"-":1,".":2},Te=131072;function y(N,j){if(N>24)return j.setWinLines||!1;switch(N){case 1:return!!j.restoreWin;case 2:return!!j.minimizeWin;case 3:return!!j.setWinPosition;case 4:return!!j.setWinSizePixels;case 5:return!!j.raiseWin;case 6:return!!j.lowerWin;case 7:return!!j.refreshWin;case 8:return!!j.setWinSizeChars;case 9:return!!j.maximizeWin;case 10:return!!j.fullscreenWin;case 11:return!!j.getWinState;case 13:return!!j.getWinPosition;case 14:return!!j.getWinSizePixels;case 15:return!!j.getScreenSizePixels;case 16:return!!j.getCellSizePixels;case 18:return!!j.getWinSizeChars;case 19:return!!j.getScreenSizeChars;case 20:return!!j.getIconTitle;case 21:return!!j.getWinTitle;case 22:return!!j.pushTitle;case 23:return!!j.popTitle;case 24:return!!j.setWinLines}return!1}var ke;!function(N){N[N.GET_WIN_SIZE_PIXELS=0]="GET_WIN_SIZE_PIXELS",N[N.GET_CELL_SIZE_PIXELS=1]="GET_CELL_SIZE_PIXELS"}(ke||(j.WindowsOptionsReportType=ke={}));let Me=0;class D extends _e.Disposable{getAttrData(){return this._curAttrData}constructor(N,j,X,ie,se,_e,Se,be,Ce=new ce.EscapeSequenceParser){super(),this._bufferService=N,this._charsetService=j,this._coreService=X,this._logService=ie,this._optionsService=se,this._oscLinkService=_e,this._coreMouseService=Se,this._unicodeService=be,this._parser=Ce,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new me.StringToUtf32,this._utf8Decoder=new me.Utf8ToUtf32,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=ve.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=ve.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this._register(new Ae.Emitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this._register(new Ae.Emitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this._register(new Ae.Emitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this._register(new Ae.Emitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this._register(new Ae.Emitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this._register(new Ae.Emitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this._register(new Ae.Emitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this._register(new Ae.Emitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this._register(new Ae.Emitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this._register(new Ae.Emitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this._register(new Ae.Emitter),this.onScroll=this._onScroll.event,this._onTitleChange=this._register(new Ae.Emitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this._register(new Ae.Emitter),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 Oe(this._bufferService),this._activeBuffer=this._bufferService.buffer,this._register(this._bufferService.buffers.onBufferActivate((N=>this._activeBuffer=N.activeBuffer))),this._parser.setCsiHandlerFallback(((N,j)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(N),params:j.toArray()})})),this._parser.setEscHandlerFallback((N=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(N)})})),this._parser.setExecuteHandlerFallback((N=>{this._logService.debug("Unknown EXECUTE code: ",{code:N})})),this._parser.setOscHandlerFallback(((N,j,X)=>{this._logService.debug("Unknown OSC code: ",{identifier:N,action:j,data:X})})),this._parser.setDcsHandlerFallback(((N,j,X)=>{"HOOK"===j&&(X=X.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(N),action:j,payload:X})})),this._parser.setPrintHandler(((N,j,X)=>this.print(N,j,X))),this._parser.registerCsiHandler({final:"@"},(N=>this.insertChars(N))),this._parser.registerCsiHandler({intermediates:" ",final:"@"},(N=>this.scrollLeft(N))),this._parser.registerCsiHandler({final:"A"},(N=>this.cursorUp(N))),this._parser.registerCsiHandler({intermediates:" ",final:"A"},(N=>this.scrollRight(N))),this._parser.registerCsiHandler({final:"B"},(N=>this.cursorDown(N))),this._parser.registerCsiHandler({final:"C"},(N=>this.cursorForward(N))),this._parser.registerCsiHandler({final:"D"},(N=>this.cursorBackward(N))),this._parser.registerCsiHandler({final:"E"},(N=>this.cursorNextLine(N))),this._parser.registerCsiHandler({final:"F"},(N=>this.cursorPrecedingLine(N))),this._parser.registerCsiHandler({final:"G"},(N=>this.cursorCharAbsolute(N))),this._parser.registerCsiHandler({final:"H"},(N=>this.cursorPosition(N))),this._parser.registerCsiHandler({final:"I"},(N=>this.cursorForwardTab(N))),this._parser.registerCsiHandler({final:"J"},(N=>this.eraseInDisplay(N,!1))),this._parser.registerCsiHandler({prefix:"?",final:"J"},(N=>this.eraseInDisplay(N,!0))),this._parser.registerCsiHandler({final:"K"},(N=>this.eraseInLine(N,!1))),this._parser.registerCsiHandler({prefix:"?",final:"K"},(N=>this.eraseInLine(N,!0))),this._parser.registerCsiHandler({final:"L"},(N=>this.insertLines(N))),this._parser.registerCsiHandler({final:"M"},(N=>this.deleteLines(N))),this._parser.registerCsiHandler({final:"P"},(N=>this.deleteChars(N))),this._parser.registerCsiHandler({final:"S"},(N=>this.scrollUp(N))),this._parser.registerCsiHandler({final:"T"},(N=>this.scrollDown(N))),this._parser.registerCsiHandler({final:"X"},(N=>this.eraseChars(N))),this._parser.registerCsiHandler({final:"Z"},(N=>this.cursorBackwardTab(N))),this._parser.registerCsiHandler({final:"`"},(N=>this.charPosAbsolute(N))),this._parser.registerCsiHandler({final:"a"},(N=>this.hPositionRelative(N))),this._parser.registerCsiHandler({final:"b"},(N=>this.repeatPrecedingCharacter(N))),this._parser.registerCsiHandler({final:"c"},(N=>this.sendDeviceAttributesPrimary(N))),this._parser.registerCsiHandler({prefix:">",final:"c"},(N=>this.sendDeviceAttributesSecondary(N))),this._parser.registerCsiHandler({final:"d"},(N=>this.linePosAbsolute(N))),this._parser.registerCsiHandler({final:"e"},(N=>this.vPositionRelative(N))),this._parser.registerCsiHandler({final:"f"},(N=>this.hVPosition(N))),this._parser.registerCsiHandler({final:"g"},(N=>this.tabClear(N))),this._parser.registerCsiHandler({final:"h"},(N=>this.setMode(N))),this._parser.registerCsiHandler({prefix:"?",final:"h"},(N=>this.setModePrivate(N))),this._parser.registerCsiHandler({final:"l"},(N=>this.resetMode(N))),this._parser.registerCsiHandler({prefix:"?",final:"l"},(N=>this.resetModePrivate(N))),this._parser.registerCsiHandler({final:"m"},(N=>this.charAttributes(N))),this._parser.registerCsiHandler({final:"n"},(N=>this.deviceStatus(N))),this._parser.registerCsiHandler({prefix:"?",final:"n"},(N=>this.deviceStatusPrivate(N))),this._parser.registerCsiHandler({intermediates:"!",final:"p"},(N=>this.softReset(N))),this._parser.registerCsiHandler({intermediates:" ",final:"q"},(N=>this.setCursorStyle(N))),this._parser.registerCsiHandler({final:"r"},(N=>this.setScrollRegion(N))),this._parser.registerCsiHandler({final:"s"},(N=>this.saveCursor(N))),this._parser.registerCsiHandler({final:"t"},(N=>this.windowOptions(N))),this._parser.registerCsiHandler({final:"u"},(N=>this.restoreCursor(N))),this._parser.registerCsiHandler({intermediates:"'",final:"}"},(N=>this.insertColumns(N))),this._parser.registerCsiHandler({intermediates:"'",final:"~"},(N=>this.deleteColumns(N))),this._parser.registerCsiHandler({intermediates:'"',final:"q"},(N=>this.selectProtected(N))),this._parser.registerCsiHandler({intermediates:"$",final:"p"},(N=>this.requestMode(N,!0))),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},(N=>this.requestMode(N,!1))),this._parser.setExecuteHandler(le.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(le.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(le.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(le.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(le.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(le.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(le.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(le.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(le.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(le.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(le.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(le.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new Ee.OscHandler((N=>(this.setTitle(N),this.setIconName(N),!0)))),this._parser.registerOscHandler(1,new Ee.OscHandler((N=>this.setIconName(N)))),this._parser.registerOscHandler(2,new Ee.OscHandler((N=>this.setTitle(N)))),this._parser.registerOscHandler(4,new Ee.OscHandler((N=>this.setOrReportIndexedColor(N)))),this._parser.registerOscHandler(8,new Ee.OscHandler((N=>this.setHyperlink(N)))),this._parser.registerOscHandler(10,new Ee.OscHandler((N=>this.setOrReportFgColor(N)))),this._parser.registerOscHandler(11,new Ee.OscHandler((N=>this.setOrReportBgColor(N)))),this._parser.registerOscHandler(12,new Ee.OscHandler((N=>this.setOrReportCursorColor(N)))),this._parser.registerOscHandler(104,new Ee.OscHandler((N=>this.restoreIndexedColor(N)))),this._parser.registerOscHandler(110,new Ee.OscHandler((N=>this.restoreFgColor(N)))),this._parser.registerOscHandler(111,new Ee.OscHandler((N=>this.restoreBgColor(N)))),this._parser.registerOscHandler(112,new Ee.OscHandler((N=>this.restoreCursorColor(N)))),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(const N in he.CHARSETS)this._parser.registerEscHandler({intermediates:"(",final:N},(()=>this.selectCharset("("+N))),this._parser.registerEscHandler({intermediates:")",final:N},(()=>this.selectCharset(")"+N))),this._parser.registerEscHandler({intermediates:"*",final:N},(()=>this.selectCharset("*"+N))),this._parser.registerEscHandler({intermediates:"+",final:N},(()=>this.selectCharset("+"+N))),this._parser.registerEscHandler({intermediates:"-",final:N},(()=>this.selectCharset("-"+N))),this._parser.registerEscHandler({intermediates:".",final:N},(()=>this.selectCharset("."+N))),this._parser.registerEscHandler({intermediates:"/",final:N},(()=>this.selectCharset("/"+N)));this._parser.registerEscHandler({intermediates:"#",final:"8"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((N=>(this._logService.error("Parsing error: ",N),N))),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new De.DcsHandler(((N,j)=>this.requestStatusString(N,j))))}_preserveStack(N,j,X,ie){this._parseStack.paused=!0,this._parseStack.cursorStartX=N,this._parseStack.cursorStartY=j,this._parseStack.decodedLength=X,this._parseStack.position=ie}_logSlowResolvingAsync(N){this._logService.logLevel<=ye.LogLevelEnum.WARN&&Promise.race([N,new Promise(((N,j)=>setTimeout((()=>j("#SLOW_TIMEOUT")),5e3)))]).catch((N=>{if("#SLOW_TIMEOUT"!==N)throw N;console.warn("async parser handler taking longer than 5000 ms")}))}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(N,j){let X,ie=this._activeBuffer.x,se=this._activeBuffer.y,le=0;const he=this._parseStack.paused;if(he){if(X=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,j))return this._logSlowResolvingAsync(X),X;ie=this._parseStack.cursorStartX,se=this._parseStack.cursorStartY,this._parseStack.paused=!1,N.length>Te&&(le=this._parseStack.position+Te)}if(this._logService.logLevel<=ye.LogLevelEnum.DEBUG&&this._logService.debug("parsing data"+("string"==typeof N?` "${N}"`:` "${Array.prototype.map.call(N,(N=>String.fromCharCode(N))).join("")}"`),"string"==typeof N?N.split("").map((N=>N.charCodeAt(0))):N),this._parseBuffer.lengthTe)for(let j=le;j0&&2===ye.getWidth(this._activeBuffer.x-1)&&ye.setCellFromCodepoint(this._activeBuffer.x-1,0,1,Ce);let Ee=this._parser.precedingJoinState;for(let De=j;Dece)if(_e){const N=ye;let j=this._activeBuffer.x-Le;for(this._activeBuffer.x=Le,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),ye=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),Le>0&&ye instanceof ve.BufferLine&&ye.copyCellsFrom(N,j,0,Le,!1);j=0;)ye.setCellFromCodepoint(this._activeBuffer.x++,0,0,Ce)}else if(be&&(ye.insertCells(this._activeBuffer.x,se-Le,this._activeBuffer.getNullCell(Ce)),2===ye.getWidth(ce-1)&&ye.setCellFromCodepoint(ce-1,Se.NULL_CELL_CODE,Se.NULL_CELL_WIDTH,Ce)),ye.setCellFromCodepoint(this._activeBuffer.x++,ie,se,Ce),se>0)for(;--se;)ye.setCellFromCodepoint(this._activeBuffer.x++,0,0,Ce)}this._parser.precedingJoinState=Ee,this._activeBuffer.x0&&0===ye.getWidth(this._activeBuffer.x)&&!ye.hasContent(this._activeBuffer.x)&&ye.setCellFromCodepoint(this._activeBuffer.x,0,1,Ce),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(N,j){return"t"!==N.final||N.prefix||N.intermediates?this._parser.registerCsiHandler(N,j):this._parser.registerCsiHandler(N,(N=>!y(N.params[0],this._optionsService.rawOptions.windowOptions)||j(N)))}registerDcsHandler(N,j){return this._parser.registerDcsHandler(N,new De.DcsHandler(j))}registerEscHandler(N,j){return this._parser.registerEscHandler(N,j)}registerOscHandler(N,j){return this._parser.registerOscHandler(N,new Ee.OscHandler(j))}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(0===this._activeBuffer.x&&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;const N=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);N.hasWidth(this._activeBuffer.x)&&!N.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;const N=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-N),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(N=this._bufferService.cols-1){this._activeBuffer.x=Math.min(N,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(N,j){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=N,this._activeBuffer.y=this._activeBuffer.scrollTop+j):(this._activeBuffer.x=N,this._activeBuffer.y=j),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(N,j){this._restrictCursor(),this._setCursor(this._activeBuffer.x+N,this._activeBuffer.y+j)}cursorUp(N){const j=this._activeBuffer.y-this._activeBuffer.scrollTop;return j>=0?this._moveCursor(0,-Math.min(j,N.params[0]||1)):this._moveCursor(0,-(N.params[0]||1)),!0}cursorDown(N){const j=this._activeBuffer.scrollBottom-this._activeBuffer.y;return j>=0?this._moveCursor(0,Math.min(j,N.params[0]||1)):this._moveCursor(0,N.params[0]||1),!0}cursorForward(N){return this._moveCursor(N.params[0]||1,0),!0}cursorBackward(N){return this._moveCursor(-(N.params[0]||1),0),!0}cursorNextLine(N){return this.cursorDown(N),this._activeBuffer.x=0,!0}cursorPrecedingLine(N){return this.cursorUp(N),this._activeBuffer.x=0,!0}cursorCharAbsolute(N){return this._setCursor((N.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(N){return this._setCursor(N.length>=2?(N.params[1]||1)-1:0,(N.params[0]||1)-1),!0}charPosAbsolute(N){return this._setCursor((N.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(N){return this._moveCursor(N.params[0]||1,0),!0}linePosAbsolute(N){return this._setCursor(this._activeBuffer.x,(N.params[0]||1)-1),!0}vPositionRelative(N){return this._moveCursor(0,N.params[0]||1),!0}hVPosition(N){return this.cursorPosition(N),!0}tabClear(N){const j=N.params[0];return 0===j?delete this._activeBuffer.tabs[this._activeBuffer.x]:3===j&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(N){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let j=N.params[0]||1;for(;j--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(N){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let j=N.params[0]||1;for(;j--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(N){const j=N.params[0];return 1===j&&(this._curAttrData.bg|=536870912),2!==j&&0!==j||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(N,j,X,ie=!1,se=!1){const le=this._activeBuffer.lines.get(this._activeBuffer.ybase+N);le.replaceCells(j,X,this._activeBuffer.getNullCell(this._eraseAttrData()),se),ie&&(le.isWrapped=!1)}_resetBufferLine(N,j=!1){const X=this._activeBuffer.lines.get(this._activeBuffer.ybase+N);X&&(X.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),j),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+N),X.isWrapped=!1)}eraseInDisplay(N,j=!1){let X;switch(this._restrictCursor(this._bufferService.cols),N.params[0]){case 0:for(X=this._activeBuffer.y,this._dirtyRowTracker.markDirty(X),this._eraseInBufferLine(X++,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,j);X=this._bufferService.cols&&(this._activeBuffer.lines.get(X+1).isWrapped=!1);X--;)this._resetBufferLine(X,j);this._dirtyRowTracker.markDirty(0);break;case 2:for(X=this._bufferService.rows,this._dirtyRowTracker.markDirty(X-1);X--;)this._resetBufferLine(X,j);this._dirtyRowTracker.markDirty(0);break;case 3:const N=this._activeBuffer.lines.length-this._bufferService.rows;N>0&&(this._activeBuffer.lines.trimStart(N),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-N,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-N,0),this._onScroll.fire(0))}return!0}eraseInLine(N,j=!1){switch(this._restrictCursor(this._bufferService.cols),N.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,j);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,j);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,j)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(N){this._restrictCursor();let j=N.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 _e=ce;for(let N=1;N0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(le.C0.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(le.C0.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(N){return N.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(le.C0.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(le.C0.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(N.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(le.C0.ESC+"[>83;40003;0c")),!0}_is(N){return 0===(this._optionsService.rawOptions.termName+"").indexOf(N)}setMode(N){for(let j=0;jN?1:2,be=N.params[0];return Ce=be,ye=j?2===be?4:4===be?u(he.modes.insertMode):12===be?3:20===be?u(Se.convertEol):0:1===be?u(X.applicationCursorKeys):3===be?Se.windowOptions.setWinLines?80===_e?2:132===_e?1:0:0:6===be?u(X.origin):7===be?u(X.wraparound):8===be?3:9===be?u("X10"===ie):12===be?u(Se.cursorBlink):25===be?u(!he.isCursorHidden):45===be?u(X.reverseWraparound):66===be?u(X.applicationKeypad):67===be?4:1e3===be?u("VT200"===ie):1002===be?u("DRAG"===ie):1003===be?u("ANY"===ie):1004===be?u(X.sendFocus):1005===be?4:1006===be?u("SGR"===se):1015===be?4:1016===be?u("SGR_PIXELS"===se):1048===be?1:47===be||1047===be||1049===be?u(me===ve):2004===be?u(X.bracketedPasteMode):0,he.triggerDataEvent(`${le.C0.ESC}[${j?"":"?"}${Ce};${ye}$y`),!0;var Ce,ye}_updateAttrColor(N,j,X,ie,se){return 2===j?(N|=50331648,N&=-16777216,N|=Ce.AttributeData.fromColorRGB([X,ie,se])):5===j&&(N&=-50331904,N|=33554432|255&X),N}_extractColor(N,j,X){const ie=[0,0,-1,0,0,0];let se=0,le=0;do{if(ie[le+se]=N.params[j+le],N.hasSubParams(j+le)){const X=N.getSubParams(j+le);let he=0;do{5===ie[1]&&(se=1),ie[le+he+1+se]=X[he]}while(++he=2||2===ie[1]&&le+se>=5)break;ie[1]&&(se=1)}while(++le+j5)&&(N=1),j.extended.underlineStyle=N,j.fg|=268435456,0===N&&(j.fg&=-268435457),j.updateExtended()}_processSGR0(N){N.fg=ve.DEFAULT_ATTR_DATA.fg,N.bg=ve.DEFAULT_ATTR_DATA.bg,N.extended=N.extended.clone(),N.extended.underlineStyle=0,N.extended.underlineColor&=-67108864,N.updateExtended()}charAttributes(N){if(1===N.length&&0===N.params[0])return this._processSGR0(this._curAttrData),!0;const j=N.length;let X;const ie=this._curAttrData;for(let se=0;se=30&&X<=37?(ie.fg&=-50331904,ie.fg|=16777216|X-30):X>=40&&X<=47?(ie.bg&=-50331904,ie.bg|=16777216|X-40):X>=90&&X<=97?(ie.fg&=-50331904,ie.fg|=16777224|X-90):X>=100&&X<=107?(ie.bg&=-50331904,ie.bg|=16777224|X-100):0===X?this._processSGR0(ie):1===X?ie.fg|=134217728:3===X?ie.bg|=67108864:4===X?(ie.fg|=268435456,this._processUnderline(N.hasSubParams(se)?N.getSubParams(se)[0]:1,ie)):5===X?ie.fg|=536870912:7===X?ie.fg|=67108864:8===X?ie.fg|=1073741824:9===X?ie.fg|=2147483648:2===X?ie.bg|=134217728:21===X?this._processUnderline(2,ie):22===X?(ie.fg&=-134217729,ie.bg&=-134217729):23===X?ie.bg&=-67108865:24===X?(ie.fg&=-268435457,this._processUnderline(0,ie)):25===X?ie.fg&=-536870913:27===X?ie.fg&=-67108865:28===X?ie.fg&=-1073741825:29===X?ie.fg&=2147483647:39===X?(ie.fg&=-67108864,ie.fg|=16777215&ve.DEFAULT_ATTR_DATA.fg):49===X?(ie.bg&=-67108864,ie.bg|=16777215&ve.DEFAULT_ATTR_DATA.bg):38===X||48===X||58===X?se+=this._extractColor(N,se,ie):53===X?ie.bg|=1073741824:55===X?ie.bg&=-1073741825:59===X?(ie.extended=ie.extended.clone(),ie.extended.underlineColor=-1,ie.updateExtended()):100===X?(ie.fg&=-67108864,ie.fg|=16777215&ve.DEFAULT_ATTR_DATA.fg,ie.bg&=-67108864,ie.bg|=16777215&ve.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",X);return!0}deviceStatus(N){switch(N.params[0]){case 5:this._coreService.triggerDataEvent(`${le.C0.ESC}[0n`);break;case 6:const N=this._activeBuffer.y+1,j=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${le.C0.ESC}[${N};${j}R`)}return!0}deviceStatusPrivate(N){if(6===N.params[0]){const N=this._activeBuffer.y+1,j=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${le.C0.ESC}[?${N};${j}R`)}return!0}softReset(N){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=ve.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(N){const j=N.params[0]||1;switch(j){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"}const X=j%2==1;return this._optionsService.options.cursorBlink=X,!0}setScrollRegion(N){const j=N.params[0]||1;let X;return(N.length<2||(X=N.params[1])>this._bufferService.rows||0===X)&&(X=this._bufferService.rows),X>j&&(this._activeBuffer.scrollTop=j-1,this._activeBuffer.scrollBottom=X-1,this._setCursor(0,0)),!0}windowOptions(N){if(!y(N.params[0],this._optionsService.rawOptions.windowOptions))return!0;const j=N.length>1?N.params[1]:0;switch(N.params[0]){case 14:2!==j&&this._onRequestWindowsOptionsReport.fire(ke.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(ke.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${le.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:0!==j&&2!==j||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),0!==j&&1!==j||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:0!==j&&2!==j||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),0!==j&&1!==j||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(N){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(N){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(N){return this._windowTitle=N,this._onTitleChange.fire(N),!0}setIconName(N){return this._iconName=N,!0}setOrReportIndexedColor(N){const j=[],X=N.split(";");for(;X.length>1;){const N=X.shift(),ie=X.shift();if(/^\d+$/.exec(N)){const X=parseInt(N);if(A(X))if("?"===ie)j.push({type:0,index:X});else{const N=(0,Le.parseColor)(ie);N&&j.push({type:1,index:X,color:N})}}}return j.length&&this._onColor.fire(j),!0}setHyperlink(N){const j=N.indexOf(";");if(-1===j)return!0;const X=N.slice(0,j).trim(),ie=N.slice(j+1);return ie?this._createHyperlink(X,ie):!X.trim()&&this._finishHyperlink()}_createHyperlink(N,j){this._getCurrentLinkId()&&this._finishHyperlink();const X=N.split(":");let ie;const se=X.findIndex((N=>N.startsWith("id=")));return-1!==se&&(ie=X[se].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:ie,uri:j}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(N,j){const X=N.split(";");for(let N=0;N=this._specialColors.length);++N,++j)if("?"===X[N])this._onColor.fire([{type:0,index:this._specialColors[j]}]);else{const ie=(0,Le.parseColor)(X[N]);ie&&this._onColor.fire([{type:1,index:this._specialColors[j],color:ie}])}return!0}setOrReportFgColor(N){return this._setOrReportSpecialColor(N,0)}setOrReportBgColor(N){return this._setOrReportSpecialColor(N,1)}setOrReportCursorColor(N){return this._setOrReportSpecialColor(N,2)}restoreIndexedColor(N){if(!N)return this._onColor.fire([{type:2}]),!0;const j=[],X=N.split(";");for(let N=0;N=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){const N=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,N,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=ve.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=ve.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(N){return this._charsetService.setgLevel(N),!0}screenAlignmentPattern(){const N=new be.CellData;N.content=1<<22|"E".charCodeAt(0),N.fg=this._curAttrData.fg,N.bg=this._curAttrData.bg,this._setCursor(0,0);for(let j=0;j(this._coreService.triggerDataEvent(`${le.C0.ESC}${N}${le.C0.ESC}\\`),!0))('"q'===N?`P1$r${this._curAttrData.isProtected()?1:0}"q`:'"p'===N?'P1$r61;1"p':"r"===N?`P1$r${X.scrollTop+1};${X.scrollBottom+1}r`:"m"===N?"P1$r0m":" q"===N?`P1$r${{block:2,underline:4,bar:6}[ie.cursorStyle]-(ie.cursorBlink?1:0)} q`:"P0$r")}markRangeDirty(N,j){this._dirtyRowTracker.markRangeDirty(N,j)}}j.InputHandler=D;let Oe=class{constructor(N){this._bufferService=N,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(N){Nthis.end&&(this.end=N)}markRangeDirty(N,j){N>j&&(Me=N,N=j,j=Me),Nthis.end&&(this.end=j)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function A(N){return 0<=N&&N<256}Oe=ie([se(0,ye.IBufferService)],Oe)},7710:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.FourKeyMap=j.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(N,j,X){this._data[N]||(this._data[N]={}),this._data[N][j]=X}get(N,j){return this._data[N]?this._data[N][j]:void 0}clear(){this._data={}}}j.TwoKeyMap=i,j.FourKeyMap=class{constructor(){this._data=new i}set(N,j,X,ie,se){this._data.get(N,j)||this._data.set(N,j,new i),this._data.get(N,j).set(X,ie,se)}get(N,j,X,ie){return this._data.get(N,j)?.get(X,ie)}clear(){this._data.clear()}}},701:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.isChromeOS=j.isLinux=j.isWindows=j.isIphone=j.isIpad=j.isMac=j.isSafari=j.isLegacyEdge=j.isFirefox=j.isNode=void 0,j.getSafariVersion=function(){if(!j.isSafari)return 0;const N=X.match(/Version\/(\d+)/);return null===N||N.length<2?0:parseInt(N[1])},j.isNode="undefined"!=typeof process&&"title"in process;const X=j.isNode?"node":navigator.userAgent,ie=j.isNode?"node":navigator.platform;j.isFirefox=X.includes("Firefox"),j.isLegacyEdge=X.includes("Edge"),j.isSafari=/^((?!chrome|android).)*safari/i.test(X),j.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(ie),j.isIpad="iPad"===ie,j.isIphone="iPhone"===ie,j.isWindows=["Windows","Win16","Win32","WinCE"].includes(ie),j.isLinux=ie.indexOf("Linux")>=0,j.isChromeOS=/\bCrOS\b/.test(X)},3087:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.SortedList=void 0;const ie=X(6168);let se=0;j.SortedList=class{constructor(N){this._getKey=N,this._array=[],this._insertedValues=[],this._flushInsertedTask=new ie.IdleTaskQueue,this._isFlushingInserted=!1,this._deletedIndices=[],this._flushDeletedTask=new ie.IdleTaskQueue,this._isFlushingDeleted=!1}clear(){this._array.length=0,this._insertedValues.length=0,this._flushInsertedTask.clear(),this._isFlushingInserted=!1,this._deletedIndices.length=0,this._flushDeletedTask.clear(),this._isFlushingDeleted=!1}insert(N){this._flushCleanupDeleted(),0===this._insertedValues.length&&this._flushInsertedTask.enqueue((()=>this._flushInserted())),this._insertedValues.push(N)}_flushInserted(){const N=this._insertedValues.sort(((N,j)=>this._getKey(N)-this._getKey(j)));let j=0,X=0;const ie=new Array(this._array.length+this._insertedValues.length);for(let se=0;se=this._array.length||this._getKey(N[j])<=this._getKey(this._array[X])?(ie[se]=N[j],j++):ie[se]=this._array[X++];this._array=ie,this._insertedValues.length=0}_flushCleanupInserted(){!this._isFlushingInserted&&this._insertedValues.length>0&&this._flushInsertedTask.flush()}delete(N){if(this._flushCleanupInserted(),0===this._array.length)return!1;const j=this._getKey(N);if(void 0===j)return!1;if(se=this._search(j),-1===se)return!1;if(this._getKey(this._array[se])!==j)return!1;do{if(this._array[se]===N)return 0===this._deletedIndices.length&&this._flushDeletedTask.enqueue((()=>this._flushDeleted())),this._deletedIndices.push(se),!0}while(++seN-j));let j=0;const X=new Array(this._array.length-N.length);let ie=0;for(let se=0;se0&&this._flushDeletedTask.flush()}*getKeyIterator(N){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),0!==this._array.length&&(se=this._search(N),!(se<0||se>=this._array.length)&&this._getKey(this._array[se])===N))do{yield this._array[se]}while(++se=this._array.length)&&this._getKey(this._array[se])===N))do{j(this._array[se])}while(++se=j;){let ie=j+X>>1;const se=this._getKey(this._array[ie]);if(se>N)X=ie-1;else{if(!(se0&&this._getKey(this._array[ie-1])===N;)ie--;return ie}j=ie+1}}return j}}},6168:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.DebouncedIdleTask=j.IdleTaskQueue=j.PriorityTaskQueue=void 0;const ie=X(701);class r{constructor(){this._tasks=[],this._i=0}enqueue(N){this._tasks.push(N),this._start()}flush(){for(;this._ise)return ie-j<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(ie-j))}ms`),void this._start();ie=se}this.clear()}}class n extends r{_requestCallback(N){return setTimeout((()=>N(this._createDeadline(16))))}_cancelCallback(N){clearTimeout(N)}_createDeadline(N){const j=Date.now()+N;return{timeRemaining:()=>Math.max(0,j-Date.now())}}}j.PriorityTaskQueue=n,j.IdleTaskQueue=!ie.isNode&&"requestIdleCallback"in window?class extends r{_requestCallback(N){return requestIdleCallback(N)}_cancelCallback(N){cancelIdleCallback(N)}}:n,j.DebouncedIdleTask=class{constructor(){this._queue=new j.IdleTaskQueue}set(N){this._queue.clear(),this._queue.enqueue(N)}flush(){this._queue.flush()}}},5882:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.updateWindowsModeWrappedState=function(N){const j=N.buffer.lines.get(N.buffer.ybase+N.buffer.y-1),X=j?.get(N.cols-1),se=N.buffer.lines.get(N.buffer.ybase+N.buffer.y);se&&X&&(se.isWrapped=X[ie.CHAR_DATA_CODE_INDEX]!==ie.NULL_CELL_CODE&&X[ie.CHAR_DATA_CODE_INDEX]!==ie.WHITESPACE_CELL_CODE)};const ie=X(8938)},5451:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.ExtendedAttrs=j.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(N){return[N>>>16&255,N>>>8&255,255&N]}static fromColorRGB(N){return(255&N[0])<<16|(255&N[1])<<8|255&N[2]}clone(){const N=new i;return N.fg=this.fg,N.bg=this.bg,N.extended=this.extended.clone(),N}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?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)}isBgRGB(){return!(50331648&~this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return!(50331648&this.fg)}isBgDefault(){return!(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}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):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?!(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}j.AttributeData=i;class s{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(N){this._ext=N}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(N){this._ext&=-469762049,this._ext|=N<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(N){this._ext&=-67108864,this._ext|=67108863&N}get urlId(){return this._urlId}set urlId(N){this._urlId=N}get underlineVariantOffset(){const N=(3758096384&this._ext)>>29;return N<0?4294967288^N:N}set underlineVariantOffset(N){this._ext&=536870911,this._ext|=N<<29&3758096384}constructor(N=0,j=0){this._ext=0,this._urlId=0,this._ext=N,this._urlId=j}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}j.ExtendedAttrs=s},1073:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.Buffer=j.MAX_BUFFER_SIZE=void 0;const ie=X(5639),se=X(6168),le=X(5451),he=X(6107),ce=X(732),_e=X(3055),me=X(8938),ve=X(8158),Se=X(6760);j.MAX_BUFFER_SIZE=4294967295,j.Buffer=class{constructor(N,j,X){this._hasScrollback=N,this._optionsService=j,this._bufferService=X,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=he.DEFAULT_ATTR_DATA.clone(),this.savedCharset=Se.DEFAULT_CHARSET,this.markers=[],this._nullCell=_e.CellData.fromCharData([0,me.NULL_CELL_CHAR,me.NULL_CELL_WIDTH,me.NULL_CELL_CODE]),this._whitespaceCell=_e.CellData.fromCharData([0,me.WHITESPACE_CELL_CHAR,me.WHITESPACE_CELL_WIDTH,me.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new se.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new ie.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(N){return N?(this._nullCell.fg=N.fg,this._nullCell.bg=N.bg,this._nullCell.extended=N.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new le.ExtendedAttrs),this._nullCell}getWhitespaceCell(N){return N?(this._whitespaceCell.fg=N.fg,this._whitespaceCell.bg=N.bg,this._whitespaceCell.extended=N.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new le.ExtendedAttrs),this._whitespaceCell}getBlankLine(N,j){return new he.BufferLine(this._bufferService.cols,this.getNullCell(N),j)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){const N=this.ybase+this.y-this.ydisp;return N>=0&&Nj.MAX_BUFFER_SIZE?j.MAX_BUFFER_SIZE:X}fillViewportRows(N){if(0===this.lines.length){void 0===N&&(N=he.DEFAULT_ATTR_DATA);let j=this._rows;for(;j--;)this.lines.push(this.getBlankLine(N))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new ie.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(N,j){const X=this.getNullCell(he.DEFAULT_ATTR_DATA);let ie=0;const se=this._getCorrectBufferLength(j);if(se>this.lines.maxLength&&(this.lines.maxLength=se),this.lines.length>0){if(this._cols0&&this.lines.length<=this.ybase+this.y+le+1?(this.ybase--,le++,this.ydisp>0&&this.ydisp--):this.lines.push(new he.BufferLine(N,X)));else for(let N=this._rows;N>j;N--)this.lines.length>j+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(se0&&(this.lines.trimStart(N),this.ybase=Math.max(this.ybase-N,0),this.ydisp=Math.max(this.ydisp-N,0),this.savedY=Math.max(this.savedY-N,0)),this.lines.maxLength=se}this.x=Math.min(this.x,N-1),this.y=Math.min(this.y,j-1),le&&(this.y+=le),this.savedX=Math.min(this.savedX,N-1),this.scrollTop=0}if(this.scrollBottom=j-1,this._isReflowEnabled&&(this._reflow(N,j),this._cols>N))for(let j=0;j.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue((()=>this._batchedMemoryCleanup())))}_batchedMemoryCleanup(){let N=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,N=!1);let j=0;for(;this._memoryCleanupPosition100)return!0;return N}get _isReflowEnabled(){const N=this._optionsService.rawOptions.windowsPty;return N&&N.buildNumber?this._hasScrollback&&"conpty"===N.backend&&N.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(N,j){this._cols!==N&&(N>this._cols?this._reflowLarger(N,j):this._reflowSmaller(N,j))}_reflowLarger(N,j){const X=(0,ce.reflowLargerGetLinesToRemove)(this.lines,this._cols,N,this.ybase+this.y,this.getNullCell(he.DEFAULT_ATTR_DATA));if(X.length>0){const ie=(0,ce.reflowLargerCreateNewLayout)(this.lines,X);(0,ce.reflowLargerApplyNewLayout)(this.lines,ie.layout),this._reflowLargerAdjustViewport(N,j,ie.countRemoved)}}_reflowLargerAdjustViewport(N,j,X){const ie=this.getNullCell(he.DEFAULT_ATTR_DATA);let se=X;for(;se-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length=0;le--){let _e=this.lines.get(le);if(!_e||!_e.isWrapped&&_e.getTrimmedLength()<=N)continue;const me=[_e];for(;_e.isWrapped&&le>0;)_e=this.lines.get(--le),me.unshift(_e);const ve=this.ybase+this.y;if(ve>=le&&ve0&&(ie.push({start:le+me.length+se,newLines:we}),se+=we.length),me.push(...we);let Ee=be.length-1,De=be[Ee];0===De&&(Ee--,De=be[Ee]);let Le=me.length-Ce-1,Ae=Se;for(;Le>=0;){const N=Math.min(Ae,De);if(void 0===me[Ee])break;if(me[Ee].copyCellsFrom(me[Le],Ae-N,De-N,N,!0),De-=N,0===De&&(Ee--,De=be[Ee]),Ae-=N,0===Ae){Le--;const N=Math.max(Le,0);Ae=(0,ce.getWrappedLineTrimmedLength)(me,N,this._cols)}}for(let j=0;j0;)0===this.ybase?this.y0){const N=[],j=[];for(let N=0;N=0;me--)if(ce&&ce.start>le+_e){for(let N=ce.newLines.length-1;N>=0;N--)this.lines.set(me--,ce.newLines[N]);me++,N.push({index:le+1,amount:ce.newLines.length}),_e+=ce.newLines.length,ce=ie[++he]}else this.lines.set(me,j[le--]);let me=0;for(let j=N.length-1;j>=0;j--)N[j].index+=me,this.lines.onInsertEmitter.fire(N[j]),me+=N[j].amount;const ve=Math.max(0,X+se-this.lines.maxLength);ve>0&&this.lines.onTrimEmitter.fire(ve)}}translateBufferLineToString(N,j,X=0,ie){const se=this.lines.get(N);return se?se.translateToString(j,X,ie):""}getWrappedRangeForLine(N){let j=N,X=N;for(;j>0&&this.lines.get(j).isWrapped;)j--;for(;X+10;);return N>=this._cols?this._cols-1:N<0?0:N}nextStop(N){for(null==N&&(N=this.x);!this.tabs[++N]&&N=this._cols?this._cols-1:N<0?0:N}clearMarkers(N){this._isClearing=!0;for(let j=0;j{j.line-=N,j.line<0&&j.dispose()}))),j.register(this.lines.onInsert((N=>{j.line>=N.index&&(j.line+=N.amount)}))),j.register(this.lines.onDelete((N=>{j.line>=N.index&&j.lineN.index&&(j.line-=N.amount)}))),j.register(j.onDispose((()=>this._removeMarker(j)))),j}_removeMarker(N){this._isClearing||this.markers.splice(this.markers.indexOf(N),1)}}},6107:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.BufferLine=j.DEFAULT_ATTR_DATA=void 0;const ie=X(5451),se=X(3055),le=X(8938),he=X(726);j.DEFAULT_ATTR_DATA=Object.freeze(new ie.AttributeData);let ce=0;class l{constructor(N,j,X=!1){this.isWrapped=X,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*N);const ie=j||se.CellData.fromCharData([0,le.NULL_CELL_CHAR,le.NULL_CELL_WIDTH,le.NULL_CELL_CODE]);for(let j=0;j>22,2097152&j?this._combined[N].charCodeAt(this._combined[N].length-1):X]}set(N,j){this._data[3*N+1]=j[le.CHAR_DATA_ATTR_INDEX],j[le.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[N]=j[1],this._data[3*N+0]=2097152|N|j[le.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*N+0]=j[le.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|j[le.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(N){return this._data[3*N+0]>>22}hasWidth(N){return 12582912&this._data[3*N+0]}getFg(N){return this._data[3*N+1]}getBg(N){return this._data[3*N+2]}hasContent(N){return 4194303&this._data[3*N+0]}getCodePoint(N){const j=this._data[3*N+0];return 2097152&j?this._combined[N].charCodeAt(this._combined[N].length-1):2097151&j}isCombined(N){return 2097152&this._data[3*N+0]}getString(N){const j=this._data[3*N+0];return 2097152&j?this._combined[N]:2097151&j?(0,he.stringFromCodePoint)(2097151&j):""}isProtected(N){return 536870912&this._data[3*N+2]}loadCell(N,j){return ce=3*N,j.content=this._data[ce+0],j.fg=this._data[ce+1],j.bg=this._data[ce+2],2097152&j.content&&(j.combinedData=this._combined[N]),268435456&j.bg&&(j.extended=this._extendedAttrs[N]),j}setCell(N,j){2097152&j.content&&(this._combined[N]=j.combinedData),268435456&j.bg&&(this._extendedAttrs[N]=j.extended),this._data[3*N+0]=j.content,this._data[3*N+1]=j.fg,this._data[3*N+2]=j.bg}setCellFromCodepoint(N,j,X,ie){268435456&ie.bg&&(this._extendedAttrs[N]=ie.extended),this._data[3*N+0]=j|X<<22,this._data[3*N+1]=ie.fg,this._data[3*N+2]=ie.bg}addCodepointToCell(N,j,X){let ie=this._data[3*N+0];2097152&ie?this._combined[N]+=(0,he.stringFromCodePoint)(j):2097151&ie?(this._combined[N]=(0,he.stringFromCodePoint)(2097151&ie)+(0,he.stringFromCodePoint)(j),ie&=-2097152,ie|=2097152):ie=j|1<<22,X&&(ie&=-12582913,ie|=X<<22),this._data[3*N+0]=ie}insertCells(N,j,X){if((N%=this.length)&&2===this.getWidth(N-1)&&this.setCellFromCodepoint(N-1,0,1,X),j=0;--X)this.setCell(N+j+X,this.loadCell(N+X,ie));for(let ie=0;iethis.length){if(this._data.buffer.byteLength>=4*X)this._data=new Uint32Array(this._data.buffer,0,X);else{const N=new Uint32Array(X);N.set(this._data),this._data=N}for(let X=this.length;X=N&&delete this._combined[ie]}const ie=Object.keys(this._extendedAttrs);for(let j=0;j=N&&delete this._extendedAttrs[X]}}return this.length=N,4*X*2=0;--N)if(4194303&this._data[3*N+0])return N+(this._data[3*N+0]>>22);return 0}getNoBgTrimmedLength(){for(let N=this.length-1;N>=0;--N)if(4194303&this._data[3*N+0]||50331648&this._data[3*N+2])return N+(this._data[3*N+0]>>22);return 0}copyCellsFrom(N,j,X,ie,se){const le=N._data;if(se)for(let se=ie-1;se>=0;se--){for(let N=0;N<3;N++)this._data[3*(X+se)+N]=le[3*(j+se)+N];268435456&le[3*(j+se)+2]&&(this._extendedAttrs[X+se]=N._extendedAttrs[j+se])}else for(let se=0;se=j&&(this._combined[se-j+X]=N._combined[se])}}translateToString(N,j,X,ie){j=j??0,X=X??this.length,N&&(X=Math.min(X,this.getTrimmedLength())),ie&&(ie.length=0);let se="";for(;j>22||1}return ie&&ie.push(j),se}}j.BufferLine=l},9384:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.getRangeLength=function(N,j){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 j*(N.end.y-N.start.y)+(N.end.x-N.start.x+1)}},732:(N,j)=>{function i(N,j,X){if(j===N.length-1)return N[j].getTrimmedLength();const ie=!N[j].hasContent(X-1)&&1===N[j].getWidth(X-1),se=2===N[j+1].getWidth(0);return ie&&se?X-1:X}Object.defineProperty(j,"__esModule",{value:!0}),j.reflowLargerGetLinesToRemove=function(N,j,X,ie,se){const le=[];for(let he=0;he=he&&ie0&&(N>ve||0===me[N].getTrimmedLength());N--)ye++;ye>0&&(le.push(he+me.length-ye),le.push(ye)),he+=me.length-1}return le},j.reflowLargerCreateNewLayout=function(N,j){const X=[];let ie=0,se=j[ie],le=0;for(let he=0;hei(N,ie,j))).reduce(((N,j)=>N+j));let le=0,he=0,ce=0;for(;ce_e&&(le-=_e,he++);const me=2===N[he].getWidth(le-1);me&&le--;const ve=me?X-1:X;ie.push(ve),ce+=ve}return ie},j.getWrappedLineTrimmedLength=i},4097:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.BufferSet=void 0;const ie=X(7150),se=X(1073),le=X(802);class o extends ie.Disposable{constructor(N,j){super(),this._optionsService=N,this._bufferService=j,this._onBufferActivate=this._register(new le.Emitter),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 se.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new se.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(N){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(N),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(N,j){this._normal.resize(N,j),this._alt.resize(N,j),this.setupTabStops(N)}setupTabStops(N){this._normal.setupTabStops(N),this._alt.setupTabStops(N)}}j.BufferSet=o},3055:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.CellData=void 0;const ie=X(726),se=X(8938),le=X(5451);class o extends le.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new le.ExtendedAttrs,this.combinedData=""}static fromCharData(N){const j=new o;return j.setFromCharData(N),j}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,ie.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(N){this.fg=N[se.CHAR_DATA_ATTR_INDEX],this.bg=0;let j=!1;if(N[se.CHAR_DATA_CHAR_INDEX].length>2)j=!0;else if(2===N[se.CHAR_DATA_CHAR_INDEX].length){const X=N[se.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=X&&X<=56319){const ie=N[se.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=ie&&ie<=57343?this.content=1024*(X-55296)+ie-56320+65536|N[se.CHAR_DATA_WIDTH_INDEX]<<22:j=!0}else j=!0}else this.content=N[se.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|N[se.CHAR_DATA_WIDTH_INDEX]<<22;j&&(this.combinedData=N[se.CHAR_DATA_CHAR_INDEX],this.content=2097152|N[se.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}j.CellData=o},8938:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.WHITESPACE_CELL_CODE=j.WHITESPACE_CELL_WIDTH=j.WHITESPACE_CELL_CHAR=j.NULL_CELL_CODE=j.NULL_CELL_WIDTH=j.NULL_CELL_CHAR=j.CHAR_DATA_CODE_INDEX=j.CHAR_DATA_WIDTH_INDEX=j.CHAR_DATA_CHAR_INDEX=j.CHAR_DATA_ATTR_INDEX=j.DEFAULT_EXT=j.DEFAULT_ATTR=j.DEFAULT_COLOR=void 0,j.DEFAULT_COLOR=0,j.DEFAULT_ATTR=j.DEFAULT_COLOR<<9|256,j.DEFAULT_EXT=0,j.CHAR_DATA_ATTR_INDEX=0,j.CHAR_DATA_CHAR_INDEX=1,j.CHAR_DATA_WIDTH_INDEX=2,j.CHAR_DATA_CODE_INDEX=3,j.NULL_CELL_CHAR="",j.NULL_CELL_WIDTH=1,j.NULL_CELL_CODE=0,j.WHITESPACE_CELL_CHAR=" ",j.WHITESPACE_CELL_WIDTH=1,j.WHITESPACE_CELL_CODE=32},8158:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.Marker=void 0;const ie=X(802),se=X(7150);class n{get id(){return this._id}constructor(N){this.line=N,this.isDisposed=!1,this._disposables=[],this._id=n._nextId++,this._onDispose=this.register(new ie.Emitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,se.dispose)(this._disposables),this._disposables.length=0)}register(N){return this._disposables.push(N),N}}j.Marker=n,n._nextId=1},6760:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.DEFAULT_CHARSET=j.CHARSETS=void 0,j.CHARSETS={},j.DEFAULT_CHARSET=j.CHARSETS.B,j.CHARSETS[0]={"`":"◆",a:"▒",b:"␉",c:"␌",d:"␍",e:"␊",f:"°",g:"±",h:"",i:"␋",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},j.CHARSETS.A={"#":"£"},j.CHARSETS.B=void 0,j.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},j.CHARSETS.C=j.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},j.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},j.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},j.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},j.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},j.CHARSETS.E=j.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},j.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},j.CHARSETS.H=j.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},j.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},3534:(N,j)=>{var X,ie,se;Object.defineProperty(j,"__esModule",{value:!0}),j.C1_ESCAPED=j.C1=j.C0=void 0,function(N){N.NUL="\0",N.SOH="",N.STX="",N.ETX="",N.EOT="",N.ENQ="",N.ACK="",N.BEL="",N.BS="\b",N.HT="\t",N.LF="\n",N.VT="\v",N.FF="\f",N.CR="\r",N.SO="",N.SI="",N.DLE="",N.DC1="",N.DC2="",N.DC3="",N.DC4="",N.NAK="",N.SYN="",N.ETB="",N.CAN="",N.EM="",N.SUB="",N.ESC="",N.FS="",N.GS="",N.RS="",N.US="",N.SP=" ",N.DEL=""}(X||(j.C0=X={})),function(N){N.PAD="",N.HOP="",N.BPH="",N.NBH="",N.IND="",N.NEL="
",N.SSA="",N.ESA="",N.HTS="",N.HTJ="",N.VTS="",N.PLD="",N.PLU="",N.RI="",N.SS2="",N.SS3="",N.DCS="",N.PU1="",N.PU2="",N.STS="",N.CCH="",N.MW="",N.SPA="",N.EPA="",N.SOS="",N.SGCI="",N.SCI="",N.CSI="",N.ST="",N.OSC="",N.PM="",N.APC=""}(ie||(j.C1=ie={})),function(N){N.ST=`${X.ESC}\\`}(se||(j.C1_ESCAPED=se={}))},706:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.evaluateKeyboardEvent=function(N,j,X,le){const he={type:0,cancel:!1,key:void 0},ce=(N.shiftKey?1:0)|(N.altKey?2:0)|(N.ctrlKey?4:0)|(N.metaKey?8:0);switch(N.keyCode){case 0:"UIKeyInputUpArrow"===N.key?he.key=j?ie.C0.ESC+"OA":ie.C0.ESC+"[A":"UIKeyInputLeftArrow"===N.key?he.key=j?ie.C0.ESC+"OD":ie.C0.ESC+"[D":"UIKeyInputRightArrow"===N.key?he.key=j?ie.C0.ESC+"OC":ie.C0.ESC+"[C":"UIKeyInputDownArrow"===N.key&&(he.key=j?ie.C0.ESC+"OB":ie.C0.ESC+"[B");break;case 8:he.key=N.ctrlKey?"\b":ie.C0.DEL,N.altKey&&(he.key=ie.C0.ESC+he.key);break;case 9:if(N.shiftKey){he.key=ie.C0.ESC+"[Z";break}he.key=ie.C0.HT,he.cancel=!0;break;case 13:he.key=N.altKey?ie.C0.ESC+ie.C0.CR:ie.C0.CR,he.cancel=!0;break;case 27:he.key=ie.C0.ESC,N.altKey&&(he.key=ie.C0.ESC+ie.C0.ESC),he.cancel=!0;break;case 37:if(N.metaKey)break;ce?(he.key=ie.C0.ESC+"[1;"+(ce+1)+"D",he.key===ie.C0.ESC+"[1;3D"&&(he.key=ie.C0.ESC+(X?"b":"[1;5D"))):he.key=j?ie.C0.ESC+"OD":ie.C0.ESC+"[D";break;case 39:if(N.metaKey)break;ce?(he.key=ie.C0.ESC+"[1;"+(ce+1)+"C",he.key===ie.C0.ESC+"[1;3C"&&(he.key=ie.C0.ESC+(X?"f":"[1;5C"))):he.key=j?ie.C0.ESC+"OC":ie.C0.ESC+"[C";break;case 38:if(N.metaKey)break;ce?(he.key=ie.C0.ESC+"[1;"+(ce+1)+"A",X||he.key!==ie.C0.ESC+"[1;3A"||(he.key=ie.C0.ESC+"[1;5A")):he.key=j?ie.C0.ESC+"OA":ie.C0.ESC+"[A";break;case 40:if(N.metaKey)break;ce?(he.key=ie.C0.ESC+"[1;"+(ce+1)+"B",X||he.key!==ie.C0.ESC+"[1;3B"||(he.key=ie.C0.ESC+"[1;5B")):he.key=j?ie.C0.ESC+"OB":ie.C0.ESC+"[B";break;case 45:N.shiftKey||N.ctrlKey||(he.key=ie.C0.ESC+"[2~");break;case 46:he.key=ce?ie.C0.ESC+"[3;"+(ce+1)+"~":ie.C0.ESC+"[3~";break;case 36:he.key=ce?ie.C0.ESC+"[1;"+(ce+1)+"H":j?ie.C0.ESC+"OH":ie.C0.ESC+"[H";break;case 35:he.key=ce?ie.C0.ESC+"[1;"+(ce+1)+"F":j?ie.C0.ESC+"OF":ie.C0.ESC+"[F";break;case 33:N.shiftKey?he.type=2:N.ctrlKey?he.key=ie.C0.ESC+"[5;"+(ce+1)+"~":he.key=ie.C0.ESC+"[5~";break;case 34:N.shiftKey?he.type=3:N.ctrlKey?he.key=ie.C0.ESC+"[6;"+(ce+1)+"~":he.key=ie.C0.ESC+"[6~";break;case 112:he.key=ce?ie.C0.ESC+"[1;"+(ce+1)+"P":ie.C0.ESC+"OP";break;case 113:he.key=ce?ie.C0.ESC+"[1;"+(ce+1)+"Q":ie.C0.ESC+"OQ";break;case 114:he.key=ce?ie.C0.ESC+"[1;"+(ce+1)+"R":ie.C0.ESC+"OR";break;case 115:he.key=ce?ie.C0.ESC+"[1;"+(ce+1)+"S":ie.C0.ESC+"OS";break;case 116:he.key=ce?ie.C0.ESC+"[15;"+(ce+1)+"~":ie.C0.ESC+"[15~";break;case 117:he.key=ce?ie.C0.ESC+"[17;"+(ce+1)+"~":ie.C0.ESC+"[17~";break;case 118:he.key=ce?ie.C0.ESC+"[18;"+(ce+1)+"~":ie.C0.ESC+"[18~";break;case 119:he.key=ce?ie.C0.ESC+"[19;"+(ce+1)+"~":ie.C0.ESC+"[19~";break;case 120:he.key=ce?ie.C0.ESC+"[20;"+(ce+1)+"~":ie.C0.ESC+"[20~";break;case 121:he.key=ce?ie.C0.ESC+"[21;"+(ce+1)+"~":ie.C0.ESC+"[21~";break;case 122:he.key=ce?ie.C0.ESC+"[23;"+(ce+1)+"~":ie.C0.ESC+"[23~";break;case 123:he.key=ce?ie.C0.ESC+"[24;"+(ce+1)+"~":ie.C0.ESC+"[24~";break;default:if(!N.ctrlKey||N.shiftKey||N.altKey||N.metaKey)if(X&&!le||!N.altKey||N.metaKey)!X||N.altKey||N.ctrlKey||N.shiftKey||!N.metaKey?N.key&&!N.ctrlKey&&!N.altKey&&!N.metaKey&&N.keyCode>=48&&1===N.key.length?he.key=N.key:N.key&&N.ctrlKey&&("_"===N.key&&(he.key=ie.C0.US),"@"===N.key&&(he.key=ie.C0.NUL)):65===N.keyCode&&(he.type=1);else{const j=se[N.keyCode],X=j?.[N.shiftKey?1:0];if(X)he.key=ie.C0.ESC+X;else if(N.keyCode>=65&&N.keyCode<=90){const j=N.ctrlKey?N.keyCode-64:N.keyCode+32;let X=String.fromCharCode(j);N.shiftKey&&(X=X.toUpperCase()),he.key=ie.C0.ESC+X}else if(32===N.keyCode)he.key=ie.C0.ESC+(N.ctrlKey?ie.C0.NUL:" ");else if("Dead"===N.key&&N.code.startsWith("Key")){let j=N.code.slice(3,4);N.shiftKey||(j=j.toLowerCase()),he.key=ie.C0.ESC+j,he.cancel=!0}}else N.keyCode>=65&&N.keyCode<=90?he.key=String.fromCharCode(N.keyCode-64):32===N.keyCode?he.key=ie.C0.NUL:N.keyCode>=51&&N.keyCode<=55?he.key=String.fromCharCode(N.keyCode-51+27):56===N.keyCode?he.key=ie.C0.DEL:219===N.keyCode?he.key=ie.C0.ESC:220===N.keyCode?he.key=ie.C0.FS:221===N.keyCode&&(he.key=ie.C0.GS)}return he};const ie=X(3534),se={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:["'",'"']}},726:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.Utf8ToUtf32=j.StringToUtf32=void 0,j.stringFromCodePoint=function(N){return N>65535?(N-=65536,String.fromCharCode(55296+(N>>10))+String.fromCharCode(N%1024+56320)):String.fromCharCode(N)},j.utf32ToString=function(N,j=0,X=N.length){let ie="";for(let se=j;se65535?(j-=65536,ie+=String.fromCharCode(55296+(j>>10))+String.fromCharCode(j%1024+56320)):ie+=String.fromCharCode(j)}return ie},j.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(N,j){const X=N.length;if(!X)return 0;let ie=0,se=0;if(this._interim){const X=N.charCodeAt(se++);56320<=X&&X<=57343?j[ie++]=1024*(this._interim-55296)+X-56320+65536:(j[ie++]=this._interim,j[ie++]=X),this._interim=0}for(let le=se;le=X)return this._interim=se,ie;const he=N.charCodeAt(le);56320<=he&&he<=57343?j[ie++]=1024*(se-55296)+he-56320+65536:(j[ie++]=se,j[ie++]=he)}else 65279!==se&&(j[ie++]=se)}return ie}},j.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(N,j){const X=N.length;if(!X)return 0;let ie,se,le,he,ce=0,_e=0,me=0;if(this.interim[0]){let ie=!1,se=this.interim[0];se&=192==(224&se)?31:224==(240&se)?15:7;let le,he=0;for(;(le=63&this.interim[++he])&&he<4;)se<<=6,se|=le;const _e=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,ve=_e-he;for(;me=X)return 0;if(le=N[me++],128!=(192&le)){me--,ie=!0;break}this.interim[he++]=le,se<<=6,se|=63&le}ie||(2===_e?se<128?me--:j[ce++]=se:3===_e?se<2048||se>=55296&&se<=57343||65279===se||(j[ce++]=se):se<65536||se>1114111||(j[ce++]=se)),this.interim.fill(0)}const ve=X-4;let Se=me;for(;Se=X)return this.interim[0]=ie,ce;if(se=N[Se++],128!=(192&se)){Se--;continue}if(_e=(31&ie)<<6|63&se,_e<128){Se--;continue}j[ce++]=_e}else if(224==(240&ie)){if(Se>=X)return this.interim[0]=ie,ce;if(se=N[Se++],128!=(192&se)){Se--;continue}if(Se>=X)return this.interim[0]=ie,this.interim[1]=se,ce;if(le=N[Se++],128!=(192&le)){Se--;continue}if(_e=(15&ie)<<12|(63&se)<<6|63&le,_e<2048||_e>=55296&&_e<=57343||65279===_e)continue;j[ce++]=_e}else if(240==(248&ie)){if(Se>=X)return this.interim[0]=ie,ce;if(se=N[Se++],128!=(192&se)){Se--;continue}if(Se>=X)return this.interim[0]=ie,this.interim[1]=se,ce;if(le=N[Se++],128!=(192&le)){Se--;continue}if(Se>=X)return this.interim[0]=ie,this.interim[1]=se,this.interim[2]=le,ce;if(he=N[Se++],128!=(192&he)){Se--;continue}if(_e=(7&ie)<<18|(63&se)<<12|(63&le)<<6|63&he,_e<65536||_e>1114111)continue;j[ce++]=_e}}return ce}}},7428:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.UnicodeV6=void 0;const ie=X(6415),se=[[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]],le=[[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]];let he;j.UnicodeV6=class{constructor(){if(this.version="6",!he){he=new Uint8Array(65536),he.fill(1),he[0]=0,he.fill(0,1,32),he.fill(0,127,160),he.fill(2,4352,4448),he[9001]=2,he[9002]=2,he.fill(2,11904,42192),he[12351]=1,he.fill(2,44032,55204),he.fill(2,63744,64256),he.fill(2,65040,65050),he.fill(2,65072,65136),he.fill(2,65280,65377),he.fill(2,65504,65511);for(let N=0;Nj[se][1])return!1;for(;se>=ie;)if(X=ie+se>>1,N>j[X][1])ie=X+1;else{if(!(N=131072&&N<=196605||N>=196608&&N<=262141?2:1}charProperties(N,j){let X=this.wcwidth(N),se=0===X&&0!==j;if(se){const N=ie.UnicodeService.extractWidth(j);0===N?se=!1:N>X&&(X=N)}return ie.UnicodeService.createPropertyValue(0,X,se)}}},3562:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.WriteBuffer=void 0;const ie=X(7150),se=X(802);class n extends ie.Disposable{constructor(N){super(),this._action=N,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this._register(new se.Emitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(N,j){if(void 0!==j&&this._syncCalls>j)return void(this._syncCalls=0);if(this._pendingData+=N.length,this._writeBuffer.push(N),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let X;for(this._isSyncWriting=!0;X=this._writeBuffer.shift();){this._action(X);const N=this._callbacks.shift();N&&N()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(N,j){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+=N.length,this._writeBuffer.push(N),this._callbacks.push(j),void this._innerWrite();setTimeout((()=>this._innerWrite()))}this._pendingData+=N.length,this._writeBuffer.push(N),this._callbacks.push(j)}_innerWrite(N=0,j=!0){const X=N||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){const N=this._writeBuffer[this._bufferOffset],ie=this._action(N,j);if(ie){const e=N=>Date.now()-X>=12?setTimeout((()=>this._innerWrite(0,N))):this._innerWrite(X,N);return void ie.catch((N=>(queueMicrotask((()=>{throw N})),Promise.resolve(!1)))).then(e)}const se=this._callbacks[this._bufferOffset];if(se&&se(),this._bufferOffset++,this._pendingData-=N.length,Date.now()-X>=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()}}j.WriteBuffer=n},8693:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.parseColor=function(N){if(!N)return;let j=N.toLowerCase();if(0===j.indexOf("rgb:")){j=j.slice(4);const N=X.exec(j);if(N){const j=N[1]?15:N[4]?255:N[7]?4095:65535;return[Math.round(parseInt(N[1]||N[4]||N[7]||N[10],16)/j*255),Math.round(parseInt(N[2]||N[5]||N[8]||N[11],16)/j*255),Math.round(parseInt(N[3]||N[6]||N[9]||N[12],16)/j*255)]}}else if(0===j.indexOf("#")&&(j=j.slice(1),ie.exec(j)&&[3,6,9,12].includes(j.length))){const N=j.length/3,X=[0,0,0];for(let ie=0;ie<3;++ie){const se=parseInt(j.slice(N*ie,N*ie+N),16);X[ie]=1===N?se<<4:2===N?se:3===N?se>>4:se>>8}return X}},j.toRgbString=function(N,j=16){const[X,ie,se]=N;return`rgb:${r(X,j)}/${r(ie,j)}/${r(se,j)}`};const X=/^([\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})$/,ie=/^[\da-f]+$/;function r(N,j){const X=N.toString(16),ie=X.length<2?"0"+X:X;switch(j){case 4:return X[0];case 8:return ie;case 12:return(ie+ie).slice(0,3);default:return ie+ie}}},1263:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.PAYLOAD_LIMIT=void 0,j.PAYLOAD_LIMIT=1e7},9823:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.DcsHandler=j.DcsParser=void 0;const ie=X(726),se=X(7262),le=X(1263),he=[];j.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=he,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=he}registerHandler(N,j){void 0===this._handlers[N]&&(this._handlers[N]=[]);const X=this._handlers[N];return X.push(j),{dispose:()=>{const N=X.indexOf(j);-1!==N&&X.splice(N,1)}}}clearHandler(N){this._handlers[N]&&delete this._handlers[N]}setHandlerFallback(N){this._handlerFb=N}reset(){if(this._active.length)for(let N=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;N>=0;--N)this._active[N].unhook(!1);this._stack.paused=!1,this._active=he,this._ident=0}hook(N,j){if(this.reset(),this._ident=N,this._active=this._handlers[N]||he,this._active.length)for(let N=this._active.length-1;N>=0;N--)this._active[N].hook(j);else this._handlerFb(this._ident,"HOOK",j)}put(N,j,X){if(this._active.length)for(let ie=this._active.length-1;ie>=0;ie--)this._active[ie].put(N,j,X);else this._handlerFb(this._ident,"PUT",(0,ie.utf32ToString)(N,j,X))}unhook(N,j=!0){if(this._active.length){let X=!1,ie=this._active.length-1,se=!1;if(this._stack.paused&&(ie=this._stack.loopPosition-1,X=j,se=this._stack.fallThrough,this._stack.paused=!1),!se&&!1===X){for(;ie>=0&&(X=this._active[ie].unhook(N),!0!==X);ie--)if(X instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=ie,this._stack.fallThrough=!1,X;ie--}for(;ie>=0;ie--)if(X=this._active[ie].unhook(!1),X instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=ie,this._stack.fallThrough=!0,X}else this._handlerFb(this._ident,"UNHOOK",N);this._active=he,this._ident=0}};const ce=new se.Params;ce.addParam(0),j.DcsHandler=class{constructor(N){this._handler=N,this._data="",this._params=ce,this._hitLimit=!1}hook(N){this._params=N.length>1||N.params[0]?N.clone():ce,this._data="",this._hitLimit=!1}put(N,j,X){this._hitLimit||(this._data+=(0,ie.utf32ToString)(N,j,X),this._data.length>le.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}unhook(N){let j=!1;if(this._hitLimit)j=!1;else if(N&&(j=this._handler(this._data,this._params),j instanceof Promise))return j.then((N=>(this._params=ce,this._data="",this._hitLimit=!1,N)));return this._params=ce,this._data="",this._hitLimit=!1,j}}},6717:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.EscapeSequenceParser=j.VT500_TRANSITION_TABLE=j.TransitionTable=void 0;const ie=X(7150),se=X(7262),le=X(1346),he=X(9823);class a{constructor(N){this.table=new Uint8Array(N)}setDefault(N,j){this.table.fill(N<<4|j)}add(N,j,X,ie){this.table[j<<8|N]=X<<4|ie}addMany(N,j,X,ie){for(let se=0;sej)),i=(N,X)=>j.slice(N,X),X=i(32,127),ie=i(0,24);ie.push(25),ie.push.apply(ie,i(28,32));const se=i(0,14);let le;for(le in N.setDefault(1,0),N.addMany(X,0,2,0),se)N.addMany([24,26,153,154],le,3,0),N.addMany(i(128,144),le,3,0),N.addMany(i(144,152),le,3,0),N.add(156,le,0,0),N.add(27,le,11,1),N.add(157,le,4,8),N.addMany([152,158,159],le,0,7),N.add(155,le,11,3),N.add(144,le,11,9);return N.addMany(ie,0,3,0),N.addMany(ie,1,3,1),N.add(127,1,0,1),N.addMany(ie,8,0,8),N.addMany(ie,3,3,3),N.add(127,3,0,3),N.addMany(ie,4,3,4),N.add(127,4,0,4),N.addMany(ie,6,3,6),N.addMany(ie,5,3,5),N.add(127,5,0,5),N.addMany(ie,2,3,2),N.add(127,2,0,2),N.add(93,1,4,8),N.addMany(X,8,5,8),N.add(127,8,5,8),N.addMany([156,27,24,26,7],8,6,0),N.addMany(i(28,32),8,0,8),N.addMany([88,94,95],1,0,7),N.addMany(X,7,0,7),N.addMany(ie,7,0,7),N.add(156,7,0,0),N.add(127,7,0,7),N.add(91,1,11,3),N.addMany(i(64,127),3,7,0),N.addMany(i(48,60),3,8,4),N.addMany([60,61,62,63],3,9,4),N.addMany(i(48,60),4,8,4),N.addMany(i(64,127),4,7,0),N.addMany([60,61,62,63],4,0,6),N.addMany(i(32,64),6,0,6),N.add(127,6,0,6),N.addMany(i(64,127),6,0,0),N.addMany(i(32,48),3,9,5),N.addMany(i(32,48),5,9,5),N.addMany(i(48,64),5,0,6),N.addMany(i(64,127),5,7,0),N.addMany(i(32,48),4,9,5),N.addMany(i(32,48),1,9,2),N.addMany(i(32,48),2,9,2),N.addMany(i(48,127),2,10,0),N.addMany(i(48,80),1,10,0),N.addMany(i(81,88),1,10,0),N.addMany([89,90,92],1,10,0),N.addMany(i(96,127),1,10,0),N.add(80,1,11,9),N.addMany(ie,9,0,9),N.add(127,9,0,9),N.addMany(i(28,32),9,0,9),N.addMany(i(32,48),9,9,12),N.addMany(i(48,60),9,8,10),N.addMany([60,61,62,63],9,9,10),N.addMany(ie,11,0,11),N.addMany(i(32,128),11,0,11),N.addMany(i(28,32),11,0,11),N.addMany(ie,10,0,10),N.add(127,10,0,10),N.addMany(i(28,32),10,0,10),N.addMany(i(48,60),10,8,10),N.addMany([60,61,62,63],10,0,11),N.addMany(i(32,48),10,9,12),N.addMany(ie,12,0,12),N.add(127,12,0,12),N.addMany(i(28,32),12,0,12),N.addMany(i(32,48),12,9,12),N.addMany(i(48,64),12,0,11),N.addMany(i(64,127),12,12,13),N.addMany(i(64,127),10,12,13),N.addMany(i(64,127),9,12,13),N.addMany(ie,13,13,13),N.addMany(X,13,13,13),N.add(127,13,0,13),N.addMany([27,156,24,26],13,14,0),N.add(ce,0,2,0),N.add(ce,8,5,8),N.add(ce,6,0,6),N.add(ce,11,0,11),N.add(ce,13,13,13),N}();class h extends ie.Disposable{constructor(N=j.VT500_TRANSITION_TABLE){super(),this._transitions=N,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new se.Params,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(N,j,X)=>{},this._executeHandlerFb=N=>{},this._csiHandlerFb=(N,j)=>{},this._escHandlerFb=N=>{},this._errorHandlerFb=N=>N,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this._register((0,ie.toDisposable)((()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)}))),this._oscParser=this._register(new le.OscParser),this._dcsParser=this._register(new he.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},(()=>!0))}_identifier(N,j=[64,126]){let X=0;if(N.prefix){if(N.prefix.length>1)throw new Error("only one byte as prefix supported");if(X=N.prefix.charCodeAt(0),X&&60>X||X>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(N.intermediates){if(N.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let j=0;jie||ie>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");X<<=8,X|=ie}}if(1!==N.final.length)throw new Error("final must be a single byte");const ie=N.final.charCodeAt(0);if(j[0]>ie||ie>j[1])throw new Error(`final must be in range ${j[0]} .. ${j[1]}`);return X<<=8,X|=ie,X}identToString(N){const j=[];for(;N;)j.push(String.fromCharCode(255&N)),N>>=8;return j.reverse().join("")}setPrintHandler(N){this._printHandler=N}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(N,j){const X=this._identifier(N,[48,126]);void 0===this._escHandlers[X]&&(this._escHandlers[X]=[]);const ie=this._escHandlers[X];return ie.push(j),{dispose:()=>{const N=ie.indexOf(j);-1!==N&&ie.splice(N,1)}}}clearEscHandler(N){this._escHandlers[this._identifier(N,[48,126])]&&delete this._escHandlers[this._identifier(N,[48,126])]}setEscHandlerFallback(N){this._escHandlerFb=N}setExecuteHandler(N,j){this._executeHandlers[N.charCodeAt(0)]=j}clearExecuteHandler(N){this._executeHandlers[N.charCodeAt(0)]&&delete this._executeHandlers[N.charCodeAt(0)]}setExecuteHandlerFallback(N){this._executeHandlerFb=N}registerCsiHandler(N,j){const X=this._identifier(N);void 0===this._csiHandlers[X]&&(this._csiHandlers[X]=[]);const ie=this._csiHandlers[X];return ie.push(j),{dispose:()=>{const N=ie.indexOf(j);-1!==N&&ie.splice(N,1)}}}clearCsiHandler(N){this._csiHandlers[this._identifier(N)]&&delete this._csiHandlers[this._identifier(N)]}setCsiHandlerFallback(N){this._csiHandlerFb=N}registerDcsHandler(N,j){return this._dcsParser.registerHandler(this._identifier(N),j)}clearDcsHandler(N){this._dcsParser.clearHandler(this._identifier(N))}setDcsHandlerFallback(N){this._dcsParser.setHandlerFallback(N)}registerOscHandler(N,j){return this._oscParser.registerHandler(N,j)}clearOscHandler(N){this._oscParser.clearHandler(N)}setOscHandlerFallback(N){this._oscParser.setHandlerFallback(N)}setErrorHandler(N){this._errorHandler=N}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,0!==this._parseStack.state&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(N,j,X,ie,se){this._parseStack.state=N,this._parseStack.handlers=j,this._parseStack.handlerPos=X,this._parseStack.transition=ie,this._parseStack.chunkPos=se}parse(N,j,X){let ie,se=0,le=0,he=0;if(this._parseStack.state)if(2===this._parseStack.state)this._parseStack.state=0,he=this._parseStack.chunkPos+1;else{if(void 0===X||1===this._parseStack.state)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");const j=this._parseStack.handlers;let le=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(!1===X&&le>-1)for(;le>=0&&(ie=j[le](this._params),!0!==ie);le--)if(ie instanceof Promise)return this._parseStack.handlerPos=le,ie;this._parseStack.handlers=[];break;case 4:if(!1===X&&le>-1)for(;le>=0&&(ie=j[le](),!0!==ie);le--)if(ie instanceof Promise)return this._parseStack.handlerPos=le,ie;this._parseStack.handlers=[];break;case 6:if(se=N[this._parseStack.chunkPos],ie=this._dcsParser.unhook(24!==se&&26!==se,X),ie)return ie;27===se&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(se=N[this._parseStack.chunkPos],ie=this._oscParser.end(24!==se&&26!==se,X),ie)return ie;27===se&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,he=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=15&this._parseStack.transition}for(let X=he;X>4){case 2:for(let ie=X+1;;++ie){if(ie>=j||(se=N[ie])<32||se>126&&se=j||(se=N[ie])<32||se>126&&se=j||(se=N[ie])<32||se>126&&se=j||(se=N[ie])<32||se>126&&se=0&&(ie=he[_e](this._params),!0!==ie);_e--)if(ie instanceof Promise)return this._preserveStack(3,he,_e,le,X),ie;_e<0&&this._csiHandlerFb(this._collect<<8|se,this._params),this.precedingJoinState=0;break;case 8:do{switch(se){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(se-48)}}while(++X47&&se<60);X--;break;case 9:this._collect<<=8,this._collect|=se;break;case 10:const me=this._escHandlers[this._collect<<8|se];let ve=me?me.length-1:-1;for(;ve>=0&&(ie=me[ve](),!0!==ie);ve--)if(ie instanceof Promise)return this._preserveStack(4,me,ve,le,X),ie;ve<0&&this._escHandlerFb(this._collect<<8|se),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|se,this._params);break;case 13:for(let ie=X+1;;++ie)if(ie>=j||24===(se=N[ie])||26===se||27===se||se>127&&se=j||(se=N[ie])<32||se>127&&se{Object.defineProperty(j,"__esModule",{value:!0}),j.OscHandler=j.OscParser=void 0;const ie=X(1263),se=X(726),le=[];j.OscParser=class{constructor(){this._state=0,this._active=le,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(N,j){void 0===this._handlers[N]&&(this._handlers[N]=[]);const X=this._handlers[N];return X.push(j),{dispose:()=>{const N=X.indexOf(j);-1!==N&&X.splice(N,1)}}}clearHandler(N){this._handlers[N]&&delete this._handlers[N]}setHandlerFallback(N){this._handlerFb=N}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=le}reset(){if(2===this._state)for(let N=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;N>=0;--N)this._active[N].end(!1);this._stack.paused=!1,this._active=le,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||le,this._active.length)for(let N=this._active.length-1;N>=0;N--)this._active[N].start();else this._handlerFb(this._id,"START")}_put(N,j,X){if(this._active.length)for(let ie=this._active.length-1;ie>=0;ie--)this._active[ie].put(N,j,X);else this._handlerFb(this._id,"PUT",(0,se.utf32ToString)(N,j,X))}start(){this.reset(),this._state=1}put(N,j,X){if(3!==this._state){if(1===this._state)for(;j0&&this._put(N,j,X)}}end(N,j=!0){if(0!==this._state){if(3!==this._state)if(1===this._state&&this._start(),this._active.length){let X=!1,ie=this._active.length-1,se=!1;if(this._stack.paused&&(ie=this._stack.loopPosition-1,X=j,se=this._stack.fallThrough,this._stack.paused=!1),!se&&!1===X){for(;ie>=0&&(X=this._active[ie].end(N),!0!==X);ie--)if(X instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=ie,this._stack.fallThrough=!1,X;ie--}for(;ie>=0;ie--)if(X=this._active[ie].end(!1),X instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=ie,this._stack.fallThrough=!0,X}else this._handlerFb(this._id,"END",N);this._active=le,this._id=-1,this._state=0}}},j.OscHandler=class{constructor(N){this._handler=N,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(N,j,X){this._hitLimit||(this._data+=(0,se.utf32ToString)(N,j,X),this._data.length>ie.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}end(N){let j=!1;if(this._hitLimit)j=!1;else if(N&&(j=this._handler(this._data),j instanceof Promise))return j.then((N=>(this._data="",this._hitLimit=!1,N)));return this._data="",this._hitLimit=!1,j}}},7262:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.Params=void 0;const X=2147483647;class s{static fromArray(N){const j=new s;if(!N.length)return j;for(let X=Array.isArray(N[0])?1:0;X256)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(N),this.length=0,this._subParams=new Int32Array(j),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(N),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){const N=new s(this.maxLength,this.maxSubParamsLength);return N.params.set(this.params),N.length=this.length,N._subParams.set(this._subParams),N._subParamsLength=this._subParamsLength,N._subParamsIdx.set(this._subParamsIdx),N._rejectDigits=this._rejectDigits,N._rejectSubDigits=this._rejectSubDigits,N._digitIsSub=this._digitIsSub,N}toArray(){const N=[];for(let j=0;j>8,ie=255&this._subParamsIdx[j];ie-X>0&&N.push(Array.prototype.slice.call(this._subParams,X,ie))}return N}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(N){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(N<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=N>X?X:N}}addSubParam(N){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(N<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=N>X?X:N,this._subParamsIdx[this.length-1]++}}hasSubParams(N){return(255&this._subParamsIdx[N])-(this._subParamsIdx[N]>>8)>0}getSubParams(N){const j=this._subParamsIdx[N]>>8,X=255&this._subParamsIdx[N];return X-j>0?this._subParams.subarray(j,X):null}getSubParamsAll(){const N={};for(let j=0;j>8,ie=255&this._subParamsIdx[j];ie-X>0&&(N[j]=this._subParams.slice(X,ie))}return N}addDigit(N){let j;if(this._rejectDigits||!(j=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;const ie=this._digitIsSub?this._subParams:this.params,se=ie[j-1];ie[j-1]=~se?Math.min(10*se+N,X):N}}j.Params=s},3027:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.AddonManager=void 0,j.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let N=this._addons.length-1;N>=0;N--)this._addons[N].instance.dispose()}loadAddon(N,j){const X={instance:j,dispose:j.dispose,isDisposed:!1};this._addons.push(X),j.dispose=()=>this._wrappedAddonDispose(X),j.activate(N)}_wrappedAddonDispose(N){if(N.isDisposed)return;let j=-1;for(let X=0;X{Object.defineProperty(j,"__esModule",{value:!0}),j.BufferApiView=void 0;const ie=X(793),se=X(3055);j.BufferApiView=class{constructor(N,j){this._buffer=N,this.type=j}init(N){return this._buffer=N,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(N){const j=this._buffer.lines.get(N);if(j)return new ie.BufferLineApiView(j)}getNullCell(){return new se.CellData}}},793:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.BufferLineApiView=void 0;const ie=X(3055);j.BufferLineApiView=class{constructor(N){this._line=N}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(N,j){if(!(N<0||N>=this._line.length))return j?(this._line.loadCell(N,j),j):this._line.loadCell(N,new ie.CellData)}translateToString(N,j,X){return this._line.translateToString(N,j,X)}}},5101:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.BufferNamespaceApi=void 0;const ie=X(3235),se=X(7150),le=X(802);class o extends se.Disposable{constructor(N){super(),this._core=N,this._onBufferChange=this._register(new le.Emitter),this.onBufferChange=this._onBufferChange.event,this._normal=new ie.BufferApiView(this._core.buffers.normal,"normal"),this._alternate=new ie.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)}}j.BufferNamespaceApi=o},6097:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.ParserApi=void 0,j.ParserApi=class{constructor(N){this._core=N}registerCsiHandler(N,j){return this._core.registerCsiHandler(N,(N=>j(N.toArray())))}addCsiHandler(N,j){return this.registerCsiHandler(N,j)}registerDcsHandler(N,j){return this._core.registerDcsHandler(N,((N,X)=>j(N,X.toArray())))}addDcsHandler(N,j){return this.registerDcsHandler(N,j)}registerEscHandler(N,j){return this._core.registerEscHandler(N,j)}addEscHandler(N,j){return this.registerEscHandler(N,j)}registerOscHandler(N,j){return this._core.registerOscHandler(N,j)}addOscHandler(N,j){return this.registerOscHandler(N,j)}}},4335:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.UnicodeApi=void 0,j.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}}},9640:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.BufferService=j.MINIMUM_ROWS=j.MINIMUM_COLS=void 0;const le=X(7150),he=X(4097),ce=X(6501),_e=X(802);j.MINIMUM_COLS=2,j.MINIMUM_ROWS=1;let me=class extends le.Disposable{get buffer(){return this.buffers.active}constructor(N){super(),this.isUserScrolling=!1,this._onResize=this._register(new _e.Emitter),this.onResize=this._onResize.event,this._onScroll=this._register(new _e.Emitter),this.onScroll=this._onScroll.event,this.cols=Math.max(N.rawOptions.cols||0,j.MINIMUM_COLS),this.rows=Math.max(N.rawOptions.rows||0,j.MINIMUM_ROWS),this.buffers=this._register(new he.BufferSet(N,this))}resize(N,j){this.cols=N,this.rows=j,this.buffers.resize(N,j),this._onResize.fire({cols:N,rows:j})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(N,j=!1){const X=this.buffer;let ie;ie=this._cachedBlankLine,ie&&ie.length===this.cols&&ie.getFg(0)===N.fg&&ie.getBg(0)===N.bg||(ie=X.getBlankLine(N,j),this._cachedBlankLine=ie),ie.isWrapped=j;const se=X.ybase+X.scrollTop,le=X.ybase+X.scrollBottom;if(0===X.scrollTop){const N=X.lines.isFull;le===X.lines.length-1?N?X.lines.recycle().copyFrom(ie):X.lines.push(ie.clone()):X.lines.splice(le+1,0,ie.clone()),N?this.isUserScrolling&&(X.ydisp=Math.max(X.ydisp-1,0)):(X.ybase++,this.isUserScrolling||X.ydisp++)}else{const N=le-se+1;X.lines.shiftElements(se+1,N-1,-1),X.lines.set(le,ie.clone())}this.isUserScrolling||(X.ydisp=X.ybase),this._onScroll.fire(X.ydisp)}scrollLines(N,j){const X=this.buffer;if(N<0){if(0===X.ydisp)return;this.isUserScrolling=!0}else N+X.ydisp>=X.ybase&&(this.isUserScrolling=!1);const ie=X.ydisp;X.ydisp=Math.max(Math.min(X.ydisp+N,X.ybase),0),ie!==X.ydisp&&(j||this._onScroll.fire(X.ydisp))}};j.BufferService=me,j.BufferService=me=ie([se(0,ce.IOptionsService)],me)},5746:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.CharsetService=void 0,j.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,j){this._charsets[N]=j,this.glevel===N&&(this.charset=j)}}},7792:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.CoreMouseService=void 0;const le=X(6501),he=X(7150),ce=X(802),_e={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:N=>4!==N.button&&1===N.action&&(N.ctrl=!1,N.alt=!1,N.shift=!1,!0)},VT200:{events:19,restrict:N=>32!==N.action},DRAG:{events:23,restrict:N=>32!==N.action||3!==N.button},ANY:{events:31,restrict:N=>!0}};function h(N,j){let X=(N.ctrl?16:0)|(N.shift?4:0)|(N.alt?8:0);return 4===N.button?(X|=64,X|=N.action):(X|=3&N.button,4&N.button&&(X|=64),8&N.button&&(X|=128),32===N.action?X|=32:0!==N.action||j||(X|=3)),X}const me=String.fromCharCode,ve={DEFAULT:N=>{const j=[h(N,!1)+32,N.col+32,N.row+32];return j[0]>255||j[1]>255||j[2]>255?"":`[M${me(j[0])}${me(j[1])}${me(j[2])}`},SGR:N=>{const j=0===N.action&&4!==N.button?"m":"M";return`[<${h(N,!0)};${N.col};${N.row}${j}`},SGR_PIXELS:N=>{const j=0===N.action&&4!==N.button?"m":"M";return`[<${h(N,!0)};${N.x};${N.y}${j}`}};let Se=class extends he.Disposable{constructor(N,j){super(),this._bufferService=N,this._coreService=j,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._onProtocolChange=this._register(new ce.Emitter),this.onProtocolChange=this._onProtocolChange.event;for(const N of Object.keys(_e))this.addProtocol(N,_e[N]);for(const N of Object.keys(ve))this.addEncoding(N,ve[N]);this.reset()}addProtocol(N,j){this._protocols[N]=j}addEncoding(N,j){this._encodings[N]=j}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}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)return!1;if(4===N.button&&32===N.action)return!1;if(3===N.button&&32!==N.action)return!1;if(4!==N.button&&(2===N.action||3===N.action))return!1;if(N.col++,N.row++,32===N.action&&this._lastEvent&&this._equalEvents(this._lastEvent,N,"SGR_PIXELS"===this._activeEncoding))return!1;if(!this._protocols[this._activeProtocol].restrict(N))return!1;const j=this._encodings[this._activeEncoding](N);return j&&("DEFAULT"===this._activeEncoding?this._coreService.triggerBinaryEvent(j):this._coreService.triggerDataEvent(j,!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,j,X){if(X){if(N.x!==j.x)return!1;if(N.y!==j.y)return!1}else{if(N.col!==j.col)return!1;if(N.row!==j.row)return!1}return N.button===j.button&&N.action===j.action&&N.ctrl===j.ctrl&&N.alt===j.alt&&N.shift===j.shift}};j.CoreMouseService=Se,j.CoreMouseService=Se=ie([se(0,le.IBufferService),se(1,le.ICoreService)],Se)},4071:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.CoreService=void 0;const le=X(7453),he=X(7150),ce=X(6501),_e=X(802),me=Object.freeze({insertMode:!1}),ve=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0});let Se=class extends he.Disposable{constructor(N,j,X){super(),this._bufferService=N,this._logService=j,this._optionsService=X,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this._register(new _e.Emitter),this.onData=this._onData.event,this._onUserInput=this._register(new _e.Emitter),this.onUserInput=this._onUserInput.event,this._onBinary=this._register(new _e.Emitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this._register(new _e.Emitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,le.clone)(me),this.decPrivateModes=(0,le.clone)(ve)}reset(){this.modes=(0,le.clone)(me),this.decPrivateModes=(0,le.clone)(ve)}triggerDataEvent(N,j=!1){if(this._optionsService.rawOptions.disableStdin)return;const X=this._bufferService.buffer;j&&this._optionsService.rawOptions.scrollOnUserInput&&X.ybase!==X.ydisp&&this._onRequestScrollToBottom.fire(),j&&this._onUserInput.fire(),this._logService.debug(`sending data "${N}"`,(()=>N.split("").map((N=>N.charCodeAt(0))))),this._onData.fire(N)}triggerBinaryEvent(N){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${N}"`,(()=>N.split("").map((N=>N.charCodeAt(0))))),this._onBinary.fire(N))}};j.CoreService=Se,j.CoreService=Se=ie([se(0,ce.IBufferService),se(1,ce.ILogService),se(2,ce.IOptionsService)],Se)},4720:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.DecorationService=void 0;const ie=X(4103),se=X(7150),le=X(3087),he=X(802);let ce=0,_e=0;class h extends se.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new le.SortedList((N=>N?.marker.line)),this._onDecorationRegistered=this._register(new he.Emitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this._register(new he.Emitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this._register((0,se.toDisposable)((()=>this.reset())))}registerDecoration(N){if(N.marker.isDisposed)return;const j=new c(N);if(j){const N=j.marker.onDispose((()=>j.dispose())),X=j.onDispose((()=>{X.dispose(),j&&(this._decorations.delete(j)&&this._onDecorationRemoved.fire(j),N.dispose())}));this._decorations.insert(j),this._onDecorationRegistered.fire(j)}return j}reset(){for(const N of this._decorations.values())N.dispose();this._decorations.clear()}*getDecorationsAtCell(N,j,X){let ie=0,se=0;for(const le of this._decorations.getKeyIterator(j))ie=le.options.x??0,se=ie+(le.options.width??1),N>=ie&&N{ce=j.options.x??0,_e=ce+(j.options.width??1),N>=ce&&N<_e&&(!X||(j.options.layer??"bottom")===X)&&ie(j)}))}}j.DecorationService=h;class c extends se.DisposableStore{get backgroundColorRGB(){return null===this._cachedBg&&(this.options.backgroundColor?this._cachedBg=ie.css.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return null===this._cachedFg&&(this.options.foregroundColor?this._cachedFg=ie.css.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}constructor(N){super(),this.options=N,this.onRenderEmitter=this.add(new he.Emitter),this.onRender=this.onRenderEmitter.event,this._onDispose=this.add(new he.Emitter),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=N.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position="full")}dispose(){this._onDispose.fire(),super.dispose()}}},6025:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.InstantiationService=j.ServiceCollection=void 0;const ie=X(6501),se=X(6201);class n{constructor(...N){this._entries=new Map;for(const[j,X]of N)this.set(j,X)}set(N,j){const X=this._entries.get(N);return this._entries.set(N,j),X}forEach(N){for(const[j,X]of this._entries.entries())N(j,X)}has(N){return this._entries.has(N)}get(N){return this._entries.get(N)}}j.ServiceCollection=n,j.InstantiationService=class{constructor(){this._services=new n,this._services.set(ie.IInstantiationService,this)}setService(N,j){this._services.set(N,j)}getService(N){return this._services.get(N)}createInstance(N,...j){const X=(0,se.getServiceDependencies)(N).sort(((N,j)=>N.index-j.index)),ie=[];for(const j of X){const X=this._services.get(j.id);if(!X)throw new Error(`[createInstance] ${N.name} depends on UNKNOWN service ${j.id}.`);ie.push(X)}const le=X.length>0?X[0].index:j.length;if(j.length!==le)throw new Error(`[createInstance] First service dependency of ${N.name} at position ${le+1} conflicts with ${j.length} static arguments`);return new N(...[...j,...ie])}}},7276:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.LogService=void 0,j.setTraceLogger=function(N){_e=N},j.traceCall=function(N,j,X){if("function"!=typeof X.value)throw new Error("not supported");const ie=X.value;X.value=function(...N){if(_e.logLevel!==he.LogLevelEnum.TRACE)return ie.apply(this,N);_e.trace(`GlyphRenderer#${ie.name}(${N.map((N=>JSON.stringify(N))).join(", ")})`);const j=ie.apply(this,N);return _e.trace(`GlyphRenderer#${ie.name} return`,j),j}};const le=X(7150),he=X(6501),ce={trace:he.LogLevelEnum.TRACE,debug:he.LogLevelEnum.DEBUG,info:he.LogLevelEnum.INFO,warn:he.LogLevelEnum.WARN,error:he.LogLevelEnum.ERROR,off:he.LogLevelEnum.OFF};let _e,me=class extends le.Disposable{get logLevel(){return this._logLevel}constructor(N){super(),this._optionsService=N,this._logLevel=he.LogLevelEnum.OFF,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange("logLevel",(()=>this._updateLogLevel()))),_e=this}_updateLogLevel(){this._logLevel=ce[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(N){for(let j=0;j{Object.defineProperty(j,"__esModule",{value:!0}),j.OptionsService=j.DEFAULT_OPTIONS=void 0;const ie=X(7150),se=X(701),le=X(802);j.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:se.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRuler:{}};const he=["normal","bold","100","200","300","400","500","600","700","800","900"];class a extends ie.Disposable{constructor(N){super(),this._onOptionChange=this._register(new le.Emitter),this.onOptionChange=this._onOptionChange.event;const X={...j.DEFAULT_OPTIONS};for(const j in N)if(j in X)try{const ie=N[j];X[j]=this._sanitizeAndValidateOption(j,ie)}catch(N){console.error(N)}this.rawOptions=X,this.options={...X},this._setupOptions(),this._register((0,ie.toDisposable)((()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null})))}onSpecificOptionChange(N,j){return this.onOptionChange((X=>{X===N&&j(this.rawOptions[N])}))}onMultipleOptionChange(N,j){return this.onOptionChange((X=>{-1!==N.indexOf(X)&&j()}))}_setupOptions(){const e=N=>{if(!(N in j.DEFAULT_OPTIONS))throw new Error(`No option with key "${N}"`);return this.rawOptions[N]},i=(N,X)=>{if(!(N in j.DEFAULT_OPTIONS))throw new Error(`No option with key "${N}"`);X=this._sanitizeAndValidateOption(N,X),this.rawOptions[N]!==X&&(this.rawOptions[N]=X,this._onOptionChange.fire(N))};for(const N in this.rawOptions){const j={get:e.bind(this,N),set:i.bind(this,N)};Object.defineProperty(this.options,N,j)}}_sanitizeAndValidateOption(N,X){switch(N){case"cursorStyle":if(X||(X=j.DEFAULT_OPTIONS[N]),!function(N){return"block"===N||"underline"===N||"bar"===N}(X))throw new Error(`"${X}" is not a valid value for ${N}`);break;case"wordSeparator":X||(X=j.DEFAULT_OPTIONS[N]);break;case"fontWeight":case"fontWeightBold":if("number"==typeof X&&1<=X&&X<=1e3)break;X=he.includes(X)?X:j.DEFAULT_OPTIONS[N];break;case"cursorWidth":X=Math.floor(X);case"lineHeight":case"tabStopWidth":if(X<1)throw new Error(`${N} cannot be less than 1, value: ${X}`);break;case"minimumContrastRatio":X=Math.max(1,Math.min(21,Math.round(10*X)/10));break;case"scrollback":if((X=Math.min(X,4294967295))<0)throw new Error(`${N} cannot be less than 0, value: ${X}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(X<=0)throw new Error(`${N} cannot be less than or equal to 0, value: ${X}`);break;case"rows":case"cols":if(!X&&0!==X)throw new Error(`${N} must be numeric, value: ${X}`);break;case"windowsPty":X=X??{}}return X}}j.OptionsService=a},8811:function(N,j,X){var ie=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},se=this&&this.__param||function(N,j){return function(X,ie){j(X,ie,N)}};Object.defineProperty(j,"__esModule",{value:!0}),j.OscLinkService=void 0;const le=X(6501);let he=class{constructor(N){this._bufferService=N,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(N){const j=this._bufferService.buffer;if(void 0===N.id){const X=j.addMarker(j.ybase+j.y),ie={data:N,id:this._nextId++,lines:[X]};return X.onDispose((()=>this._removeMarkerFromLink(ie,X))),this._dataByLinkId.set(ie.id,ie),ie.id}const X=N,ie=this._getEntryIdKey(X),se=this._entriesWithId.get(ie);if(se)return this.addLineToLink(se.id,j.ybase+j.y),se.id;const le=j.addMarker(j.ybase+j.y),he={id:this._nextId++,key:this._getEntryIdKey(X),data:X,lines:[le]};return le.onDispose((()=>this._removeMarkerFromLink(he,le))),this._entriesWithId.set(he.key,he),this._dataByLinkId.set(he.id,he),he.id}addLineToLink(N,j){const X=this._dataByLinkId.get(N);if(X&&X.lines.every((N=>N.line!==j))){const N=this._bufferService.buffer.addMarker(j);X.lines.push(N),N.onDispose((()=>this._removeMarkerFromLink(X,N)))}}getLinkData(N){return this._dataByLinkId.get(N)?.data}_getEntryIdKey(N){return`${N.id};;${N.uri}`}_removeMarkerFromLink(N,j){const X=N.lines.indexOf(j);-1!==X&&(N.lines.splice(X,1),0===N.lines.length&&(void 0!==N.data.id&&this._entriesWithId.delete(N.key),this._dataByLinkId.delete(N.id)))}};j.OscLinkService=he,j.OscLinkService=he=ie([se(0,le.IBufferService)],he)},6201:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.serviceRegistry=void 0,j.getServiceDependencies=function(N){return N[ie]||[]},j.createDecorator=function(N){if(j.serviceRegistry.has(N))return j.serviceRegistry.get(N);const r=function(N,j,se){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");!function(N,j,se){j[X]===j?j[ie].push({id:N,index:se}):(j[ie]=[{id:N,index:se}],j[X]=j)}(r,N,se)};return r.toString=()=>N,j.serviceRegistry.set(N,r),r};const X="di$target",ie="di$dependencies";j.serviceRegistry=new Map},6501:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.IDecorationService=j.IUnicodeService=j.IOscLinkService=j.IOptionsService=j.ILogService=j.LogLevelEnum=j.IInstantiationService=j.ICharsetService=j.ICoreService=j.ICoreMouseService=j.IBufferService=void 0;const ie=X(6201);var se;j.IBufferService=(0,ie.createDecorator)("BufferService"),j.ICoreMouseService=(0,ie.createDecorator)("CoreMouseService"),j.ICoreService=(0,ie.createDecorator)("CoreService"),j.ICharsetService=(0,ie.createDecorator)("CharsetService"),j.IInstantiationService=(0,ie.createDecorator)("InstantiationService"),function(N){N[N.TRACE=0]="TRACE",N[N.DEBUG=1]="DEBUG",N[N.INFO=2]="INFO",N[N.WARN=3]="WARN",N[N.ERROR=4]="ERROR",N[N.OFF=5]="OFF"}(se||(j.LogLevelEnum=se={})),j.ILogService=(0,ie.createDecorator)("LogService"),j.IOptionsService=(0,ie.createDecorator)("OptionsService"),j.IOscLinkService=(0,ie.createDecorator)("OscLinkService"),j.IUnicodeService=(0,ie.createDecorator)("UnicodeService"),j.IDecorationService=(0,ie.createDecorator)("DecorationService")},6415:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.UnicodeService=void 0;const ie=X(7428),se=X(802);class n{static extractShouldJoin(N){return!!(1&N)}static extractWidth(N){return N>>1&3}static extractCharKind(N){return N>>3}static createPropertyValue(N,j,X=!1){return(16777215&N)<<3|(3&j)<<1|(X?1:0)}constructor(){this._providers=Object.create(null),this._active="",this._onChange=new se.Emitter,this.onChange=this._onChange.event;const N=new ie.UnicodeV6;this.register(N),this._active=N.version,this._activeProvider=N}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(N){if(!this._providers[N])throw new Error(`unknown Unicode version "${N}"`);this._active=N,this._activeProvider=this._providers[N],this._onChange.fire(N)}register(N){this._providers[N.version]=N}wcwidth(N){return this._activeProvider.wcwidth(N)}getStringCellWidth(N){let j=0,X=0;const ie=N.length;for(let se=0;se=ie)return j+this.wcwidth(le);const X=N.charCodeAt(se);56320<=X&&X<=57343?le=1024*(le-55296)+X-56320+65536:j+=this.wcwidth(X)}const he=this.charProperties(le,X);let ce=n.extractWidth(he);n.extractShouldJoin(he)&&(ce-=n.extractWidth(X)),j+=ce,X=he}return j}charProperties(N,j){return this._activeProvider.charProperties(N,j)}}j.UnicodeService=n},4333:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.isAndroid=j.isElectron=j.isWebkitWebView=j.isSafari=j.isChrome=j.isWebKit=j.isFirefox=j.onDidChangeFullscreen=j.onDidChangeZoomLevel=void 0,j.addMatchMediaChangeListener=o,j.setZoomLevel=function(N,j){n.INSTANCE.setZoomLevel(N,j)},j.getZoomLevel=function(N){return n.INSTANCE.getZoomLevel(N)},j.getZoomFactor=function(N){return n.INSTANCE.getZoomFactor(N)},j.setZoomFactor=function(N,j){n.INSTANCE.setZoomFactor(N,j)},j.setFullscreen=function(N,j){n.INSTANCE.setFullscreen(N,j)},j.isFullscreen=function(N){return n.INSTANCE.isFullscreen(N)},j.isStandalone=function(){return he},j.isWCOEnabled=function(){return navigator?.windowControlsOverlay?.visible},j.getWCOBoundingRect=function(){return navigator?.windowControlsOverlay?.getTitlebarAreaRect()};const ie=X(4693),se=X(802);class n{constructor(){this.mapWindowIdToZoomLevel=new Map,this._onDidChangeZoomLevel=new se.Emitter,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event,this.mapWindowIdToZoomFactor=new Map,this._onDidChangeFullscreen=new se.Emitter,this.onDidChangeFullscreen=this._onDidChangeFullscreen.event,this.mapWindowIdToFullScreen=new Map}static{this.INSTANCE=new n}getZoomLevel(N){return this.mapWindowIdToZoomLevel.get(this.getWindowId(N))??0}setZoomLevel(N,j){if(this.getZoomLevel(j)===N)return;const X=this.getWindowId(j);this.mapWindowIdToZoomLevel.set(X,N),this._onDidChangeZoomLevel.fire(X)}getZoomFactor(N){return this.mapWindowIdToZoomFactor.get(this.getWindowId(N))??1}setZoomFactor(N,j){this.mapWindowIdToZoomFactor.set(this.getWindowId(j),N)}setFullscreen(N,j){if(this.isFullscreen(j)===N)return;const X=this.getWindowId(j);this.mapWindowIdToFullScreen.set(X,N),this._onDidChangeFullscreen.fire(X)}isFullscreen(N){return!!this.mapWindowIdToFullScreen.get(this.getWindowId(N))}getWindowId(N){return N.vscodeWindowId}}function o(N,j,X){"string"==typeof j&&(j=N.matchMedia(j)),j.addEventListener("change",X)}j.onDidChangeZoomLevel=n.INSTANCE.onDidChangeZoomLevel,j.onDidChangeFullscreen=n.INSTANCE.onDidChangeFullscreen;const le="object"==typeof navigator?navigator.userAgent:"";j.isFirefox=le.indexOf("Firefox")>=0,j.isWebKit=le.indexOf("AppleWebKit")>=0,j.isChrome=le.indexOf("Chrome")>=0,j.isSafari=!j.isChrome&&le.indexOf("Safari")>=0,j.isWebkitWebView=!j.isChrome&&!j.isSafari&&j.isWebKit,j.isElectron=le.indexOf("Electron/")>=0,j.isAndroid=le.indexOf("Android")>=0;let he=!1;if("function"==typeof ie.mainWindow.matchMedia){const N=ie.mainWindow.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),j=ie.mainWindow.matchMedia("(display-mode: fullscreen)");he=N.matches,o(ie.mainWindow,N,(({matches:N})=>{he&&j.matches||(he=N)}))}},7745:function(N,j,X){var ie=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),se=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),le=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&ie(j,N,X);return se(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.BrowserFeatures=j.KeyboardSupport=void 0;const he=le(X(4333)),ce=X(4693),_e=le(X(8163));var me;!function(N){N[N.Always=0]="Always",N[N.FullScreen=1]="FullScreen",N[N.None=2]="None"}(me||(j.KeyboardSupport=me={}));const ve="object"==typeof navigator?navigator:{};j.BrowserFeatures={clipboard:{writeText:_e.isNative||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(ve&&ve.clipboard&&ve.clipboard.writeText),readText:_e.isNative||!!(ve&&ve.clipboard&&ve.clipboard.readText)},keyboard:_e.isNative||he.isStandalone()?me.Always:ve.keyboard||he.isSafari?me.FullScreen:me.None,touch:"ontouchstart"in ce.mainWindow||ve.maxTouchPoints>0,pointerEvents:ce.mainWindow.PointerEvent&&("ontouchstart"in ce.mainWindow||navigator.maxTouchPoints>0)}},7093:function(N,j,X){var ie,se=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),le=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),he=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&se(j,N,X);return le(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.SafeTriangle=j.DragAndDropObserver=j.ModifierKeyEmitter=j.DetectedFullscreenMode=j.Namespace=j.EventHelper=j.EventType=j.sharedMutationObserver=j.Dimension=j.WindowIntervalTimer=j.scheduleAtNextAnimationFrame=j.runAtThisOrScheduleAtNextAnimationFrame=j.WindowIdleValue=j.addStandardDisposableGenericMouseUpListener=j.addStandardDisposableGenericMouseDownListener=j.addStandardDisposableListener=j.onDidUnregisterWindow=j.onWillUnregisterWindow=j.onDidRegisterWindow=j.hasWindow=j.getWindowById=j.getWindowId=j.getWindowsCount=j.getWindows=j.getDocument=j.getWindow=j.registerWindow=void 0,j.clearNode=function(N){for(;N.firstChild;)N.firstChild.remove()},j.clearNodeRecursively=function e(N){for(;N.firstChild;){const j=N.firstChild;j.remove(),e(j)}},j.addDisposableListener=C,j.addDisposableGenericMouseDownListener=w,j.addDisposableGenericMouseMoveListener=function(N,X,ie){return C(N,Ee.isIOS&&_e.BrowserFeatures.pointerEvents?j.EventType.POINTER_MOVE:j.EventType.MOUSE_MOVE,X,ie)},j.addDisposableGenericMouseUpListener=E,j.runWhenWindowIdle=function(N,j,X){return(0,Se._runWhenIdle)(N,j,X)},j.disposableWindowInterval=function(N,j,X,ie){let se=0;const le=N.setInterval((()=>{se++,("number"==typeof ie&&se>=ie||!0===j())&&he.dispose()}),X),he=(0,we.toDisposable)((()=>{N.clearInterval(le)}));return he},j.measure=function(N,X){return(0,j.scheduleAtNextAnimationFrame)(N,X,1e4)},j.modify=function(N,X){return(0,j.scheduleAtNextAnimationFrame)(N,X,-1e4)},j.addDisposableThrottledListener=function(N,j,X,ie,se){return new T(N,j,X,ie,se)},j.getComputedStyle=k,j.getClientArea=function e(N,X){const ie=(0,j.getWindow)(N),se=ie.document;if(N!==se.body)return new O(N.clientWidth,N.clientHeight);if(Ee.isIOS&&ie?.visualViewport)return new O(ie.visualViewport.width,ie.visualViewport.height);if(ie?.innerWidth&&ie.innerHeight)return new O(ie.innerWidth,ie.innerHeight);if(se.body&&se.body.clientWidth&&se.body.clientHeight)return new O(se.body.clientWidth,se.body.clientHeight);if(se.documentElement&&se.documentElement.clientWidth&&se.documentElement.clientHeight)return new O(se.documentElement.clientWidth,se.documentElement.clientHeight);if(X)return e(X);throw new Error("Unable to figure out browser width and height")},j.getTopLeftOffset=I,j.size=function(N,j,X){"number"==typeof j&&(N.style.width=`${j}px`),"number"==typeof X&&(N.style.height=`${X}px`)},j.position=function(N,j,X,ie,se,le="absolute"){"number"==typeof j&&(N.style.top=`${j}px`),"number"==typeof X&&(N.style.right=`${X}px`),"number"==typeof ie&&(N.style.bottom=`${ie}px`),"number"==typeof se&&(N.style.left=`${se}px`),N.style.position=le},j.getDomNodePagePosition=function(N){const X=N.getBoundingClientRect(),ie=(0,j.getWindow)(N);return{left:X.left+ie.scrollX,top:X.top+ie.scrollY,width:X.width,height:X.height}},j.getDomNodeZoomLevel=function(N){let j=N,X=1;do{const N=k(j).zoom;null!=N&&"1"!==N&&(X*=N),j=j.parentElement}while(null!==j&&j!==j.ownerDocument.documentElement);return X},j.getTotalWidth=P,j.getContentWidth=function(N){const j=M.getBorderLeftWidth(N)+M.getBorderRightWidth(N),X=M.getPaddingLeft(N)+M.getPaddingRight(N);return N.offsetWidth-j-X},j.getTotalScrollWidth=x,j.getContentHeight=function(N){const j=M.getBorderTopWidth(N)+M.getBorderBottomWidth(N),X=M.getPaddingTop(N)+M.getPaddingBottom(N);return N.offsetHeight-j-X},j.getTotalHeight=function(N){const j=M.getMarginTop(N)+M.getMarginBottom(N);return N.offsetHeight+j},j.getLargestChildWidth=function(N,j){const X=j.map((j=>Math.max(x(j),P(j))+function(N,j){if(null===N)return 0;const X=I(N),ie=I(j);return X.left-ie.left}(j,N)||0));return Math.max(...X)},j.isAncestor=B,j.setParentFlowTo=function(N,j){N.dataset[Re]=j.id},j.isAncestorUsingFlowTo=function(N,j){let X=N;for(;X;){if(X===j)return!0;if(Q(X)){const N=U(X);if(N){X=N;continue}}X=X.parentNode}return!1},j.findParentWithClass=F,j.hasParentWithClass=function(N,j,X){return!!F(N,j,X)},j.isShadowRoot=W,j.isInShadowDOM=function(N){return!!H(N)},j.getShadowRoot=H,j.getActiveElement=K,j.isActiveElement=function(N){return K()===N},j.isAncestorOfActiveElement=function(N){return B(K(),N)},j.isActiveDocument=function(N){return N.ownerDocument===z()},j.getActiveDocument=z,j.getActiveWindow=function(){const N=z();return N.defaultView?.window??Le.mainWindow},j.isGlobalStylesheet=function(N){return Te.has(N)},j.createStyleSheet2=function(){return new $},j.createStyleSheet=V,j.cloneGlobalStylesheets=function(N){const j=new we.DisposableStore;for(const[X,ie]of Te)j.add(G(X,ie,N));return j},j.createMetaElement=function(N=Le.mainWindow.document.head){return q("meta",N)},j.createLinkElement=function(N=Le.mainWindow.document.head){return q("link",N)},j.createCSSRule=function e(N,j,X=Y()){if(X&&j){X.sheet?.insertRule(`${N} {${j}}`,0);for(const ie of Te.get(X)??[])e(N,j,ie)}},j.removeCSSRulesContainingSelector=function e(N,j=Y()){if(!j)return;const X=Z(j),ie=[];for(let j=0;j=0;N--)j.sheet?.deleteRule(ie[N]);for(const X of Te.get(j)??[])e(N,X)},j.isHTMLElement=Q,j.isHTMLAnchorElement=function(N){return N instanceof HTMLAnchorElement||N instanceof(0,j.getWindow)(N).HTMLAnchorElement},j.isHTMLSpanElement=function(N){return N instanceof HTMLSpanElement||N instanceof(0,j.getWindow)(N).HTMLSpanElement},j.isHTMLTextAreaElement=function(N){return N instanceof HTMLTextAreaElement||N instanceof(0,j.getWindow)(N).HTMLTextAreaElement},j.isHTMLInputElement=function(N){return N instanceof HTMLInputElement||N instanceof(0,j.getWindow)(N).HTMLInputElement},j.isHTMLButtonElement=function(N){return N instanceof HTMLButtonElement||N instanceof(0,j.getWindow)(N).HTMLButtonElement},j.isHTMLDivElement=function(N){return N instanceof HTMLDivElement||N instanceof(0,j.getWindow)(N).HTMLDivElement},j.isSVGElement=function(N){return N instanceof SVGElement||N instanceof(0,j.getWindow)(N).SVGElement},j.isMouseEvent=function(N){return N instanceof MouseEvent||N instanceof(0,j.getWindow)(N).MouseEvent},j.isKeyboardEvent=function(N){return N instanceof KeyboardEvent||N instanceof(0,j.getWindow)(N).KeyboardEvent},j.isPointerEvent=function(N){return N instanceof PointerEvent||N instanceof(0,j.getWindow)(N).PointerEvent},j.isDragEvent=function(N){return N instanceof DragEvent||N instanceof(0,j.getWindow)(N).DragEvent},j.isEventLike=function(N){const j=N;return!(!j||"function"!=typeof j.preventDefault||"function"!=typeof j.stopPropagation)},j.saveParentsScrollTop=function(N){const j=[];for(let X=0;N&&N.nodeType===N.ELEMENT_NODE;X++)j[X]=N.scrollTop,N=N.parentNode;return j},j.restoreParentsScrollTop=function(N,j){for(let X=0;N&&N.nodeType===N.ELEMENT_NODE;X++)N.scrollTop!==j[X]&&(N.scrollTop=j[X]),N=N.parentNode},j.trackFocus=function(N){return new ee(N)},j.after=function(N,j){return N.after(j),j},j.append=te,j.prepend=function(N,j){return N.insertBefore(j,N.firstChild),j},j.reset=function(N,...j){N.innerText="",te(N,...j)},j.$=ne,j.join=function(N,j){const X=[];return N.forEach(((N,ie)=>{ie>0&&(j instanceof Node?X.push(j.cloneNode()):X.push(document.createTextNode(j))),X.push(N)})),X},j.setVisibility=function(N,...j){N?oe(...j):ae(...j)},j.show=oe,j.hide=ae,j.removeTabIndexAndUpdateFocus=function(N){if(N&&N.hasAttribute("tabIndex")){if(N.ownerDocument.activeElement===N){const j=function(N){for(;N&&N.nodeType===N.ELEMENT_NODE;){if(Q(N)&&N.hasAttribute("tabIndex"))return N;N=N.parentNode}return null}(N.parentElement);j?.focus()}N.removeAttribute("tabindex")}},j.finalHandler=function(N){return j=>{j.preventDefault(),j.stopPropagation(),N(j)}},j.domContentLoaded=function(N){return new Promise((j=>{if("complete"===N.document.readyState||N.document&&null!==N.document.body)j(void 0);else{const i=()=>{N.window.removeEventListener("DOMContentLoaded",i,!1),j()};N.window.addEventListener("DOMContentLoaded",i,!1)}}))},j.computeScreenAwareSize=function(N,j){const X=N.devicePixelRatio*j;return Math.max(1,Math.floor(X))/N.devicePixelRatio},j.windowOpenNoOpener=function(N){Le.mainWindow.open(N,"_blank","noopener")},j.windowOpenPopup=function(N){const j=Math.floor(Le.mainWindow.screenLeft+Le.mainWindow.innerWidth/2-Ie/2),X=Math.floor(Le.mainWindow.screenTop+Le.mainWindow.innerHeight/2-Pe/2);Le.mainWindow.open(N,"_blank",`width=${Ie},height=${Pe},top=${X},left=${j}`)},j.windowOpenWithSuccess=function(N,j=!0){const X=Le.mainWindow.open();return!!X&&(j&&(X.opener=null),X.location.href=N,!0)},j.animate=function(N,X){const s=()=>{X(),ie=(0,j.scheduleAtNextAnimationFrame)(N,s)};let ie=(0,j.scheduleAtNextAnimationFrame)(N,s);return(0,we.toDisposable)((()=>ie.dispose()))},j.asCSSPropertyValue=function(N){return`'${N.replace(/'/g,"%27")}'`},j.asCssValueWithDefault=function e(N,j){if(void 0!==N){const X=N.match(/^\s*var\((.+)\)$/);if(X){const N=X[1].split(",",2);return 2===N.length&&(j=e(N[1].trim(),j)),`var(${N[0]}, ${j})`}return N}return j},j.detectFullscreen=function(N){return N.document.fullscreenElement||N.document.webkitFullscreenElement||N.document.webkitIsFullScreen?{mode:xe.DOCUMENT,guess:!1}:N.innerHeight===N.screen.height?{mode:xe.BROWSER,guess:!1}:(Ee.isMacintosh||Ee.isLinux)&&N.outerHeight===N.screen.height&&N.outerWidth===N.screen.width?{mode:xe.BROWSER,guess:!0}:null},j.multibyteAwareBtoa=function(N){return btoa(function(N){const j=new Uint16Array(N.length);for(let X=0;X0&&(he.className=ce.join(" "));const _e={};if(se.groups.name&&(_e[se.groups.name]=he),ie)for(const N of ie)Q(N)?he.appendChild(N):"string"==typeof N?he.append(N):"root"in N&&(Object.assign(_e,N),he.appendChild(N.root));for(const[N,j]of Object.entries(X))if("className"!==N)if("style"===N)for(const[N,X]of Object.entries(j))he.style.setProperty(fe(N),"number"==typeof X?X+"px":""+X);else"tabIndex"===N?he.tabIndex=j:he.setAttribute(fe(N),j.toString());return _e.root=he,_e},j.svgElem=function(N,...j){let X,ie;Array.isArray(j[0])?(X={},ie=j[0]):(X=j[0]||{},ie=j[1]);const se=Be.exec(N);if(!se||!se.groups)throw new Error("Bad use of h");const le=se.groups.tag||"div",he=document.createElementNS("http://www.w3.org/2000/svg",le);se.groups.id&&(he.id=se.groups.id);const ce=[];if(se.groups.class)for(const N of se.groups.class.split("."))""!==N&&ce.push(N);if(void 0!==X.className)for(const N of X.className.split("."))""!==N&&ce.push(N);ce.length>0&&(he.className=ce.join(" "));const _e={};if(se.groups.name&&(_e[se.groups.name]=he),ie)for(const N of ie)Q(N)?he.appendChild(N):"string"==typeof N?he.append(N):"root"in N&&(Object.assign(_e,N),he.appendChild(N.root));for(const[N,j]of Object.entries(X))if("className"!==N)if("style"===N)for(const[N,X]of Object.entries(j))he.style.setProperty(fe(N),"number"==typeof X?X+"px":""+X);else"tabIndex"===N?he.tabIndex=j:he.setAttribute(fe(N),j.toString());return _e.root=he,_e},j.copyAttributes=pe,j.trackAttributes=function(N,X,ie){pe(N,X,ie);const se=new we.DisposableStore;return se.add(j.sharedMutationObserver.observe(N,se,{attributes:!0,attributeFilter:ie})((j=>{for(const ie of j)"attributes"===ie.type&&ie.attributeName&&ge(N,X,ie.attributeName)}))),se};const ce=he(X(4333)),_e=X(7745),me=X(5394),ve=X(5964),Se=X(1758),be=X(9807),Ce=he(X(802)),ye=X(7883),we=X(7150),Ee=he(X(8163)),De=X(6304),Le=X(4693),Ae=X(7704);ie=function(){const N=new Map;(0,Le.ensureCodeWindow)(Le.mainWindow,1);const X={window:Le.mainWindow,disposables:new we.DisposableStore};N.set(Le.mainWindow.vscodeWindowId,X);const ie=new Ce.Emitter,se=new Ce.Emitter,le=new Ce.Emitter;return{onDidRegisterWindow:ie.event,onWillUnregisterWindow:le.event,onDidUnregisterWindow:se.event,registerWindow(X){if(N.has(X.vscodeWindowId))return we.Disposable.None;const he=new we.DisposableStore,ce={window:X,disposables:he.add(new we.DisposableStore)};return N.set(X.vscodeWindowId,ce),he.add((0,we.toDisposable)((()=>{N.delete(X.vscodeWindowId),se.fire(X)}))),he.add(C(X,j.EventType.BEFORE_UNLOAD,(()=>{le.fire(X)}))),ie.fire(ce),he},getWindows:()=>N.values(),getWindowsCount:()=>N.size,getWindowId:N=>N.vscodeWindowId,hasWindow:j=>N.has(j),getWindowById:function(j,ie){return("number"==typeof j?N.get(j):void 0)??(ie?X:void 0)},getWindow(N){const j=N;if(j?.ownerDocument?.defaultView)return j.ownerDocument.defaultView.window;const X=N;return X?.view?X.view.window:Le.mainWindow},getDocument(N){const X=N;return(0,j.getWindow)(X).document}}}(),j.registerWindow=ie.registerWindow,j.getWindow=ie.getWindow,j.getDocument=ie.getDocument,j.getWindows=ie.getWindows,j.getWindowsCount=ie.getWindowsCount,j.getWindowId=ie.getWindowId,j.getWindowById=ie.getWindowById,j.hasWindow=ie.hasWindow,j.onDidRegisterWindow=ie.onDidRegisterWindow,j.onWillUnregisterWindow=ie.onWillUnregisterWindow,j.onDidUnregisterWindow=ie.onDidUnregisterWindow;class b{constructor(N,j,X,ie){this._node=N,this._type=j,this._handler=X,this._options=ie||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function C(N,j,X,ie){return new b(N,j,X,ie)}function y(N,j){return function(X){return j(new ve.StandardMouseEvent(N,X))}}function w(N,X,ie){return C(N,Ee.isIOS&&_e.BrowserFeatures.pointerEvents?j.EventType.POINTER_DOWN:j.EventType.MOUSE_DOWN,X,ie)}function E(N,X,ie){return C(N,Ee.isIOS&&_e.BrowserFeatures.pointerEvents?j.EventType.POINTER_UP:j.EventType.MOUSE_UP,X,ie)}j.addStandardDisposableListener=function(N,X,ie,se){let le=ie;return"click"===X||"mousedown"===X||"contextmenu"===X?le=y((0,j.getWindow)(N),ie):"keydown"!==X&&"keypress"!==X&&"keyup"!==X||(le=function(N){return function(j){return N(new me.StandardKeyboardEvent(j))}}(ie)),C(N,X,le,se)},j.addStandardDisposableGenericMouseDownListener=function(N,X,ie){return w(N,y((0,j.getWindow)(N),X),ie)},j.addStandardDisposableGenericMouseUpListener=function(N,X,ie){return E(N,y((0,j.getWindow)(N),X),ie)};class D extends Se.AbstractIdleValue{constructor(N,j){super(N,j)}}j.WindowIdleValue=D;class L extends Se.IntervalTimer{constructor(N){super(),this.defaultTarget=N&&(0,j.getWindow)(N)}cancelAndSet(N,j,X){return super.cancelAndSet(N,j,X??this.defaultTarget)}}j.WindowIntervalTimer=L;class A{constructor(N,j=0){this._runner=N,this.priority=j,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(N){(0,be.onUnexpectedError)(N)}}static sort(N,j){return j.priority-N.priority}}!function(){const N=new Map,X=new Map,ie=new Map,se=new Map;j.scheduleAtNextAnimationFrame=(le,he,ce=0)=>{const _e=(0,j.getWindowId)(le),me=new A(he,ce);let ve=N.get(_e);return ve||(ve=[],N.set(_e,ve)),ve.push(me),ie.get(_e)||(ie.set(_e,!0),le.requestAnimationFrame((()=>(j=>{ie.set(j,!1);const le=N.get(j)??[];for(X.set(j,le),N.set(j,[]),se.set(j,!0);le.length>0;)le.sort(A.sort),le.shift().execute();se.set(j,!1)})(_e)))),me},j.runAtThisOrScheduleAtNextAnimationFrame=(N,ie,le)=>{const he=(0,j.getWindowId)(N);if(se.get(he)){const N=new A(ie,le);let j=X.get(he);return j||(j=[],X.set(he,j)),j.push(N),N}return(0,j.scheduleAtNextAnimationFrame)(N,ie,le)}}();const R=function(N,j){return j};class T extends we.Disposable{constructor(N,j,X,ie=R,se=8){super();let le=null,he=0;const ce=this._register(new Se.TimeoutTimer),l=()=>{he=(new Date).getTime(),X(le),le=null};this._register(C(N,j,(N=>{le=ie(le,N);const j=(new Date).getTime()-he;j>=se?(ce.cancel(),l()):ce.setIfNotSet(l,se-j)})))}}function k(N){return(0,j.getWindow)(N).getComputedStyle(N,null)}class M{static convertToPixels(N,j){return parseFloat(j)||0}static getDimension(N,j,X){const ie=k(N),se=ie?ie.getPropertyValue(j):"0";return M.convertToPixels(N,se)}static getBorderLeftWidth(N){return M.getDimension(N,"border-left-width","borderLeftWidth")}static getBorderRightWidth(N){return M.getDimension(N,"border-right-width","borderRightWidth")}static getBorderTopWidth(N){return M.getDimension(N,"border-top-width","borderTopWidth")}static getBorderBottomWidth(N){return M.getDimension(N,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(N){return M.getDimension(N,"padding-left","paddingLeft")}static getPaddingRight(N){return M.getDimension(N,"padding-right","paddingRight")}static getPaddingTop(N){return M.getDimension(N,"padding-top","paddingTop")}static getPaddingBottom(N){return M.getDimension(N,"padding-bottom","paddingBottom")}static getMarginLeft(N){return M.getDimension(N,"margin-left","marginLeft")}static getMarginTop(N){return M.getDimension(N,"margin-top","marginTop")}static getMarginRight(N){return M.getDimension(N,"margin-right","marginRight")}static getMarginBottom(N){return M.getDimension(N,"margin-bottom","marginBottom")}}class O{static{this.None=new O(0,0)}constructor(N,j){this.width=N,this.height=j}with(N=this.width,j=this.height){return N!==this.width||j!==this.height?new O(N,j):this}static is(N){return"object"==typeof N&&"number"==typeof N.height&&"number"==typeof N.width}static lift(N){return N instanceof O?N:new O(N.width,N.height)}static equals(N,j){return N===j||!(!N||!j)&&N.width===j.width&&N.height===j.height}}function I(N){let j=N.offsetParent,X=N.offsetTop,ie=N.offsetLeft;for(;null!==(N=N.parentNode)&&N!==N.ownerDocument.body&&N!==N.ownerDocument.documentElement;){X-=N.scrollTop;const se=W(N)?null:k(N);se&&(ie-="rtl"!==se.direction?N.scrollLeft:-N.scrollLeft),N===j&&(ie+=M.getBorderLeftWidth(N),X+=M.getBorderTopWidth(N),X+=N.offsetTop,ie+=N.offsetLeft,j=N.offsetParent)}return{left:ie,top:X}}function P(N){const j=M.getMarginLeft(N)+M.getMarginRight(N);return N.offsetWidth+j}function x(N){const j=M.getMarginLeft(N)+M.getMarginRight(N);return N.scrollWidth+j}function B(N,j){return Boolean(j?.contains(N))}j.Dimension=O;const Re="parentFlowToElementId";function U(N){const j=N.dataset[Re];return"string"==typeof j?N.ownerDocument.getElementById(j):null}function F(N,j,X){for(;N&&N.nodeType===N.ELEMENT_NODE;){if(N.classList.contains(j))return N;if(X)if("string"==typeof X){if(N.classList.contains(X))return null}else if(N===X)return null;N=N.parentNode}return null}function W(N){return N&&!!N.host&&!!N.mode}function H(N){for(;N.parentNode;){if(N===N.ownerDocument?.body)return null;N=N.parentNode}return W(N)?N:null}function K(){let N=z().activeElement;for(;N?.shadowRoot;)N=N.shadowRoot.activeElement;return N}function z(){return(0,j.getWindowsCount)()<=1?Le.mainWindow.document:Array.from((0,j.getWindows)()).map((({window:N})=>N.document)).find((N=>N.hasFocus()))??Le.mainWindow.document}const Te=new Map;class ${constructor(){this._currentCssStyle="",this._styleSheet=void 0}setStyle(N){N!==this._currentCssStyle&&(this._currentCssStyle=N,this._styleSheet?this._styleSheet.innerText=N:this._styleSheet=V(Le.mainWindow.document.head,(j=>j.innerText=N)))}dispose(){this._styleSheet&&(this._styleSheet.remove(),this._styleSheet=void 0)}}function V(N=Le.mainWindow.document.head,X,ie){const se=document.createElement("style");if(se.type="text/css",se.media="screen",X?.(se),N.appendChild(se),ie&&ie.add((0,we.toDisposable)((()=>se.remove()))),N===Le.mainWindow.document.head){const N=new Set;Te.set(se,N);for(const{window:X,disposables:le}of(0,j.getWindows)()){if(X===Le.mainWindow)continue;const j=le.add(G(se,N,X));ie?.add(j)}}return se}function G(N,X,ie){const se=new we.DisposableStore,le=N.cloneNode(!0);ie.document.head.appendChild(le),se.add((0,we.toDisposable)((()=>le.remove())));for(const j of Z(N))le.sheet?.insertRule(j.cssText,le.sheet?.cssRules.length);return se.add(j.sharedMutationObserver.observe(N,se,{childList:!0})((()=>{le.textContent=N.textContent}))),X.add(le),se.add((0,we.toDisposable)((()=>X.delete(le)))),se}function q(N,j=Le.mainWindow.document.head){const X=document.createElement(N);return j.appendChild(X),X}j.sharedMutationObserver=new class{constructor(){this.mutationObservers=new Map}observe(N,j,X){let ie=this.mutationObservers.get(N);ie||(ie=new Map,this.mutationObservers.set(N,ie));const se=(0,De.hash)(X);let le=ie.get(se);if(le)le.users+=1;else{const he=new Ce.Emitter,ce=new MutationObserver((N=>he.fire(N)));ce.observe(N,X);const _e=le={users:1,observer:ce,onDidMutate:he.event};j.add((0,we.toDisposable)((()=>{_e.users-=1,0===_e.users&&(he.dispose(),ce.disconnect(),ie?.delete(se),0===ie?.size&&this.mutationObservers.delete(N))}))),ie.set(se,le)}return le.onDidMutate}};let ke=null;function Y(){return ke||(ke=V()),ke}function Z(N){return N?.sheet?.rules?N.sheet.rules:N?.sheet?.cssRules?N.sheet.cssRules:[]}function J(N){return"string"==typeof N.selectorText}function Q(N){return N instanceof HTMLElement||N instanceof(0,j.getWindow)(N).HTMLElement}j.EventType={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",PASTE:"paste",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:ce.isWebKit?"webkitAnimationStart":"animationstart",ANIMATION_END:ce.isWebKit?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:ce.isWebKit?"webkitAnimationIteration":"animationiteration"},j.EventHelper={stop:(N,j)=>(N.preventDefault(),j&&N.stopPropagation(),N)};class ee extends we.Disposable{static hasFocusWithin(N){if(Q(N)){const j=H(N);return B(j?j.activeElement:N.ownerDocument.activeElement,N)}{const j=N;return B(j.document.activeElement,j.document)}}constructor(N){super(),this._onDidFocus=this._register(new Ce.Emitter),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new Ce.Emitter),this.onDidBlur=this._onDidBlur.event;let X=ee.hasFocusWithin(N),ie=!1;const r=()=>{ie=!1,X||(X=!0,this._onDidFocus.fire())},n=()=>{X&&(ie=!0,(Q(N)?(0,j.getWindow)(N):N).setTimeout((()=>{ie&&(ie=!1,X=!1,this._onDidBlur.fire())}),0))};this._refreshStateHandler=()=>{ee.hasFocusWithin(N)!==X&&(X?n():r())},this._register(C(N,j.EventType.FOCUS,r,!0)),this._register(C(N,j.EventType.BLUR,n,!0)),Q(N)&&(this._register(C(N,j.EventType.FOCUS_IN,(()=>this._refreshStateHandler()))),this._register(C(N,j.EventType.FOCUS_OUT,(()=>this._refreshStateHandler()))))}refreshState(){this._refreshStateHandler()}}function te(N,...j){if(N.append(...j),1===j.length&&"string"!=typeof j[0])return j[0]}const Me=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var Oe;function re(N,j,X,...ie){const se=Me.exec(j);if(!se)throw new Error("Bad use of emmet");const le=se[1]||"div";let he;return he=N!==Oe.HTML?document.createElementNS(N,le):document.createElement(le),se[3]&&(he.id=se[3]),se[4]&&(he.className=se[4].replace(/\./g," ").trim()),X&&Object.entries(X).forEach((([N,j])=>{void 0!==j&&(/^on\w+$/.test(N)?he[N]=j:"selected"===N?j&&he.setAttribute(N,"true"):he.setAttribute(N,j))})),he.append(...ie),he}function ne(N,j,...X){return re(Oe.HTML,N,j,...X)}function oe(...N){for(const j of N)j.style.display="",j.removeAttribute("aria-hidden")}function ae(...N){for(const j of N)j.style.display="none",j.setAttribute("aria-hidden","true")}!function(N){N.HTML="http://www.w3.org/1999/xhtml",N.SVG="http://www.w3.org/2000/svg"}(Oe||(j.Namespace=Oe={})),ne.SVG=function(N,j,...X){return re(Oe.SVG,N,j,...X)};const Ie=780,Pe=640;var xe;!function(N){N[N.DOCUMENT=1]="DOCUMENT",N[N.BROWSER=2]="BROWSER"}(xe||(j.DetectedFullscreenMode=xe={}));class de extends Ce.Emitter{constructor(){super(),this._subscriptions=new we.DisposableStore,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(Ce.Event.runAndSubscribe(j.onDidRegisterWindow,(({window:N,disposables:j})=>this.registerListeners(N,j)),{window:Le.mainWindow,disposables:this._subscriptions}))}registerListeners(N,j){j.add(C(N,"keydown",(N=>{if(N.defaultPrevented)return;const j=new me.StandardKeyboardEvent(N);if(j.keyCode!==ye.KeyCode.Alt||!N.repeat){if(N.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(N.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(N.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(N.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else{if(j.keyCode===ye.KeyCode.Alt)return;this._keyStatus.lastKeyPressed=void 0}this._keyStatus.altKey=N.altKey,this._keyStatus.ctrlKey=N.ctrlKey,this._keyStatus.metaKey=N.metaKey,this._keyStatus.shiftKey=N.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=N,this.fire(this._keyStatus))}}),!0)),j.add(C(N,"keyup",(N=>{N.defaultPrevented||(!N.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!N.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!N.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!N.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=N.altKey,this._keyStatus.ctrlKey=N.ctrlKey,this._keyStatus.metaKey=N.metaKey,this._keyStatus.shiftKey=N.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=N,this.fire(this._keyStatus)))}),!0)),j.add(C(N.document.body,"mousedown",(()=>{this._keyStatus.lastKeyPressed=void 0}),!0)),j.add(C(N.document.body,"mouseup",(()=>{this._keyStatus.lastKeyPressed=void 0}),!0)),j.add(C(N.document.body,"mousemove",(N=>{N.buttons&&(this._keyStatus.lastKeyPressed=void 0)}),!0)),j.add(C(N,"blur",(()=>{this.resetKeyStatus()})))}get keyStatus(){return this._keyStatus}get isModifierPressed(){return this._keyStatus.altKey||this._keyStatus.ctrlKey||this._keyStatus.metaKey||this._keyStatus.shiftKey}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return de.instance||(de.instance=new de),de.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}j.ModifierKeyEmitter=de;class ue extends we.Disposable{constructor(N,j){super(),this.element=N,this.callbacks=j,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(C(this.element,j.EventType.DRAG_START,(N=>{this.callbacks.onDragStart?.(N)}))),this.callbacks.onDrag&&this._register(C(this.element,j.EventType.DRAG,(N=>{this.callbacks.onDrag?.(N)}))),this._register(C(this.element,j.EventType.DRAG_ENTER,(N=>{this.counter++,this.dragStartTime=N.timeStamp,this.callbacks.onDragEnter?.(N)}))),this._register(C(this.element,j.EventType.DRAG_OVER,(N=>{N.preventDefault(),this.callbacks.onDragOver?.(N,N.timeStamp-this.dragStartTime)}))),this._register(C(this.element,j.EventType.DRAG_LEAVE,(N=>{this.counter--,0===this.counter&&(this.dragStartTime=0,this.callbacks.onDragLeave?.(N))}))),this._register(C(this.element,j.EventType.DRAG_END,(N=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDragEnd?.(N)}))),this._register(C(this.element,j.EventType.DROP,(N=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDrop?.(N)})))}}j.DragAndDropObserver=ue;const Be=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;function fe(N){return N.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function pe(N,j,X){for(const{name:ie,value:se}of N.attributes)X&&!X.includes(ie)||j.setAttribute(ie,se)}function ge(N,j,X){const ie=N.getAttribute(X);ie?j.setAttribute(X,ie):j.removeAttribute(X)}j.SafeTriangle=class{constructor(N,j,X){this.originX=N,this.originY=j,this.triangles=[];const{top:ie,left:se,right:le,bottom:he}=X.getBoundingClientRect(),ce=this.triangles;let _e=0;ce[_e++]=se,ce[_e++]=ie,ce[_e++]=le,ce[_e++]=ie,ce[_e++]=se,ce[_e++]=ie,ce[_e++]=se,ce[_e++]=he,ce[_e++]=le,ce[_e++]=ie,ce[_e++]=le,ce[_e++]=he,ce[_e++]=se,ce[_e++]=he,ce[_e++]=le,ce[_e++]=he}contains(N,j){const{triangles:X,originX:ie,originY:se}=this;for(let le=0;le<4;le++)if((0,Ae.isPointWithinTriangle)(N,j,ie,se,X[2*le],X[2*le+1],X[2*le+2],X[2*le+3]))return!0;return!1}}},9675:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.FastDomNode=void 0,j.createFastDomNode=function(N){return new i(N)};class i{constructor(N){this.domNode=N,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingTop="",this._paddingLeft="",this._paddingBottom="",this._paddingRight="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(N){const j=s(N);this._maxWidth!==j&&(this._maxWidth=j,this.domNode.style.maxWidth=this._maxWidth)}setWidth(N){const j=s(N);this._width!==j&&(this._width=j,this.domNode.style.width=this._width)}setHeight(N){const j=s(N);this._height!==j&&(this._height=j,this.domNode.style.height=this._height)}setTop(N){const j=s(N);this._top!==j&&(this._top=j,this.domNode.style.top=this._top)}setLeft(N){const j=s(N);this._left!==j&&(this._left=j,this.domNode.style.left=this._left)}setBottom(N){const j=s(N);this._bottom!==j&&(this._bottom=j,this.domNode.style.bottom=this._bottom)}setRight(N){const j=s(N);this._right!==j&&(this._right=j,this.domNode.style.right=this._right)}setPaddingTop(N){const j=s(N);this._paddingTop!==j&&(this._paddingTop=j,this.domNode.style.paddingTop=this._paddingTop)}setPaddingLeft(N){const j=s(N);this._paddingLeft!==j&&(this._paddingLeft=j,this.domNode.style.paddingLeft=this._paddingLeft)}setPaddingBottom(N){const j=s(N);this._paddingBottom!==j&&(this._paddingBottom=j,this.domNode.style.paddingBottom=this._paddingBottom)}setPaddingRight(N){const j=s(N);this._paddingRight!==j&&(this._paddingRight=j,this.domNode.style.paddingRight=this._paddingRight)}setFontFamily(N){this._fontFamily!==N&&(this._fontFamily=N,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(N){this._fontWeight!==N&&(this._fontWeight=N,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(N){const j=s(N);this._fontSize!==j&&(this._fontSize=j,this.domNode.style.fontSize=this._fontSize)}setFontStyle(N){this._fontStyle!==N&&(this._fontStyle=N,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(N){this._fontFeatureSettings!==N&&(this._fontFeatureSettings=N,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(N){this._fontVariationSettings!==N&&(this._fontVariationSettings=N,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(N){this._textDecoration!==N&&(this._textDecoration=N,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(N){const j=s(N);this._lineHeight!==j&&(this._lineHeight=j,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(N){const j=s(N);this._letterSpacing!==j&&(this._letterSpacing=j,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(N){this._className!==N&&(this._className=N,this.domNode.className=this._className)}toggleClassName(N,j){this.domNode.classList.toggle(N,j),this._className=this.domNode.className}setDisplay(N){this._display!==N&&(this._display=N,this.domNode.style.display=this._display)}setPosition(N){this._position!==N&&(this._position=N,this.domNode.style.position=this._position)}setVisibility(N){this._visibility!==N&&(this._visibility=N,this.domNode.style.visibility=this._visibility)}setColor(N){this._color!==N&&(this._color=N,this.domNode.style.color=this._color)}setBackgroundColor(N){this._backgroundColor!==N&&(this._backgroundColor=N,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(N){this._layerHint!==N&&(this._layerHint=N,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(N){this._boxShadow!==N&&(this._boxShadow=N,this.domNode.style.boxShadow=N)}setContain(N){this._contain!==N&&(this._contain=N,this.domNode.style.contain=this._contain)}setAttribute(N,j){this.domNode.setAttribute(N,j)}removeAttribute(N){this.domNode.removeAttribute(N)}appendChild(N){this.domNode.appendChild(N.domNode)}removeChild(N){this.domNode.removeChild(N.domNode)}}function s(N){return"number"==typeof N?`${N}px`:N}j.FastDomNode=i},8328:function(N,j,X){var ie=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),se=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),le=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&ie(j,N,X);return se(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.GlobalPointerMoveMonitor=void 0;const he=le(X(7093)),ce=X(7150);j.GlobalPointerMoveMonitor=class{constructor(){this._hooks=new ce.DisposableStore,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(N,j){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const X=this._onStopCallback;this._onStopCallback=null,N&&X&&X(j)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(N,j,X,ie,se){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=ie,this._onStopCallback=se;let le=N;try{N.setPointerCapture(j),this._hooks.add((0,ce.toDisposable)((()=>{try{N.releasePointerCapture(j)}catch(N){}})))}catch(j){le=he.getWindow(N)}this._hooks.add(he.addDisposableListener(le,he.EventType.POINTER_MOVE,(N=>{N.buttons===X?(N.preventDefault(),this._pointerMoveCallback(N)):this.stopMonitoring(!0)}))),this._hooks.add(he.addDisposableListener(le,he.EventType.POINTER_UP,(N=>this.stopMonitoring(!0))))}}},6609:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.IframeUtils=void 0,j.parentOriginHash=async function(N,j){if(!crypto.subtle)throw new Error("'crypto.subtle' is not available so webviews will not work. This is likely because the editor is not running in a secure context (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).");const X=JSON.stringify({parentOrigin:N,salt:j}),ie=(new TextEncoder).encode(X);return function(N){const j=Array.from(new Uint8Array(N)).map((N=>N.toString(16).padStart(2,"0"))).join("");return BigInt(`0x${j}`).toString(32).padStart(52,"0")}(await crypto.subtle.digest("sha-256",ie))};const X=new WeakMap;function s(N){if(!N.parent||N.parent===N)return null;try{const j=N.location,X=N.parent.location;if("null"!==j.origin&&"null"!==X.origin&&j.origin!==X.origin)return null}catch(N){return null}return N.parent}j.IframeUtils=class{static getSameOriginWindowChain(N){let j=X.get(N);if(!j){j=[],X.set(N,j);let ie,se=N;do{ie=s(se),ie?j.push({window:new WeakRef(se),iframeElement:se.frameElement||null}):j.push({window:new WeakRef(se),iframeElement:null}),se=ie}while(se)}return j.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(N,j){if(!j||N===j)return{top:0,left:0};let X=0,ie=0;const se=this.getSameOriginWindowChain(N);for(const N of se){const se=N.window.deref();if(X+=se?.scrollY??0,ie+=se?.scrollX??0,se===j)break;if(!N.iframeElement)break;const le=N.iframeElement.getBoundingClientRect();X+=le.top,ie+=le.left}return{top:X,left:ie}}}},5394:function(N,j,X){var ie=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),se=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),le=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&ie(j,N,X);return se(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.StandardKeyboardEvent=void 0,j.printKeyboardEvent=function(N){const j=[];return N.ctrlKey&&j.push("ctrl"),N.shiftKey&&j.push("shift"),N.altKey&&j.push("alt"),N.metaKey&&j.push("meta"),`modifiers: [${j.join(",")}], code: ${N.code}, keyCode: ${N.keyCode}, key: ${N.key}`},j.printStandardKeyboardEvent=function(N){const j=[];return N.ctrlKey&&j.push("ctrl"),N.shiftKey&&j.push("shift"),N.altKey&&j.push("alt"),N.metaKey&&j.push("meta"),`modifiers: [${j.join(",")}], code: ${N.code}, keyCode: ${N.keyCode} ('${ce.KeyCodeUtils.toString(N.keyCode)}')`};const he=le(X(4333)),ce=X(7883),_e=X(2811),me=le(X(8163)),ve=me.isMacintosh?ce.KeyMod.WinCtrl:ce.KeyMod.CtrlCmd,Se=ce.KeyMod.Alt,be=ce.KeyMod.Shift,Ce=me.isMacintosh?ce.KeyMod.CtrlCmd:ce.KeyMod.WinCtrl;j.StandardKeyboardEvent=class{constructor(N){this._standardKeyboardEventBrand=!0;const j=N;this.browserEvent=j,this.target=j.target,this.ctrlKey=j.ctrlKey,this.shiftKey=j.shiftKey,this.altKey=j.altKey,this.metaKey=j.metaKey,this.altGraphKey=j.getModifierState?.("AltGraph"),this.keyCode=function(N){if(N.charCode){const j=String.fromCharCode(N.charCode).toUpperCase();return ce.KeyCodeUtils.fromString(j)}const j=N.keyCode;if(3===j)return ce.KeyCode.PauseBreak;if(he.isFirefox)switch(j){case 59:return ce.KeyCode.Semicolon;case 60:if(me.isLinux)return ce.KeyCode.IntlBackslash;break;case 61:return ce.KeyCode.Equal;case 107:return ce.KeyCode.NumpadAdd;case 109:return ce.KeyCode.NumpadSubtract;case 173:return ce.KeyCode.Minus;case 224:if(me.isMacintosh)return ce.KeyCode.Meta}else if(he.isWebKit){if(me.isMacintosh&&93===j)return ce.KeyCode.Meta;if(!me.isMacintosh&&92===j)return ce.KeyCode.Meta}return ce.EVENT_KEY_CODE_MAP[j]||ce.KeyCode.Unknown}(j),this.code=j.code,this.ctrlKey=this.ctrlKey||this.keyCode===ce.KeyCode.Ctrl,this.altKey=this.altKey||this.keyCode===ce.KeyCode.Alt,this.shiftKey=this.shiftKey||this.keyCode===ce.KeyCode.Shift,this.metaKey=this.metaKey||this.keyCode===ce.KeyCode.Meta,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(N){return this._asKeybinding===N}_computeKeybinding(){let N=ce.KeyCode.Unknown;this.keyCode!==ce.KeyCode.Ctrl&&this.keyCode!==ce.KeyCode.Shift&&this.keyCode!==ce.KeyCode.Alt&&this.keyCode!==ce.KeyCode.Meta&&(N=this.keyCode);let j=0;return this.ctrlKey&&(j|=ve),this.altKey&&(j|=Se),this.shiftKey&&(j|=be),this.metaKey&&(j|=Ce),j|=N,j}_computeKeyCodeChord(){let N=ce.KeyCode.Unknown;return this.keyCode!==ce.KeyCode.Ctrl&&this.keyCode!==ce.KeyCode.Shift&&this.keyCode!==ce.KeyCode.Alt&&this.keyCode!==ce.KeyCode.Meta&&(N=this.keyCode),new _e.KeyCodeChord(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,N)}}},5964:function(N,j,X){var ie=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),se=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),le=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&ie(j,N,X);return se(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.StandardWheelEvent=j.DragMouseEvent=j.StandardMouseEvent=void 0;const he=le(X(4333)),ce=X(6609),_e=le(X(8163));class h{constructor(N,j){this.timestamp=Date.now(),this.browserEvent=j,this.leftButton=0===j.button,this.middleButton=1===j.button,this.rightButton=2===j.button,this.buttons=j.buttons,this.target=j.target,this.detail=j.detail||1,"dblclick"===j.type&&(this.detail=2),this.ctrlKey=j.ctrlKey,this.shiftKey=j.shiftKey,this.altKey=j.altKey,this.metaKey=j.metaKey,"number"==typeof j.pageX?(this.posx=j.pageX,this.posy=j.pageY):(this.posx=j.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=j.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const X=ce.IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(N,j.view);this.posx-=X.left,this.posy-=X.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}j.StandardMouseEvent=h,j.DragMouseEvent=class extends h{constructor(N,j){super(N,j),this.dataTransfer=j.dataTransfer}},j.StandardWheelEvent=class{constructor(N,j=0,X=0){this.browserEvent=N||null,this.target=N?N.target||N.targetNode||N.srcElement:null,this.deltaY=X,this.deltaX=j;let ie=!1;if(he.isChrome){const N=navigator.userAgent.match(/Chrome\/(\d+)/);ie=(N?parseInt(N[1]):123)<=122}if(N){const j=N,X=N,se=N.view?.devicePixelRatio||1;if(void 0!==j.wheelDeltaY)this.deltaY=ie?j.wheelDeltaY/(120*se):j.wheelDeltaY/120;else if(void 0!==X.VERTICAL_AXIS&&X.axis===X.VERTICAL_AXIS)this.deltaY=-X.detail/3;else if("wheel"===N.type){const j=N;j.deltaMode===j.DOM_DELTA_LINE?he.isFirefox&&!_e.isMacintosh?this.deltaY=-N.deltaY/3:this.deltaY=-N.deltaY:this.deltaY=-N.deltaY/40}if(void 0!==j.wheelDeltaX)he.isSafari&&_e.isWindows?this.deltaX=-j.wheelDeltaX/120:this.deltaX=ie?j.wheelDeltaX/(120*se):j.wheelDeltaX/120;else if(void 0!==X.HORIZONTAL_AXIS&&X.axis===X.HORIZONTAL_AXIS)this.deltaX=-N.detail/3;else if("wheel"===N.type){const j=N;j.deltaMode===j.DOM_DELTA_LINE?he.isFirefox&&!_e.isMacintosh?this.deltaX=-N.deltaX/3:this.deltaX=-N.deltaX:this.deltaX=-N.deltaX/40}0===this.deltaY&&0===this.deltaX&&N.wheelDelta&&(this.deltaY=ie?N.wheelDelta/(120*se):N.wheelDelta/120)}}preventDefault(){this.browserEvent?.preventDefault()}stopPropagation(){this.browserEvent?.stopPropagation()}}},8594:function(N,j,X){var ie=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),se=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),le=this&&this.__decorate||function(N,j,X,ie){var se,le=arguments.length,he=le<3?j:null===ie?ie=Object.getOwnPropertyDescriptor(j,X):ie;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)he=Reflect.decorate(N,j,X,ie);else for(var ce=N.length-1;ce>=0;ce--)(se=N[ce])&&(he=(le<3?se(he):le>3?se(j,X,he):se(j,X))||he);return le>3&&he&&Object.defineProperty(j,X,he),he},he=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&ie(j,N,X);return se(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.Gesture=j.EventType=void 0;const ce=he(X(7093)),_e=X(4693),me=he(X(3058)),ve=X(4838),Se=X(802),be=X(7150),Ce=X(6317);var ye;!function(N){N.Tap="-xterm-gesturetap",N.Change="-xterm-gesturechange",N.Start="-xterm-gesturestart",N.End="-xterm-gesturesend",N.Contextmenu="-xterm-gesturecontextmenu"}(ye||(j.EventType=ye={}));class p extends be.Disposable{static{this.SCROLL_FRICTION=-.005}static{this.HOLD_DELAY=700}static{this.CLEAR_TAP_COUNT_TIME=400}constructor(){super(),this.dispatched=!1,this.targets=new Ce.LinkedList,this.ignoreTargets=new Ce.LinkedList,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(Se.Event.runAndSubscribe(ce.onDidRegisterWindow,(({window:N,disposables:j})=>{j.add(ce.addDisposableListener(N.document,"touchstart",(N=>this.onTouchStart(N)),{passive:!1})),j.add(ce.addDisposableListener(N.document,"touchend",(j=>this.onTouchEnd(N,j)))),j.add(ce.addDisposableListener(N.document,"touchmove",(N=>this.onTouchMove(N)),{passive:!1}))}),{window:_e.mainWindow,disposables:this._store}))}static addTarget(N){if(!p.isTouchDevice())return be.Disposable.None;p.INSTANCE||(p.INSTANCE=(0,be.markAsSingleton)(new p));const j=p.INSTANCE.targets.push(N);return(0,be.toDisposable)(j)}static ignoreTarget(N){if(!p.isTouchDevice())return be.Disposable.None;p.INSTANCE||(p.INSTANCE=(0,be.markAsSingleton)(new p));const j=p.INSTANCE.ignoreTargets.push(N);return(0,be.toDisposable)(j)}static isTouchDevice(){return"ontouchstart"in _e.mainWindow||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(N){const j=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let X=0,ie=N.targetTouches.length;X=p.HOLD_DELAY&&Math.abs(he.initialPageX-me.tail(he.rollingPageX))<30&&Math.abs(he.initialPageY-me.tail(he.rollingPageY))<30){const N=this.newGestureEvent(ye.Contextmenu,he.initialTarget);N.pageX=me.tail(he.rollingPageX),N.pageY=me.tail(he.rollingPageY),this.dispatchEvent(N)}else if(1===ie){const j=me.tail(he.rollingPageX),ie=me.tail(he.rollingPageY),se=me.tail(he.rollingTimestamps)-he.rollingTimestamps[0],le=j-he.rollingPageX[0],ce=ie-he.rollingPageY[0],_e=[...this.targets].filter((N=>he.initialTarget instanceof Node&&N.contains(he.initialTarget)));this.inertia(N,_e,X,Math.abs(le)/se,le>0?1:-1,j,Math.abs(ce)/se,ce>0?1:-1,ie)}this.dispatchEvent(this.newGestureEvent(ye.End,he.initialTarget)),delete this.activeTouches[le.identifier]}this.dispatched&&(j.preventDefault(),j.stopPropagation(),this.dispatched=!1)}newGestureEvent(N,j){const X=document.createEvent("CustomEvent");return X.initEvent(N,!1,!0),X.initialTarget=j,X.tapCount=0,X}dispatchEvent(N){if(N.type===ye.Tap){const j=(new Date).getTime();let X=0;X=j-this._lastSetTapCountTime>p.CLEAR_TAP_COUNT_TIME?1:2,this._lastSetTapCountTime=j,N.tapCount=X}else N.type!==ye.Change&&N.type!==ye.Contextmenu||(this._lastSetTapCountTime=0);if(N.initialTarget instanceof Node){for(const j of this.ignoreTargets)if(j.contains(N.initialTarget))return;const j=[];for(const X of this.targets)if(X.contains(N.initialTarget)){let ie=0,se=N.initialTarget;for(;se&&se!==X;)ie++,se=se.parentElement;j.push([ie,X])}j.sort(((N,j)=>N[0]-j[0]));for(const[X,ie]of j)ie.dispatchEvent(N),this.dispatched=!0}}inertia(N,j,X,ie,se,le,he,_e,me){this.handle=ce.scheduleAtNextAnimationFrame(N,(()=>{const ce=Date.now(),ve=ce-X;let Se=0,be=0,Ce=!0;ie+=p.SCROLL_FRICTION*ve,he+=p.SCROLL_FRICTION*ve,ie>0&&(Ce=!1,Se=se*ie*ve),he>0&&(Ce=!1,be=_e*he*ve);const we=this.newGestureEvent(ye.Change);we.translationX=Se,we.translationY=be,j.forEach((N=>N.dispatchEvent(we))),Ce||this.inertia(N,j,ce,ie,se,le+Se,he,_e,me+be)}))}onTouchMove(N){const j=Date.now();for(let X=0,ie=N.changedTouches.length;X3&&(se.rollingPageX.shift(),se.rollingPageY.shift(),se.rollingTimestamps.shift()),se.rollingPageX.push(ie.pageX),se.rollingPageY.push(ie.pageY),se.rollingTimestamps.push(j)}this.dispatched&&(N.preventDefault(),N.stopPropagation(),this.dispatched=!1)}}j.Gesture=p,le([ve.memoize],p,"isTouchDevice",null)},8801:function(N,j,X){var ie=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),se=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),le=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&ie(j,N,X);return se(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.AbstractScrollbar=void 0;const he=le(X(7093)),ce=X(9675),_e=X(8328),me=X(8974),ve=X(79),Se=X(8286),be=le(X(8163));class _ extends Se.Widget{constructor(N){super(),this._lazyRender=N.lazyRender,this._host=N.host,this._scrollable=N.scrollable,this._scrollByPage=N.scrollByPage,this._scrollbarState=N.scrollbarState,this._visibilityController=this._register(new ve.ScrollbarVisibilityController(N.visibility,"visible scrollbar "+N.extraScrollbarClassName,"invisible scrollbar "+N.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new _e.GlobalPointerMoveMonitor),this._shouldRender=!0,this.domNode=(0,ce.createFastDomNode)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(he.addDisposableListener(this.domNode.domNode,he.EventType.POINTER_DOWN,(N=>this._domNodePointerDown(N))))}_createArrow(N){const j=this._register(new me.ScrollbarArrow(N));this.domNode.domNode.appendChild(j.bgDomNode),this.domNode.domNode.appendChild(j.domNode)}_createSlider(N,j,X,ie){this.slider=(0,ce.createFastDomNode)(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(N),this.slider.setLeft(j),"number"==typeof X&&this.slider.setWidth(X),"number"==typeof ie&&this.slider.setHeight(ie),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(he.addDisposableListener(this.slider.domNode,he.EventType.POINTER_DOWN,(N=>{0===N.button&&(N.preventDefault(),this._sliderPointerDown(N))}))),this.onclick(this.slider.domNode,(N=>{N.leftButton&&N.stopPropagation()}))}_onElementSize(N){return this._scrollbarState.setVisibleSize(N)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(N){return this._scrollbarState.setScrollSize(N)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(N){return this._scrollbarState.setScrollPosition(N)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(N){N.target===this.domNode.domNode&&this._onPointerDown(N)}delegatePointerDown(N){const j=this.domNode.domNode.getClientRects()[0].top,X=j+this._scrollbarState.getSliderPosition(),ie=j+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),se=this._sliderPointerPosition(N);X<=se&&se<=ie?0===N.button&&(N.preventDefault(),this._sliderPointerDown(N)):this._onPointerDown(N)}_onPointerDown(N){let j,X;if(N.target===this.domNode.domNode&&"number"==typeof N.offsetX&&"number"==typeof N.offsetY)j=N.offsetX,X=N.offsetY;else{const ie=he.getDomNodePagePosition(this.domNode.domNode);j=N.pageX-ie.left,X=N.pageY-ie.top}const ie=this._pointerDownRelativePosition(j,X);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(ie):this._scrollbarState.getDesiredScrollPositionFromOffset(ie)),0===N.button&&(N.preventDefault(),this._sliderPointerDown(N))}_sliderPointerDown(N){if(!(N.target&&N.target instanceof Element))return;const j=this._sliderPointerPosition(N),X=this._sliderOrthogonalPointerPosition(N),ie=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(N.target,N.pointerId,N.buttons,(N=>{const se=this._sliderOrthogonalPointerPosition(N),le=Math.abs(se-X);if(be.isWindows&&le>140)return void this._setDesiredScrollPositionNow(ie.getScrollPosition());const he=this._sliderPointerPosition(N)-j;this._setDesiredScrollPositionNow(ie.getDesiredScrollPositionFromDelta(he))}),(()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()})),this._host.onDragStart()}_setDesiredScrollPositionNow(N){const j={};this.writeScrollPosition(j,N),this._scrollable.setScrollPositionNow(j)}updateScrollbarSize(N){this._updateScrollbarSize(N),this._scrollbarState.setScrollbarSize(N),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}j.AbstractScrollbar=_},151:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.HorizontalScrollbar=void 0;const ie=X(8801),se=X(8245),le=X(9881);class o extends ie.AbstractScrollbar{constructor(N,j,X){const ie=N.getScrollDimensions(),he=N.getCurrentScrollPosition();if(super({lazyRender:j.lazyRender,host:X,scrollbarState:new se.ScrollbarState(j.horizontalHasArrows?j.arrowSize:0,j.horizontal===le.ScrollbarVisibility.Hidden?0:j.horizontalScrollbarSize,j.vertical===le.ScrollbarVisibility.Hidden?0:j.verticalScrollbarSize,ie.width,ie.scrollWidth,he.scrollLeft),visibility:j.horizontal,extraScrollbarClassName:"horizontal",scrollable:N,scrollByPage:j.scrollByPage}),j.horizontalHasArrows)throw new Error("horizontalHasArrows is not supported in xterm.js");this._createSlider(Math.floor((j.horizontalScrollbarSize-j.horizontalSliderSize)/2),0,void 0,j.horizontalSliderSize)}_updateSlider(N,j){this.slider.setWidth(N),this.slider.setLeft(j)}_renderDomNode(N,j){this.domNode.setWidth(N),this.domNode.setHeight(j),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(N){return this._shouldRender=this._onElementScrollSize(N.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(N.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(N.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(N,j){return N}_sliderPointerPosition(N){return N.pageX}_sliderOrthogonalPointerPosition(N){return N.pageY}_updateScrollbarSize(N){this.slider.setHeight(N)}writeScrollPosition(N,j){N.scrollLeft=j}updateOptions(N){this.updateScrollbarSize(N.horizontal===le.ScrollbarVisibility.Hidden?0:N.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(N.vertical===le.ScrollbarVisibility.Hidden?0:N.verticalScrollbarSize),this._visibilityController.setVisibility(N.horizontal),this._scrollByPage=N.scrollByPage}}j.HorizontalScrollbar=o},8234:function(N,j,X){var ie=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),se=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),le=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&ie(j,N,X);return se(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.DomScrollableElement=j.SmoothScrollableElement=j.ScrollableElement=j.AbstractScrollableElement=j.MouseWheelClassifier=void 0;const he=X(4333),ce=le(X(7093)),_e=X(9675),me=X(5964),ve=X(151),Se=X(5473),be=X(8286),Ce=X(1758),ye=X(802),we=X(7150),Ee=le(X(8163)),De=X(9881);class v{constructor(N,j,X){this.timestamp=N,this.deltaX=j,this.deltaY=X,this.score=0}}class S{static{this.INSTANCE=new S}constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(-1===this._front&&-1===this._rear)return!1;let N=1,j=0,X=1,ie=this._rear;for(;;){const se=ie===this._front?N:Math.pow(2,-X);if(N-=se,j+=this._memory[ie].score*se,ie===this._front)break;ie=(this._capacity+ie-1)%this._capacity,X++}return j<=.5}acceptStandardWheelEvent(N){if(he.isChrome){const j=ce.getWindow(N.browserEvent),X=(0,he.getZoomFactor)(j);this.accept(Date.now(),N.deltaX*X,N.deltaY*X)}else this.accept(Date.now(),N.deltaX,N.deltaY)}accept(N,j,X){let ie=null;const se=new v(N,j,X);-1===this._front&&-1===this._rear?(this._memory[0]=se,this._front=0,this._rear=0):(ie=this._memory[this._rear],this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=se),se.score=this._computeScore(se,ie)}_computeScore(N,j){if(Math.abs(N.deltaX)>0&&Math.abs(N.deltaY)>0)return 1;let X=.5;if(this._isAlmostInt(N.deltaX)&&this._isAlmostInt(N.deltaY)||(X+=.25),j){const ie=Math.abs(N.deltaX),se=Math.abs(N.deltaY),le=Math.abs(j.deltaX),he=Math.abs(j.deltaY),ce=Math.max(Math.min(ie,le),1),_e=Math.max(Math.min(se,he),1),me=Math.max(ie,le),ve=Math.max(se,he);me%ce==0&&ve%_e==0&&(X-=.5)}return Math.min(Math.max(X,0),1)}_isAlmostInt(N){return Math.abs(Math.round(N)-N)<.01}}j.MouseWheelClassifier=S;class b extends be.Widget{get options(){return this._options}constructor(N,j,X){super(),this._onScroll=this._register(new ye.Emitter),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new ye.Emitter),this.onWillScroll=this._onWillScroll.event,this._options=function(N){const j={lazyRender:void 0!==N.lazyRender&&N.lazyRender,className:void 0!==N.className?N.className:"",useShadows:void 0===N.useShadows||N.useShadows,handleMouseWheel:void 0===N.handleMouseWheel||N.handleMouseWheel,flipAxes:void 0!==N.flipAxes&&N.flipAxes,consumeMouseWheelIfScrollbarIsNeeded:void 0!==N.consumeMouseWheelIfScrollbarIsNeeded&&N.consumeMouseWheelIfScrollbarIsNeeded,alwaysConsumeMouseWheel:void 0!==N.alwaysConsumeMouseWheel&&N.alwaysConsumeMouseWheel,scrollYToX:void 0!==N.scrollYToX&&N.scrollYToX,mouseWheelScrollSensitivity:void 0!==N.mouseWheelScrollSensitivity?N.mouseWheelScrollSensitivity:1,fastScrollSensitivity:void 0!==N.fastScrollSensitivity?N.fastScrollSensitivity:5,scrollPredominantAxis:void 0===N.scrollPredominantAxis||N.scrollPredominantAxis,mouseWheelSmoothScroll:void 0===N.mouseWheelSmoothScroll||N.mouseWheelSmoothScroll,arrowSize:void 0!==N.arrowSize?N.arrowSize:11,listenOnDomNode:void 0!==N.listenOnDomNode?N.listenOnDomNode:null,horizontal:void 0!==N.horizontal?N.horizontal:De.ScrollbarVisibility.Auto,horizontalScrollbarSize:void 0!==N.horizontalScrollbarSize?N.horizontalScrollbarSize:10,horizontalSliderSize:void 0!==N.horizontalSliderSize?N.horizontalSliderSize:0,horizontalHasArrows:void 0!==N.horizontalHasArrows&&N.horizontalHasArrows,vertical:void 0!==N.vertical?N.vertical:De.ScrollbarVisibility.Auto,verticalScrollbarSize:void 0!==N.verticalScrollbarSize?N.verticalScrollbarSize:10,verticalHasArrows:void 0!==N.verticalHasArrows&&N.verticalHasArrows,verticalSliderSize:void 0!==N.verticalSliderSize?N.verticalSliderSize:0,scrollByPage:void 0!==N.scrollByPage&&N.scrollByPage};return j.horizontalSliderSize=void 0!==N.horizontalSliderSize?N.horizontalSliderSize:j.horizontalScrollbarSize,j.verticalSliderSize=void 0!==N.verticalSliderSize?N.verticalSliderSize:j.verticalScrollbarSize,Ee.isMacintosh&&(j.className+=" mac"),j}(j),this._scrollable=X,this._register(this._scrollable.onScroll((N=>{this._onWillScroll.fire(N),this._onDidScroll(N),this._onScroll.fire(N)})));const ie={onMouseWheel:N=>this._onMouseWheel(N),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new Se.VerticalScrollbar(this._scrollable,this._options,ie)),this._horizontalScrollbar=this._register(new ve.HorizontalScrollbar(this._scrollable,this._options,ie)),this._domNode=document.createElement("div"),this._domNode.className="xterm-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.appendChild(N),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=(0,_e.createFastDomNode)(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=(0,_e.createFastDomNode)(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=(0,_e.createFastDomNode)(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,(N=>this._onMouseOver(N))),this.onmouseleave(this._listenOnDomNode,(N=>this._onMouseLeave(N))),this._hideTimeout=this._register(new Ce.TimeoutTimer),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=(0,we.dispose)(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(N){this._verticalScrollbar.delegatePointerDown(N)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(N){this._scrollable.setScrollDimensions(N,!1)}updateClassName(N){this._options.className=N,Ee.isMacintosh&&(this._options.className+=" mac"),this._domNode.className="xterm-scrollable-element "+this._options.className}updateOptions(N){void 0!==N.handleMouseWheel&&(this._options.handleMouseWheel=N.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),void 0!==N.mouseWheelScrollSensitivity&&(this._options.mouseWheelScrollSensitivity=N.mouseWheelScrollSensitivity),void 0!==N.fastScrollSensitivity&&(this._options.fastScrollSensitivity=N.fastScrollSensitivity),void 0!==N.scrollPredominantAxis&&(this._options.scrollPredominantAxis=N.scrollPredominantAxis),void 0!==N.horizontal&&(this._options.horizontal=N.horizontal),void 0!==N.vertical&&(this._options.vertical=N.vertical),void 0!==N.horizontalScrollbarSize&&(this._options.horizontalScrollbarSize=N.horizontalScrollbarSize),void 0!==N.verticalScrollbarSize&&(this._options.verticalScrollbarSize=N.verticalScrollbarSize),void 0!==N.scrollByPage&&(this._options.scrollByPage=N.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}setRevealOnScroll(N){this._revealOnScroll=N}delegateScrollFromMouseWheelEvent(N){this._onMouseWheel(new me.StandardWheelEvent(N))}_setListeningToMouseWheel(N){if(this._mouseWheelToDispose.length>0!==N&&(this._mouseWheelToDispose=(0,we.dispose)(this._mouseWheelToDispose),N)){const e=N=>{this._onMouseWheel(new me.StandardWheelEvent(N))};this._mouseWheelToDispose.push(ce.addDisposableListener(this._listenOnDomNode,ce.EventType.MOUSE_WHEEL,e,{passive:!1}))}}_onMouseWheel(N){if(N.browserEvent?.defaultPrevented)return;const j=S.INSTANCE;j.acceptStandardWheelEvent(N);let X=!1;if(N.deltaY||N.deltaX){let ie=N.deltaY*this._options.mouseWheelScrollSensitivity,se=N.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&se+ie===0?se=ie=0:Math.abs(ie)>=Math.abs(se)?se=0:ie=0),this._options.flipAxes&&([ie,se]=[se,ie]);const le=!Ee.isMacintosh&&N.browserEvent&&N.browserEvent.shiftKey;!this._options.scrollYToX&&!le||se||(se=ie,ie=0),N.browserEvent&&N.browserEvent.altKey&&(se*=this._options.fastScrollSensitivity,ie*=this._options.fastScrollSensitivity);const he=this._scrollable.getFutureScrollPosition();let ce={};if(ie){const N=50*ie,j=he.scrollTop-(N<0?Math.floor(N):Math.ceil(N));this._verticalScrollbar.writeScrollPosition(ce,j)}if(se){const N=50*se,j=he.scrollLeft-(N<0?Math.floor(N):Math.ceil(N));this._horizontalScrollbar.writeScrollPosition(ce,j)}ce=this._scrollable.validateScrollPosition(ce),(he.scrollLeft!==ce.scrollLeft||he.scrollTop!==ce.scrollTop)&&(this._options.mouseWheelSmoothScroll&&j.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(ce):this._scrollable.setScrollPositionNow(ce),X=!0)}let ie=X;!ie&&this._options.alwaysConsumeMouseWheel&&(ie=!0),!ie&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(ie=!0),ie&&(N.preventDefault(),N.stopPropagation())}_onDidScroll(N){this._shouldRender=this._horizontalScrollbar.onDidScroll(N)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(N)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const N=this._scrollable.getCurrentScrollPosition(),j=N.scrollTop>0,X=N.scrollLeft>0,ie=X?" left":"",se=j?" top":"",le=X||j?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${ie}`),this._topShadowDomNode.setClassName(`shadow${se}`),this._topLeftShadowDomNode.setClassName(`shadow${le}${se}${ie}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(N){this._mouseIsOver=!1,this._hide()}_onMouseOver(N){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet((()=>this._hide()),500)}}j.AbstractScrollableElement=b,j.ScrollableElement=class extends b{constructor(N,j){(j=j||{}).mouseWheelSmoothScroll=!1;const X=new De.Scrollable({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:j=>ce.scheduleAtNextAnimationFrame(ce.getWindow(N),j)});super(N,j,X),this._register(X)}setScrollPosition(N){this._scrollable.setScrollPositionNow(N)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}},j.SmoothScrollableElement=class extends b{constructor(N,j,X){super(N,j,X)}setScrollPosition(N){N.reuseAnimation?this._scrollable.setScrollPositionSmooth(N,N.reuseAnimation):this._scrollable.setScrollPositionNow(N)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}},j.DomScrollableElement=class extends b{constructor(N,j){(j=j||{}).mouseWheelSmoothScroll=!1;const X=new De.Scrollable({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:j=>ce.scheduleAtNextAnimationFrame(ce.getWindow(N),j)});super(N,j,X),this._register(X),this._element=N,this._register(this.onScroll((N=>{N.scrollTopChanged&&(this._element.scrollTop=N.scrollTop),N.scrollLeftChanged&&(this._element.scrollLeft=N.scrollLeft)}))),this.scanDomNode()}setScrollPosition(N){this._scrollable.setScrollPositionNow(N)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}},8974:function(N,j,X){var ie=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),se=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),le=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&ie(j,N,X);return se(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.ScrollbarArrow=j.ARROW_IMG_SIZE=void 0;const he=X(8328),ce=X(8286),_e=X(1758),me=le(X(7093));j.ARROW_IMG_SIZE=11;class c extends ce.Widget{constructor(N){super(),this._onActivate=N.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=N.bgWidth+"px",this.bgDomNode.style.height=N.bgHeight+"px",void 0!==N.top&&(this.bgDomNode.style.top="0px"),void 0!==N.left&&(this.bgDomNode.style.left="0px"),void 0!==N.bottom&&(this.bgDomNode.style.bottom="0px"),void 0!==N.right&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=N.className,this.domNode.style.position="absolute",this.domNode.style.width=j.ARROW_IMG_SIZE+"px",this.domNode.style.height=j.ARROW_IMG_SIZE+"px",void 0!==N.top&&(this.domNode.style.top=N.top+"px"),void 0!==N.left&&(this.domNode.style.left=N.left+"px"),void 0!==N.bottom&&(this.domNode.style.bottom=N.bottom+"px"),void 0!==N.right&&(this.domNode.style.right=N.right+"px"),this._pointerMoveMonitor=this._register(new he.GlobalPointerMoveMonitor),this._register(me.addStandardDisposableListener(this.bgDomNode,me.EventType.POINTER_DOWN,(N=>this._arrowPointerDown(N)))),this._register(me.addStandardDisposableListener(this.domNode,me.EventType.POINTER_DOWN,(N=>this._arrowPointerDown(N)))),this._pointerdownRepeatTimer=this._register(new me.WindowIntervalTimer),this._pointerdownScheduleRepeatTimer=this._register(new _e.TimeoutTimer)}_arrowPointerDown(N){N.target&&N.target instanceof Element&&(this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet((()=>{this._pointerdownRepeatTimer.cancelAndSet((()=>this._onActivate()),1e3/24,me.getWindow(N))}),200),this._pointerMoveMonitor.startMonitoring(N.target,N.pointerId,N.buttons,(N=>{}),(()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()})),N.preventDefault())}}j.ScrollbarArrow=c},8245:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.ScrollbarState=void 0;class i{constructor(N,j,X,ie,se,le){this._scrollbarSize=Math.round(j),this._oppositeScrollbarSize=Math.round(X),this._arrowSize=Math.round(N),this._visibleSize=ie,this._scrollSize=se,this._scrollPosition=le,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new i(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(N){const j=Math.round(N);return this._visibleSize!==j&&(this._visibleSize=j,this._refreshComputedValues(),!0)}setScrollSize(N){const j=Math.round(N);return this._scrollSize!==j&&(this._scrollSize=j,this._refreshComputedValues(),!0)}setScrollPosition(N){const j=Math.round(N);return this._scrollPosition!==j&&(this._scrollPosition=j,this._refreshComputedValues(),!0)}setScrollbarSize(N){this._scrollbarSize=Math.round(N)}setOppositeScrollbarSize(N){this._oppositeScrollbarSize=Math.round(N)}static _computeValues(N,j,X,ie,se){const le=Math.max(0,X-N),he=Math.max(0,le-2*j),ce=ie>0&&ie>X;if(!ce)return{computedAvailableSize:Math.round(le),computedIsNeeded:ce,computedSliderSize:Math.round(he),computedSliderRatio:0,computedSliderPosition:0};const _e=Math.round(Math.max(20,Math.floor(X*he/ie))),me=(he-_e)/(ie-X),ve=se*me;return{computedAvailableSize:Math.round(le),computedIsNeeded:ce,computedSliderSize:Math.round(_e),computedSliderRatio:me,computedSliderPosition:Math.round(ve)}}_refreshComputedValues(){const N=i._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=N.computedAvailableSize,this._computedIsNeeded=N.computedIsNeeded,this._computedSliderSize=N.computedSliderSize,this._computedSliderRatio=N.computedSliderRatio,this._computedSliderPosition=N.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(N){if(!this._computedIsNeeded)return 0;const j=N-this._arrowSize-this._computedSliderSize/2;return Math.round(j/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(N){if(!this._computedIsNeeded)return 0;const j=N-this._arrowSize;let X=this._scrollPosition;return j{Object.defineProperty(j,"__esModule",{value:!0}),j.ScrollbarVisibilityController=void 0;const ie=X(1758),se=X(7150),le=X(9881);class o extends se.Disposable{constructor(N,j,X){super(),this._visibility=N,this._visibleClassName=j,this._invisibleClassName=X,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new ie.TimeoutTimer)}setVisibility(N){this._visibility!==N&&(this._visibility=N,this._updateShouldBeVisible())}setShouldBeVisible(N){this._rawShouldBeVisible=N,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility!==le.ScrollbarVisibility.Hidden&&(this._visibility===le.ScrollbarVisibility.Visible||this._rawShouldBeVisible)}_updateShouldBeVisible(){const N=this._applyVisibilitySetting();this._shouldBeVisible!==N&&(this._shouldBeVisible=N,this.ensureVisibility())}setIsNeeded(N){this._isNeeded!==N&&(this._isNeeded=N,this.ensureVisibility())}setDomNode(N){this._domNode=N,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){this._isNeeded?this._shouldBeVisible?this._reveal():this._hide(!0):this._hide(!1)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet((()=>{this._domNode?.setClassName(this._visibleClassName)}),0))}_hide(N){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode?.setClassName(this._invisibleClassName+(N?" fade":"")))}}j.ScrollbarVisibilityController=o},5473:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.VerticalScrollbar=void 0;const ie=X(8801),se=X(8245),le=X(9881);class o extends ie.AbstractScrollbar{constructor(N,j,X){const ie=N.getScrollDimensions(),he=N.getCurrentScrollPosition();if(super({lazyRender:j.lazyRender,host:X,scrollbarState:new se.ScrollbarState(j.verticalHasArrows?j.arrowSize:0,j.vertical===le.ScrollbarVisibility.Hidden?0:j.verticalScrollbarSize,0,ie.height,ie.scrollHeight,he.scrollTop),visibility:j.vertical,extraScrollbarClassName:"vertical",scrollable:N,scrollByPage:j.scrollByPage}),j.verticalHasArrows)throw new Error("horizontalHasArrows is not supported in xterm.js");this._createSlider(0,Math.floor((j.verticalScrollbarSize-j.verticalSliderSize)/2),j.verticalSliderSize,void 0)}_updateSlider(N,j){this.slider.setHeight(N),this.slider.setTop(j)}_renderDomNode(N,j){this.domNode.setWidth(j),this.domNode.setHeight(N),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(N){return this._shouldRender=this._onElementScrollSize(N.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(N.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(N.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(N,j){return j}_sliderPointerPosition(N){return N.pageY}_sliderOrthogonalPointerPosition(N){return N.pageX}_updateScrollbarSize(N){this.slider.setWidth(N)}writeScrollPosition(N,j){N.scrollTop=j}updateOptions(N){this.updateScrollbarSize(N.vertical===le.ScrollbarVisibility.Hidden?0:N.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(N.vertical),this._scrollByPage=N.scrollByPage}}j.VerticalScrollbar=o},8286:function(N,j,X){var ie=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),se=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),le=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&ie(j,N,X);return se(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.Widget=void 0;const he=le(X(7093)),ce=X(5394),_e=X(5964),me=X(8594),ve=X(7150);class d extends ve.Disposable{onclick(N,j){this._register(he.addDisposableListener(N,he.EventType.CLICK,(X=>j(new _e.StandardMouseEvent(he.getWindow(N),X)))))}onmousedown(N,j){this._register(he.addDisposableListener(N,he.EventType.MOUSE_DOWN,(X=>j(new _e.StandardMouseEvent(he.getWindow(N),X)))))}onmouseover(N,j){this._register(he.addDisposableListener(N,he.EventType.MOUSE_OVER,(X=>j(new _e.StandardMouseEvent(he.getWindow(N),X)))))}onmouseleave(N,j){this._register(he.addDisposableListener(N,he.EventType.MOUSE_LEAVE,(X=>j(new _e.StandardMouseEvent(he.getWindow(N),X)))))}onkeydown(N,j){this._register(he.addDisposableListener(N,he.EventType.KEY_DOWN,(N=>j(new ce.StandardKeyboardEvent(N)))))}onkeyup(N,j){this._register(he.addDisposableListener(N,he.EventType.KEY_UP,(N=>j(new ce.StandardKeyboardEvent(N)))))}oninput(N,j){this._register(he.addDisposableListener(N,he.EventType.INPUT,j))}onblur(N,j){this._register(he.addDisposableListener(N,he.EventType.BLUR,j))}onfocus(N,j){this._register(he.addDisposableListener(N,he.EventType.FOCUS,j))}onchange(N,j){this._register(he.addDisposableListener(N,he.EventType.CHANGE,j))}ignoreGesture(N){return me.Gesture.ignoreTarget(N)}}j.Widget=d},4693:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.mainWindow=void 0,j.ensureCodeWindow=function(N,j){},j.mainWindow="object"==typeof window?window:globalThis},3058:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.Permutation=j.CallbackIterable=j.ArrayQueue=j.booleanComparator=j.numberComparator=j.CompareResult=void 0,j.tail=function(N,j=0){return N[N.length-(1+j)]},j.tail2=function(N){if(0===N.length)throw new Error("Invalid tail call");return[N.slice(0,N.length-1),N[N.length-1]]},j.equals=function(N,j,X=(N,j)=>N===j){if(N===j)return!0;if(!N||!j)return!1;if(N.length!==j.length)return!1;for(let ie=0,se=N.length;ieX(N[ie],j)))},j.binarySearch2=n,j.quickSelect=function e(N,j,X){if((N|=0)>=j.length)throw new TypeError("invalid index");const ie=j[Math.floor(j.length*Math.random())],se=[],le=[],he=[];for(const N of j){const j=X(N,ie);j<0?se.push(N):j>0?le.push(N):he.push(N)}return N{(async()=>{const he=N.length,ce=N.slice(0,X).sort(j);for(let _e=X,me=Math.min(X+se,he);_eX&&await new Promise((N=>setTimeout(N))),le&&le.isCancellationRequested)throw new ie.CancellationError;a(N,j,ce,_e,me)}return ce})().then(he,ce)}))},j.coalesce=function(N){return N.filter((N=>!!N))},j.coalesceInPlace=function(N){let j=0;for(let X=0;X0},j.distinct=function(N,j=N=>N){const X=new Set;return N.filter((N=>{const ie=j(N);return!X.has(ie)&&(X.add(ie),!0)}))},j.uniqueFilter=function(N){const j=new Set;return X=>{const ie=N(X);return!j.has(ie)&&(j.add(ie),!0)}},j.firstOrDefault=function(N,j){return N.length>0?N[0]:j},j.lastOrDefault=function(N,j){return N.length>0?N[N.length-1]:j},j.commonPrefixLength=function(N,j,X=(N,j)=>N===j){let ie=0;for(let se=0,le=Math.min(N.length,j.length);sej;N--)ie.push(N);return ie},j.index=function(N,j,X){return N.reduce(((N,ie)=>(N[j(ie)]=X?X(ie):ie,N)),Object.create(null))},j.insert=function(N,j){return N.push(j),()=>l(N,j)},j.remove=l,j.arrayInsert=function(N,j,X){const ie=N.slice(0,j),se=N.slice(j);return ie.concat(X,se)},j.shuffle=function(N,j){let X;if("number"==typeof j){let N=j;X=()=>{const j=179426549*Math.sin(N++);return j-Math.floor(j)}}else X=Math.random;for(let j=N.length-1;j>0;j-=1){const ie=Math.floor(X()*(j+1)),se=N[j];N[j]=N[ie],N[ie]=se}},j.pushToStart=function(N,j){const X=N.indexOf(j);X>-1&&(N.splice(X,1),N.unshift(j))},j.pushToEnd=function(N,j){const X=N.indexOf(j);X>-1&&(N.splice(X,1),N.push(j))},j.pushMany=function(N,j){for(const X of j)N.push(X)},j.mapArrayOrNot=function(N,j){return Array.isArray(N)?N.map(j):j(N)},j.asArray=function(N){return Array.isArray(N)?N:[N]},j.getRandomElement=function(N){return N[Math.floor(Math.random()*N.length)]},j.insertInto=h,j.splice=function(N,j,X,ie){const se=c(N,j);let le=N.splice(se,X);return void 0===le&&(le=[]),h(N,se,ie),le},j.compareBy=function(N,j){return(X,ie)=>j(N(X),N(ie))},j.tieBreakComparators=function(...N){return(j,X)=>{for(const ie of N){const N=ie(j,X);if(!le.isNeitherLessOrGreaterThan(N))return N}return le.neitherLessOrGreaterThan}},j.reverseOrder=function(N){return(j,X)=>-N(j,X)};const ie=X(9807),se=X(8297);function n(N,j){let X=0,ie=N-1;for(;X<=ie;){const N=(X+ie)/2|0,se=j(N);if(se<0)X=N+1;else{if(!(se>0))return N;ie=N-1}}return-(X+1)}function o(N,j,X){const ie=[];function r(N,j,X){if(0===j&&0===X.length)return;const se=ie[ie.length-1];se&&se.start+se.deleteCount===N?(se.deleteCount+=j,se.toInsert.push(...X)):ie.push({start:N,deleteCount:j,toInsert:X})}let se=0,le=0;for(;;){if(se===N.length){r(se,0,j.slice(le));break}if(le===j.length){r(se,N.length-se,[]);break}const ie=N[se],he=j[le],ce=X(ie,he);0===ce?(se+=1,le+=1):ce<0?(r(se,1,[]),se+=1):ce>0&&(r(se,0,[he]),le+=1)}return ie}function a(N,j,X,ie,le){for(const he=X.length;iej(le,N)<0));X.splice(N,0,le)}}}function l(N,j){const X=N.indexOf(j);if(X>-1)return N.splice(X,1),j}function h(N,j,X){const ie=c(N,j),se=N.length,le=X.length;N.length=se+le;for(let j=se-1;j>=ie;j--)N[j+le]=N[j];for(let j=0;j0},N.isNeitherLessOrGreaterThan=function(N){return 0===N},N.greaterThan=1,N.lessThan=-1,N.neitherLessOrGreaterThan=0}(le||(j.CompareResult=le={})),j.numberComparator=(N,j)=>N-j,j.booleanComparator=(N,X)=>(0,j.numberComparator)(N?1:0,X?1:0),j.ArrayQueue=class{constructor(N){this.items=N,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(N){let j=this.firstIdx;for(;j=0&&N(this.items[j]);)j--;const X=j===this.lastIdx?null:this.items.slice(j+1,this.lastIdx+1);return this.lastIdx=j,X}peek(){if(0!==this.length)return this.items[this.firstIdx]}peekLast(){if(0!==this.length)return this.items[this.lastIdx]}dequeue(){const N=this.items[this.firstIdx];return this.firstIdx++,N}removeLast(){const N=this.items[this.lastIdx];return this.lastIdx--,N}takeCount(N){const j=this.items.slice(this.firstIdx,this.firstIdx+N);return this.firstIdx+=N,j}};class u{static{this.empty=new u((N=>{}))}constructor(N){this.iterate=N}forEach(N){this.iterate((j=>(N(j),!0)))}toArray(){const N=[];return this.iterate((j=>(N.push(j),!0))),N}filter(N){return new u((j=>this.iterate((X=>!N(X)||j(X)))))}map(N){return new u((j=>this.iterate((X=>j(N(X))))))}some(N){let j=!1;return this.iterate((X=>(j=N(X),!j))),j}findFirst(N){let j;return this.iterate((X=>!N(X)||(j=X,!1))),j}findLast(N){let j;return this.iterate((X=>(N(X)&&(j=X),!0))),j}findLastMaxBy(N){let j,X=!0;return this.iterate((ie=>((X||le.isGreaterThan(N(ie,j)))&&(X=!1,j=ie),!0))),j}}j.CallbackIterable=u;class _{constructor(N){this._indexMap=N}static createSortPermutation(N,j){const X=Array.from(N.keys()).sort(((X,ie)=>j(N[X],N[ie])));return new _(X)}apply(N){return N.map(((j,X)=>N[this._indexMap[X]]))}inverse(){const N=this._indexMap.slice();for(let j=0;j{function i(N,j,X=N.length-1){for(let ie=X;ie>=0;ie--)if(j(N[ie]))return ie;return-1}function s(N,j,X=0,ie=N.length){let se=X,le=ie;for(;se=0&&(X=se)}return X},j.findFirstMin=function(N,j){return o(N,((N,X)=>-j(N,X)))},j.findMaxIdx=function(N,j){if(0===N.length)return-1;let X=0;for(let ie=1;ie0&&(X=ie);return X},j.mapFindFirst=function(N,j){for(const X of N){const N=j(X);if(void 0!==N)return N}};class n{static{this.assertInvariants=!1}constructor(N){this._array=N,this._findLastMonotonousLastIdx=0}findLastMonotonous(N){if(n.assertInvariants){if(this._prevFindLastPredicate)for(const j of this._array)if(this._prevFindLastPredicate(j)&&!N(j))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.");this._prevFindLastPredicate=N}const j=s(this._array,N,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=j+1,-1===j?void 0:this._array[j]}}function o(N,j){if(0===N.length)return;let X=N[0];for(let ie=1;ie0&&(X=se)}return X}j.MonotonousArray=n},1758:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.AsyncIterableSource=j.CancelableAsyncIterableObject=j.AsyncIterableObject=j.LazyStatefulPromise=j.StatefulPromise=j.Promises=j.DeferredPromise=j.IntervalCounter=j.TaskSequentializer=j.GlobalIdleValue=j.AbstractIdleValue=j._runWhenIdle=j.runWhenGlobalIdle=j.ThrottledWorker=j.RunOnceWorker=j.ProcessTimeRunOnceScheduler=j.RunOnceScheduler=j.IntervalTimer=j.TimeoutTimer=j.LimitedQueue=j.Queue=j.Limiter=j.AutoOpenBarrier=j.Barrier=j.ThrottledDelayer=j.Delayer=j.SequencerByKey=j.Sequencer=j.Throttler=void 0,j.isThenable=c,j.createCancelablePromise=d,j.raceCancellation=function(N,j,X){return new Promise(((ie,se)=>{const le=j.onCancellationRequested((()=>{le.dispose(),ie(X)}));N.then(ie,se).finally((()=>le.dispose()))}))},j.raceCancellationError=function(N,j){return new Promise(((X,ie)=>{const le=j.onCancellationRequested((()=>{le.dispose(),ie(new se.CancellationError)}));N.then(X,ie).finally((()=>le.dispose()))}))},j.raceCancellablePromises=async function(N){let j=-1;const X=N.map(((N,X)=>N.then((N=>(j=X,N)))));try{return await Promise.race(X)}finally{N.forEach(((N,X)=>{X!==j&&N.cancel()}))}},j.raceTimeout=function(N,j,X){let ie;const se=setTimeout((()=>{ie?.(void 0),X?.()}),j);return Promise.race([N.finally((()=>clearTimeout(se))),new Promise((N=>ie=N))])},j.asPromise=function(N){return new Promise(((j,X)=>{const ie=N();c(ie)?ie.then(j,X):j(ie)}))},j.promiseWithResolvers=u,j.timeout=g,j.disposableTimeout=function(N,j=0,X){const ie=setTimeout((()=>{N(),X&&se.dispose()}),j),se=(0,he.toDisposable)((()=>{clearTimeout(ie),X?.deleteAndLeak(se)}));return X?.add(se),se},j.sequence=function(N){const j=[];let X=0;const ie=N.length;return Promise.resolve(null).then((function r(se){null!=se&&j.push(se);const le=X!!N,X=null){let ie=0;const se=N.length,n=()=>{if(ie>=se)return Promise.resolve(X);const le=N[ie++];return Promise.resolve(le()).then((N=>j(N)?Promise.resolve(N):n()))};return n()},j.firstParallel=function(N,j=N=>!!N,X=null){if(0===N.length)return Promise.resolve(X);let ie=N.length;const r=()=>{ie=-1;for(const j of N)j.cancel?.()};return new Promise(((se,le)=>{for(const he of N)he.then((N=>{--ie>=0&&j(N)?(r(),se(N)):0===ie&&se(X)})).catch((N=>{--ie>=0&&(r(),le(N))}))}))},j.retry=async function(N,j,X){let ie;for(let se=0;se{const ie=j.token.onCancellationRequested((()=>{ie.dispose(),j.dispose(),N.reject(new se.CancellationError)}));try{for await(const ie of X){if(j.token.isCancellationRequested)return;N.emitOne(ie)}ie.dispose(),j.dispose()}catch(X){ie.dispose(),j.dispose(),N.reject(X)}}))};const ie=X(8447),se=X(9807),le=X(802),he=X(7150),ce=X(8163),_e=X(5015),me=X(626);function c(N){return!!N&&"function"==typeof N.then}function d(N){const j=new ie.CancellationTokenSource,X=N(j.token),le=new Promise(((N,ie)=>{const le=j.token.onCancellationRequested((()=>{le.dispose(),ie(new se.CancellationError)}));Promise.resolve(X).then((X=>{le.dispose(),j.dispose(),N(X)}),(N=>{le.dispose(),j.dispose(),ie(N)}))}));return new class{cancel(){j.cancel(),j.dispose()}then(N,j){return le.then(N,j)}catch(N){return this.then(void 0,N)}finally(N){return le.finally(N)}}}function u(){let N,j;return{promise:new Promise(((X,ie)=>{N=X,j=ie})),resolve:N,reject:j}}class _{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(N){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=N,!this.queuedPromise){const e=()=>{if(this.queuedPromise=null,this.isDisposed)return;const N=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,N};this.queuedPromise=new Promise((N=>{this.activePromise.then(e,e).then(N)}))}return new Promise(((N,j)=>{this.queuedPromise.then(N,j)}))}return this.activePromise=N(),new Promise(((N,j)=>{this.activePromise.then((j=>{this.activePromise=null,N(j)}),(N=>{this.activePromise=null,j(N)}))}))}dispose(){this.isDisposed=!0}}j.Throttler=_,j.Sequencer=class{constructor(){this.current=Promise.resolve(null)}queue(N){return this.current=this.current.then((()=>N()),(()=>N()))}},j.SequencerByKey=class{constructor(){this.promiseMap=new Map}queue(N,j){const X=(this.promiseMap.get(N)??Promise.resolve()).catch((()=>{})).then(j).finally((()=>{this.promiseMap.get(N)===X&&this.promiseMap.delete(N)}));return this.promiseMap.set(N,X),X}};class f{constructor(N){this.defaultDelay=N,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(N,j=this.defaultDelay){this.task=N,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise(((N,j)=>{this.doResolve=N,this.doReject=j})).then((()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const N=this.task;return this.task=null,N()}})));const i=()=>{this.deferred=null,this.doResolve?.(null)};return this.deferred=j===_e.MicrotaskDelay?(N=>{let j=!0;return queueMicrotask((()=>{j&&(j=!1,N())})),{isTriggered:()=>j,dispose:()=>{j=!1}}})(i):((N,j)=>{let X=!0;const ie=setTimeout((()=>{X=!1,j()}),N);return{isTriggered:()=>X,dispose:()=>{clearTimeout(ie),X=!1}}})(j,i),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new se.CancellationError),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}}j.Delayer=f,j.ThrottledDelayer=class{constructor(N){this.delayer=new f(N),this.throttler=new _}trigger(N,j){return this.delayer.trigger((()=>this.throttler.queue(N)),j)}isTriggered(){return this.delayer.isTriggered()}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}};class p{constructor(){this._isOpen=!1,this._promise=new Promise(((N,j)=>{this._completePromise=N}))}isOpen(){return this._isOpen}open(){this._isOpen=!0,this._completePromise(!0)}wait(){return this._promise}}function g(N,j){return j?new Promise(((X,ie)=>{const le=setTimeout((()=>{he.dispose(),X()}),N),he=j.onCancellationRequested((()=>{clearTimeout(le),he.dispose(),ie(new se.CancellationError)}))})):d((j=>g(N,j)))}j.Barrier=p,j.AutoOpenBarrier=class extends p{constructor(N){super(),this._timeout=setTimeout((()=>this.open()),N)}open(){clearTimeout(this._timeout),super.open()}};class m{constructor(N){this._size=0,this._isDisposed=!1,this.maxDegreeOfParalellism=N,this.outstandingPromises=[],this.runningPromises=0,this._onDrained=new le.Emitter}whenIdle(){return this.size>0?le.Event.toPromise(this.onDrained):Promise.resolve()}get onDrained(){return this._onDrained.event}get size(){return this._size}queue(N){if(this._isDisposed)throw new Error("Object has been disposed");return this._size++,new Promise(((j,X)=>{this.outstandingPromises.push({factory:N,c:j,e:X}),this.consume()}))}consume(){for(;this.outstandingPromises.length&&this.runningPromisesthis.consumed()),(()=>this.consumed()))}}consumed(){this._isDisposed||(this.runningPromises--,0==--this._size&&this._onDrained.fire(),this.outstandingPromises.length>0&&this.consume())}clear(){if(this._isDisposed)throw new Error("Object has been disposed");this.outstandingPromises.length=0,this._size=this.runningPromises}dispose(){this._isDisposed=!0,this.outstandingPromises.length=0,this._size=0,this._onDrained.dispose()}}j.Limiter=m,j.Queue=class extends m{constructor(){super(1)}},j.LimitedQueue=class{constructor(){this.sequentializer=new C,this.tasks=0}queue(N){return this.sequentializer.isRunning()?this.sequentializer.queue((()=>this.sequentializer.run(this.tasks++,N()))):this.sequentializer.run(this.tasks++,N())}},j.TimeoutTimer=class{constructor(N,j){this._isDisposed=!1,this._token=-1,"function"==typeof N&&"number"==typeof j&&this.setIfNotSet(N,j)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(N,j){if(this._isDisposed)throw new se.BugIndicatingError("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout((()=>{this._token=-1,N()}),j)}setIfNotSet(N,j){if(this._isDisposed)throw new se.BugIndicatingError("Calling 'setIfNotSet' on a disposed TimeoutTimer");-1===this._token&&(this._token=setTimeout((()=>{this._token=-1,N()}),j))}},j.IntervalTimer=class{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(N,j,X=globalThis){if(this.isDisposed)throw new se.BugIndicatingError("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();const ie=X.setInterval((()=>{N()}),j);this.disposable=(0,he.toDisposable)((()=>{X.clearInterval(ie),this.disposable=void 0}))}dispose(){this.cancel(),this.isDisposed=!0}};class v{constructor(N,j){this.timeoutToken=-1,this.runner=N,this.timeout=j,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(N=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,N)}get delay(){return this.timeout}set delay(N){this.timeout=N}isScheduled(){return-1!==this.timeoutToken}flush(){this.isScheduled()&&(this.cancel(),this.doRun())}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){this.runner?.()}}j.RunOnceScheduler=v,j.ProcessTimeRunOnceScheduler=class{constructor(N,j){j%1e3!=0&&console.warn(`ProcessTimeRunOnceScheduler resolution is 1s, ${j}ms is not a multiple of 1000ms.`),this.runner=N,this.timeout=j,this.counter=0,this.intervalToken=-1,this.intervalHandler=this.onInterval.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearInterval(this.intervalToken),this.intervalToken=-1)}schedule(N=this.timeout){N%1e3!=0&&console.warn(`ProcessTimeRunOnceScheduler resolution is 1s, ${N}ms is not a multiple of 1000ms.`),this.cancel(),this.counter=Math.ceil(N/1e3),this.intervalToken=setInterval(this.intervalHandler,1e3)}isScheduled(){return-1!==this.intervalToken}onInterval(){this.counter--,this.counter>0||(clearInterval(this.intervalToken),this.intervalToken=-1,this.runner?.())}},j.RunOnceWorker=class extends v{constructor(N,j){super(N,j),this.units=[]}work(N){this.units.push(N),this.isScheduled()||this.schedule()}doRun(){const N=this.units;this.units=[],this.runner?.(N)}dispose(){this.units=[],super.dispose()}};class S extends he.Disposable{constructor(N,j){super(),this.options=N,this.handler=j,this.pendingWork=[],this.throttler=this._register(new he.MutableDisposable),this.disposed=!1}get pending(){return this.pendingWork.length}work(N){if(this.disposed)return!1;if("number"==typeof this.options.maxBufferedWork)if(this.throttler.value){if(this.pending+N.length>this.options.maxBufferedWork)return!1}else if(this.pending+N.length-this.options.maxWorkChunkSize>this.options.maxBufferedWork)return!1;for(const j of N)this.pendingWork.push(j);return this.throttler.value||this.doWork(),!0}doWork(){this.handler(this.pendingWork.splice(0,this.options.maxWorkChunkSize)),this.pendingWork.length>0&&(this.throttler.value=new v((()=>{this.throttler.clear(),this.doWork()}),this.options.throttleDelay),this.throttler.value.schedule())}dispose(){super.dispose(),this.disposed=!0}}j.ThrottledWorker=S,"function"!=typeof globalThis.requestIdleCallback||"function"!=typeof globalThis.cancelIdleCallback?j._runWhenIdle=(N,j)=>{(0,ce.setTimeout0)((()=>{if(X)return;const N=Date.now()+15,ie={didTimeout:!0,timeRemaining:()=>Math.max(0,N-Date.now())};j(Object.freeze(ie))}));let X=!1;return{dispose(){X||(X=!0)}}}:j._runWhenIdle=(N,j,X)=>{const ie=N.requestIdleCallback(j,"number"==typeof X?{timeout:X}:void 0);let se=!1;return{dispose(){se||(se=!0,N.cancelIdleCallback(ie))}}},j.runWhenGlobalIdle=N=>(0,j._runWhenIdle)(globalThis,N);class b{constructor(N,X){this._didRun=!1,this._executor=()=>{try{this._value=X()}catch(N){this._error=N}finally{this._didRun=!0}},this._handle=(0,j._runWhenIdle)(N,(()=>this._executor()))}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}j.AbstractIdleValue=b,j.GlobalIdleValue=class extends b{constructor(N){super(globalThis,N)}};class C{isRunning(N){return"number"==typeof N?this._running?.taskId===N:!!this._running}get running(){return this._running?.promise}cancelRunning(){this._running?.cancel()}run(N,j,X){return this._running={taskId:N,cancel:()=>X?.(),promise:j},j.then((()=>this.doneRunning(N)),(()=>this.doneRunning(N))),j}doneRunning(N){this._running&&N===this._running.taskId&&(this._running=void 0,this.runQueued())}runQueued(){if(this._queued){const N=this._queued;this._queued=void 0,N.run().then(N.promiseResolve,N.promiseReject)}}queue(N){if(this._queued)this._queued.run=N;else{const{promise:j,resolve:X,reject:ie}=u();this._queued={run:N,promise:j,promiseResolve:X,promiseReject:ie}}return this._queued.promise}hasQueued(){return!!this._queued}async join(){return this._queued?.promise??this._running?.promise}}var ve,Se,be;j.TaskSequentializer=C,j.IntervalCounter=class{constructor(N,j=()=>Date.now()){this.interval=N,this.nowFn=j,this.lastIncrementTime=0,this.value=0}increment(){const N=this.nowFn();return N-this.lastIncrementTime>this.interval&&(this.lastIncrementTime=N,this.value=0),this.value++,this.value}},function(N){N[N.Resolved=0]="Resolved",N[N.Rejected=1]="Rejected"}(ve||(ve={}));class D{get isRejected(){return this.outcome?.outcome===ve.Rejected}get isResolved(){return this.outcome?.outcome===ve.Resolved}get isSettled(){return!!this.outcome}get value(){return this.outcome?.outcome===ve.Resolved?this.outcome?.value:void 0}constructor(){this.p=new Promise(((N,j)=>{this.completeCallback=N,this.errorCallback=j}))}complete(N){return new Promise((j=>{this.completeCallback(N),this.outcome={outcome:ve.Resolved,value:N},j()}))}error(N){return new Promise((j=>{this.errorCallback(N),this.outcome={outcome:ve.Rejected,value:N},j()}))}cancel(){return this.error(new se.CancellationError)}}j.DeferredPromise=D,function(N){N.settled=async function(N){let j;const X=await Promise.all(N.map((N=>N.then((N=>N),(N=>{j||(j=N)})))));if(void 0!==j)throw j;return X},N.withAsyncBody=function(N){return new Promise((async(j,X)=>{try{await N(j,X)}catch(N){X(N)}}))}}(Se||(j.Promises=Se={}));class L{get value(){return this._value}get error(){return this._error}get isResolved(){return this._isResolved}constructor(N){this._value=void 0,this._error=void 0,this._isResolved=!1,this.promise=N.then((N=>(this._value=N,this._isResolved=!0,N)),(N=>{throw this._error=N,this._isResolved=!0,N}))}requireValue(){if(!this._isResolved)throw new se.BugIndicatingError("Promise is not resolved yet");if(this._error)throw this._error;return this._value}}j.StatefulPromise=L,j.LazyStatefulPromise=class{constructor(N){this._compute=N,this._promise=new me.Lazy((()=>new L(this._compute())))}requireValue(){return this._promise.value.requireValue()}getPromise(){return this._promise.value.promise}get currentValue(){return this._promise.rawValue?.value}},function(N){N[N.Initial=0]="Initial",N[N.DoneOK=1]="DoneOK",N[N.DoneError=2]="DoneError"}(be||(be={}));class A{static fromArray(N){return new A((j=>{j.emitMany(N)}))}static fromPromise(N){return new A((async j=>{j.emitMany(await N)}))}static fromPromises(N){return new A((async j=>{await Promise.all(N.map((async N=>j.emitOne(await N))))}))}static merge(N){return new A((async j=>{await Promise.all(N.map((async N=>{for await(const X of N)j.emitOne(X)})))}))}static{this.EMPTY=A.fromArray([])}constructor(N,j){this._state=be.Initial,this._results=[],this._error=null,this._onReturn=j,this._onStateChanged=new le.Emitter,queueMicrotask((async()=>{const j={emitOne:N=>this.emitOne(N),emitMany:N=>this.emitMany(N),reject:N=>this.reject(N)};try{await Promise.resolve(N(j)),this.resolve()}catch(N){this.reject(N)}finally{j.emitOne=void 0,j.emitMany=void 0,j.reject=void 0}}))}[Symbol.asyncIterator](){let N=0;return{next:async()=>{for(;;){if(this._state===be.DoneError)throw this._error;if(N(this._onReturn?.(),{done:!0,value:void 0})}}static map(N,j){return new A((async X=>{for await(const ie of N)X.emitOne(j(ie))}))}map(N){return A.map(this,N)}static filter(N,j){return new A((async X=>{for await(const ie of N)j(ie)&&X.emitOne(ie)}))}filter(N){return A.filter(this,N)}static coalesce(N){return A.filter(N,(N=>!!N))}coalesce(){return A.coalesce(this)}static async toPromise(N){const j=[];for await(const X of N)j.push(X);return j}toPromise(){return A.toPromise(this)}emitOne(N){this._state===be.Initial&&(this._results.push(N),this._onStateChanged.fire())}emitMany(N){this._state===be.Initial&&(this._results=this._results.concat(N),this._onStateChanged.fire())}resolve(){this._state===be.Initial&&(this._state=be.DoneOK,this._onStateChanged.fire())}reject(N){this._state===be.Initial&&(this._state=be.DoneError,this._error=N,this._onStateChanged.fire())}}j.AsyncIterableObject=A;class R extends A{constructor(N,j){super(j),this._source=N}cancel(){this._source.cancel()}}j.CancelableAsyncIterableObject=R,j.AsyncIterableSource=class{constructor(N){let j,X;this._deferred=new D,this._asyncIterable=new A((N=>{if(!j)return X&&N.emitMany(X),this._errorFn=j=>N.reject(j),this._emitFn=j=>N.emitOne(j),this._deferred.p;N.reject(j)}),N),this._emitFn=N=>{X||(X=[]),X.push(N)},this._errorFn=N=>{j||(j=N)}}get asyncIterable(){return this._asyncIterable}resolve(){this._deferred.complete()}reject(N){this._errorFn(N),this._deferred.complete()}emitOne(N){this._emitFn(N)}}},8447:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.CancellationTokenSource=j.CancellationToken=void 0,j.cancelOnDispose=function(N){const j=new a;return N.add({dispose(){j.cancel()}}),j.token};const ie=X(802),se=Object.freeze((function(N,j){const X=setTimeout(N.bind(j),0);return{dispose(){clearTimeout(X)}}}));var le;!function(N){N.isCancellationToken=function(j){return j===N.None||j===N.Cancelled||j instanceof o||!(!j||"object"!=typeof j)&&"boolean"==typeof j.isCancellationRequested&&"function"==typeof j.onCancellationRequested},N.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:ie.Event.None}),N.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:se})}(le||(j.CancellationToken=le={}));class o{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?se:(this._emitter||(this._emitter=new ie.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class a{constructor(N){this._token=void 0,this._parentListener=void 0,this._parentListener=N&&N.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new o),this._token}cancel(){this._token?this._token instanceof o&&this._token.cancel():this._token=le.Cancelled}dispose(N=!1){N&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof o&&this._token.dispose():this._token=le.None}}j.CancellationTokenSource=a},4869:(N,j)=>{var X;Object.defineProperty(j,"__esModule",{value:!0}),j.CharCode=void 0,function(N){N[N.Null=0]="Null",N[N.Backspace=8]="Backspace",N[N.Tab=9]="Tab",N[N.LineFeed=10]="LineFeed",N[N.CarriageReturn=13]="CarriageReturn",N[N.Space=32]="Space",N[N.ExclamationMark=33]="ExclamationMark",N[N.DoubleQuote=34]="DoubleQuote",N[N.Hash=35]="Hash",N[N.DollarSign=36]="DollarSign",N[N.PercentSign=37]="PercentSign",N[N.Ampersand=38]="Ampersand",N[N.SingleQuote=39]="SingleQuote",N[N.OpenParen=40]="OpenParen",N[N.CloseParen=41]="CloseParen",N[N.Asterisk=42]="Asterisk",N[N.Plus=43]="Plus",N[N.Comma=44]="Comma",N[N.Dash=45]="Dash",N[N.Period=46]="Period",N[N.Slash=47]="Slash",N[N.Digit0=48]="Digit0",N[N.Digit1=49]="Digit1",N[N.Digit2=50]="Digit2",N[N.Digit3=51]="Digit3",N[N.Digit4=52]="Digit4",N[N.Digit5=53]="Digit5",N[N.Digit6=54]="Digit6",N[N.Digit7=55]="Digit7",N[N.Digit8=56]="Digit8",N[N.Digit9=57]="Digit9",N[N.Colon=58]="Colon",N[N.Semicolon=59]="Semicolon",N[N.LessThan=60]="LessThan",N[N.Equals=61]="Equals",N[N.GreaterThan=62]="GreaterThan",N[N.QuestionMark=63]="QuestionMark",N[N.AtSign=64]="AtSign",N[N.A=65]="A",N[N.B=66]="B",N[N.C=67]="C",N[N.D=68]="D",N[N.E=69]="E",N[N.F=70]="F",N[N.G=71]="G",N[N.H=72]="H",N[N.I=73]="I",N[N.J=74]="J",N[N.K=75]="K",N[N.L=76]="L",N[N.M=77]="M",N[N.N=78]="N",N[N.O=79]="O",N[N.P=80]="P",N[N.Q=81]="Q",N[N.R=82]="R",N[N.S=83]="S",N[N.T=84]="T",N[N.U=85]="U",N[N.V=86]="V",N[N.W=87]="W",N[N.X=88]="X",N[N.Y=89]="Y",N[N.Z=90]="Z",N[N.OpenSquareBracket=91]="OpenSquareBracket",N[N.Backslash=92]="Backslash",N[N.CloseSquareBracket=93]="CloseSquareBracket",N[N.Caret=94]="Caret",N[N.Underline=95]="Underline",N[N.BackTick=96]="BackTick",N[N.a=97]="a",N[N.b=98]="b",N[N.c=99]="c",N[N.d=100]="d",N[N.e=101]="e",N[N.f=102]="f",N[N.g=103]="g",N[N.h=104]="h",N[N.i=105]="i",N[N.j=106]="j",N[N.k=107]="k",N[N.l=108]="l",N[N.m=109]="m",N[N.n=110]="n",N[N.o=111]="o",N[N.p=112]="p",N[N.q=113]="q",N[N.r=114]="r",N[N.s=115]="s",N[N.t=116]="t",N[N.u=117]="u",N[N.v=118]="v",N[N.w=119]="w",N[N.x=120]="x",N[N.y=121]="y",N[N.z=122]="z",N[N.OpenCurlyBrace=123]="OpenCurlyBrace",N[N.Pipe=124]="Pipe",N[N.CloseCurlyBrace=125]="CloseCurlyBrace",N[N.Tilde=126]="Tilde",N[N.NoBreakSpace=160]="NoBreakSpace",N[N.U_Combining_Grave_Accent=768]="U_Combining_Grave_Accent",N[N.U_Combining_Acute_Accent=769]="U_Combining_Acute_Accent",N[N.U_Combining_Circumflex_Accent=770]="U_Combining_Circumflex_Accent",N[N.U_Combining_Tilde=771]="U_Combining_Tilde",N[N.U_Combining_Macron=772]="U_Combining_Macron",N[N.U_Combining_Overline=773]="U_Combining_Overline",N[N.U_Combining_Breve=774]="U_Combining_Breve",N[N.U_Combining_Dot_Above=775]="U_Combining_Dot_Above",N[N.U_Combining_Diaeresis=776]="U_Combining_Diaeresis",N[N.U_Combining_Hook_Above=777]="U_Combining_Hook_Above",N[N.U_Combining_Ring_Above=778]="U_Combining_Ring_Above",N[N.U_Combining_Double_Acute_Accent=779]="U_Combining_Double_Acute_Accent",N[N.U_Combining_Caron=780]="U_Combining_Caron",N[N.U_Combining_Vertical_Line_Above=781]="U_Combining_Vertical_Line_Above",N[N.U_Combining_Double_Vertical_Line_Above=782]="U_Combining_Double_Vertical_Line_Above",N[N.U_Combining_Double_Grave_Accent=783]="U_Combining_Double_Grave_Accent",N[N.U_Combining_Candrabindu=784]="U_Combining_Candrabindu",N[N.U_Combining_Inverted_Breve=785]="U_Combining_Inverted_Breve",N[N.U_Combining_Turned_Comma_Above=786]="U_Combining_Turned_Comma_Above",N[N.U_Combining_Comma_Above=787]="U_Combining_Comma_Above",N[N.U_Combining_Reversed_Comma_Above=788]="U_Combining_Reversed_Comma_Above",N[N.U_Combining_Comma_Above_Right=789]="U_Combining_Comma_Above_Right",N[N.U_Combining_Grave_Accent_Below=790]="U_Combining_Grave_Accent_Below",N[N.U_Combining_Acute_Accent_Below=791]="U_Combining_Acute_Accent_Below",N[N.U_Combining_Left_Tack_Below=792]="U_Combining_Left_Tack_Below",N[N.U_Combining_Right_Tack_Below=793]="U_Combining_Right_Tack_Below",N[N.U_Combining_Left_Angle_Above=794]="U_Combining_Left_Angle_Above",N[N.U_Combining_Horn=795]="U_Combining_Horn",N[N.U_Combining_Left_Half_Ring_Below=796]="U_Combining_Left_Half_Ring_Below",N[N.U_Combining_Up_Tack_Below=797]="U_Combining_Up_Tack_Below",N[N.U_Combining_Down_Tack_Below=798]="U_Combining_Down_Tack_Below",N[N.U_Combining_Plus_Sign_Below=799]="U_Combining_Plus_Sign_Below",N[N.U_Combining_Minus_Sign_Below=800]="U_Combining_Minus_Sign_Below",N[N.U_Combining_Palatalized_Hook_Below=801]="U_Combining_Palatalized_Hook_Below",N[N.U_Combining_Retroflex_Hook_Below=802]="U_Combining_Retroflex_Hook_Below",N[N.U_Combining_Dot_Below=803]="U_Combining_Dot_Below",N[N.U_Combining_Diaeresis_Below=804]="U_Combining_Diaeresis_Below",N[N.U_Combining_Ring_Below=805]="U_Combining_Ring_Below",N[N.U_Combining_Comma_Below=806]="U_Combining_Comma_Below",N[N.U_Combining_Cedilla=807]="U_Combining_Cedilla",N[N.U_Combining_Ogonek=808]="U_Combining_Ogonek",N[N.U_Combining_Vertical_Line_Below=809]="U_Combining_Vertical_Line_Below",N[N.U_Combining_Bridge_Below=810]="U_Combining_Bridge_Below",N[N.U_Combining_Inverted_Double_Arch_Below=811]="U_Combining_Inverted_Double_Arch_Below",N[N.U_Combining_Caron_Below=812]="U_Combining_Caron_Below",N[N.U_Combining_Circumflex_Accent_Below=813]="U_Combining_Circumflex_Accent_Below",N[N.U_Combining_Breve_Below=814]="U_Combining_Breve_Below",N[N.U_Combining_Inverted_Breve_Below=815]="U_Combining_Inverted_Breve_Below",N[N.U_Combining_Tilde_Below=816]="U_Combining_Tilde_Below",N[N.U_Combining_Macron_Below=817]="U_Combining_Macron_Below",N[N.U_Combining_Low_Line=818]="U_Combining_Low_Line",N[N.U_Combining_Double_Low_Line=819]="U_Combining_Double_Low_Line",N[N.U_Combining_Tilde_Overlay=820]="U_Combining_Tilde_Overlay",N[N.U_Combining_Short_Stroke_Overlay=821]="U_Combining_Short_Stroke_Overlay",N[N.U_Combining_Long_Stroke_Overlay=822]="U_Combining_Long_Stroke_Overlay",N[N.U_Combining_Short_Solidus_Overlay=823]="U_Combining_Short_Solidus_Overlay",N[N.U_Combining_Long_Solidus_Overlay=824]="U_Combining_Long_Solidus_Overlay",N[N.U_Combining_Right_Half_Ring_Below=825]="U_Combining_Right_Half_Ring_Below",N[N.U_Combining_Inverted_Bridge_Below=826]="U_Combining_Inverted_Bridge_Below",N[N.U_Combining_Square_Below=827]="U_Combining_Square_Below",N[N.U_Combining_Seagull_Below=828]="U_Combining_Seagull_Below",N[N.U_Combining_X_Above=829]="U_Combining_X_Above",N[N.U_Combining_Vertical_Tilde=830]="U_Combining_Vertical_Tilde",N[N.U_Combining_Double_Overline=831]="U_Combining_Double_Overline",N[N.U_Combining_Grave_Tone_Mark=832]="U_Combining_Grave_Tone_Mark",N[N.U_Combining_Acute_Tone_Mark=833]="U_Combining_Acute_Tone_Mark",N[N.U_Combining_Greek_Perispomeni=834]="U_Combining_Greek_Perispomeni",N[N.U_Combining_Greek_Koronis=835]="U_Combining_Greek_Koronis",N[N.U_Combining_Greek_Dialytika_Tonos=836]="U_Combining_Greek_Dialytika_Tonos",N[N.U_Combining_Greek_Ypogegrammeni=837]="U_Combining_Greek_Ypogegrammeni",N[N.U_Combining_Bridge_Above=838]="U_Combining_Bridge_Above",N[N.U_Combining_Equals_Sign_Below=839]="U_Combining_Equals_Sign_Below",N[N.U_Combining_Double_Vertical_Line_Below=840]="U_Combining_Double_Vertical_Line_Below",N[N.U_Combining_Left_Angle_Below=841]="U_Combining_Left_Angle_Below",N[N.U_Combining_Not_Tilde_Above=842]="U_Combining_Not_Tilde_Above",N[N.U_Combining_Homothetic_Above=843]="U_Combining_Homothetic_Above",N[N.U_Combining_Almost_Equal_To_Above=844]="U_Combining_Almost_Equal_To_Above",N[N.U_Combining_Left_Right_Arrow_Below=845]="U_Combining_Left_Right_Arrow_Below",N[N.U_Combining_Upwards_Arrow_Below=846]="U_Combining_Upwards_Arrow_Below",N[N.U_Combining_Grapheme_Joiner=847]="U_Combining_Grapheme_Joiner",N[N.U_Combining_Right_Arrowhead_Above=848]="U_Combining_Right_Arrowhead_Above",N[N.U_Combining_Left_Half_Ring_Above=849]="U_Combining_Left_Half_Ring_Above",N[N.U_Combining_Fermata=850]="U_Combining_Fermata",N[N.U_Combining_X_Below=851]="U_Combining_X_Below",N[N.U_Combining_Left_Arrowhead_Below=852]="U_Combining_Left_Arrowhead_Below",N[N.U_Combining_Right_Arrowhead_Below=853]="U_Combining_Right_Arrowhead_Below",N[N.U_Combining_Right_Arrowhead_And_Up_Arrowhead_Below=854]="U_Combining_Right_Arrowhead_And_Up_Arrowhead_Below",N[N.U_Combining_Right_Half_Ring_Above=855]="U_Combining_Right_Half_Ring_Above",N[N.U_Combining_Dot_Above_Right=856]="U_Combining_Dot_Above_Right",N[N.U_Combining_Asterisk_Below=857]="U_Combining_Asterisk_Below",N[N.U_Combining_Double_Ring_Below=858]="U_Combining_Double_Ring_Below",N[N.U_Combining_Zigzag_Above=859]="U_Combining_Zigzag_Above",N[N.U_Combining_Double_Breve_Below=860]="U_Combining_Double_Breve_Below",N[N.U_Combining_Double_Breve=861]="U_Combining_Double_Breve",N[N.U_Combining_Double_Macron=862]="U_Combining_Double_Macron",N[N.U_Combining_Double_Macron_Below=863]="U_Combining_Double_Macron_Below",N[N.U_Combining_Double_Tilde=864]="U_Combining_Double_Tilde",N[N.U_Combining_Double_Inverted_Breve=865]="U_Combining_Double_Inverted_Breve",N[N.U_Combining_Double_Rightwards_Arrow_Below=866]="U_Combining_Double_Rightwards_Arrow_Below",N[N.U_Combining_Latin_Small_Letter_A=867]="U_Combining_Latin_Small_Letter_A",N[N.U_Combining_Latin_Small_Letter_E=868]="U_Combining_Latin_Small_Letter_E",N[N.U_Combining_Latin_Small_Letter_I=869]="U_Combining_Latin_Small_Letter_I",N[N.U_Combining_Latin_Small_Letter_O=870]="U_Combining_Latin_Small_Letter_O",N[N.U_Combining_Latin_Small_Letter_U=871]="U_Combining_Latin_Small_Letter_U",N[N.U_Combining_Latin_Small_Letter_C=872]="U_Combining_Latin_Small_Letter_C",N[N.U_Combining_Latin_Small_Letter_D=873]="U_Combining_Latin_Small_Letter_D",N[N.U_Combining_Latin_Small_Letter_H=874]="U_Combining_Latin_Small_Letter_H",N[N.U_Combining_Latin_Small_Letter_M=875]="U_Combining_Latin_Small_Letter_M",N[N.U_Combining_Latin_Small_Letter_R=876]="U_Combining_Latin_Small_Letter_R",N[N.U_Combining_Latin_Small_Letter_T=877]="U_Combining_Latin_Small_Letter_T",N[N.U_Combining_Latin_Small_Letter_V=878]="U_Combining_Latin_Small_Letter_V",N[N.U_Combining_Latin_Small_Letter_X=879]="U_Combining_Latin_Small_Letter_X",N[N.LINE_SEPARATOR=8232]="LINE_SEPARATOR",N[N.PARAGRAPH_SEPARATOR=8233]="PARAGRAPH_SEPARATOR",N[N.NEXT_LINE=133]="NEXT_LINE",N[N.U_CIRCUMFLEX=94]="U_CIRCUMFLEX",N[N.U_GRAVE_ACCENT=96]="U_GRAVE_ACCENT",N[N.U_DIAERESIS=168]="U_DIAERESIS",N[N.U_MACRON=175]="U_MACRON",N[N.U_ACUTE_ACCENT=180]="U_ACUTE_ACCENT",N[N.U_CEDILLA=184]="U_CEDILLA",N[N.U_MODIFIER_LETTER_LEFT_ARROWHEAD=706]="U_MODIFIER_LETTER_LEFT_ARROWHEAD",N[N.U_MODIFIER_LETTER_RIGHT_ARROWHEAD=707]="U_MODIFIER_LETTER_RIGHT_ARROWHEAD",N[N.U_MODIFIER_LETTER_UP_ARROWHEAD=708]="U_MODIFIER_LETTER_UP_ARROWHEAD",N[N.U_MODIFIER_LETTER_DOWN_ARROWHEAD=709]="U_MODIFIER_LETTER_DOWN_ARROWHEAD",N[N.U_MODIFIER_LETTER_CENTRED_RIGHT_HALF_RING=722]="U_MODIFIER_LETTER_CENTRED_RIGHT_HALF_RING",N[N.U_MODIFIER_LETTER_CENTRED_LEFT_HALF_RING=723]="U_MODIFIER_LETTER_CENTRED_LEFT_HALF_RING",N[N.U_MODIFIER_LETTER_UP_TACK=724]="U_MODIFIER_LETTER_UP_TACK",N[N.U_MODIFIER_LETTER_DOWN_TACK=725]="U_MODIFIER_LETTER_DOWN_TACK",N[N.U_MODIFIER_LETTER_PLUS_SIGN=726]="U_MODIFIER_LETTER_PLUS_SIGN",N[N.U_MODIFIER_LETTER_MINUS_SIGN=727]="U_MODIFIER_LETTER_MINUS_SIGN",N[N.U_BREVE=728]="U_BREVE",N[N.U_DOT_ABOVE=729]="U_DOT_ABOVE",N[N.U_RING_ABOVE=730]="U_RING_ABOVE",N[N.U_OGONEK=731]="U_OGONEK",N[N.U_SMALL_TILDE=732]="U_SMALL_TILDE",N[N.U_DOUBLE_ACUTE_ACCENT=733]="U_DOUBLE_ACUTE_ACCENT",N[N.U_MODIFIER_LETTER_RHOTIC_HOOK=734]="U_MODIFIER_LETTER_RHOTIC_HOOK",N[N.U_MODIFIER_LETTER_CROSS_ACCENT=735]="U_MODIFIER_LETTER_CROSS_ACCENT",N[N.U_MODIFIER_LETTER_EXTRA_HIGH_TONE_BAR=741]="U_MODIFIER_LETTER_EXTRA_HIGH_TONE_BAR",N[N.U_MODIFIER_LETTER_HIGH_TONE_BAR=742]="U_MODIFIER_LETTER_HIGH_TONE_BAR",N[N.U_MODIFIER_LETTER_MID_TONE_BAR=743]="U_MODIFIER_LETTER_MID_TONE_BAR",N[N.U_MODIFIER_LETTER_LOW_TONE_BAR=744]="U_MODIFIER_LETTER_LOW_TONE_BAR",N[N.U_MODIFIER_LETTER_EXTRA_LOW_TONE_BAR=745]="U_MODIFIER_LETTER_EXTRA_LOW_TONE_BAR",N[N.U_MODIFIER_LETTER_YIN_DEPARTING_TONE_MARK=746]="U_MODIFIER_LETTER_YIN_DEPARTING_TONE_MARK",N[N.U_MODIFIER_LETTER_YANG_DEPARTING_TONE_MARK=747]="U_MODIFIER_LETTER_YANG_DEPARTING_TONE_MARK",N[N.U_MODIFIER_LETTER_UNASPIRATED=749]="U_MODIFIER_LETTER_UNASPIRATED",N[N.U_MODIFIER_LETTER_LOW_DOWN_ARROWHEAD=751]="U_MODIFIER_LETTER_LOW_DOWN_ARROWHEAD",N[N.U_MODIFIER_LETTER_LOW_UP_ARROWHEAD=752]="U_MODIFIER_LETTER_LOW_UP_ARROWHEAD",N[N.U_MODIFIER_LETTER_LOW_LEFT_ARROWHEAD=753]="U_MODIFIER_LETTER_LOW_LEFT_ARROWHEAD",N[N.U_MODIFIER_LETTER_LOW_RIGHT_ARROWHEAD=754]="U_MODIFIER_LETTER_LOW_RIGHT_ARROWHEAD",N[N.U_MODIFIER_LETTER_LOW_RING=755]="U_MODIFIER_LETTER_LOW_RING",N[N.U_MODIFIER_LETTER_MIDDLE_GRAVE_ACCENT=756]="U_MODIFIER_LETTER_MIDDLE_GRAVE_ACCENT",N[N.U_MODIFIER_LETTER_MIDDLE_DOUBLE_GRAVE_ACCENT=757]="U_MODIFIER_LETTER_MIDDLE_DOUBLE_GRAVE_ACCENT",N[N.U_MODIFIER_LETTER_MIDDLE_DOUBLE_ACUTE_ACCENT=758]="U_MODIFIER_LETTER_MIDDLE_DOUBLE_ACUTE_ACCENT",N[N.U_MODIFIER_LETTER_LOW_TILDE=759]="U_MODIFIER_LETTER_LOW_TILDE",N[N.U_MODIFIER_LETTER_RAISED_COLON=760]="U_MODIFIER_LETTER_RAISED_COLON",N[N.U_MODIFIER_LETTER_BEGIN_HIGH_TONE=761]="U_MODIFIER_LETTER_BEGIN_HIGH_TONE",N[N.U_MODIFIER_LETTER_END_HIGH_TONE=762]="U_MODIFIER_LETTER_END_HIGH_TONE",N[N.U_MODIFIER_LETTER_BEGIN_LOW_TONE=763]="U_MODIFIER_LETTER_BEGIN_LOW_TONE",N[N.U_MODIFIER_LETTER_END_LOW_TONE=764]="U_MODIFIER_LETTER_END_LOW_TONE",N[N.U_MODIFIER_LETTER_SHELF=765]="U_MODIFIER_LETTER_SHELF",N[N.U_MODIFIER_LETTER_OPEN_SHELF=766]="U_MODIFIER_LETTER_OPEN_SHELF",N[N.U_MODIFIER_LETTER_LOW_LEFT_ARROW=767]="U_MODIFIER_LETTER_LOW_LEFT_ARROW",N[N.U_GREEK_LOWER_NUMERAL_SIGN=885]="U_GREEK_LOWER_NUMERAL_SIGN",N[N.U_GREEK_TONOS=900]="U_GREEK_TONOS",N[N.U_GREEK_DIALYTIKA_TONOS=901]="U_GREEK_DIALYTIKA_TONOS",N[N.U_GREEK_KORONIS=8125]="U_GREEK_KORONIS",N[N.U_GREEK_PSILI=8127]="U_GREEK_PSILI",N[N.U_GREEK_PERISPOMENI=8128]="U_GREEK_PERISPOMENI",N[N.U_GREEK_DIALYTIKA_AND_PERISPOMENI=8129]="U_GREEK_DIALYTIKA_AND_PERISPOMENI",N[N.U_GREEK_PSILI_AND_VARIA=8141]="U_GREEK_PSILI_AND_VARIA",N[N.U_GREEK_PSILI_AND_OXIA=8142]="U_GREEK_PSILI_AND_OXIA",N[N.U_GREEK_PSILI_AND_PERISPOMENI=8143]="U_GREEK_PSILI_AND_PERISPOMENI",N[N.U_GREEK_DASIA_AND_VARIA=8157]="U_GREEK_DASIA_AND_VARIA",N[N.U_GREEK_DASIA_AND_OXIA=8158]="U_GREEK_DASIA_AND_OXIA",N[N.U_GREEK_DASIA_AND_PERISPOMENI=8159]="U_GREEK_DASIA_AND_PERISPOMENI",N[N.U_GREEK_DIALYTIKA_AND_VARIA=8173]="U_GREEK_DIALYTIKA_AND_VARIA",N[N.U_GREEK_DIALYTIKA_AND_OXIA=8174]="U_GREEK_DIALYTIKA_AND_OXIA",N[N.U_GREEK_VARIA=8175]="U_GREEK_VARIA",N[N.U_GREEK_OXIA=8189]="U_GREEK_OXIA",N[N.U_GREEK_DASIA=8190]="U_GREEK_DASIA",N[N.U_IDEOGRAPHIC_FULL_STOP=12290]="U_IDEOGRAPHIC_FULL_STOP",N[N.U_LEFT_CORNER_BRACKET=12300]="U_LEFT_CORNER_BRACKET",N[N.U_RIGHT_CORNER_BRACKET=12301]="U_RIGHT_CORNER_BRACKET",N[N.U_LEFT_BLACK_LENTICULAR_BRACKET=12304]="U_LEFT_BLACK_LENTICULAR_BRACKET",N[N.U_RIGHT_BLACK_LENTICULAR_BRACKET=12305]="U_RIGHT_BLACK_LENTICULAR_BRACKET",N[N.U_OVERLINE=8254]="U_OVERLINE",N[N.UTF8_BOM=65279]="UTF8_BOM",N[N.U_FULLWIDTH_SEMICOLON=65307]="U_FULLWIDTH_SEMICOLON",N[N.U_FULLWIDTH_COMMA=65292]="U_FULLWIDTH_COMMA"}(X||(j.CharCode=X={}))},9087:(N,j)=>{var X;Object.defineProperty(j,"__esModule",{value:!0}),j.SetWithKey=void 0,j.groupBy=function(N,j){const X=Object.create(null);for(const ie of N){const N=j(ie);let se=X[N];se||(se=X[N]=[]),se.push(ie)}return X},j.diffSets=function(N,j){const X=[],ie=[];for(const ie of N)j.has(ie)||X.push(ie);for(const X of j)N.has(X)||ie.push(X);return{removed:X,added:ie}},j.diffMaps=function(N,j){const X=[],ie=[];for(const[ie,se]of N)j.has(ie)||X.push(se);for(const[X,se]of j)N.has(X)||ie.push(se);return{removed:X,added:ie}},j.intersection=function(N,j){const X=new Set;for(const ie of j)N.has(ie)&&X.add(ie);return X};class s{static{X=Symbol.toStringTag}constructor(N,j){this.toKey=j,this._map=new Map,this[X]="SetWithKey";for(const j of N)this.add(j)}get size(){return this._map.size}add(N){const j=this.toKey(N);return this._map.set(j,N),this}delete(N){return this._map.delete(this.toKey(N))}has(N){return this._map.has(this.toKey(N))}*entries(){for(const N of this._map.values())yield[N,N]}keys(){return this.values()}*values(){for(const N of this._map.values())yield N}clear(){this._map.clear()}forEach(N,j){this._map.forEach((X=>N.call(j,X,X,this)))}[Symbol.iterator](){return this.values()}}j.SetWithKey=s},4838:(N,j)=>{function i(N){return(j,X,ie)=>{let se=null,le=null;if("function"==typeof ie.value?(se="value",le=ie.value):"function"==typeof ie.get&&(se="get",le=ie.get),!le)throw new Error("not supported");ie[se]=N(le,X)}}Object.defineProperty(j,"__esModule",{value:!0}),j.memoize=function(N,j,X){let ie=null,se=null;if("function"==typeof X.value?(ie="value",se=X.value,0!==se.length&&console.warn("Memoize should only be used in functions with zero parameters")):"function"==typeof X.get&&(ie="get",se=X.get),!se)throw new Error("not supported");const le=`$memoize$${j}`;X[ie]=function(...N){return this.hasOwnProperty(le)||Object.defineProperty(this,le,{configurable:!1,enumerable:!1,writable:!1,value:se.apply(this,N)}),this[le]}},j.debounce=function(N,j,X){return i(((ie,se)=>{const le=`$debounce$${se}`,he=`$debounce$result$${se}`;return function(...se){this[he]||(this[he]=X?X():void 0),clearTimeout(this[le]),j&&(this[he]=j(this[he],...se),se=[this[he]]),this[le]=setTimeout((()=>{ie.apply(this,se),this[he]=X?X():void 0}),N)}}))},j.throttle=function(N,j,X){return i(((ie,se)=>{const le=`$throttle$timer$${se}`,he=`$throttle$result$${se}`,ce=`$throttle$lastRun$${se}`,_e=`$throttle$pending$${se}`;return function(...se){if(this[he]||(this[he]=X?X():void 0),null!==this[ce]&&void 0!==this[ce]||(this[ce]=-Number.MAX_VALUE),j&&(this[he]=j(this[he],...se)),this[_e])return;const me=this[ce]+N;me<=Date.now()?(this[ce]=Date.now(),ie.apply(this,[this[he]]),this[he]=X?X():void 0):(this[_e]=!0,this[le]=setTimeout((()=>{this[_e]=!1,this[ce]=Date.now(),ie.apply(this,[this[he]]),this[he]=X?X():void 0}),me-Date.now()))}}))}},9807:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.BugIndicatingError=j.ErrorNoTelemetry=j.ExpectedError=j.NotSupportedError=j.NotImplementedError=j.ReadonlyError=j.CancellationError=j.errorHandler=j.ErrorHandler=void 0,j.setUnexpectedErrorHandler=function(N){j.errorHandler.setUnexpectedErrorHandler(N)},j.isSigPipeError=function(N){if(!N||"object"!=typeof N)return!1;const j=N;return"EPIPE"===j.code&&"WRITE"===j.syscall?.toUpperCase()},j.onUnexpectedError=function(N){r(N)||j.errorHandler.onUnexpectedError(N)},j.onUnexpectedExternalError=function(N){r(N)||j.errorHandler.onUnexpectedExternalError(N)},j.transformErrorForSerialization=function(N){if(N instanceof Error){const{name:j,message:X}=N;return{$isError:!0,name:j,message:X,stack:N.stacktrace||N.stack,noTelemetry:c.isErrorNoTelemetry(N)}}return N},j.transformErrorFromSerialization=function(N){let j;return N.noTelemetry?j=new c:(j=new Error,j.name=N.name),j.message=N.message,j.stack=N.stack,j},j.isCancellationError=r,j.canceled=function(){const N=new Error(X);return N.name=N.message,N},j.illegalArgument=function(N){return N?new Error(`Illegal argument: ${N}`):new Error("Illegal argument")},j.illegalState=function(N){return N?new Error(`Illegal state: ${N}`):new Error("Illegal state")},j.getErrorMessage=function(N){return N?N.message?N.message:N.stack?N.stack.split("\n")[0]:String(N):"Error"};class i{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(N){setTimeout((()=>{if(N.stack){if(c.isErrorNoTelemetry(N))throw new c(N.message+"\n\n"+N.stack);throw new Error(N.message+"\n\n"+N.stack)}throw N}),0)}}addListener(N){return this.listeners.push(N),()=>{this._removeListener(N)}}emit(N){this.listeners.forEach((j=>{j(N)}))}_removeListener(N){this.listeners.splice(this.listeners.indexOf(N),1)}setUnexpectedErrorHandler(N){this.unexpectedErrorHandler=N}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(N){this.unexpectedErrorHandler(N),this.emit(N)}onUnexpectedExternalError(N){this.unexpectedErrorHandler(N)}}j.ErrorHandler=i,j.errorHandler=new i;const X="Canceled";function r(N){return N instanceof n||N instanceof Error&&N.name===X&&N.message===X}class n extends Error{constructor(){super(X),this.name=this.message}}j.CancellationError=n;class o extends TypeError{constructor(N){super(N?`${N} is read-only and cannot be changed`:"Cannot change read-only property")}}j.ReadonlyError=o;class a extends Error{constructor(N){super("NotImplemented"),N&&(this.message=N)}}j.NotImplementedError=a;class l extends Error{constructor(N){super("NotSupported"),N&&(this.message=N)}}j.NotSupportedError=l;class h extends Error{constructor(){super(...arguments),this.isExpected=!0}}j.ExpectedError=h;class c extends Error{constructor(N){super(N),this.name="CodeExpectedError"}static fromError(N){if(N instanceof c)return N;const j=new c;return j.message=N.message,j.stack=N.stack,j}static isErrorNoTelemetry(N){return"CodeExpectedError"===N.name}}j.ErrorNoTelemetry=c;class d extends Error{constructor(N){super(N||"An unexpected bug occurred."),Object.setPrototypeOf(this,d.prototype)}}j.BugIndicatingError=d},802:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.ValueWithChangeEvent=j.Relay=j.EventBufferer=j.DynamicListEventMultiplexer=j.EventMultiplexer=j.MicrotaskEmitter=j.DebounceEmitter=j.PauseableEmitter=j.AsyncEmitter=j.createEventDeliveryQueue=j.Emitter=j.ListenerRefusalError=j.ListenerLeakError=j.EventProfiling=j.Event=void 0,j.setGlobalLeakWarningThreshold=function(N){const j=me;return me=N,{dispose(){me=j}}};const ie=X(9807),se=X(8841),le=X(7150),he=X(6317),ce=X(9725);var _e;!function(N){function t(N){return(j,X=null,ie)=>{let se,le=!1;return se=N((N=>{if(!le)return se?se.dispose():le=!0,j.call(X,N)}),null,ie),le&&se.dispose(),se}}function i(N,j,X){return r(((X,ie=null,se)=>N((N=>X.call(ie,j(N))),null,se)),X)}function s(N,j,X){return r(((X,ie=null,se)=>N((N=>j(N)&&X.call(ie,N)),null,se)),X)}function r(N,j){let X;const ie=new m({onWillAddFirstListener(){X=N(ie.fire,ie)},onDidRemoveLastListener(){X?.dispose()}});return j?.add(ie),ie.event}function o(N,j,X=100,ie=!1,se=!1,le,he){let ce,_e,me,ve,Se=0;const be=new m({leakWarningThreshold:le,onWillAddFirstListener(){ce=N((N=>{Se++,_e=j(_e,N),ie&&!me&&(be.fire(_e),_e=void 0),ve=()=>{const N=_e;_e=void 0,me=void 0,(!ie||Se>1)&&be.fire(N),Se=0},"number"==typeof X?(clearTimeout(me),me=setTimeout(ve,X)):void 0===me&&(me=0,queueMicrotask(ve))}))},onWillRemoveListener(){se&&Se>0&&ve?.()},onDidRemoveLastListener(){ve=void 0,ce.dispose()}});return he?.add(be),be.event}N.None=()=>le.Disposable.None,N.defer=function(N,j){return o(N,(()=>{}),0,void 0,!0,void 0,j)},N.once=t,N.map=i,N.forEach=function(N,j,X){return r(((X,ie=null,se)=>N((N=>{j(N),X.call(ie,N)}),null,se)),X)},N.filter=s,N.signal=function(N){return N},N.any=function(...N){return(j,X=null,ie)=>{return se=(0,le.combinedDisposable)(...N.map((N=>N((N=>j.call(X,N)))))),(he=ie)instanceof Array?he.push(se):he&&he.add(se),se;var se,he}},N.reduce=function(N,j,X,ie){let se=X;return i(N,(N=>(se=j(se,N),se)),ie)},N.debounce=o,N.accumulate=function(j,X=0,ie){return N.debounce(j,((N,j)=>N?(N.push(j),N):[j]),X,void 0,!0,void 0,ie)},N.latch=function(N,j=(N,j)=>N===j,X){let ie,se=!0;return s(N,(N=>{const X=se||!j(N,ie);return se=!1,ie=N,X}),X)},N.split=function(j,X,ie){return[N.filter(j,X,ie),N.filter(j,(N=>!X(N)),ie)]},N.buffer=function(N,j=!1,X=[],ie){let se=X.slice(),le=N((N=>{se?se.push(N):he.fire(N)}));ie&&ie.add(le);const o=()=>{se?.forEach((N=>he.fire(N))),se=null},he=new m({onWillAddFirstListener(){le||(le=N((N=>he.fire(N))),ie&&ie.add(le))},onDidAddFirstListener(){se&&(j?setTimeout(o):o())},onDidRemoveLastListener(){le&&le.dispose(),le=null}});return ie&&ie.add(he),he.event},N.chain=function(N,X){return(ie,se,le)=>{const he=X(new l);return N((function(N){const X=he.evaluate(N);X!==j&&ie.call(se,X)}),void 0,le)}};const j=Symbol("HaltChainable");class l{constructor(){this.steps=[]}map(N){return this.steps.push(N),this}forEach(N){return this.steps.push((j=>(N(j),j))),this}filter(N){return this.steps.push((X=>N(X)?X:j)),this}reduce(N,j){let X=j;return this.steps.push((j=>(X=N(X,j),X))),this}latch(N=(N,j)=>N===j){let X,ie=!0;return this.steps.push((se=>{const le=ie||!N(se,X);return ie=!1,X=se,le?se:j})),this}evaluate(N){for(const X of this.steps)if((N=X(N))===j)break;return N}}N.fromNodeEventEmitter=function(N,j,X=N=>N){const s=(...N)=>ie.fire(X(...N)),ie=new m({onWillAddFirstListener:()=>N.on(j,s),onDidRemoveLastListener:()=>N.removeListener(j,s)});return ie.event},N.fromDOMEventEmitter=function(N,j,X=N=>N){const s=(...N)=>ie.fire(X(...N)),ie=new m({onWillAddFirstListener:()=>N.addEventListener(j,s),onDidRemoveLastListener:()=>N.removeEventListener(j,s)});return ie.event},N.toPromise=function(N){return new Promise((j=>t(N)(j)))},N.fromPromise=function(N){const j=new m;return N.then((N=>{j.fire(N)}),(()=>{j.fire(void 0)})).finally((()=>{j.dispose()})),j.event},N.forward=function(N,j){return N((N=>j.fire(N)))},N.runAndSubscribe=function(N,j,X){return j(X),N((N=>j(N)))};class h{constructor(N,j){this._observable=N,this._counter=0,this._hasChanged=!1;const X={onWillAddFirstListener:()=>{N.addObserver(this)},onDidRemoveLastListener:()=>{N.removeObserver(this)}};this.emitter=new m(X),j&&j.add(this.emitter)}beginUpdate(N){this._counter++}handlePossibleChange(N){}handleChange(N,j){this._hasChanged=!0}endUpdate(N){this._counter--,0===this._counter&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}N.fromObservable=function(N,j){return new h(N,j).emitter.event},N.fromObservableLight=function(N){return(j,X,ie)=>{let se=0,he=!1;const ce={beginUpdate(){se++},endUpdate(){se--,0===se&&(N.reportChanges(),he&&(he=!1,j.call(X)))},handlePossibleChange(){},handleChange(){he=!0}};N.addObserver(ce),N.reportChanges();const _e={dispose(){N.removeObserver(ce)}};return ie instanceof le.DisposableStore?ie.add(_e):Array.isArray(ie)&&ie.push(_e),_e}}}(_e||(j.Event=_e={}));class h{static{this.all=new Set}static{this._idPool=0}constructor(N){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${N}_${h._idPool++}`,h.all.add(this)}start(N){this._stopWatch=new ce.StopWatch,this.listenerCount=N}stop(){if(this._stopWatch){const N=this._stopWatch.elapsed();this.durations.push(N),this.elapsedOverall+=N,this.invocationCount+=1,this._stopWatch=void 0}}}j.EventProfiling=h;let me=-1;class d{static{this._idPool=1}constructor(N,j,X=(d._idPool++).toString(16).padStart(3,"0")){this._errorHandler=N,this.threshold=j,this.name=X,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(N,j){const X=this.threshold;if(X<=0||j{const j=this._stacks.get(N.value)||0;this._stacks.set(N.value,j-1)}}getMostFrequentStack(){if(!this._stacks)return;let N,j=0;for(const[X,ie]of this._stacks)(!N||j0||this._options?.leakWarningThreshold?new d(N?.onListenerError??ie.onUnexpectedError,this._options?.leakWarningThreshold??me):void 0,this._perfMon=this._options?._profName?new h(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){this._disposed||(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose())}get event(){return this._event??=(N,j,X)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const N=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(N);const j=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],X=new f(`${N}. HINT: Stack shows most frequent listener (${j[1]}-times)`,j[0]);return(this._options?.onListenerError||ie.onUnexpectedError)(X),le.Disposable.None}if(this._disposed)return le.Disposable.None;j&&(N=N.bind(j));const se=new g(N);let he;this._leakageMon&&this._size>=Math.ceil(.2*this._leakageMon.threshold)&&(se.stack=u.create(),he=this._leakageMon.check(se.stack,this._size+1)),this._listeners?this._listeners instanceof g?(this._deliveryQueue??=new v,this._listeners=[this._listeners,se]):this._listeners.push(se):(this._options?.onWillAddFirstListener?.(this),this._listeners=se,this._options?.onDidAddFirstListener?.(this)),this._size++;const ce=(0,le.toDisposable)((()=>{he?.(),this._removeListener(se)}));return X instanceof le.DisposableStore?X.add(ce):Array.isArray(X)&&X.push(ce),ce},this._event}_removeListener(N){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(1===this._size)return this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),void(this._size=0);const j=this._listeners,X=j.indexOf(N);if(-1===X)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,j[X]=void 0;const ie=this._deliveryQueue.current===this;if(2*this._size<=j.length){let N=0;for(let X=0;X0}}j.Emitter=m,j.createEventDeliveryQueue=()=>new v;class v{constructor(){this.i=-1,this.end=0}enqueue(N,j,X){this.i=0,this.end=X,this.current=N,this.value=j}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}j.AsyncEmitter=class extends m{async fireAsync(N,j,X){if(this._listeners)for(this._asyncDeliveryQueue||(this._asyncDeliveryQueue=new he.LinkedList),((N,j)=>{if(N instanceof g)j(N);else for(let X=0;Xthis._asyncDeliveryQueue.push([j.value,N])));this._asyncDeliveryQueue.size>0&&!j.isCancellationRequested;){const[se,le]=this._asyncDeliveryQueue.shift(),he=[],ce={...le,token:j,waitUntil:N=>{if(Object.isFrozen(he))throw new Error("waitUntil can NOT be called asynchronous");X&&(N=X(N,se)),he.push(N)}};try{se(ce)}catch(N){(0,ie.onUnexpectedError)(N);continue}Object.freeze(he),await Promise.allSettled(he).then((N=>{for(const j of N)"rejected"===j.status&&(0,ie.onUnexpectedError)(j.reason)}))}}};class S extends m{get isPaused(){return 0!==this._isPaused}constructor(N){super(N),this._isPaused=0,this._eventQueue=new he.LinkedList,this._mergeFn=N?.merge}pause(){this._isPaused++}resume(){if(0!==this._isPaused&&0==--this._isPaused)if(this._mergeFn){if(this._eventQueue.size>0){const N=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(N))}}else for(;!this._isPaused&&0!==this._eventQueue.size;)super.fire(this._eventQueue.shift())}fire(N){this._size&&(0!==this._isPaused?this._eventQueue.push(N):super.fire(N))}}j.PauseableEmitter=S,j.DebounceEmitter=class extends S{constructor(N){super(N),this._delay=N.delay??100}fire(N){this._handle||(this.pause(),this._handle=setTimeout((()=>{this._handle=void 0,this.resume()}),this._delay)),super.fire(N)}},j.MicrotaskEmitter=class extends m{constructor(N){super(N),this._queuedEvents=[],this._mergeFn=N?.merge}fire(N){this.hasListeners()&&(this._queuedEvents.push(N),1===this._queuedEvents.length&&queueMicrotask((()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach((N=>super.fire(N))),this._queuedEvents=[]})))}};class b{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new m({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(N){const j={event:N,listener:null};return this.events.push(j),this.hasListeners&&this.hook(j),(0,le.toDisposable)((0,se.createSingleCallFunction)((()=>{this.hasListeners&&this.unhook(j);const N=this.events.indexOf(j);this.events.splice(N,1)})))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach((N=>this.hook(N)))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach((N=>this.unhook(N)))}hook(N){N.listener=N.event((N=>this.emitter.fire(N)))}unhook(N){N.listener?.dispose(),N.listener=null}dispose(){this.emitter.dispose();for(const N of this.events)N.listener?.dispose();this.events=[]}}j.EventMultiplexer=b,j.DynamicListEventMultiplexer=class{constructor(N,j,X,ie){this._store=new le.DisposableStore;const se=this._store.add(new b),he=this._store.add(new le.DisposableMap);function a(N){he.set(N,se.add(ie(N)))}for(const j of N)a(j);this._store.add(j((N=>{a(N)}))),this._store.add(X((N=>{he.deleteAndDispose(N)}))),this.event=se.event}dispose(){this._store.dispose()}},j.EventBufferer=class{constructor(){this.data=[]}wrapEvent(N,j,X){return(ie,se,le)=>N((N=>{const le=this.data[this.data.length-1];if(!j)return void(le?le.buffers.push((()=>ie.call(se,N))):ie.call(se,N));const he=le;he?(he.items??=[],he.items.push(N),0===he.buffers.length&&le.buffers.push((()=>{he.reducedResult??=X?he.items.reduce(j,X):he.items.reduce(j),ie.call(se,he.reducedResult)}))):ie.call(se,j(X,N))}),void 0,le)}bufferEvents(N){const j={buffers:new Array};this.data.push(j);const X=N();return this.data.pop(),j.buffers.forEach((N=>N())),X}},j.Relay=class{constructor(){this.listening=!1,this.inputEvent=_e.None,this.inputEventListener=le.Disposable.None,this.emitter=new m({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(N){this.inputEvent=N,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=N(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}},j.ValueWithChangeEvent=class{static const(N){return new C(N)}constructor(N){this._value=N,this._onDidChange=new m,this.onDidChange=this._onDidChange.event}get value(){return this._value}set value(N){N!==this._value&&(this._value=N,this._onDidChange.fire(void 0))}};class C{constructor(N){this.value=N,this.onDidChange=_e.None}}},8841:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.createSingleCallFunction=function(N,j){const X=this;let ie,se=!1;return function(){if(se)return ie;if(se=!0,j)try{ie=N.apply(X,arguments)}finally{j()}else ie=N.apply(X,arguments);return ie}}},6304:function(N,j,X){var ie=this&&this.__createBinding||(Object.create?function(N,j,X,ie){void 0===ie&&(ie=X);var se=Object.getOwnPropertyDescriptor(j,X);se&&!("get"in se?!j.__esModule:se.writable||se.configurable)||(se={enumerable:!0,get:function(){return j[X]}}),Object.defineProperty(N,ie,se)}:function(N,j,X,ie){void 0===ie&&(ie=X),N[ie]=j[X]}),se=this&&this.__setModuleDefault||(Object.create?function(N,j){Object.defineProperty(N,"default",{enumerable:!0,value:j})}:function(N,j){N.default=j}),le=this&&this.__importStar||function(N){if(N&&N.__esModule)return N;var j={};if(null!=N)for(var X in N)"default"!==X&&Object.prototype.hasOwnProperty.call(N,X)&&ie(j,N,X);return se(j,N),j};Object.defineProperty(j,"__esModule",{value:!0}),j.StringSHA1=j.Hasher=void 0,j.hash=function(N){return a(N,0)},j.doHash=a,j.numberHash=l,j.stringHash=h,j.toHexString=_;const he=le(X(1316));function a(N,j){switch(typeof N){case"object":return null===N?l(349,j):Array.isArray(N)?(X=N,ie=l(104579,ie=j),X.reduce(((N,j)=>a(j,N)),ie)):function(N,j){return j=l(181387,j),Object.keys(N).sort().reduce(((j,X)=>(j=h(X,j),a(N[X],j))),j)}(N,j);case"string":return h(N,j);case"boolean":return function(N,j){return l(N?433:863,j)}(N,j);case"number":return l(N,j);case"undefined":return l(937,j);default:return l(617,j)}var X,ie}function l(N,j){return(j<<5)-j+N|0}function h(N,j){j=l(149417,j);for(let X=0,ie=N.length;X>>ie)>>>0}function u(N,j=0,X=N.byteLength,ie=0){for(let se=0;seN.toString(16).padStart(2,"0"))).join(""):function(N,j,X="0"){for(;N.length>>0).toString(16),j/4)}j.Hasher=class{constructor(){this._value=0}get value(){return this._value}hash(N){return this._value=a(N,this._value),this._value}},function(N){N[N.BLOCK_SIZE=64]="BLOCK_SIZE",N[N.UNICODE_REPLACEMENT=65533]="UNICODE_REPLACEMENT"}(ce||(ce={}));class f{static{this._bigBlock32=new DataView(new ArrayBuffer(320))}constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(ce.BLOCK_SIZE+3),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(N){const j=N.length;if(0===j)return;const X=this._buff;let ie,se,le=this._buffLen,_e=this._leftoverHighSurrogate;for(0!==_e?(ie=_e,se=-1,_e=0):(ie=N.charCodeAt(0),se=0);;){let me=ie;if(he.isHighSurrogate(ie)){if(!(se+1>>6,N[j++]=128|(63&X)>>>0):X<65536?(N[j++]=224|(61440&X)>>>12,N[j++]=128|(4032&X)>>>6,N[j++]=128|(63&X)>>>0):(N[j++]=240|(1835008&X)>>>18,N[j++]=128|(258048&X)>>>12,N[j++]=128|(4032&X)>>>6,N[j++]=128|(63&X)>>>0),j>=ce.BLOCK_SIZE&&(this._step(),j-=ce.BLOCK_SIZE,this._totalLen+=ce.BLOCK_SIZE,N[0]=N[ce.BLOCK_SIZE+0],N[1]=N[ce.BLOCK_SIZE+1],N[2]=N[ce.BLOCK_SIZE+2]),j}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,ce.UNICODE_REPLACEMENT)),this._totalLen+=this._buffLen,this._wrapUp()),_(this._h0)+_(this._h1)+_(this._h2)+_(this._h3)+_(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,u(this._buff,this._buffLen),this._buffLen>56&&(this._step(),u(this._buff));const N=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(N/4294967296),!1),this._buffDV.setUint32(60,N%4294967296,!1),this._step()}_step(){const N=f._bigBlock32,j=this._buffDV;for(let X=0;X<64;X+=4)N.setUint32(X,j.getUint32(X,!1),!1);for(let j=64;j<320;j+=4)N.setUint32(j,d(N.getUint32(j-12,!1)^N.getUint32(j-32,!1)^N.getUint32(j-56,!1)^N.getUint32(j-64,!1),1),!1);let X,ie,se,le=this._h0,he=this._h1,ce=this._h2,_e=this._h3,me=this._h4;for(let j=0;j<80;j++)j<20?(X=he&ce|~he&_e,ie=1518500249):j<40?(X=he^ce^_e,ie=1859775393):j<60?(X=he&ce|he&_e|ce&_e,ie=2400959708):(X=he^ce^_e,ie=3395469782),se=d(le,5)+X+me+ie+N.getUint32(4*j,!1)&4294967295,me=_e,_e=ce,ce=d(he,30),he=le,le=se;this._h0=this._h0+le&4294967295,this._h1=this._h1+he&4294967295,this._h2=this._h2+ce&4294967295,this._h3=this._h3+_e&4294967295,this._h4=this._h4+me&4294967295}}j.StringSHA1=f},4218:(N,j)=>{var X;Object.defineProperty(j,"__esModule",{value:!0}),j.Iterable=void 0,function(N){function t(N){return N&&"object"==typeof N&&"function"==typeof N[Symbol.iterator]}N.is=t;const j=Object.freeze([]);function*s(N){yield N}N.empty=function(){return j},N.single=s,N.wrap=function(N){return t(N)?N:s(N)},N.from=function(N){return N||j},N.reverse=function*(N){for(let j=N.length-1;j>=0;j--)yield N[j]},N.isEmpty=function(N){return!N||!0===N[Symbol.iterator]().next().done},N.first=function(N){return N[Symbol.iterator]().next().value},N.some=function(N,j){let X=0;for(const ie of N)if(j(ie,X++))return!0;return!1},N.find=function(N,j){for(const X of N)if(j(X))return X},N.filter=function*(N,j){for(const X of N)j(X)&&(yield X)},N.map=function*(N,j){let X=0;for(const ie of N)yield j(ie,X++)},N.flatMap=function*(N,j){let X=0;for(const ie of N)yield*j(ie,X++)},N.concat=function*(...N){for(const j of N)yield*j},N.reduce=function(N,j,X){let ie=X;for(const X of N)ie=j(ie,X);return ie},N.slice=function*(N,j,X=N.length){for(j<0&&(j+=N.length),X<0?X+=N.length:X>N.length&&(X=N.length);jse}]},N.asyncToArray=async function(N){const j=[];for await(const X of N)j.push(X);return Promise.resolve(j)}}(X||(j.Iterable=X={}))},7883:(N,j)=>{var X,ie;Object.defineProperty(j,"__esModule",{value:!0}),j.KeyMod=j.KeyCodeUtils=j.ScanCodeUtils=j.NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE=j.EVENT_KEY_CODE_MAP=j.ScanCode=j.KeyCode=void 0,j.KeyChord=function(N,j){return(N|(65535&j)<<16>>>0)>>>0},function(N){N[N.DependsOnKbLayout=-1]="DependsOnKbLayout",N[N.Unknown=0]="Unknown",N[N.Backspace=1]="Backspace",N[N.Tab=2]="Tab",N[N.Enter=3]="Enter",N[N.Shift=4]="Shift",N[N.Ctrl=5]="Ctrl",N[N.Alt=6]="Alt",N[N.PauseBreak=7]="PauseBreak",N[N.CapsLock=8]="CapsLock",N[N.Escape=9]="Escape",N[N.Space=10]="Space",N[N.PageUp=11]="PageUp",N[N.PageDown=12]="PageDown",N[N.End=13]="End",N[N.Home=14]="Home",N[N.LeftArrow=15]="LeftArrow",N[N.UpArrow=16]="UpArrow",N[N.RightArrow=17]="RightArrow",N[N.DownArrow=18]="DownArrow",N[N.Insert=19]="Insert",N[N.Delete=20]="Delete",N[N.Digit0=21]="Digit0",N[N.Digit1=22]="Digit1",N[N.Digit2=23]="Digit2",N[N.Digit3=24]="Digit3",N[N.Digit4=25]="Digit4",N[N.Digit5=26]="Digit5",N[N.Digit6=27]="Digit6",N[N.Digit7=28]="Digit7",N[N.Digit8=29]="Digit8",N[N.Digit9=30]="Digit9",N[N.KeyA=31]="KeyA",N[N.KeyB=32]="KeyB",N[N.KeyC=33]="KeyC",N[N.KeyD=34]="KeyD",N[N.KeyE=35]="KeyE",N[N.KeyF=36]="KeyF",N[N.KeyG=37]="KeyG",N[N.KeyH=38]="KeyH",N[N.KeyI=39]="KeyI",N[N.KeyJ=40]="KeyJ",N[N.KeyK=41]="KeyK",N[N.KeyL=42]="KeyL",N[N.KeyM=43]="KeyM",N[N.KeyN=44]="KeyN",N[N.KeyO=45]="KeyO",N[N.KeyP=46]="KeyP",N[N.KeyQ=47]="KeyQ",N[N.KeyR=48]="KeyR",N[N.KeyS=49]="KeyS",N[N.KeyT=50]="KeyT",N[N.KeyU=51]="KeyU",N[N.KeyV=52]="KeyV",N[N.KeyW=53]="KeyW",N[N.KeyX=54]="KeyX",N[N.KeyY=55]="KeyY",N[N.KeyZ=56]="KeyZ",N[N.Meta=57]="Meta",N[N.ContextMenu=58]="ContextMenu",N[N.F1=59]="F1",N[N.F2=60]="F2",N[N.F3=61]="F3",N[N.F4=62]="F4",N[N.F5=63]="F5",N[N.F6=64]="F6",N[N.F7=65]="F7",N[N.F8=66]="F8",N[N.F9=67]="F9",N[N.F10=68]="F10",N[N.F11=69]="F11",N[N.F12=70]="F12",N[N.F13=71]="F13",N[N.F14=72]="F14",N[N.F15=73]="F15",N[N.F16=74]="F16",N[N.F17=75]="F17",N[N.F18=76]="F18",N[N.F19=77]="F19",N[N.F20=78]="F20",N[N.F21=79]="F21",N[N.F22=80]="F22",N[N.F23=81]="F23",N[N.F24=82]="F24",N[N.NumLock=83]="NumLock",N[N.ScrollLock=84]="ScrollLock",N[N.Semicolon=85]="Semicolon",N[N.Equal=86]="Equal",N[N.Comma=87]="Comma",N[N.Minus=88]="Minus",N[N.Period=89]="Period",N[N.Slash=90]="Slash",N[N.Backquote=91]="Backquote",N[N.BracketLeft=92]="BracketLeft",N[N.Backslash=93]="Backslash",N[N.BracketRight=94]="BracketRight",N[N.Quote=95]="Quote",N[N.OEM_8=96]="OEM_8",N[N.IntlBackslash=97]="IntlBackslash",N[N.Numpad0=98]="Numpad0",N[N.Numpad1=99]="Numpad1",N[N.Numpad2=100]="Numpad2",N[N.Numpad3=101]="Numpad3",N[N.Numpad4=102]="Numpad4",N[N.Numpad5=103]="Numpad5",N[N.Numpad6=104]="Numpad6",N[N.Numpad7=105]="Numpad7",N[N.Numpad8=106]="Numpad8",N[N.Numpad9=107]="Numpad9",N[N.NumpadMultiply=108]="NumpadMultiply",N[N.NumpadAdd=109]="NumpadAdd",N[N.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",N[N.NumpadSubtract=111]="NumpadSubtract",N[N.NumpadDecimal=112]="NumpadDecimal",N[N.NumpadDivide=113]="NumpadDivide",N[N.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",N[N.ABNT_C1=115]="ABNT_C1",N[N.ABNT_C2=116]="ABNT_C2",N[N.AudioVolumeMute=117]="AudioVolumeMute",N[N.AudioVolumeUp=118]="AudioVolumeUp",N[N.AudioVolumeDown=119]="AudioVolumeDown",N[N.BrowserSearch=120]="BrowserSearch",N[N.BrowserHome=121]="BrowserHome",N[N.BrowserBack=122]="BrowserBack",N[N.BrowserForward=123]="BrowserForward",N[N.MediaTrackNext=124]="MediaTrackNext",N[N.MediaTrackPrevious=125]="MediaTrackPrevious",N[N.MediaStop=126]="MediaStop",N[N.MediaPlayPause=127]="MediaPlayPause",N[N.LaunchMediaPlayer=128]="LaunchMediaPlayer",N[N.LaunchMail=129]="LaunchMail",N[N.LaunchApp2=130]="LaunchApp2",N[N.Clear=131]="Clear",N[N.MAX_VALUE=132]="MAX_VALUE"}(X||(j.KeyCode=X={})),function(N){N[N.DependsOnKbLayout=-1]="DependsOnKbLayout",N[N.None=0]="None",N[N.Hyper=1]="Hyper",N[N.Super=2]="Super",N[N.Fn=3]="Fn",N[N.FnLock=4]="FnLock",N[N.Suspend=5]="Suspend",N[N.Resume=6]="Resume",N[N.Turbo=7]="Turbo",N[N.Sleep=8]="Sleep",N[N.WakeUp=9]="WakeUp",N[N.KeyA=10]="KeyA",N[N.KeyB=11]="KeyB",N[N.KeyC=12]="KeyC",N[N.KeyD=13]="KeyD",N[N.KeyE=14]="KeyE",N[N.KeyF=15]="KeyF",N[N.KeyG=16]="KeyG",N[N.KeyH=17]="KeyH",N[N.KeyI=18]="KeyI",N[N.KeyJ=19]="KeyJ",N[N.KeyK=20]="KeyK",N[N.KeyL=21]="KeyL",N[N.KeyM=22]="KeyM",N[N.KeyN=23]="KeyN",N[N.KeyO=24]="KeyO",N[N.KeyP=25]="KeyP",N[N.KeyQ=26]="KeyQ",N[N.KeyR=27]="KeyR",N[N.KeyS=28]="KeyS",N[N.KeyT=29]="KeyT",N[N.KeyU=30]="KeyU",N[N.KeyV=31]="KeyV",N[N.KeyW=32]="KeyW",N[N.KeyX=33]="KeyX",N[N.KeyY=34]="KeyY",N[N.KeyZ=35]="KeyZ",N[N.Digit1=36]="Digit1",N[N.Digit2=37]="Digit2",N[N.Digit3=38]="Digit3",N[N.Digit4=39]="Digit4",N[N.Digit5=40]="Digit5",N[N.Digit6=41]="Digit6",N[N.Digit7=42]="Digit7",N[N.Digit8=43]="Digit8",N[N.Digit9=44]="Digit9",N[N.Digit0=45]="Digit0",N[N.Enter=46]="Enter",N[N.Escape=47]="Escape",N[N.Backspace=48]="Backspace",N[N.Tab=49]="Tab",N[N.Space=50]="Space",N[N.Minus=51]="Minus",N[N.Equal=52]="Equal",N[N.BracketLeft=53]="BracketLeft",N[N.BracketRight=54]="BracketRight",N[N.Backslash=55]="Backslash",N[N.IntlHash=56]="IntlHash",N[N.Semicolon=57]="Semicolon",N[N.Quote=58]="Quote",N[N.Backquote=59]="Backquote",N[N.Comma=60]="Comma",N[N.Period=61]="Period",N[N.Slash=62]="Slash",N[N.CapsLock=63]="CapsLock",N[N.F1=64]="F1",N[N.F2=65]="F2",N[N.F3=66]="F3",N[N.F4=67]="F4",N[N.F5=68]="F5",N[N.F6=69]="F6",N[N.F7=70]="F7",N[N.F8=71]="F8",N[N.F9=72]="F9",N[N.F10=73]="F10",N[N.F11=74]="F11",N[N.F12=75]="F12",N[N.PrintScreen=76]="PrintScreen",N[N.ScrollLock=77]="ScrollLock",N[N.Pause=78]="Pause",N[N.Insert=79]="Insert",N[N.Home=80]="Home",N[N.PageUp=81]="PageUp",N[N.Delete=82]="Delete",N[N.End=83]="End",N[N.PageDown=84]="PageDown",N[N.ArrowRight=85]="ArrowRight",N[N.ArrowLeft=86]="ArrowLeft",N[N.ArrowDown=87]="ArrowDown",N[N.ArrowUp=88]="ArrowUp",N[N.NumLock=89]="NumLock",N[N.NumpadDivide=90]="NumpadDivide",N[N.NumpadMultiply=91]="NumpadMultiply",N[N.NumpadSubtract=92]="NumpadSubtract",N[N.NumpadAdd=93]="NumpadAdd",N[N.NumpadEnter=94]="NumpadEnter",N[N.Numpad1=95]="Numpad1",N[N.Numpad2=96]="Numpad2",N[N.Numpad3=97]="Numpad3",N[N.Numpad4=98]="Numpad4",N[N.Numpad5=99]="Numpad5",N[N.Numpad6=100]="Numpad6",N[N.Numpad7=101]="Numpad7",N[N.Numpad8=102]="Numpad8",N[N.Numpad9=103]="Numpad9",N[N.Numpad0=104]="Numpad0",N[N.NumpadDecimal=105]="NumpadDecimal",N[N.IntlBackslash=106]="IntlBackslash",N[N.ContextMenu=107]="ContextMenu",N[N.Power=108]="Power",N[N.NumpadEqual=109]="NumpadEqual",N[N.F13=110]="F13",N[N.F14=111]="F14",N[N.F15=112]="F15",N[N.F16=113]="F16",N[N.F17=114]="F17",N[N.F18=115]="F18",N[N.F19=116]="F19",N[N.F20=117]="F20",N[N.F21=118]="F21",N[N.F22=119]="F22",N[N.F23=120]="F23",N[N.F24=121]="F24",N[N.Open=122]="Open",N[N.Help=123]="Help",N[N.Select=124]="Select",N[N.Again=125]="Again",N[N.Undo=126]="Undo",N[N.Cut=127]="Cut",N[N.Copy=128]="Copy",N[N.Paste=129]="Paste",N[N.Find=130]="Find",N[N.AudioVolumeMute=131]="AudioVolumeMute",N[N.AudioVolumeUp=132]="AudioVolumeUp",N[N.AudioVolumeDown=133]="AudioVolumeDown",N[N.NumpadComma=134]="NumpadComma",N[N.IntlRo=135]="IntlRo",N[N.KanaMode=136]="KanaMode",N[N.IntlYen=137]="IntlYen",N[N.Convert=138]="Convert",N[N.NonConvert=139]="NonConvert",N[N.Lang1=140]="Lang1",N[N.Lang2=141]="Lang2",N[N.Lang3=142]="Lang3",N[N.Lang4=143]="Lang4",N[N.Lang5=144]="Lang5",N[N.Abort=145]="Abort",N[N.Props=146]="Props",N[N.NumpadParenLeft=147]="NumpadParenLeft",N[N.NumpadParenRight=148]="NumpadParenRight",N[N.NumpadBackspace=149]="NumpadBackspace",N[N.NumpadMemoryStore=150]="NumpadMemoryStore",N[N.NumpadMemoryRecall=151]="NumpadMemoryRecall",N[N.NumpadMemoryClear=152]="NumpadMemoryClear",N[N.NumpadMemoryAdd=153]="NumpadMemoryAdd",N[N.NumpadMemorySubtract=154]="NumpadMemorySubtract",N[N.NumpadClear=155]="NumpadClear",N[N.NumpadClearEntry=156]="NumpadClearEntry",N[N.ControlLeft=157]="ControlLeft",N[N.ShiftLeft=158]="ShiftLeft",N[N.AltLeft=159]="AltLeft",N[N.MetaLeft=160]="MetaLeft",N[N.ControlRight=161]="ControlRight",N[N.ShiftRight=162]="ShiftRight",N[N.AltRight=163]="AltRight",N[N.MetaRight=164]="MetaRight",N[N.BrightnessUp=165]="BrightnessUp",N[N.BrightnessDown=166]="BrightnessDown",N[N.MediaPlay=167]="MediaPlay",N[N.MediaRecord=168]="MediaRecord",N[N.MediaFastForward=169]="MediaFastForward",N[N.MediaRewind=170]="MediaRewind",N[N.MediaTrackNext=171]="MediaTrackNext",N[N.MediaTrackPrevious=172]="MediaTrackPrevious",N[N.MediaStop=173]="MediaStop",N[N.Eject=174]="Eject",N[N.MediaPlayPause=175]="MediaPlayPause",N[N.MediaSelect=176]="MediaSelect",N[N.LaunchMail=177]="LaunchMail",N[N.LaunchApp2=178]="LaunchApp2",N[N.LaunchApp1=179]="LaunchApp1",N[N.SelectTask=180]="SelectTask",N[N.LaunchScreenSaver=181]="LaunchScreenSaver",N[N.BrowserSearch=182]="BrowserSearch",N[N.BrowserHome=183]="BrowserHome",N[N.BrowserBack=184]="BrowserBack",N[N.BrowserForward=185]="BrowserForward",N[N.BrowserStop=186]="BrowserStop",N[N.BrowserRefresh=187]="BrowserRefresh",N[N.BrowserFavorites=188]="BrowserFavorites",N[N.ZoomToggle=189]="ZoomToggle",N[N.MailReply=190]="MailReply",N[N.MailForward=191]="MailForward",N[N.MailSend=192]="MailSend",N[N.MAX_VALUE=193]="MAX_VALUE"}(ie||(j.ScanCode=ie={}));class r{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(N,j){this._keyCodeToStr[N]=j,this._strToKeyCode[j.toLowerCase()]=N}keyCodeToStr(N){return this._keyCodeToStr[N]}strToKeyCode(N){return this._strToKeyCode[N.toLowerCase()]||X.Unknown}}const se=new r,le=new r,he=new r;j.EVENT_KEY_CODE_MAP=new Array(230),j.NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE={};const ce=[],_e=Object.create(null),me=Object.create(null);var ve,Se;j.ScanCodeUtils={lowerCaseToEnum:N=>me[N]||ie.None,toEnum:N=>_e[N]||ie.None,toString:N=>ce[N]||"None"},function(N){N.toString=function(N){return se.keyCodeToStr(N)},N.fromString=function(N){return se.strToKeyCode(N)},N.toUserSettingsUS=function(N){return le.keyCodeToStr(N)},N.toUserSettingsGeneral=function(N){return he.keyCodeToStr(N)},N.fromUserSettings=function(N){return le.strToKeyCode(N)||he.strToKeyCode(N)},N.toElectronAccelerator=function(N){if(N>=X.Numpad0&&N<=X.NumpadDivide)return null;switch(N){case X.UpArrow:return"Up";case X.DownArrow:return"Down";case X.LeftArrow:return"Left";case X.RightArrow:return"Right"}return se.keyCodeToStr(N)}}(ve||(j.KeyCodeUtils=ve={})),function(N){N[N.CtrlCmd=2048]="CtrlCmd",N[N.Shift=1024]="Shift",N[N.Alt=512]="Alt",N[N.WinCtrl=256]="WinCtrl"}(Se||(j.KeyMod=Se={}))},2811:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.ResolvedKeybinding=j.ResolvedChord=j.Keybinding=j.ScanCodeChord=j.KeyCodeChord=void 0,j.decodeKeybinding=function(N,j){if("number"==typeof N){if(0===N)return null;const X=(65535&N)>>>0,ie=(4294901760&N)>>>16;return new c(0!==ie?[a(X,j),a(ie,j)]:[a(X,j)])}{const X=[];for(let ie=0;ie{Object.defineProperty(j,"__esModule",{value:!0}),j.Lazy=void 0,j.Lazy=class{constructor(N){this.executor=N,this._didRun=!1}get hasValue(){return this._didRun}get value(){if(!this._didRun)try{this._value=this.executor()}catch(N){this._error=N}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}},7150:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.DisposableMap=j.ImmortalReference=j.AsyncReferenceCollection=j.ReferenceCollection=j.SafeDisposable=j.RefCountedDisposable=j.MandatoryMutableDisposable=j.MutableDisposable=j.Disposable=j.DisposableStore=j.DisposableTracker=void 0,j.setDisposableTracker=function(N){_e=N},j.trackDisposable=c,j.markAsDisposed=d,j.markAsSingleton=function(N){return _e?.markAsSingleton(N),N},j.isDisposable=_,j.dispose=f,j.disposeIfDisposable=function(N){for(const j of N)_(j)&&j.dispose();return[]},j.combinedDisposable=function(...N){const j=p((()=>f(N)));return function(N,j){if(_e)for(const X of N)_e.setParent(X,j)}(N,j),j},j.toDisposable=p,j.disposeOnReturn=function(N){const j=new g;try{N(j)}finally{j.dispose()}};const ie=X(3058),se=X(9087),le=X(2608),he=X(8841),ce=X(4218);let _e=null;class h{constructor(){this.livingDisposables=new Map}static{this.idx=0}getDisposableData(N){let j=this.livingDisposables.get(N);return j||(j={parent:null,source:null,isSingleton:!1,value:N,idx:h.idx++},this.livingDisposables.set(N,j)),j}trackDisposable(N){const j=this.getDisposableData(N);j.source||(j.source=(new Error).stack)}setParent(N,j){this.getDisposableData(N).parent=j}markAsDisposed(N){this.livingDisposables.delete(N)}markAsSingleton(N){this.getDisposableData(N).isSingleton=!0}getRootParent(N,j){const X=j.get(N);if(X)return X;const ie=N.parent?this.getRootParent(this.getDisposableData(N.parent),j):N;return j.set(N,ie),ie}getTrackedDisposables(){const N=new Map;return[...this.livingDisposables.entries()].filter((([,j])=>null!==j.source&&!this.getRootParent(j,N).isSingleton)).flatMap((([N])=>N))}computeLeakingDisposables(N=10,j){let X;if(j)X=j;else{const N=new Map,j=[...this.livingDisposables.values()].filter((j=>null!==j.source&&!this.getRootParent(j,N).isSingleton));if(0===j.length)return;const ie=new Set(j.map((N=>N.value)));if(X=j.filter((N=>!(N.parent&&ie.has(N.parent)))),0===X.length)throw new Error("There are cyclic diposable chains!")}if(!X)return;function o(N){const j=N.source.split("\n").map((N=>N.trim().replace("at ",""))).filter((N=>""!==N));return function(N,j){for(;N.length>0&&j.some((j=>"string"==typeof j?j===N[0]:N[0].match(j)));)N.shift()}(j,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),j.reverse()}const he=new le.SetMap;for(const N of X){const j=o(N);for(let X=0;X<=j.length;X++)he.add(j.slice(0,X).join("\n"),N)}X.sort((0,ie.compareBy)((N=>N.idx),ie.numberComparator));let ce="",_e=0;for(const j of X.slice(0,N)){_e++;const N=o(j),ie=[];for(let j=0;jo(N)[j])),(N=>N));delete _e[N[j]];for(const[N,j]of Object.entries(_e))ie.unshift(` - stacktraces of ${j.length} other leaks continue with ${N}`);ie.unshift(le)}ce+=`\n\n\n==================== Leaking disposable ${_e}/${X.length}: ${j.value.constructor.name} ====================\n${ie.join("\n")}\n============================================================\n\n`}return X.length>N&&(ce+=`\n\n\n... and ${X.length-N} more leaking disposables\n\n`),{leaks:X,details:ce}}}function c(N){return _e?.trackDisposable(N),N}function d(N){_e?.markAsDisposed(N)}function u(N,j){_e?.setParent(N,j)}function _(N){return"object"==typeof N&&null!==N&&"function"==typeof N.dispose&&0===N.dispose.length}function f(N){if(ce.Iterable.is(N)){const j=[];for(const X of N)if(X)try{X.dispose()}catch(N){j.push(N)}if(1===j.length)throw j[0];if(j.length>1)throw new AggregateError(j,"Encountered errors while disposing of store");return Array.isArray(N)?[]:N}if(N)return N.dispose(),N}function p(N){const j=c({dispose:(0,he.createSingleCallFunction)((()=>{d(j),N()}))});return j}j.DisposableTracker=h;class g{static{this.DISABLE_DISPOSED_WARNING=!1}constructor(){this._toDispose=new Set,this._isDisposed=!1,c(this)}dispose(){this._isDisposed||(d(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(0!==this._toDispose.size)try{f(this._toDispose)}finally{this._toDispose.clear()}}add(N){if(!N)return N;if(N===this)throw new Error("Cannot register a disposable on itself!");return u(N,this),this._isDisposed?g.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(N),N}delete(N){if(N){if(N===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(N),N.dispose()}}deleteAndLeak(N){N&&this._toDispose.has(N)&&(this._toDispose.delete(N),u(N,null))}}j.DisposableStore=g;class m{static{this.None=Object.freeze({dispose(){}})}constructor(){this._store=new g,c(this),u(this._store,this)}dispose(){d(this),this._store.dispose()}_register(N){if(N===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(N)}}j.Disposable=m;class v{constructor(){this._isDisposed=!1,c(this)}get value(){return this._isDisposed?void 0:this._value}set value(N){this._isDisposed||N===this._value||(this._value?.dispose(),N&&u(N,this),this._value=N)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,d(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){const N=this._value;return this._value=void 0,N&&u(N,null),N}}j.MutableDisposable=v,j.MandatoryMutableDisposable=class{constructor(N){this._disposable=new v,this._isDisposed=!1,this._disposable.value=N}get value(){return this._disposable.value}set value(N){this._isDisposed||N===this._disposable.value||(this._disposable.value=N)}dispose(){this._isDisposed=!0,this._disposable.dispose()}},j.RefCountedDisposable=class{constructor(N){this._disposable=N,this._counter=1}acquire(){return this._counter++,this}release(){return 0==--this._counter&&this._disposable.dispose(),this}},j.SafeDisposable=class{constructor(){this.dispose=()=>{},this.unset=()=>{},this.isset=()=>!1,c(this)}set(N){let j=N;return this.unset=()=>j=void 0,this.isset=()=>void 0!==j,this.dispose=()=>{j&&(j(),j=void 0,d(this))},this}},j.ReferenceCollection=class{constructor(){this.references=new Map}acquire(N,...j){let X=this.references.get(N);X||(X={counter:0,object:this.createReferencedObject(N,...j)},this.references.set(N,X));const{object:ie}=X,se=(0,he.createSingleCallFunction)((()=>{0==--X.counter&&(this.destroyReferencedObject(N,X.object),this.references.delete(N))}));return X.counter++,{object:ie,dispose:se}}},j.AsyncReferenceCollection=class{constructor(N){this.referenceCollection=N}async acquire(N,...j){const X=this.referenceCollection.acquire(N,...j);try{return{object:await X.object,dispose:()=>X.dispose()}}catch(N){throw X.dispose(),N}}},j.ImmortalReference=class{constructor(N){this.object=N}dispose(){}};class S{constructor(){this._store=new Map,this._isDisposed=!1,c(this)}dispose(){d(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{f(this._store.values())}finally{this._store.clear()}}has(N){return this._store.has(N)}get size(){return this._store.size}get(N){return this._store.get(N)}set(N,j,X=!1){this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),X||this._store.get(N)?.dispose(),this._store.set(N,j)}deleteAndDispose(N){this._store.get(N)?.dispose(),this._store.delete(N)}deleteAndLeak(N){const j=this._store.get(N);return this._store.delete(N),j}keys(){return this._store.keys()}values(){return this._store.values()}[Symbol.iterator](){return this._store[Symbol.iterator]()}}j.DisposableMap=S},6317:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.LinkedList=void 0;class i{static{this.Undefined=new i(void 0)}constructor(N){this.element=N,this.next=i.Undefined,this.prev=i.Undefined}}class s{constructor(){this._first=i.Undefined,this._last=i.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===i.Undefined}clear(){let N=this._first;for(;N!==i.Undefined;){const j=N.next;N.prev=i.Undefined,N.next=i.Undefined,N=j}this._first=i.Undefined,this._last=i.Undefined,this._size=0}unshift(N){return this._insert(N,!1)}push(N){return this._insert(N,!0)}_insert(N,j){const X=new i(N);if(this._first===i.Undefined)this._first=X,this._last=X;else if(j){const N=this._last;this._last=X,X.prev=N,N.next=X}else{const N=this._first;this._first=X,X.next=N,N.prev=X}this._size+=1;let ie=!1;return()=>{ie||(ie=!0,this._remove(X))}}shift(){if(this._first!==i.Undefined){const N=this._first.element;return this._remove(this._first),N}}pop(){if(this._last!==i.Undefined){const N=this._last.element;return this._remove(this._last),N}}_remove(N){if(N.prev!==i.Undefined&&N.next!==i.Undefined){const j=N.prev;j.next=N.next,N.next.prev=j}else N.prev===i.Undefined&&N.next===i.Undefined?(this._first=i.Undefined,this._last=i.Undefined):N.next===i.Undefined?(this._last=this._last.prev,this._last.next=i.Undefined):N.prev===i.Undefined&&(this._first=this._first.next,this._first.prev=i.Undefined);this._size-=1}*[Symbol.iterator](){let N=this._first;for(;N!==i.Undefined;)yield N.element,N=N.next}}j.LinkedList=s},2608:(N,j)=>{var X;Object.defineProperty(j,"__esModule",{value:!0}),j.SetMap=j.BidirectionalMap=j.CounterSet=j.Touch=void 0,j.getOrSet=function(N,j,X){let ie=N.get(j);return void 0===ie&&(ie=X,N.set(j,ie)),ie},j.mapToString=function(N){const j=[];return N.forEach(((N,X)=>{j.push(`${X} => ${N}`)})),`Map(${N.size}) {${j.join(", ")}}`},j.setToString=function(N){const j=[];return N.forEach((N=>{j.push(N)})),`Set(${N.size}) {${j.join(", ")}}`},j.mapsStrictEqualIgnoreOrder=function(N,j){if(N===j)return!0;if(N.size!==j.size)return!1;for(const[X,ie]of N)if(!j.has(X)||j.get(X)!==ie)return!1;for(const[X]of j)if(!N.has(X))return!1;return!0},function(N){N[N.None=0]="None",N[N.AsOld=1]="AsOld",N[N.AsNew=2]="AsNew"}(X||(j.Touch=X={})),j.CounterSet=class{constructor(){this.map=new Map}add(N){return this.map.set(N,(this.map.get(N)||0)+1),this}delete(N){let j=this.map.get(N)||0;return 0!==j&&(j--,0===j?this.map.delete(N):this.map.set(N,j),!0)}has(N){return this.map.has(N)}},j.BidirectionalMap=class{constructor(N){if(this._m1=new Map,this._m2=new Map,N)for(const[j,X]of N)this.set(j,X)}clear(){this._m1.clear(),this._m2.clear()}set(N,j){this._m1.set(N,j),this._m2.set(j,N)}get(N){return this._m1.get(N)}getKey(N){return this._m2.get(N)}delete(N){const j=this._m1.get(N);return void 0!==j&&(this._m1.delete(N),this._m2.delete(j),!0)}forEach(N,j){this._m1.forEach(((X,ie)=>{N.call(j,X,ie,this)}))}keys(){return this._m1.keys()}values(){return this._m1.values()}},j.SetMap=class{constructor(){this.map=new Map}add(N,j){let X=this.map.get(N);X||(X=new Set,this.map.set(N,X)),X.add(j)}delete(N,j){const X=this.map.get(N);X&&(X.delete(j),0===X.size&&this.map.delete(N))}forEach(N,j){const X=this.map.get(N);X&&X.forEach(j)}get(N){return this.map.get(N)||new Set}}},7704:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.SlidingWindowAverage=j.MovingAverage=j.Counter=void 0,j.clamp=function(N,j,X){return Math.min(Math.max(N,j),X)},j.rot=function(N,j){return(j+N%j)%j},j.isPointWithinTriangle=function(N,j,X,ie,se,le,he,ce){const _e=he-X,me=ce-ie,ve=se-X,Se=le-ie,be=N-X,Ce=j-ie,ye=_e*_e+me*me,we=_e*ve+me*Se,Ee=_e*be+me*Ce,De=ve*ve+Se*Se,Le=ve*be+Se*Ce,Ae=1/(ye*De-we*we),Re=(De*Ee-we*Le)*Ae,Te=(ye*Le-we*Ee)*Ae;return Re>=0&&Te>=0&&Re+Te<1},j.Counter=class{constructor(){this._next=0}getNext(){return this._next++}},j.MovingAverage=class{constructor(){this._n=1,this._val=0}update(N){return this._val=this._val+(N-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}},j.SlidingWindowAverage=class{constructor(N){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(N),this._values.fill(0,0,N)}update(N){const j=this._values[this._index];return this._values[this._index]=N,this._index=(this._index+1)%this._values.length,this._sum-=j,this._sum+=N,this._n{Object.defineProperty(j,"__esModule",{value:!0}),j.isAndroid=j.isEdge=j.isSafari=j.isFirefox=j.isChrome=j.OS=j.OperatingSystem=j.setTimeout0=j.setTimeout0IsFaster=j.translationsConfigFile=j.platformLocale=j.locale=j.Language=j.language=j.userAgent=j.platform=j.isCI=j.isMobile=j.isIOS=j.webWorkerOrigin=j.isWebWorker=j.isWeb=j.isElectron=j.isNative=j.isLinuxSnap=j.isLinux=j.isMacintosh=j.isWindows=j.Platform=j.LANGUAGE_DEFAULT=void 0,j.PlatformToString=function(N){switch(N){case Te.Web:return"Web";case Te.Mac:return"Mac";case Te.Linux:return"Linux";case Te.Windows:return"Windows"}},j.isLittleEndian=function(){if(!Pe){Pe=!0;const N=new Uint8Array(2);N[0]=1,N[1]=2;const j=new Uint16Array(N.buffer);Ie=513===j[0]}return Ie},j.isBigSurOrNewer=function(N){return parseFloat(N)>=20},j.LANGUAGE_DEFAULT="en";let X,ie,se,le=!1,he=!1,ce=!1,_e=!1,me=!1,ve=!1,Se=!1,be=!1,Ce=!1,ye=!1,we=j.LANGUAGE_DEFAULT,Ee=j.LANGUAGE_DEFAULT;const De=globalThis;let Le;void 0!==De.vscode&&void 0!==De.vscode.process?Le=De.vscode.process:"undefined"!=typeof process&&"string"==typeof process?.versions?.node&&(Le=process);const Ae="string"==typeof Le?.versions?.electron,Re=Ae&&"renderer"===Le?.type;if("object"==typeof Le){le="win32"===Le.platform,he="darwin"===Le.platform,ce="linux"===Le.platform,_e=ce&&!!Le.env.SNAP&&!!Le.env.SNAP_REVISION,Se=Ae,Ce=!!Le.env.CI||!!Le.env.BUILD_ARTIFACTSTAGINGDIRECTORY,X=j.LANGUAGE_DEFAULT,we=j.LANGUAGE_DEFAULT;const se=Le.env.VSCODE_NLS_CONFIG;if(se)try{const N=JSON.parse(se);X=N.userLocale,Ee=N.osLocale,we=N.resolvedLanguage||j.LANGUAGE_DEFAULT,ie=N.languagePack?.translationsConfigFile}catch(N){}me=!0}else"object"!=typeof navigator||Re?console.error("Unable to resolve platform."):(se=navigator.userAgent,le=se.indexOf("Windows")>=0,he=se.indexOf("Macintosh")>=0,be=(se.indexOf("Macintosh")>=0||se.indexOf("iPad")>=0||se.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,ce=se.indexOf("Linux")>=0,ye=se?.indexOf("Mobi")>=0,ve=!0,we=globalThis._VSCODE_NLS_LANGUAGE||j.LANGUAGE_DEFAULT,X=navigator.language.toLowerCase(),Ee=X);var Te;!function(N){N[N.Web=0]="Web",N[N.Mac=1]="Mac",N[N.Linux=2]="Linux",N[N.Windows=3]="Windows"}(Te||(j.Platform=Te={}));let ke=Te.Web;var Me,Oe;he?ke=Te.Mac:le?ke=Te.Windows:ce&&(ke=Te.Linux),j.isWindows=le,j.isMacintosh=he,j.isLinux=ce,j.isLinuxSnap=_e,j.isNative=me,j.isElectron=Se,j.isWeb=ve,j.isWebWorker=ve&&"function"==typeof De.importScripts,j.webWorkerOrigin=j.isWebWorker?De.origin:void 0,j.isIOS=be,j.isMobile=ye,j.isCI=Ce,j.platform=ke,j.userAgent=se,j.language=we,function(N){N.value=function(){return j.language},N.isDefaultVariant=function(){return 2===j.language.length?"en"===j.language:j.language.length>=3&&"e"===j.language[0]&&"n"===j.language[1]&&"-"===j.language[2]},N.isDefault=function(){return"en"===j.language}}(Me||(j.Language=Me={})),j.locale=X,j.platformLocale=Ee,j.translationsConfigFile=ie,j.setTimeout0IsFaster="function"==typeof De.postMessage&&!De.importScripts,j.setTimeout0=(()=>{if(j.setTimeout0IsFaster){const N=[];De.addEventListener("message",(j=>{if(j.data&&j.data.vscodeScheduleAsyncWork)for(let X=0,ie=N.length;X{const ie=++j;N.push({id:ie,callback:X}),De.postMessage({vscodeScheduleAsyncWork:ie},"*")}}return N=>setTimeout(N)})(),function(N){N[N.Windows=1]="Windows",N[N.Macintosh=2]="Macintosh",N[N.Linux=3]="Linux"}(Oe||(j.OperatingSystem=Oe={})),j.OS=he||be?Oe.Macintosh:le?Oe.Windows:Oe.Linux;let Ie=!0,Pe=!1;j.isChrome=!!(j.userAgent&&j.userAgent.indexOf("Chrome")>=0),j.isFirefox=!!(j.userAgent&&j.userAgent.indexOf("Firefox")>=0),j.isSafari=!!(!j.isChrome&&j.userAgent&&j.userAgent.indexOf("Safari")>=0),j.isEdge=!!(j.userAgent&&j.userAgent.indexOf("Edg/")>=0),j.isAndroid=!!(j.userAgent&&j.userAgent.indexOf("Android")>=0)},9881:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.SmoothScrollingOperation=j.SmoothScrollingUpdate=j.Scrollable=j.ScrollState=j.ScrollbarVisibility=void 0;const ie=X(802),se=X(7150);var le;!function(N){N[N.Auto=1]="Auto",N[N.Hidden=2]="Hidden",N[N.Visible=3]="Visible"}(le||(j.ScrollbarVisibility=le={}));class o{constructor(N,j,X,ie,se,le,he){this._forceIntegerValues=N,this._scrollStateBrand=void 0,this._forceIntegerValues&&(j|=0,X|=0,ie|=0,se|=0,le|=0,he|=0),this.rawScrollLeft=ie,this.rawScrollTop=he,j<0&&(j=0),ie+j>X&&(ie=X-j),ie<0&&(ie=0),se<0&&(se=0),he+se>le&&(he=le-se),he<0&&(he=0),this.width=j,this.scrollWidth=X,this.scrollLeft=ie,this.height=se,this.scrollHeight=le,this.scrollTop=he}equals(N){return this.rawScrollLeft===N.rawScrollLeft&&this.rawScrollTop===N.rawScrollTop&&this.width===N.width&&this.scrollWidth===N.scrollWidth&&this.scrollLeft===N.scrollLeft&&this.height===N.height&&this.scrollHeight===N.scrollHeight&&this.scrollTop===N.scrollTop}withScrollDimensions(N,j){return new o(this._forceIntegerValues,void 0!==N.width?N.width:this.width,void 0!==N.scrollWidth?N.scrollWidth:this.scrollWidth,j?this.rawScrollLeft:this.scrollLeft,void 0!==N.height?N.height:this.height,void 0!==N.scrollHeight?N.scrollHeight:this.scrollHeight,j?this.rawScrollTop:this.scrollTop)}withScrollPosition(N){return new o(this._forceIntegerValues,this.width,this.scrollWidth,void 0!==N.scrollLeft?N.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,void 0!==N.scrollTop?N.scrollTop:this.rawScrollTop)}createScrollEvent(N,j){const X=this.width!==N.width,ie=this.scrollWidth!==N.scrollWidth,se=this.scrollLeft!==N.scrollLeft,le=this.height!==N.height,he=this.scrollHeight!==N.scrollHeight,ce=this.scrollTop!==N.scrollTop;return{inSmoothScrolling:j,oldWidth:N.width,oldScrollWidth:N.scrollWidth,oldScrollLeft:N.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:N.height,oldScrollHeight:N.scrollHeight,oldScrollTop:N.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:X,scrollWidthChanged:ie,scrollLeftChanged:se,heightChanged:le,scrollHeightChanged:he,scrollTopChanged:ce}}}j.ScrollState=o;class a extends se.Disposable{constructor(N){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new ie.Emitter),this.onScroll=this._onScroll.event,this._smoothScrollDuration=N.smoothScrollDuration,this._scheduleAtNextAnimationFrame=N.scheduleAtNextAnimationFrame,this._state=new o(N.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(N){this._smoothScrollDuration=N}validateScrollPosition(N){return this._state.withScrollPosition(N)}getScrollDimensions(){return this._state}setScrollDimensions(N,j){const X=this._state.withScrollDimensions(N,j);this._setState(X,Boolean(this._smoothScrolling)),this._smoothScrolling?.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(N){const j=this._state.withScrollPosition(N);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(j,!1)}setScrollPositionSmooth(N,j){if(0===this._smoothScrollDuration)return this.setScrollPositionNow(N);if(this._smoothScrolling){N={scrollLeft:void 0===N.scrollLeft?this._smoothScrolling.to.scrollLeft:N.scrollLeft,scrollTop:void 0===N.scrollTop?this._smoothScrolling.to.scrollTop:N.scrollTop};const X=this._state.withScrollPosition(N);if(this._smoothScrolling.to.scrollLeft===X.scrollLeft&&this._smoothScrolling.to.scrollTop===X.scrollTop)return;let ie;ie=j?new c(this._smoothScrolling.from,X,this._smoothScrolling.startTime,this._smoothScrolling.duration):this._smoothScrolling.combine(this._state,X,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=ie}else{const j=this._state.withScrollPosition(N);this._smoothScrolling=c.start(this._state,j,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())}))}hasPendingScrollAnimation(){return Boolean(this._smoothScrolling)}_performSmoothScrolling(){if(!this._smoothScrolling)return;const N=this._smoothScrolling.tick(),j=this._state.withScrollPosition(N);return this._setState(j,!0),this._smoothScrolling?N.isDone?(this._smoothScrolling.dispose(),void(this._smoothScrolling=null)):void(this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame((()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())}))):void 0}_setState(N,j){const X=this._state;X.equals(N)||(this._state=N,this._onScroll.fire(this._state.createScrollEvent(X,j)))}}j.Scrollable=a;class l{constructor(N,j,X){this.scrollLeft=N,this.scrollTop=j,this.isDone=X}}function h(N,j){const X=j-N;return function(j){return N+X*(1-(ie=1-j,Math.pow(ie,3)));var ie}}j.SmoothScrollingUpdate=l;class c{constructor(N,j,X,ie){this.from=N,this.to=j,this.duration=ie,this.startTime=X,this.animationFrameDisposable=null,this._initAnimations()}_initAnimations(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}_initAnimation(N,j,X){if(Math.abs(N-j)>2.5*X){let he,ce;return N{Object.defineProperty(j,"__esModule",{value:!0}),j.StopWatch=void 0;const X=globalThis.performance&&"function"==typeof globalThis.performance.now;class s{static create(N){return new s(N)}constructor(N){this._now=X&&!1===N?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime}}j.StopWatch=s},1316:(N,j,X)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.noBreakWhitespace=j.CodePointIterator=void 0,j.isFalsyOrWhitespace=function(N){return!N||"string"!=typeof N||0===N.trim().length},j.format=function(N,...j){return 0===j.length?N:N.replace(le,(function(N,X){const ie=parseInt(X,10);return isNaN(ie)||ie<0||ie>=j.length?N:j[ie]}))},j.format2=function(N,j){return 0===Object.keys(j).length?N:N.replace(he,((N,X)=>j[X]??N))},j.htmlAttributeEncodeValue=function(N){return N.replace(/[<>"'&]/g,(N=>{switch(N){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return N}))},j.escape=function(N){return N.replace(/[<>&]/g,(function(N){switch(N){case"<":return"<";case">":return">";case"&":return"&";default:return N}}))},j.escapeRegExpCharacters=a,j.count=function(N,j){let X=0,ie=N.indexOf(j);for(;-1!==ie;)X++,ie=N.indexOf(j,ie+j.length);return X},j.truncate=function(N,j,X="…"){return N.length<=j?N:`${N.substr(0,j)}${X}`},j.truncateMiddle=function(N,j,X="…"){if(N.length<=j)return N;const ie=Math.ceil(j/2)-X.length/2,se=Math.floor(j/2)-X.length/2;return`${N.substr(0,ie)}${X}${N.substr(N.length-se)}`},j.trim=function(N,j=" "){return h(l(N,j),j)},j.ltrim=l,j.rtrim=h,j.convertSimple2RegExpPattern=function(N){return N.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")},j.stripWildcards=function(N){return N.replace(/\*/g,"")},j.createRegExp=function(N,j,X={}){if(!N)throw new Error("Cannot create regex from empty string");j||(N=a(N)),X.wholeWord&&(/\B/.test(N.charAt(0))||(N="\\b"+N),/\B/.test(N.charAt(N.length-1))||(N+="\\b"));let ie="";return X.global&&(ie+="g"),X.matchCase||(ie+="i"),X.multiline&&(ie+="m"),X.unicode&&(ie+="u"),new RegExp(N,ie)},j.regExpLeadsToEndlessLoop=function(N){return"^"!==N.source&&"^$"!==N.source&&"$"!==N.source&&"^\\s*$"!==N.source&&!(!N.exec("")||0!==N.lastIndex)},j.splitLines=function(N){return N.split(/\r\n|\r|\n/)},j.splitLinesIncludeSeparators=function(N){const j=[],X=N.split(/(\r\n|\r|\n)/);for(let N=0;N=0;X--){const j=N.charCodeAt(X);if(j!==ie.CharCode.Space&&j!==ie.CharCode.Tab)return X}return-1},j.replaceAsync=function(N,j,X){const ie=[];let se=0;for(const le of N.matchAll(j)){if(ie.push(N.slice(se,le.index)),void 0===le.index)throw new Error("match.index should be defined");se=le.index+le[0].length,ie.push(X(le[0],...le.slice(1),le.index,N,le.groups))}return ie.push(N.slice(se)),Promise.all(ie).then((N=>N.join("")))},j.compare=function(N,j){return Nj?1:0},j.compareSubstring=c,j.compareIgnoreCase=function(N,j){return d(N,j,0,N.length,0,j.length)},j.compareSubstringIgnoreCase=d,j.isAsciiDigit=function(N){return N>=ie.CharCode.Digit0&&N<=ie.CharCode.Digit9},j.isLowerAsciiLetter=u,j.isUpperAsciiLetter=function(N){return N>=ie.CharCode.A&&N<=ie.CharCode.Z},j.equalsIgnoreCase=function(N,j){return N.length===j.length&&0===d(N,j)},j.startsWithIgnoreCase=function(N,j){const X=j.length;return!(j.length>N.length)&&0===d(N,j,0,X)},j.commonPrefixLength=function(N,j){const X=Math.min(N.length,j.length);let ie;for(ie=0;iele)return 1}const he=ie-X,ce=le-se;return hece?1:0}function d(N,j,X=0,ie=N.length,se=0,le=j.length){for(;X=128||ce>=128)return c(N.toLowerCase(),j.toLowerCase(),X,ie,se,le);u(he)&&(he-=32),u(ce)&&(ce-=32);const _e=he-ce;if(0!==_e)return _e}const he=ie-X,ce=le-se;return hece?1:0}function u(N){return N>=ie.CharCode.a&&N<=ie.CharCode.z}function _(N){return 55296<=N&&N<=56319}function f(N){return 56320<=N&&N<=57343}function p(N,j){return j-56320+(N-55296<<10)+65536}function g(N,j,X){const ie=N.charCodeAt(X);if(_(ie)&&X+11){const ie=N.charCodeAt(j-2);if(_(ie))return p(ie,X)}return X}(this._str,this._offset);return this._offset-=N>=se.Constants.UNICODE_SUPPLEMENTARY_PLANE_BEGIN?2:1,N}nextCodePoint(){const N=g(this._str,this._len,this._offset);return this._offset+=N>=se.Constants.UNICODE_SUPPLEMENTARY_PLANE_BEGIN?2:1,N}eol(){return this._offset>=this._len}},j.noBreakWhitespace=" "},5015:(N,j)=>{Object.defineProperty(j,"__esModule",{value:!0}),j.MicrotaskDelay=void 0,j.MicrotaskDelay=Symbol("MicrotaskDelay")},8960:(N,j)=>{var X;Object.defineProperty(j,"__esModule",{value:!0}),j.Constants=void 0,j.toUint8=function(N){return N<0?0:N>X.MAX_UINT_8?X.MAX_UINT_8:0|N},j.toUint32=function(N){return N<0?0:N>X.MAX_UINT_32?X.MAX_UINT_32:0|N},function(N){N[N.MAX_SAFE_SMALL_INTEGER=1073741824]="MAX_SAFE_SMALL_INTEGER",N[N.MIN_SAFE_SMALL_INTEGER=-1073741824]="MIN_SAFE_SMALL_INTEGER",N[N.MAX_UINT_8=255]="MAX_UINT_8",N[N.MAX_UINT_16=65535]="MAX_UINT_16",N[N.MAX_UINT_32=4294967295]="MAX_UINT_32",N[N.UNICODE_SUPPLEMENTARY_PLANE_BEGIN=65536]="UNICODE_SUPPLEMENTARY_PLANE_BEGIN"}(X||(j.Constants=X={}))}},j={};function i(X){var ie=j[X];if(void 0!==ie)return ie.exports;var se=j[X]={exports:{}};return N[X].call(se.exports,se,se.exports,i),se.exports}var X={};return(()=>{var N=X;Object.defineProperty(N,"__esModule",{value:!0}),N.Terminal=void 0;const j=i(7721),ie=i(1718),se=i(7150),le=i(3027),he=i(5101),ce=i(6097),_e=i(4335),me=["cols","rows"];let ve=0;class u extends se.Disposable{constructor(N){super(),this._core=this._register(new ie.CoreBrowserTerminal(N)),this._addonManager=this._register(new le.AddonManager),this._publicOptions={...this._core.options};const t=N=>this._core.options[N],i=(N,j)=>{this._checkReadonlyOptions(N),this._core.options[N]=j};for(const N in this._core.options){const j={get:t.bind(this,N),set:i.bind(this,N)};Object.defineProperty(this._publicOptions,N,j)}}_checkReadonlyOptions(N){if(me.includes(N))throw new Error(`Option "${N}" 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 ce.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new _e.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 he.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){const N=this._core.coreService.decPrivateModes;let j="none";switch(this._core.coreMouseService.activeProtocol){case"X10":j="x10";break;case"VT200":j="vt200";break;case"DRAG":j="drag";break;case"ANY":j="any"}return{applicationCursorKeysMode:N.applicationCursorKeys,applicationKeypadMode:N.applicationKeypad,bracketedPasteMode:N.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:j,originMode:N.origin,reverseWraparoundMode:N.reverseWraparound,sendFocusMode:N.sendFocus,wraparoundMode:N.wraparound}}get options(){return this._publicOptions}set options(N){for(const j in N)this._publicOptions[j]=N[j]}blur(){this._core.blur()}focus(){this._core.focus()}input(N,j=!0){this._core.input(N,j)}resize(N,j){this._verifyIntegers(N,j),this._core.resize(N,j)}open(N){this._core.open(N)}attachCustomKeyEventHandler(N){this._core.attachCustomKeyEventHandler(N)}attachCustomWheelEventHandler(N){this._core.attachCustomWheelEventHandler(N)}registerLinkProvider(N){return this._core.registerLinkProvider(N)}registerCharacterJoiner(N){return this._checkProposedApi(),this._core.registerCharacterJoiner(N)}deregisterCharacterJoiner(N){this._checkProposedApi(),this._core.deregisterCharacterJoiner(N)}registerMarker(N=0){return this._verifyIntegers(N),this._core.registerMarker(N)}registerDecoration(N){return this._checkProposedApi(),this._verifyPositiveIntegers(N.x??0,N.width??0,N.height??0),this._core.registerDecoration(N)}hasSelection(){return this._core.hasSelection()}select(N,j,X){this._verifyIntegers(N,j,X),this._core.select(N,j,X)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(N,j){this._verifyIntegers(N,j),this._core.selectLines(N,j)}dispose(){super.dispose()}scrollLines(N){this._verifyIntegers(N),this._core.scrollLines(N)}scrollPages(N){this._verifyIntegers(N),this._core.scrollPages(N)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(N){this._verifyIntegers(N),this._core.scrollToLine(N)}clear(){this._core.clear()}write(N,j){this._core.write(N,j)}writeln(N,j){this._core.write(N),this._core.write("\r\n",j)}paste(N){this._core.paste(N)}refresh(N,j){this._verifyIntegers(N,j),this._core.refresh(N,j)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(N){this._addonManager.loadAddon(this,N)}static get strings(){return{get promptLabel(){return j.promptLabel.get()},set promptLabel(N){j.promptLabel.set(N)},get tooMuchOutput(){return j.tooMuchOutput.get()},set tooMuchOutput(N){j.tooMuchOutput.set(N)}}}_verifyIntegers(...N){for(ve of N)if(ve===1/0||isNaN(ve)||ve%1!=0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...N){for(ve of N)if(ve&&(ve===1/0||isNaN(ve)||ve%1!=0||ve<0))throw new Error("This API only accepts positive integers")}}N.Terminal=u})(),X})()));
\ No newline at end of file
diff --git a/src/public/build/es6/node_modules/@xterm/xterm/lib/xterm.js.map b/src/public/build/es6/node_modules/@xterm/xterm/lib/xterm.js.map
new file mode 100644
index 0000000..147916f
--- /dev/null
+++ b/src/public/build/es6/node_modules/@xterm/xterm/lib/xterm.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"xterm.js","mappings":"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M+8C,EAAgB,CACpB,CAAC,IAAQ,KAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAC7C,CAAC,KAAQ,MAAS,CAAC,KAAQ,MAAS,CAA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","sources":["webpack://@xterm/xterm/webpack/universalModuleDefinition","webpack://@xterm/xterm/./src/browser/AccessibilityManager.ts","webpack://@xterm/xterm/./src/browser/Clipboard.ts","webpack://@xterm/xterm/./src/browser/ColorContrastCache.ts","webpack://@xterm/xterm/./src/browser/CoreBrowserTerminal.ts","webpack://@xterm/xterm/./src/browser/Linkifier.ts","webpack://@xterm/xterm/./src/browser/LocalizableStrings.ts","webpack://@xterm/xterm/./src/browser/OscLinkProvider.ts","webpack://@xterm/xterm/./src/browser/RenderDebouncer.ts","webpack://@xterm/xterm/./src/browser/TimeBasedDebouncer.ts","webpack://@xterm/xterm/./src/browser/Types.ts","webpack://@xterm/xterm/./src/browser/Viewport.ts","webpack://@xterm/xterm/./src/browser/decorations/BufferDecorationRenderer.ts","webpack://@xterm/xterm/./src/browser/decorations/ColorZoneStore.ts","webpack://@xterm/xterm/./src/browser/decorations/OverviewRulerRenderer.ts","webpack://@xterm/xterm/./src/browser/input/CompositionHelper.ts","webpack://@xterm/xterm/./src/browser/input/Mouse.ts","webpack://@xterm/xterm/./src/browser/input/MoveToCell.ts","webpack://@xterm/xterm/./src/browser/renderer/dom/DomRenderer.ts","webpack://@xterm/xterm/./src/browser/renderer/dom/DomRendererRowFactory.ts","webpack://@xterm/xterm/./src/browser/renderer/dom/WidthCache.ts","webpack://@xterm/xterm/./src/browser/renderer/shared/Constants.ts","webpack://@xterm/xterm/./src/browser/renderer/shared/RendererUtils.ts","webpack://@xterm/xterm/./src/browser/renderer/shared/SelectionRenderModel.ts","webpack://@xterm/xterm/./src/browser/selection/SelectionModel.ts","webpack://@xterm/xterm/./src/browser/services/CharSizeService.ts","webpack://@xterm/xterm/./src/browser/services/CharacterJoinerService.ts","webpack://@xterm/xterm/./src/browser/services/CoreBrowserService.ts","webpack://@xterm/xterm/./src/browser/services/LinkProviderService.ts","webpack://@xterm/xterm/./src/browser/services/MouseService.ts","webpack://@xterm/xterm/./src/browser/services/RenderService.ts","webpack://@xterm/xterm/./src/browser/services/SelectionService.ts","webpack://@xterm/xterm/./src/browser/services/Services.ts","webpack://@xterm/xterm/./src/browser/services/ThemeService.ts","webpack://@xterm/xterm/./src/common/CircularList.ts","webpack://@xterm/xterm/./src/common/Clone.ts","webpack://@xterm/xterm/./src/common/Color.ts","webpack://@xterm/xterm/./src/common/CoreTerminal.ts","webpack://@xterm/xterm/./src/common/InputHandler.ts","webpack://@xterm/xterm/./src/common/MultiKeyMap.ts","webpack://@xterm/xterm/./src/common/Platform.ts","webpack://@xterm/xterm/./src/common/SortedList.ts","webpack://@xterm/xterm/./src/common/TaskQueue.ts","webpack://@xterm/xterm/./src/common/WindowsMode.ts","webpack://@xterm/xterm/./src/common/buffer/AttributeData.ts","webpack://@xterm/xterm/./src/common/buffer/Buffer.ts","webpack://@xterm/xterm/./src/common/buffer/BufferLine.ts","webpack://@xterm/xterm/./src/common/buffer/BufferRange.ts","webpack://@xterm/xterm/./src/common/buffer/BufferReflow.ts","webpack://@xterm/xterm/./src/common/buffer/BufferSet.ts","webpack://@xterm/xterm/./src/common/buffer/CellData.ts","webpack://@xterm/xterm/./src/common/buffer/Constants.ts","webpack://@xterm/xterm/./src/common/buffer/Marker.ts","webpack://@xterm/xterm/./src/common/data/Charsets.ts","webpack://@xterm/xterm/./src/common/data/EscapeSequences.ts","webpack://@xterm/xterm/./src/common/input/Keyboard.ts","webpack://@xterm/xterm/./src/common/input/TextDecoder.ts","webpack://@xterm/xterm/./src/common/input/UnicodeV6.ts","webpack://@xterm/xterm/./src/common/input/WriteBuffer.ts","webpack://@xterm/xterm/./src/common/input/XParseColor.ts","webpack://@xterm/xterm/./src/common/parser/Constants.ts","webpack://@xterm/xterm/./src/common/parser/DcsParser.ts","webpack://@xterm/xterm/./src/common/parser/EscapeSequenceParser.ts","webpack://@xterm/xterm/./src/common/parser/OscParser.ts","webpack://@xterm/xterm/./src/common/parser/Params.ts","webpack://@xterm/xterm/./src/common/public/AddonManager.ts","webpack://@xterm/xterm/./src/common/public/BufferApiView.ts","webpack://@xterm/xterm/./src/common/public/BufferLineApiView.ts","webpack://@xterm/xterm/./src/common/public/BufferNamespaceApi.ts","webpack://@xterm/xterm/./src/common/public/ParserApi.ts","webpack://@xterm/xterm/./src/common/public/UnicodeApi.ts","webpack://@xterm/xterm/./src/common/services/BufferService.ts","webpack://@xterm/xterm/./src/common/services/CharsetService.ts","webpack://@xterm/xterm/./src/common/services/CoreMouseService.ts","webpack://@xterm/xterm/./src/common/services/CoreService.ts","webpack://@xterm/xterm/./src/common/services/DecorationService.ts","webpack://@xterm/xterm/./src/common/services/InstantiationService.ts","webpack://@xterm/xterm/./src/common/services/LogService.ts","webpack://@xterm/xterm/./src/common/services/OptionsService.ts","webpack://@xterm/xterm/./src/common/services/OscLinkService.ts","webpack://@xterm/xterm/./src/common/services/ServiceRegistry.ts","webpack://@xterm/xterm/./src/common/services/Services.ts","webpack://@xterm/xterm/./src/common/services/UnicodeService.ts","webpack://@xterm/xterm/./out/vs/base/browser/browser.js","webpack://@xterm/xterm/./out/vs/base/browser/canIUse.js","webpack://@xterm/xterm/./out/vs/base/browser/dom.js","webpack://@xterm/xterm/./out/vs/base/browser/fastDomNode.js","webpack://@xterm/xterm/./out/vs/base/browser/globalPointerMoveMonitor.js","webpack://@xterm/xterm/./out/vs/base/browser/iframe.js","webpack://@xterm/xterm/./out/vs/base/browser/keyboardEvent.js","webpack://@xterm/xterm/./out/vs/base/browser/mouseEvent.js","webpack://@xterm/xterm/./out/vs/base/browser/touch.js","webpack://@xterm/xterm/./out/vs/base/browser/ui/scrollbar/abstractScrollbar.js","webpack://@xterm/xterm/./out/vs/base/browser/ui/scrollbar/horizontalScrollbar.js","webpack://@xterm/xterm/./out/vs/base/browser/ui/scrollbar/scrollableElement.js","webpack://@xterm/xterm/./out/vs/base/browser/ui/scrollbar/scrollbarArrow.js","webpack://@xterm/xterm/./out/vs/base/browser/ui/scrollbar/scrollbarState.js","webpack://@xterm/xterm/./out/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.js","webpack://@xterm/xterm/./out/vs/base/browser/ui/scrollbar/verticalScrollbar.js","webpack://@xterm/xterm/./out/vs/base/browser/ui/widget.js","webpack://@xterm/xterm/./out/vs/base/browser/window.js","webpack://@xterm/xterm/./out/vs/base/common/arrays.js","webpack://@xterm/xterm/./out/vs/base/common/arraysFind.js","webpack://@xterm/xterm/./out/vs/base/common/async.js","webpack://@xterm/xterm/./out/vs/base/common/cancellation.js","webpack://@xterm/xterm/./out/vs/base/common/charCode.js","webpack://@xterm/xterm/./out/vs/base/common/collections.js","webpack://@xterm/xterm/./out/vs/base/common/decorators.js","webpack://@xterm/xterm/./out/vs/base/common/errors.js","webpack://@xterm/xterm/./out/vs/base/common/event.js","webpack://@xterm/xterm/./out/vs/base/common/functional.js","webpack://@xterm/xterm/./out/vs/base/common/hash.js","webpack://@xterm/xterm/./out/vs/base/common/iterator.js","webpack://@xterm/xterm/./out/vs/base/common/keyCodes.js","webpack://@xterm/xterm/./out/vs/base/common/keybindings.js","webpack://@xterm/xterm/./out/vs/base/common/lazy.js","webpack://@xterm/xterm/./out/vs/base/common/lifecycle.js","webpack://@xterm/xterm/./out/vs/base/common/linkedList.js","webpack://@xterm/xterm/./out/vs/base/common/map.js","webpack://@xterm/xterm/./out/vs/base/common/numbers.js","webpack://@xterm/xterm/./out/vs/base/common/platform.js","webpack://@xterm/xterm/./out/vs/base/common/scrollable.js","webpack://@xterm/xterm/./out/vs/base/common/stopwatch.js","webpack://@xterm/xterm/./out/vs/base/common/strings.js","webpack://@xterm/xterm/./out/vs/base/common/symbols.js","webpack://@xterm/xterm/./out/vs/base/common/uint.js","webpack://@xterm/xterm/webpack/bootstrap","webpack://@xterm/xterm/./src/browser/public/Terminal.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(globalThis, () => {\nreturn ","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport * as Strings from 'browser/LocalizableStrings';\nimport { ITerminal, IRenderDebouncer } from 'browser/Types';\nimport { TimeBasedDebouncer } from 'browser/TimeBasedDebouncer';\nimport { Disposable, toDisposable } from 'vs/base/common/lifecycle';\nimport { ICoreBrowserService, IRenderService } from 'browser/services/Services';\nimport { IBuffer } from 'common/buffer/Types';\nimport { IInstantiationService } from 'common/services/Services';\nimport { addDisposableListener } from 'vs/base/browser/dom';\n\nconst MAX_ROWS_TO_READ = 20;\n\nconst enum BoundaryPosition {\n TOP,\n BOTTOM\n}\n\n// Turn this on to unhide the accessibility tree and display it under\n// (instead of overlapping with) the terminal.\nconst DEBUG = false;\n\nexport class AccessibilityManager extends Disposable {\n private _debugRootContainer: HTMLElement | undefined;\n private _accessibilityContainer: HTMLElement;\n\n private _rowContainer: HTMLElement;\n private _rowElements: HTMLElement[];\n private _rowColumns: WeakMap = new WeakMap();\n\n private _liveRegion: HTMLElement;\n private _liveRegionLineCount: number = 0;\n private _liveRegionDebouncer: IRenderDebouncer;\n\n private _topBoundaryFocusListener: (e: FocusEvent) => void;\n private _bottomBoundaryFocusListener: (e: FocusEvent) => void;\n\n /**\n * This queue has a character pushed to it for keys that are pressed, if the\n * next character added to the terminal is equal to the key char then it is\n * not announced (added to live region) because it has already been announced\n * by the textarea event (which cannot be canceled). There are some race\n * condition cases if there is typing while data is streaming, but this covers\n * the main case of typing into the prompt and inputting the answer to a\n * question (Y/N, etc.).\n */\n private _charsToConsume: string[] = [];\n\n private _charsToAnnounce: string = '';\n\n constructor(\n private readonly _terminal: ITerminal,\n @IInstantiationService instantiationService: IInstantiationService,\n @ICoreBrowserService private readonly _coreBrowserService: ICoreBrowserService,\n @IRenderService private readonly _renderService: IRenderService\n ) {\n super();\n const doc = this._coreBrowserService.mainDocument;\n this._accessibilityContainer = doc.createElement('div');\n this._accessibilityContainer.classList.add('xterm-accessibility');\n\n this._rowContainer = doc.createElement('div');\n this._rowContainer.setAttribute('role', 'list');\n this._rowContainer.classList.add('xterm-accessibility-tree');\n this._rowElements = [];\n for (let i = 0; i < this._terminal.rows; i++) {\n this._rowElements[i] = this._createAccessibilityTreeNode();\n this._rowContainer.appendChild(this._rowElements[i]);\n }\n\n this._topBoundaryFocusListener = e => this._handleBoundaryFocus(e, BoundaryPosition.TOP);\n this._bottomBoundaryFocusListener = e => this._handleBoundaryFocus(e, BoundaryPosition.BOTTOM);\n this._rowElements[0].addEventListener('focus', this._topBoundaryFocusListener);\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n\n this._accessibilityContainer.appendChild(this._rowContainer);\n\n this._liveRegion = doc.createElement('div');\n this._liveRegion.classList.add('live-region');\n this._liveRegion.setAttribute('aria-live', 'assertive');\n this._accessibilityContainer.appendChild(this._liveRegion);\n this._liveRegionDebouncer = this._register(new TimeBasedDebouncer(this._renderRows.bind(this)));\n\n if (!this._terminal.element) {\n throw new Error('Cannot enable accessibility before Terminal.open');\n }\n\n if (DEBUG) {\n this._accessibilityContainer.classList.add('debug');\n this._rowContainer.classList.add('debug');\n\n // Use a `` container so that the css will still apply.\n this._debugRootContainer = doc.createElement('div');\n this._debugRootContainer.classList.add('xterm');\n\n this._debugRootContainer.appendChild(doc.createTextNode('------start a11y------'));\n this._debugRootContainer.appendChild(this._accessibilityContainer);\n this._debugRootContainer.appendChild(doc.createTextNode('------end a11y------'));\n\n this._terminal.element.insertAdjacentElement('afterend', this._debugRootContainer);\n } else {\n this._terminal.element.insertAdjacentElement('afterbegin', this._accessibilityContainer);\n }\n\n this._register(this._terminal.onResize(e => this._handleResize(e.rows)));\n this._register(this._terminal.onRender(e => this._refreshRows(e.start, e.end)));\n this._register(this._terminal.onScroll(() => this._refreshRows()));\n // Line feed is an issue as the prompt won't be read out after a command is run\n this._register(this._terminal.onA11yChar(char => this._handleChar(char)));\n this._register(this._terminal.onLineFeed(() => this._handleChar('\\n')));\n this._register(this._terminal.onA11yTab(spaceCount => this._handleTab(spaceCount)));\n this._register(this._terminal.onKey(e => this._handleKey(e.key)));\n this._register(this._terminal.onBlur(() => this._clearLiveRegion()));\n this._register(this._renderService.onDimensionsChange(() => this._refreshRowsDimensions()));\n this._register(addDisposableListener(doc, 'selectionchange', () => this._handleSelectionChange()));\n this._register(this._coreBrowserService.onDprChange(() => this._refreshRowsDimensions()));\n\n this._refreshRowsDimensions();\n this._refreshRows();\n this._register(toDisposable(() => {\n if (DEBUG) {\n this._debugRootContainer!.remove();\n } else {\n this._accessibilityContainer.remove();\n }\n this._rowElements.length = 0;\n }));\n }\n\n private _handleTab(spaceCount: number): void {\n for (let i = 0; i < spaceCount; i++) {\n this._handleChar(' ');\n }\n }\n\n private _handleChar(char: string): void {\n if (this._liveRegionLineCount < MAX_ROWS_TO_READ + 1) {\n if (this._charsToConsume.length > 0) {\n // Have the screen reader ignore the char if it was just input\n const shiftedChar = this._charsToConsume.shift();\n if (shiftedChar !== char) {\n this._charsToAnnounce += char;\n }\n } else {\n this._charsToAnnounce += char;\n }\n\n if (char === '\\n') {\n this._liveRegionLineCount++;\n if (this._liveRegionLineCount === MAX_ROWS_TO_READ + 1) {\n this._liveRegion.textContent += Strings.tooMuchOutput.get();\n }\n }\n }\n }\n\n private _clearLiveRegion(): void {\n this._liveRegion.textContent = '';\n this._liveRegionLineCount = 0;\n }\n\n private _handleKey(keyChar: string): void {\n this._clearLiveRegion();\n // Only add the char if there is no control character.\n if (!/\\p{Control}/u.test(keyChar)) {\n this._charsToConsume.push(keyChar);\n }\n }\n\n private _refreshRows(start?: number, end?: number): void {\n this._liveRegionDebouncer.refresh(start, end, this._terminal.rows);\n }\n\n private _renderRows(start: number, end: number): void {\n const buffer: IBuffer = this._terminal.buffer;\n const setSize = buffer.lines.length.toString();\n for (let i = start; i <= end; i++) {\n const line = buffer.lines.get(buffer.ydisp + i);\n const columns: number[] = [];\n const lineData = line?.translateToString(true, undefined, undefined, columns) || '';\n const posInSet = (buffer.ydisp + i + 1).toString();\n const element = this._rowElements[i];\n if (element) {\n if (lineData.length === 0) {\n element.innerText = '\\u00a0';\n this._rowColumns.set(element, [0, 1]);\n } else {\n element.textContent = lineData;\n this._rowColumns.set(element, columns);\n }\n element.setAttribute('aria-posinset', posInSet);\n element.setAttribute('aria-setsize', setSize);\n this._alignRowWidth(element);\n }\n }\n this._announceCharacters();\n }\n\n private _announceCharacters(): void {\n if (this._charsToAnnounce.length === 0) {\n return;\n }\n this._liveRegion.textContent += this._charsToAnnounce;\n this._charsToAnnounce = '';\n }\n\n private _handleBoundaryFocus(e: FocusEvent, position: BoundaryPosition): void {\n const boundaryElement = e.target as HTMLElement;\n const beforeBoundaryElement = this._rowElements[position === BoundaryPosition.TOP ? 1 : this._rowElements.length - 2];\n\n // Don't scroll if the buffer top has reached the end in that direction\n const posInSet = boundaryElement.getAttribute('aria-posinset');\n const lastRowPos = position === BoundaryPosition.TOP ? '1' : `${this._terminal.buffer.lines.length}`;\n if (posInSet === lastRowPos) {\n return;\n }\n\n // Don't scroll when the last focused item was not the second row (focus is going the other\n // direction)\n if (e.relatedTarget !== beforeBoundaryElement) {\n return;\n }\n\n // Remove old boundary element from array\n let topBoundaryElement: HTMLElement;\n let bottomBoundaryElement: HTMLElement;\n if (position === BoundaryPosition.TOP) {\n topBoundaryElement = boundaryElement;\n bottomBoundaryElement = this._rowElements.pop()!;\n this._rowContainer.removeChild(bottomBoundaryElement);\n } else {\n topBoundaryElement = this._rowElements.shift()!;\n bottomBoundaryElement = boundaryElement;\n this._rowContainer.removeChild(topBoundaryElement);\n }\n\n // Remove listeners from old boundary elements\n topBoundaryElement.removeEventListener('focus', this._topBoundaryFocusListener);\n bottomBoundaryElement.removeEventListener('focus', this._bottomBoundaryFocusListener);\n\n // Add new element to array/DOM\n if (position === BoundaryPosition.TOP) {\n const newElement = this._createAccessibilityTreeNode();\n this._rowElements.unshift(newElement);\n this._rowContainer.insertAdjacentElement('afterbegin', newElement);\n } else {\n const newElement = this._createAccessibilityTreeNode();\n this._rowElements.push(newElement);\n this._rowContainer.appendChild(newElement);\n }\n\n // Add listeners to new boundary elements\n this._rowElements[0].addEventListener('focus', this._topBoundaryFocusListener);\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n\n // Scroll up\n this._terminal.scrollLines(position === BoundaryPosition.TOP ? -1 : 1);\n\n // Focus new boundary before element\n this._rowElements[position === BoundaryPosition.TOP ? 1 : this._rowElements.length - 2].focus();\n\n // Prevent the standard behavior\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n private _handleSelectionChange(): void {\n if (this._rowElements.length === 0) {\n return;\n }\n\n const selection = this._coreBrowserService.mainDocument.getSelection();\n if (!selection) {\n return;\n }\n\n if (selection.isCollapsed) {\n // Only do something when the anchorNode is inside the row container. This\n // behavior mirrors what we do with mouse --- if the mouse clicks\n // somewhere outside of the terminal, we don't clear the selection.\n if (this._rowContainer.contains(selection.anchorNode)) {\n this._terminal.clearSelection();\n }\n return;\n }\n\n if (!selection.anchorNode || !selection.focusNode) {\n console.error('anchorNode and/or focusNode are null');\n return;\n }\n\n // Sort the two selection points in document order.\n let begin = { node: selection.anchorNode, offset: selection.anchorOffset };\n let end = { node: selection.focusNode, offset: selection.focusOffset };\n if ((begin.node.compareDocumentPosition(end.node) & Node.DOCUMENT_POSITION_PRECEDING) || (begin.node === end.node && begin.offset > end.offset) ) {\n [begin, end] = [end, begin];\n }\n\n // Clamp begin/end to the inside of the row container.\n if (begin.node.compareDocumentPosition(this._rowElements[0]) & (Node.DOCUMENT_POSITION_CONTAINED_BY | Node.DOCUMENT_POSITION_FOLLOWING)) {\n begin = { node: this._rowElements[0].childNodes[0], offset: 0 };\n }\n if (!this._rowContainer.contains(begin.node)) {\n // This happens when `begin` is below the last row.\n return;\n }\n const lastRowElement = this._rowElements.slice(-1)[0];\n if (end.node.compareDocumentPosition(lastRowElement) & (Node.DOCUMENT_POSITION_CONTAINED_BY | Node.DOCUMENT_POSITION_PRECEDING)) {\n end = {\n node: lastRowElement,\n offset: lastRowElement.textContent?.length ?? 0\n };\n }\n if (!this._rowContainer.contains(end.node)) {\n // This happens when `end` is above the first row.\n return;\n }\n\n const toRowColumn = ({ node, offset }: typeof begin): {row: number, column: number} | null => {\n // `node` is either the row element or the Text node inside it.\n const rowElement: any = node instanceof Text ? node.parentNode : node;\n let row = parseInt(rowElement?.getAttribute('aria-posinset'), 10) - 1;\n if (isNaN(row)) {\n console.warn('row is invalid. Race condition?');\n return null;\n }\n\n const columns = this._rowColumns.get(rowElement);\n if (!columns) {\n console.warn('columns is null. Race condition?');\n return null;\n }\n\n let column = offset < columns.length ? columns[offset] : columns.slice(-1)[0] + 1;\n if (column >= this._terminal.cols) {\n ++row;\n column = 0;\n }\n return {\n row,\n column\n };\n };\n\n const beginRowColumn = toRowColumn(begin);\n const endRowColumn = toRowColumn(end);\n\n if (!beginRowColumn || !endRowColumn) {\n return;\n }\n\n if (beginRowColumn.row > endRowColumn.row || (beginRowColumn.row === endRowColumn.row && beginRowColumn.column >= endRowColumn.column)) {\n // This should not happen unless we have some bugs.\n throw new Error('invalid range');\n }\n\n this._terminal.select(\n beginRowColumn.column,\n beginRowColumn.row,\n (endRowColumn.row - beginRowColumn.row) * this._terminal.cols - beginRowColumn.column + endRowColumn.column\n );\n }\n\n private _handleResize(rows: number): void {\n // Remove bottom boundary listener\n this._rowElements[this._rowElements.length - 1].removeEventListener('focus', this._bottomBoundaryFocusListener);\n\n // Grow rows as required\n for (let i = this._rowContainer.children.length; i < this._terminal.rows; i++) {\n this._rowElements[i] = this._createAccessibilityTreeNode();\n this._rowContainer.appendChild(this._rowElements[i]);\n }\n // Shrink rows as required\n while (this._rowElements.length > rows) {\n this._rowContainer.removeChild(this._rowElements.pop()!);\n }\n\n // Add bottom boundary listener\n this._rowElements[this._rowElements.length - 1].addEventListener('focus', this._bottomBoundaryFocusListener);\n\n this._refreshRowsDimensions();\n }\n\n private _createAccessibilityTreeNode(): HTMLElement {\n const element = this._coreBrowserService.mainDocument.createElement('div');\n element.setAttribute('role', 'listitem');\n element.tabIndex = -1;\n this._refreshRowDimensions(element);\n return element;\n }\n\n private _refreshRowsDimensions(): void {\n if (!this._renderService.dimensions.css.cell.height) {\n return;\n }\n Object.assign(this._accessibilityContainer.style, {\n width: `${this._renderService.dimensions.css.canvas.width}px`,\n fontSize: `${this._terminal.options.fontSize}px`\n });\n if (this._rowElements.length !== this._terminal.rows) {\n this._handleResize(this._terminal.rows);\n }\n for (let i = 0; i < this._terminal.rows; i++) {\n this._refreshRowDimensions(this._rowElements[i]);\n this._alignRowWidth(this._rowElements[i]);\n }\n }\n\n private _refreshRowDimensions(element: HTMLElement): void {\n element.style.height = `${this._renderService.dimensions.css.cell.height}px`;\n }\n\n /**\n * Scale the width of a row so that each of the character is (mostly) aligned\n * with the actual rendering. This will allow the screen reader to draw\n * selection outline at the correct position.\n *\n * On top of using the \"monospace\" font and correct font size, the scaling\n * here is necessary to handle characters that are not covered by the font\n * (e.g. CJK).\n */\n private _alignRowWidth(element: HTMLElement): void {\n element.style.transform = '';\n const width = element.getBoundingClientRect().width;\n const lastColumn = this._rowColumns.get(element)?.slice(-1)?.[0];\n if (!lastColumn) {\n return;\n }\n const targetWidth = lastColumn * this._renderService.dimensions.css.cell.width;\n element.style.transform = `scaleX(${targetWidth / width})`;\n }\n}\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ISelectionService } from 'browser/services/Services';\nimport { ICoreService, IOptionsService } from 'common/services/Services';\n\n/**\n * Prepares text to be pasted into the terminal by normalizing the line endings\n * @param text The pasted text that needs processing before inserting into the terminal\n */\nexport function prepareTextForTerminal(text: string): string {\n return text.replace(/\\r?\\n/g, '\\r');\n}\n\n/**\n * Bracket text for paste, if necessary, as per https://cirw.in/blog/bracketed-paste\n * @param text The pasted text to bracket\n */\nexport function bracketTextForPaste(text: string, bracketedPasteMode: boolean): string {\n if (bracketedPasteMode) {\n return '\\x1b[200~' + text + '\\x1b[201~';\n }\n return text;\n}\n\n/**\n * Binds copy functionality to the given terminal.\n * @param ev The original copy event to be handled\n */\nexport function copyHandler(ev: ClipboardEvent, selectionService: ISelectionService): void {\n if (ev.clipboardData) {\n ev.clipboardData.setData('text/plain', selectionService.selectionText);\n }\n // Prevent or the original text will be copied.\n ev.preventDefault();\n}\n\n/**\n * Redirect the clipboard's data to the terminal's input handler.\n */\nexport function handlePasteEvent(ev: ClipboardEvent, textarea: HTMLTextAreaElement, coreService: ICoreService, optionsService: IOptionsService): void {\n ev.stopPropagation();\n if (ev.clipboardData) {\n const text = ev.clipboardData.getData('text/plain');\n paste(text, textarea, coreService, optionsService);\n }\n}\n\nexport function paste(text: string, textarea: HTMLTextAreaElement, coreService: ICoreService, optionsService: IOptionsService): void {\n text = prepareTextForTerminal(text);\n text = bracketTextForPaste(text, coreService.decPrivateModes.bracketedPasteMode && optionsService.rawOptions.ignoreBracketedPasteMode !== true);\n coreService.triggerDataEvent(text, true);\n textarea.value = '';\n}\n\n/**\n * Moves the textarea under the mouse cursor and focuses it.\n * @param ev The original right click event to be handled.\n * @param textarea The terminal's textarea.\n */\nexport function moveTextAreaUnderMouseCursor(ev: MouseEvent, textarea: HTMLTextAreaElement, screenElement: HTMLElement): void {\n\n // Calculate textarea position relative to the screen element\n const pos = screenElement.getBoundingClientRect();\n const left = ev.clientX - pos.left - 10;\n const top = ev.clientY - pos.top - 10;\n\n // Bring textarea at the cursor position\n textarea.style.width = '20px';\n textarea.style.height = '20px';\n textarea.style.left = `${left}px`;\n textarea.style.top = `${top}px`;\n textarea.style.zIndex = '1000';\n\n textarea.focus();\n}\n\n/**\n * Bind to right-click event and allow right-click copy and paste.\n */\nexport function rightClickHandler(ev: MouseEvent, textarea: HTMLTextAreaElement, screenElement: HTMLElement, selectionService: ISelectionService, shouldSelectWord: boolean): void {\n moveTextAreaUnderMouseCursor(ev, textarea, screenElement);\n\n if (shouldSelectWord) {\n selectionService.rightClickSelect(ev);\n }\n\n // Get textarea ready to copy from the context menu\n textarea.value = selectionService.selectionText;\n textarea.select();\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IColorContrastCache } from 'browser/Types';\nimport { IColor } from 'common/Types';\nimport { TwoKeyMap } from 'common/MultiKeyMap';\n\nexport class ColorContrastCache implements IColorContrastCache {\n private _color: TwoKeyMap* bg */number, /* fg */number, IColor | null> = new TwoKeyMap();\n private _css: TwoKeyMap* bg */number, /* fg */number, string | null> = new TwoKeyMap();\n\n public setCss(bg: number, fg: number, value: string | null): void {\n this._css.set(bg, fg, value);\n }\n\n public getCss(bg: number, fg: number): string | null | undefined {\n return this._css.get(bg, fg);\n }\n\n public setColor(bg: number, fg: number, value: IColor | null): void {\n this._color.set(bg, fg, value);\n }\n\n public getColor(bg: number, fg: number): IColor | null | undefined {\n return this._color.get(bg, fg);\n }\n\n public clear(): void {\n this._color.clear();\n this._css.clear();\n }\n}\n","/**\n * Copyright (c) 2014 The xterm.js authors. All rights reserved.\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\n * @license MIT\n *\n * Originally forked from (with the author's permission):\n * Fabrice Bellard's javascript vt100 for jslinux:\n * http://bellard.org/jslinux/\n * Copyright (c) 2011 Fabrice Bellard\n * The original design remains. The terminal itself\n * has been extended to include xterm CSI codes, among\n * other features.\n *\n * Terminal Emulation References:\n * http://vt100.net/\n * http://invisible-island.net/xterm/ctlseqs/ctlseqs.txt\n * http://invisible-island.net/xterm/ctlseqs/ctlseqs.html\n * http://invisible-island.net/vttest/\n * http://www.inwap.com/pdp10/ansicode.txt\n * http://linux.die.net/man/4/console_codes\n * http://linux.die.net/man/7/urxvt\n */\n\nimport { IDecoration, IDecorationOptions, IDisposable, ILinkProvider, IMarker } from '@xterm/xterm';\nimport { copyHandler, handlePasteEvent, moveTextAreaUnderMouseCursor, paste, rightClickHandler } from 'browser/Clipboard';\nimport * as Strings from 'browser/LocalizableStrings';\nimport { OscLinkProvider } from 'browser/OscLinkProvider';\nimport { CharacterJoinerHandler, CustomKeyEventHandler, CustomWheelEventHandler, IBrowser, IBufferRange, ICompositionHelper, ILinkifier2, ITerminal } from 'browser/Types';\nimport { Viewport } from 'browser/Viewport';\nimport { BufferDecorationRenderer } from 'browser/decorations/BufferDecorationRenderer';\nimport { OverviewRulerRenderer } from 'browser/decorations/OverviewRulerRenderer';\nimport { CompositionHelper } from 'browser/input/CompositionHelper';\nimport { DomRenderer } from 'browser/renderer/dom/DomRenderer';\nimport { IRenderer } from 'browser/renderer/shared/Types';\nimport { CharSizeService } from 'browser/services/CharSizeService';\nimport { CharacterJoinerService } from 'browser/services/CharacterJoinerService';\nimport { CoreBrowserService } from 'browser/services/CoreBrowserService';\nimport { LinkProviderService } from 'browser/services/LinkProviderService';\nimport { MouseService } from 'browser/services/MouseService';\nimport { RenderService } from 'browser/services/RenderService';\nimport { SelectionService } from 'browser/services/SelectionService';\nimport { ICharSizeService, ICharacterJoinerService, ICoreBrowserService, ILinkProviderService, IMouseService, IRenderService, ISelectionService, IThemeService } from 'browser/services/Services';\nimport { ThemeService } from 'browser/services/ThemeService';\nimport { channels, color } from 'common/Color';\nimport { CoreTerminal } from 'common/CoreTerminal';\nimport * as Browser from 'common/Platform';\nimport { ColorRequestType, CoreMouseAction, CoreMouseButton, CoreMouseEventType, IColorEvent, ITerminalOptions, KeyboardResultType, SpecialColorIndex } from 'common/Types';\nimport { DEFAULT_ATTR_DATA } from 'common/buffer/BufferLine';\nimport { IBuffer } from 'common/buffer/Types';\nimport { C0, C1_ESCAPED } from 'common/data/EscapeSequences';\nimport { evaluateKeyboardEvent } from 'common/input/Keyboard';\nimport { toRgbString } from 'common/input/XParseColor';\nimport { DecorationService } from 'common/services/DecorationService';\nimport { IDecorationService } from 'common/services/Services';\nimport { WindowsOptionsReportType } from '../common/InputHandler';\nimport { AccessibilityManager } from './AccessibilityManager';\nimport { Linkifier } from './Linkifier';\nimport { Emitter, Event } from 'vs/base/common/event';\nimport { addDisposableListener } from 'vs/base/browser/dom';\nimport { MutableDisposable, toDisposable } from 'vs/base/common/lifecycle';\n\nexport class CoreBrowserTerminal extends CoreTerminal implements ITerminal {\n public textarea: HTMLTextAreaElement | undefined;\n public element: HTMLElement | undefined;\n public screenElement: HTMLElement | undefined;\n\n private _document: Document | undefined;\n private _viewportElement: HTMLElement | undefined;\n private _helperContainer: HTMLElement | undefined;\n private _compositionView: HTMLElement | undefined;\n\n private readonly _linkifier: MutableDisposable
= this._register(new MutableDisposable());\n public get linkifier(): ILinkifier2 | undefined { return this._linkifier.value; }\n private _overviewRulerRenderer: OverviewRulerRenderer | undefined;\n private _viewport: Viewport | undefined;\n\n public browser: IBrowser = Browser as any;\n\n private _customKeyEventHandler: CustomKeyEventHandler | undefined;\n private _customWheelEventHandler: CustomWheelEventHandler | undefined;\n\n // Browser services\n private _decorationService: DecorationService;\n private _linkProviderService: ILinkProviderService;\n\n // Optional browser services\n private _charSizeService: ICharSizeService | undefined;\n private _coreBrowserService: ICoreBrowserService | undefined;\n private _mouseService: IMouseService | undefined;\n private _renderService: IRenderService | undefined;\n private _themeService: IThemeService | undefined;\n private _characterJoinerService: ICharacterJoinerService | undefined;\n private _selectionService: ISelectionService | undefined;\n\n /**\n * Records whether the keydown event has already been handled and triggered a data event, if so\n * the keypress event should not trigger a data event but should still print to the textarea so\n * screen readers will announce it.\n */\n private _keyDownHandled: boolean = false;\n\n /**\n * Records whether a keydown event has occured since the last keyup event, i.e. whether a key\n * is currently \"pressed\".\n */\n private _keyDownSeen: boolean = false;\n\n /**\n * Records whether the keypress event has already been handled and triggered a data event, if so\n * the input event should not trigger a data event but should still print to the textarea so\n * screen readers will announce it.\n */\n private _keyPressHandled: boolean = false;\n\n /**\n * Records whether there has been a keydown event for a dead key without a corresponding keydown\n * event for the composed/alternative character. If we cancel the keydown event for the dead key,\n * no events will be emitted for the final character.\n */\n private _unprocessedDeadKey: boolean = false;\n\n private _compositionHelper: ICompositionHelper | undefined;\n private _accessibilityManager: MutableDisposable = this._register(new MutableDisposable());\n\n private readonly _onCursorMove = this._register(new Emitter());\n public readonly onCursorMove = this._onCursorMove.event;\n private readonly _onKey = this._register(new Emitter<{ key: string, domEvent: KeyboardEvent }>());\n public readonly onKey = this._onKey.event;\n private readonly _onRender = this._register(new Emitter<{ start: number, end: number }>());\n public readonly onRender = this._onRender.event;\n private readonly _onSelectionChange = this._register(new Emitter());\n public readonly onSelectionChange = this._onSelectionChange.event;\n private readonly _onTitleChange = this._register(new Emitter());\n public readonly onTitleChange = this._onTitleChange.event;\n private readonly _onBell = this._register(new Emitter());\n public readonly onBell = this._onBell.event;\n\n private _onFocus = this._register(new Emitter());\n public get onFocus(): Event { return this._onFocus.event; }\n private _onBlur = this._register(new Emitter());\n public get onBlur(): Event { return this._onBlur.event; }\n private _onA11yCharEmitter = this._register(new Emitter());\n public get onA11yChar(): Event { return this._onA11yCharEmitter.event; }\n private _onA11yTabEmitter = this._register(new Emitter());\n public get onA11yTab(): Event { return this._onA11yTabEmitter.event; }\n private _onWillOpen = this._register(new Emitter());\n public get onWillOpen(): Event { return this._onWillOpen.event; }\n\n constructor(\n options: Partial = {}\n ) {\n super(options);\n\n this._setup();\n\n this._decorationService = this._instantiationService.createInstance(DecorationService);\n this._instantiationService.setService(IDecorationService, this._decorationService);\n this._linkProviderService = this._instantiationService.createInstance(LinkProviderService);\n this._instantiationService.setService(ILinkProviderService, this._linkProviderService);\n this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(OscLinkProvider));\n\n // Setup InputHandler listeners\n this._register(this._inputHandler.onRequestBell(() => this._onBell.fire()));\n this._register(this._inputHandler.onRequestRefreshRows((e) => this.refresh(e?.start ?? 0, e?.end ?? (this.rows - 1))));\n this._register(this._inputHandler.onRequestSendFocus(() => this._reportFocus()));\n this._register(this._inputHandler.onRequestReset(() => this.reset()));\n this._register(this._inputHandler.onRequestWindowsOptionsReport(type => this._reportWindowsOptions(type)));\n this._register(this._inputHandler.onColor((event) => this._handleColorEvent(event)));\n this._register(Event.forward(this._inputHandler.onCursorMove, this._onCursorMove));\n this._register(Event.forward(this._inputHandler.onTitleChange, this._onTitleChange));\n this._register(Event.forward(this._inputHandler.onA11yChar, this._onA11yCharEmitter));\n this._register(Event.forward(this._inputHandler.onA11yTab, this._onA11yTabEmitter));\n\n // Setup listeners\n this._register(this._bufferService.onResize(e => this._afterResize(e.cols, e.rows)));\n\n this._register(toDisposable(() => {\n this._customKeyEventHandler = undefined;\n this.element?.parentNode?.removeChild(this.element);\n }));\n }\n\n /**\n * Handle color event from inputhandler for OSC 4|104 | 10|110 | 11|111 | 12|112.\n * An event from OSC 4|104 may contain multiple set or report requests, and multiple\n * or none restore requests (resetting all),\n * while an event from OSC 10|110 | 11|111 | 12|112 always contains a single request.\n */\n private _handleColorEvent(event: IColorEvent): void {\n if (!this._themeService) return;\n for (const req of event) {\n let acc: 'foreground' | 'background' | 'cursor' | 'ansi';\n let ident = '';\n switch (req.index) {\n case SpecialColorIndex.FOREGROUND: // OSC 10 | 110\n acc = 'foreground';\n ident = '10';\n break;\n case SpecialColorIndex.BACKGROUND: // OSC 11 | 111\n acc = 'background';\n ident = '11';\n break;\n case SpecialColorIndex.CURSOR: // OSC 12 | 112\n acc = 'cursor';\n ident = '12';\n break;\n default: // OSC 4 | 104\n // we can skip the [0..255] range check here (already done in inputhandler)\n acc = 'ansi';\n ident = '4;' + req.index;\n }\n switch (req.type) {\n case ColorRequestType.REPORT:\n const colorRgb = color.toColorRGB(acc === 'ansi'\n ? this._themeService.colors.ansi[req.index]\n : this._themeService.colors[acc]);\n this.coreService.triggerDataEvent(`${C0.ESC}]${ident};${toRgbString(colorRgb)}${C1_ESCAPED.ST}`);\n break;\n case ColorRequestType.SET:\n if (acc === 'ansi') {\n this._themeService.modifyColors(colors => colors.ansi[req.index] = channels.toColor(...req.color));\n } else {\n const narrowedAcc = acc;\n this._themeService.modifyColors(colors => colors[narrowedAcc] = channels.toColor(...req.color));\n }\n break;\n case ColorRequestType.RESTORE:\n this._themeService.restoreColor(req.index);\n break;\n }\n }\n }\n\n protected _setup(): void {\n super._setup();\n\n this._customKeyEventHandler = undefined;\n }\n\n /**\n * Convenience property to active buffer.\n */\n public get buffer(): IBuffer {\n return this.buffers.active;\n }\n\n /**\n * Focus the terminal. Delegates focus handling to the terminal's DOM element.\n */\n public focus(): void {\n if (this.textarea) {\n this.textarea.focus({ preventScroll: true });\n }\n }\n\n private _handleScreenReaderModeOptionChange(value: boolean): void {\n if (value) {\n if (!this._accessibilityManager.value && this._renderService) {\n this._accessibilityManager.value = this._instantiationService.createInstance(AccessibilityManager, this);\n }\n } else {\n this._accessibilityManager.clear();\n }\n }\n\n /**\n * Binds the desired focus behavior on a given terminal object.\n */\n private _handleTextAreaFocus(ev: FocusEvent): void {\n if (this.coreService.decPrivateModes.sendFocus) {\n this.coreService.triggerDataEvent(C0.ESC + '[I');\n }\n this.element!.classList.add('focus');\n this._showCursor();\n this._onFocus.fire();\n }\n\n /**\n * Blur the terminal, calling the blur function on the terminal's underlying\n * textarea.\n */\n public blur(): void {\n return this.textarea?.blur();\n }\n\n /**\n * Binds the desired blur behavior on a given terminal object.\n */\n private _handleTextAreaBlur(): void {\n // Text can safely be removed on blur. Doing it earlier could interfere with\n // screen readers reading it out.\n this.textarea!.value = '';\n this.refresh(this.buffer.y, this.buffer.y);\n if (this.coreService.decPrivateModes.sendFocus) {\n this.coreService.triggerDataEvent(C0.ESC + '[O');\n }\n this.element!.classList.remove('focus');\n this._onBlur.fire();\n }\n\n private _syncTextArea(): void {\n if (!this.textarea || !this.buffer.isCursorInViewport || this._compositionHelper!.isComposing || !this._renderService) {\n return;\n }\n const cursorY = this.buffer.ybase + this.buffer.y;\n const bufferLine = this.buffer.lines.get(cursorY);\n if (!bufferLine) {\n return;\n }\n const cursorX = Math.min(this.buffer.x, this.cols - 1);\n const cellHeight = this._renderService.dimensions.css.cell.height;\n const width = bufferLine.getWidth(cursorX);\n const cellWidth = this._renderService.dimensions.css.cell.width * width;\n const cursorTop = this.buffer.y * this._renderService.dimensions.css.cell.height;\n const cursorLeft = cursorX * this._renderService.dimensions.css.cell.width;\n\n // Sync the textarea to the exact position of the composition view so the IME knows where the\n // text is.\n this.textarea.style.left = cursorLeft + 'px';\n this.textarea.style.top = cursorTop + 'px';\n this.textarea.style.width = cellWidth + 'px';\n this.textarea.style.height = cellHeight + 'px';\n this.textarea.style.lineHeight = cellHeight + 'px';\n this.textarea.style.zIndex = '-5';\n }\n\n /**\n * Initialize default behavior\n */\n private _initGlobal(): void {\n this._bindKeys();\n\n // Bind clipboard functionality\n this._register(addDisposableListener(this.element!, 'copy', (event: ClipboardEvent) => {\n // If mouse events are active it means the selection manager is disabled and\n // copy should be handled by the host program.\n if (!this.hasSelection()) {\n return;\n }\n copyHandler(event, this._selectionService!);\n }));\n const pasteHandlerWrapper = (event: ClipboardEvent): void => handlePasteEvent(event, this.textarea!, this.coreService, this.optionsService);\n this._register(addDisposableListener(this.textarea!, 'paste', pasteHandlerWrapper));\n this._register(addDisposableListener(this.element!, 'paste', pasteHandlerWrapper));\n\n // Handle right click context menus\n if (Browser.isFirefox) {\n // Firefox doesn't appear to fire the contextmenu event on right click\n this._register(addDisposableListener(this.element!, 'mousedown', (event: MouseEvent) => {\n if (event.button === 2) {\n rightClickHandler(event, this.textarea!, this.screenElement!, this._selectionService!, this.options.rightClickSelectsWord);\n }\n }));\n } else {\n this._register(addDisposableListener(this.element!, 'contextmenu', (event: MouseEvent) => {\n rightClickHandler(event, this.textarea!, this.screenElement!, this._selectionService!, this.options.rightClickSelectsWord);\n }));\n }\n\n // Move the textarea under the cursor when middle clicking on Linux to ensure\n // middle click to paste selection works. This only appears to work in Chrome\n // at the time is writing.\n if (Browser.isLinux) {\n // Use auxclick event over mousedown the latter doesn't seem to work. Note\n // that the regular click event doesn't fire for the middle mouse button.\n this._register(addDisposableListener(this.element!, 'auxclick', (event: MouseEvent) => {\n if (event.button === 1) {\n moveTextAreaUnderMouseCursor(event, this.textarea!, this.screenElement!);\n }\n }));\n }\n }\n\n /**\n * Apply key handling to the terminal\n */\n private _bindKeys(): void {\n this._register(addDisposableListener(this.textarea!, 'keyup', (ev: KeyboardEvent) => this._keyUp(ev), true));\n this._register(addDisposableListener(this.textarea!, 'keydown', (ev: KeyboardEvent) => this._keyDown(ev), true));\n this._register(addDisposableListener(this.textarea!, 'keypress', (ev: KeyboardEvent) => this._keyPress(ev), true));\n this._register(addDisposableListener(this.textarea!, 'compositionstart', () => this._compositionHelper!.compositionstart()));\n this._register(addDisposableListener(this.textarea!, 'compositionupdate', (e: CompositionEvent) => this._compositionHelper!.compositionupdate(e)));\n this._register(addDisposableListener(this.textarea!, 'compositionend', () => this._compositionHelper!.compositionend()));\n this._register(addDisposableListener(this.textarea!, 'input', (ev: InputEvent) => this._inputEvent(ev), true));\n this._register(this.onRender(() => this._compositionHelper!.updateCompositionElements()));\n }\n\n /**\n * Opens the terminal within an element.\n *\n * @param parent The element to create the terminal within.\n */\n public open(parent: HTMLElement): void {\n if (!parent) {\n throw new Error('Terminal requires a parent element.');\n }\n\n if (!parent.isConnected) {\n this._logService.debug('Terminal.open was called on an element that was not attached to the DOM');\n }\n\n // If the terminal is already opened\n if (this.element?.ownerDocument.defaultView && this._coreBrowserService) {\n // Adjust the window if needed\n if (this.element.ownerDocument.defaultView !== this._coreBrowserService.window) {\n this._coreBrowserService.window = this.element.ownerDocument.defaultView;\n }\n return;\n }\n\n this._document = parent.ownerDocument;\n if (this.options.documentOverride && this.options.documentOverride instanceof Document) {\n this._document = this.optionsService.rawOptions.documentOverride as Document;\n }\n\n // Create main element container\n this.element = this._document.createElement('div');\n this.element.dir = 'ltr'; // xterm.css assumes LTR\n this.element.classList.add('terminal');\n this.element.classList.add('xterm');\n parent.appendChild(this.element);\n\n // Performance: Use a document fragment to build the terminal\n // viewport and helper elements detached from the DOM\n const fragment = this._document.createDocumentFragment();\n this._viewportElement = this._document.createElement('div');\n this._viewportElement.classList.add('xterm-viewport');\n fragment.appendChild(this._viewportElement);\n\n this.screenElement = this._document.createElement('div');\n this.screenElement.classList.add('xterm-screen');\n this._register(addDisposableListener(this.screenElement, 'mousemove', (ev: MouseEvent) => this.updateCursorStyle(ev)));\n // Create the container that will hold helpers like the textarea for\n // capturing DOM Events. Then produce the helpers.\n this._helperContainer = this._document.createElement('div');\n this._helperContainer.classList.add('xterm-helpers');\n this.screenElement.appendChild(this._helperContainer);\n fragment.appendChild(this.screenElement);\n\n this.textarea = this._document.createElement('textarea');\n this.textarea.classList.add('xterm-helper-textarea');\n this.textarea.setAttribute('aria-label', Strings.promptLabel.get());\n if (!Browser.isChromeOS) {\n // ChromeVox on ChromeOS does not like this. See\n // https://issuetracker.google.com/issues/260170397\n this.textarea.setAttribute('aria-multiline', 'false');\n }\n this.textarea.setAttribute('autocorrect', 'off');\n this.textarea.setAttribute('autocapitalize', 'off');\n this.textarea.setAttribute('spellcheck', 'false');\n this.textarea.tabIndex = 0;\n\n // Register the core browser service before the generic textarea handlers are registered so it\n // handles them first. Otherwise the renderers may use the wrong focus state.\n this._coreBrowserService = this._register(this._instantiationService.createInstance(CoreBrowserService,\n this.textarea,\n parent.ownerDocument.defaultView ?? window,\n // Force unsafe null in node.js environment for tests\n this._document ?? (typeof window !== 'undefined') ? window.document : null as any\n ));\n this._instantiationService.setService(ICoreBrowserService, this._coreBrowserService);\n\n this._register(addDisposableListener(this.textarea, 'focus', (ev: FocusEvent) => this._handleTextAreaFocus(ev)));\n this._register(addDisposableListener(this.textarea, 'blur', () => this._handleTextAreaBlur()));\n this._helperContainer.appendChild(this.textarea);\n\n this._charSizeService = this._instantiationService.createInstance(CharSizeService, this._document, this._helperContainer);\n this._instantiationService.setService(ICharSizeService, this._charSizeService);\n\n this._themeService = this._instantiationService.createInstance(ThemeService);\n this._instantiationService.setService(IThemeService, this._themeService);\n\n this._characterJoinerService = this._instantiationService.createInstance(CharacterJoinerService);\n this._instantiationService.setService(ICharacterJoinerService, this._characterJoinerService);\n\n this._renderService = this._register(this._instantiationService.createInstance(RenderService, this.rows, this.screenElement));\n this._instantiationService.setService(IRenderService, this._renderService);\n this._register(this._renderService.onRenderedViewportChange(e => this._onRender.fire(e)));\n this.onResize(e => this._renderService!.resize(e.cols, e.rows));\n\n this._compositionView = this._document.createElement('div');\n this._compositionView.classList.add('composition-view');\n this._compositionHelper = this._instantiationService.createInstance(CompositionHelper, this.textarea, this._compositionView);\n this._helperContainer.appendChild(this._compositionView);\n\n this._mouseService = this._instantiationService.createInstance(MouseService);\n this._instantiationService.setService(IMouseService, this._mouseService);\n\n const linkifier = this._linkifier.value = this._register(this._instantiationService.createInstance(Linkifier, this.screenElement));\n\n // Performance: Add viewport and helper elements from the fragment\n this.element.appendChild(fragment);\n\n try {\n this._onWillOpen.fire(this.element);\n }\n catch { /* fails to load addon for some reason */ }\n if (!this._renderService.hasRenderer()) {\n this._renderService.setRenderer(this._createRenderer());\n }\n\n this._register(this.onCursorMove(() => {\n this._renderService!.handleCursorMove();\n this._syncTextArea();\n }));\n this._register(this.onResize(() => this._renderService!.handleResize(this.cols, this.rows)));\n this._register(this.onBlur(() => this._renderService!.handleBlur()));\n this._register(this.onFocus(() => this._renderService!.handleFocus()));\n\n this._viewport = this._register(this._instantiationService.createInstance(Viewport, this.element, this.screenElement));\n this._register(this._viewport.onRequestScrollLines(e => {\n super.scrollLines(e, false);\n this.refresh(0, this.rows - 1);\n }));\n\n this._selectionService = this._register(this._instantiationService.createInstance(SelectionService,\n this.element,\n this.screenElement,\n linkifier\n ));\n this._instantiationService.setService(ISelectionService, this._selectionService);\n this._register(this._selectionService.onRequestScrollLines(e => this.scrollLines(e.amount, e.suppressScrollEvent)));\n this._register(this._selectionService.onSelectionChange(() => this._onSelectionChange.fire()));\n this._register(this._selectionService.onRequestRedraw(e => this._renderService!.handleSelectionChanged(e.start, e.end, e.columnSelectMode)));\n this._register(this._selectionService.onLinuxMouseSelection(text => {\n // If there's a new selection, put it into the textarea, focus and select it\n // in order to register it as a selection on the OS. This event is fired\n // only on Linux to enable middle click to paste selection.\n this.textarea!.value = text;\n this.textarea!.focus();\n this.textarea!.select();\n }));\n this._register(this._onScroll.event(() => this._selectionService!.refresh()));\n\n this._register(this._instantiationService.createInstance(BufferDecorationRenderer, this.screenElement));\n this._register(addDisposableListener(this.element, 'mousedown', (e: MouseEvent) => this._selectionService!.handleMouseDown(e)));\n\n // apply mouse event classes set by escape codes before terminal was attached\n if (this.coreMouseService.areMouseEventsActive) {\n this._selectionService.disable();\n this.element.classList.add('enable-mouse-events');\n } else {\n this._selectionService.enable();\n }\n\n if (this.options.screenReaderMode) {\n // Note that this must be done *after* the renderer is created in order to\n // ensure the correct order of the dprchange event\n this._accessibilityManager.value = this._instantiationService.createInstance(AccessibilityManager, this);\n }\n this._register(this.optionsService.onSpecificOptionChange('screenReaderMode', e => this._handleScreenReaderModeOptionChange(e)));\n\n if (this.options.overviewRuler.width) {\n this._overviewRulerRenderer = this._register(this._instantiationService.createInstance(OverviewRulerRenderer, this._viewportElement, this.screenElement));\n }\n this.optionsService.onSpecificOptionChange('overviewRuler', value => {\n if (!this._overviewRulerRenderer && value && this._viewportElement && this.screenElement) {\n this._overviewRulerRenderer = this._register(this._instantiationService.createInstance(OverviewRulerRenderer, this._viewportElement, this.screenElement));\n }\n });\n // Measure the character size\n this._charSizeService.measure();\n\n // Setup loop that draws to screen\n this.refresh(0, this.rows - 1);\n\n // Initialize global actions that need to be taken on the document.\n this._initGlobal();\n\n // Listen for mouse events and translate\n // them into terminal mouse protocols.\n this.bindMouse();\n }\n\n private _createRenderer(): IRenderer {\n return this._instantiationService.createInstance(DomRenderer, this, this._document!, this.element!, this.screenElement!, this._viewportElement!, this._helperContainer!, this.linkifier!);\n }\n\n /**\n * Bind certain mouse events to the terminal.\n * By default only 3 button + wheel up/down is ativated. For higher buttons\n * no mouse report will be created. Typically the standard actions will be active.\n *\n * There are several reasons not to enable support for higher buttons/wheel:\n * - Button 4 and 5 are typically used for history back and forward navigation,\n * there is no straight forward way to supress/intercept those standard actions.\n * - Support for higher buttons does not work in some platform/browser combinations.\n * - Left/right wheel was not tested.\n * - Emulators vary in mouse button support, typically only 3 buttons and\n * wheel up/down work reliable.\n *\n * TODO: Move mouse event code into its own file.\n */\n public bindMouse(): void {\n const self = this;\n const el = this.element!;\n\n // send event to CoreMouseService\n function sendEvent(ev: MouseEvent | WheelEvent): boolean {\n // get mouse coordinates\n const pos = self._mouseService!.getMouseReportCoords(ev, self.screenElement!);\n if (!pos) {\n return false;\n }\n\n let but: CoreMouseButton;\n let action: CoreMouseAction | undefined;\n switch ((ev as any).overrideType || ev.type) {\n case 'mousemove':\n action = CoreMouseAction.MOVE;\n if (ev.buttons === undefined) {\n // buttons is not supported on macOS, try to get a value from button instead\n but = CoreMouseButton.NONE;\n if (ev.button !== undefined) {\n but = ev.button < 3 ? ev.button : CoreMouseButton.NONE;\n }\n } else {\n // according to MDN buttons only reports up to button 5 (AUX2)\n but = ev.buttons & 1 ? CoreMouseButton.LEFT :\n ev.buttons & 4 ? CoreMouseButton.MIDDLE :\n ev.buttons & 2 ? CoreMouseButton.RIGHT :\n CoreMouseButton.NONE; // fallback to NONE\n }\n break;\n case 'mouseup':\n action = CoreMouseAction.UP;\n but = ev.button < 3 ? ev.button : CoreMouseButton.NONE;\n break;\n case 'mousedown':\n action = CoreMouseAction.DOWN;\n but = ev.button < 3 ? ev.button : CoreMouseButton.NONE;\n break;\n case 'wheel':\n if (self._customWheelEventHandler && self._customWheelEventHandler(ev as WheelEvent) === false) {\n return false;\n }\n const deltaY = (ev as WheelEvent).deltaY;\n if (deltaY === 0) {\n return false;\n }\n action = deltaY < 0 ? CoreMouseAction.UP : CoreMouseAction.DOWN;\n but = CoreMouseButton.WHEEL;\n break;\n default:\n // dont handle other event types by accident\n return false;\n }\n\n // exit if we cannot determine valid button/action values\n // do nothing for higher buttons than wheel\n if (action === undefined || but === undefined || but > CoreMouseButton.WHEEL) {\n return false;\n }\n\n return self.coreMouseService.triggerMouseEvent({\n col: pos.col,\n row: pos.row,\n x: pos.x,\n y: pos.y,\n button: but,\n action,\n ctrl: ev.ctrlKey,\n alt: ev.altKey,\n shift: ev.shiftKey\n });\n }\n\n /**\n * Event listener state handling.\n * We listen to the onProtocolChange event of CoreMouseService and put\n * requested listeners in `requestedEvents`. With this the listeners\n * have all bits to do the event listener juggling.\n * Note: 'mousedown' currently is \"always on\" and not managed\n * by onProtocolChange.\n */\n const requestedEvents: { [key: string]: ((ev: MouseEvent | WheelEvent) => void) | null } = {\n mouseup: null,\n wheel: null,\n mousedrag: null,\n mousemove: null\n };\n const eventListeners: { [key: string]: (ev: any) => void | boolean } = {\n mouseup: (ev: MouseEvent) => {\n sendEvent(ev);\n if (!ev.buttons) {\n // if no other button is held remove global handlers\n this._document!.removeEventListener('mouseup', requestedEvents.mouseup!);\n if (requestedEvents.mousedrag) {\n this._document!.removeEventListener('mousemove', requestedEvents.mousedrag);\n }\n }\n return this.cancel(ev);\n },\n wheel: (ev: WheelEvent) => {\n sendEvent(ev);\n return this.cancel(ev, true);\n },\n mousedrag: (ev: MouseEvent) => {\n // deal only with move while a button is held\n if (ev.buttons) {\n sendEvent(ev);\n }\n },\n mousemove: (ev: MouseEvent) => {\n // deal only with move without any button\n if (!ev.buttons) {\n sendEvent(ev);\n }\n }\n };\n this._register(this.coreMouseService.onProtocolChange(events => {\n // apply global changes on events\n if (events) {\n if (this.optionsService.rawOptions.logLevel === 'debug') {\n this._logService.debug('Binding to mouse events:', this.coreMouseService.explainEvents(events));\n }\n this.element!.classList.add('enable-mouse-events');\n this._selectionService!.disable();\n } else {\n this._logService.debug('Unbinding from mouse events.');\n this.element!.classList.remove('enable-mouse-events');\n this._selectionService!.enable();\n }\n\n // add/remove handlers from requestedEvents\n\n if (!(events & CoreMouseEventType.MOVE)) {\n el.removeEventListener('mousemove', requestedEvents.mousemove!);\n requestedEvents.mousemove = null;\n } else if (!requestedEvents.mousemove) {\n el.addEventListener('mousemove', eventListeners.mousemove);\n requestedEvents.mousemove = eventListeners.mousemove;\n }\n\n if (!(events & CoreMouseEventType.WHEEL)) {\n el.removeEventListener('wheel', requestedEvents.wheel!);\n requestedEvents.wheel = null;\n } else if (!requestedEvents.wheel) {\n el.addEventListener('wheel', eventListeners.wheel, { passive: false });\n requestedEvents.wheel = eventListeners.wheel;\n }\n\n if (!(events & CoreMouseEventType.UP)) {\n this._document!.removeEventListener('mouseup', requestedEvents.mouseup!);\n requestedEvents.mouseup = null;\n } else if (!requestedEvents.mouseup) {\n requestedEvents.mouseup = eventListeners.mouseup;\n }\n\n if (!(events & CoreMouseEventType.DRAG)) {\n this._document!.removeEventListener('mousemove', requestedEvents.mousedrag!);\n requestedEvents.mousedrag = null;\n } else if (!requestedEvents.mousedrag) {\n requestedEvents.mousedrag = eventListeners.mousedrag;\n }\n }));\n // force initial onProtocolChange so we dont miss early mouse requests\n this.coreMouseService.activeProtocol = this.coreMouseService.activeProtocol;\n\n /**\n * \"Always on\" event listeners.\n */\n this._register(addDisposableListener(el, 'mousedown', (ev: MouseEvent) => {\n ev.preventDefault();\n this.focus();\n\n // Don't send the mouse button to the pty if mouse events are disabled or\n // if the selection manager is having selection forced (ie. a modifier is\n // held).\n if (!this.coreMouseService.areMouseEventsActive || this._selectionService!.shouldForceSelection(ev)) {\n return;\n }\n\n sendEvent(ev);\n\n // Register additional global handlers which should keep reporting outside\n // of the terminal element.\n // Note: Other emulators also do this for 'mousedown' while a button\n // is held, we currently limit 'mousedown' to the terminal only.\n if (requestedEvents.mouseup) {\n this._document!.addEventListener('mouseup', requestedEvents.mouseup);\n }\n if (requestedEvents.mousedrag) {\n this._document!.addEventListener('mousemove', requestedEvents.mousedrag);\n }\n\n return this.cancel(ev);\n }));\n\n this._register(addDisposableListener(el, 'wheel', (ev: WheelEvent) => {\n // do nothing, if app side handles wheel itself\n if (requestedEvents.wheel) return;\n\n if (this._customWheelEventHandler && this._customWheelEventHandler(ev) === false) {\n return false;\n }\n\n if (!this.buffer.hasScrollback) {\n // Convert wheel events into up/down events when the buffer does not have scrollback, this\n // enables scrolling in apps hosted in the alt buffer such as vim or tmux even when mouse\n // events are not enabled.\n // This used implementation used get the actual lines/partial lines scrolled from the\n // viewport but since moving to the new viewport implementation has been simplified to\n // simply send a single up or down sequence.\n\n // Do nothing if there's no vertical scroll\n const deltaY = (ev as WheelEvent).deltaY;\n if (deltaY === 0) {\n return false;\n }\n\n // Construct and send sequences\n const sequence = C0.ESC + (this.coreService.decPrivateModes.applicationCursorKeys ? 'O' : '[') + (ev.deltaY < 0 ? 'A' : 'B');\n this.coreService.triggerDataEvent(sequence, true);\n return this.cancel(ev, true);\n }\n }, { passive: false }));\n }\n\n\n /**\n * Tells the renderer to refresh terminal content between two rows (inclusive) at the next\n * opportunity.\n * @param start The row to start from (between 0 and this.rows - 1).\n * @param end The row to end at (between start and this.rows - 1).\n */\n public refresh(start: number, end: number): void {\n this._renderService?.refreshRows(start, end);\n }\n\n /**\n * Change the cursor style for different selection modes\n */\n public updateCursorStyle(ev: KeyboardEvent | MouseEvent): void {\n if (this._selectionService?.shouldColumnSelect(ev)) {\n this.element!.classList.add('column-select');\n } else {\n this.element!.classList.remove('column-select');\n }\n }\n\n /**\n * Display the cursor element\n */\n private _showCursor(): void {\n if (!this.coreService.isCursorInitialized) {\n this.coreService.isCursorInitialized = true;\n this.refresh(this.buffer.y, this.buffer.y);\n }\n }\n\n public scrollLines(disp: number, suppressScrollEvent?: boolean): void {\n // All scrollLines methods need to go via the viewport in order to support smooth scroll\n if (this._viewport) {\n this._viewport.scrollLines(disp);\n } else {\n super.scrollLines(disp, suppressScrollEvent);\n }\n this.refresh(0, this.rows - 1);\n }\n\n public scrollPages(pageCount: number): void {\n this.scrollLines(pageCount * (this.rows - 1));\n }\n\n public scrollToTop(): void {\n this.scrollLines(-this._bufferService.buffer.ydisp);\n }\n\n public scrollToBottom(disableSmoothScroll?: boolean): void {\n if (disableSmoothScroll && this._viewport) {\n this._viewport.scrollToLine(this.buffer.ybase, true);\n } else {\n this.scrollLines(this._bufferService.buffer.ybase - this._bufferService.buffer.ydisp);\n }\n }\n\n public scrollToLine(line: number): void {\n const scrollAmount = line - this._bufferService.buffer.ydisp;\n if (scrollAmount !== 0) {\n this.scrollLines(scrollAmount);\n }\n }\n\n public paste(data: string): void {\n paste(data, this.textarea!, this.coreService, this.optionsService);\n }\n\n public attachCustomKeyEventHandler(customKeyEventHandler: CustomKeyEventHandler): void {\n this._customKeyEventHandler = customKeyEventHandler;\n }\n\n public attachCustomWheelEventHandler(customWheelEventHandler: CustomWheelEventHandler): void {\n this._customWheelEventHandler = customWheelEventHandler;\n }\n\n public registerLinkProvider(linkProvider: ILinkProvider): IDisposable {\n return this._linkProviderService.registerLinkProvider(linkProvider);\n }\n\n public registerCharacterJoiner(handler: CharacterJoinerHandler): number {\n if (!this._characterJoinerService) {\n throw new Error('Terminal must be opened first');\n }\n const joinerId = this._characterJoinerService.register(handler);\n this.refresh(0, this.rows - 1);\n return joinerId;\n }\n\n public deregisterCharacterJoiner(joinerId: number): void {\n if (!this._characterJoinerService) {\n throw new Error('Terminal must be opened first');\n }\n if (this._characterJoinerService.deregister(joinerId)) {\n this.refresh(0, this.rows - 1);\n }\n }\n\n public get markers(): IMarker[] {\n return this.buffer.markers;\n }\n\n public registerMarker(cursorYOffset: number): IMarker {\n return this.buffer.addMarker(this.buffer.ybase + this.buffer.y + cursorYOffset);\n }\n\n public registerDecoration(decorationOptions: IDecorationOptions): IDecoration | undefined {\n return this._decorationService.registerDecoration(decorationOptions);\n }\n\n /**\n * Gets whether the terminal has an active selection.\n */\n public hasSelection(): boolean {\n return this._selectionService ? this._selectionService.hasSelection : false;\n }\n\n /**\n * Selects text within the terminal.\n * @param column The column the selection starts at..\n * @param row The row the selection starts at.\n * @param length The length of the selection.\n */\n public select(column: number, row: number, length: number): void {\n this._selectionService!.setSelection(column, row, length);\n }\n\n /**\n * Gets the terminal's current selection, this is useful for implementing copy\n * behavior outside of xterm.js.\n */\n public getSelection(): string {\n return this._selectionService ? this._selectionService.selectionText : '';\n }\n\n public getSelectionPosition(): IBufferRange | undefined {\n if (!this._selectionService || !this._selectionService.hasSelection) {\n return undefined;\n }\n\n return {\n start: {\n x: this._selectionService.selectionStart![0],\n y: this._selectionService.selectionStart![1]\n },\n end: {\n x: this._selectionService.selectionEnd![0],\n y: this._selectionService.selectionEnd![1]\n }\n };\n }\n\n /**\n * Clears the current terminal selection.\n */\n public clearSelection(): void {\n this._selectionService?.clearSelection();\n }\n\n /**\n * Selects all text within the terminal.\n */\n public selectAll(): void {\n this._selectionService?.selectAll();\n }\n\n public selectLines(start: number, end: number): void {\n this._selectionService?.selectLines(start, end);\n }\n\n /**\n * Handle a keydown [KeyboardEvent].\n *\n * [KeyboardEvent]: https://developer.mozilla.org/en-US/docs/DOM/KeyboardEvent\n */\n protected _keyDown(event: KeyboardEvent): boolean | undefined {\n this._keyDownHandled = false;\n this._keyDownSeen = true;\n\n if (this._customKeyEventHandler && this._customKeyEventHandler(event) === false) {\n return false;\n }\n\n // Ignore composing with Alt key on Mac when macOptionIsMeta is enabled\n const shouldIgnoreComposition = this.browser.isMac && this.options.macOptionIsMeta && event.altKey;\n\n if (!shouldIgnoreComposition && !this._compositionHelper!.keydown(event)) {\n if (this.options.scrollOnUserInput && this.buffer.ybase !== this.buffer.ydisp) {\n this.scrollToBottom(true);\n }\n return false;\n }\n\n if (!shouldIgnoreComposition && (event.key === 'Dead' || event.key === 'AltGraph')) {\n this._unprocessedDeadKey = true;\n }\n\n const result = evaluateKeyboardEvent(event, this.coreService.decPrivateModes.applicationCursorKeys, this.browser.isMac, this.options.macOptionIsMeta);\n\n this.updateCursorStyle(event);\n\n if (result.type === KeyboardResultType.PAGE_DOWN || result.type === KeyboardResultType.PAGE_UP) {\n const scrollCount = this.rows - 1;\n this.scrollLines(result.type === KeyboardResultType.PAGE_UP ? -scrollCount : scrollCount);\n return this.cancel(event, true);\n }\n\n if (result.type === KeyboardResultType.SELECT_ALL) {\n this.selectAll();\n }\n\n if (this._isThirdLevelShift(this.browser, event)) {\n return true;\n }\n\n if (result.cancel) {\n // The event is canceled at the end already, is this necessary?\n this.cancel(event, true);\n }\n\n if (!result.key) {\n return true;\n }\n\n // HACK: Process A-Z in the keypress event to fix an issue with macOS IMEs where lower case\n // letters cannot be input while caps lock is on.\n if (event.key && !event.ctrlKey && !event.altKey && !event.metaKey && event.key.length === 1) {\n if (event.key.charCodeAt(0) >= 65 && event.key.charCodeAt(0) <= 90) {\n return true;\n }\n }\n\n if (this._unprocessedDeadKey) {\n this._unprocessedDeadKey = false;\n return true;\n }\n\n // If ctrl+c or enter is being sent, clear out the textarea. This is done so that screen readers\n // will announce deleted characters. This will not work 100% of the time but it should cover\n // most scenarios.\n if (result.key === C0.ETX || result.key === C0.CR) {\n this.textarea!.value = '';\n }\n\n this._onKey.fire({ key: result.key, domEvent: event });\n this._showCursor();\n this.coreService.triggerDataEvent(result.key, true);\n\n // Cancel events when not in screen reader mode so events don't get bubbled up and handled by\n // other listeners. When screen reader mode is enabled, we don't cancel them (unless ctrl or alt\n // is also depressed) so that the cursor textarea can be updated, which triggers the screen\n // reader to read it.\n if (!this.optionsService.rawOptions.screenReaderMode || event.altKey || event.ctrlKey) {\n return this.cancel(event, true);\n }\n\n this._keyDownHandled = true;\n }\n\n private _isThirdLevelShift(browser: IBrowser, ev: KeyboardEvent): boolean {\n const thirdLevelKey =\n (browser.isMac && !this.options.macOptionIsMeta && ev.altKey && !ev.ctrlKey && !ev.metaKey) ||\n (browser.isWindows && ev.altKey && ev.ctrlKey && !ev.metaKey) ||\n (browser.isWindows && ev.getModifierState('AltGraph'));\n\n if (ev.type === 'keypress') {\n return thirdLevelKey;\n }\n\n // Don't invoke for arrows, pageDown, home, backspace, etc. (on non-keypress events)\n return thirdLevelKey && (!ev.keyCode || ev.keyCode > 47);\n }\n\n protected _keyUp(ev: KeyboardEvent): void {\n this._keyDownSeen = false;\n\n if (this._customKeyEventHandler && this._customKeyEventHandler(ev) === false) {\n return;\n }\n\n if (!wasModifierKeyOnlyEvent(ev)) {\n this.focus();\n }\n\n this.updateCursorStyle(ev);\n this._keyPressHandled = false;\n }\n\n /**\n * Handle a keypress event.\n * Key Resources:\n * - https://developer.mozilla.org/en-US/docs/DOM/KeyboardEvent\n * @param ev The keypress event to be handled.\n */\n protected _keyPress(ev: KeyboardEvent): boolean {\n let key;\n\n this._keyPressHandled = false;\n\n if (this._keyDownHandled) {\n return false;\n }\n\n if (this._customKeyEventHandler && this._customKeyEventHandler(ev) === false) {\n return false;\n }\n\n this.cancel(ev);\n\n if (ev.charCode) {\n key = ev.charCode;\n } else if (ev.which === null || ev.which === undefined) {\n key = ev.keyCode;\n } else if (ev.which !== 0 && ev.charCode !== 0) {\n key = ev.which;\n } else {\n return false;\n }\n\n if (!key || (\n (ev.altKey || ev.ctrlKey || ev.metaKey) && !this._isThirdLevelShift(this.browser, ev)\n )) {\n return false;\n }\n\n key = String.fromCharCode(key);\n\n this._onKey.fire({ key, domEvent: ev });\n this._showCursor();\n this.coreService.triggerDataEvent(key, true);\n\n this._keyPressHandled = true;\n\n // The key was handled so clear the dead key state, otherwise certain keystrokes like arrow\n // keys could be ignored\n this._unprocessedDeadKey = false;\n\n return true;\n }\n\n /**\n * Handle an input event.\n * Key Resources:\n * - https://developer.mozilla.org/en-US/docs/Web/API/InputEvent\n * @param ev The input event to be handled.\n */\n protected _inputEvent(ev: InputEvent): boolean {\n // Only support emoji IMEs when screen reader mode is disabled as the event must bubble up to\n // support reading out character input which can doubling up input characters\n // Based on these event traces: https://github.com/xtermjs/xterm.js/issues/3679\n if (ev.data && ev.inputType === 'insertText' && (!ev.composed || !this._keyDownSeen) && !this.optionsService.rawOptions.screenReaderMode) {\n if (this._keyPressHandled) {\n return false;\n }\n\n // The key was handled so clear the dead key state, otherwise certain keystrokes like arrow\n // keys could be ignored\n this._unprocessedDeadKey = false;\n\n const text = ev.data;\n this.coreService.triggerDataEvent(text, true);\n\n this.cancel(ev);\n return true;\n }\n\n return false;\n }\n\n /**\n * Resizes the terminal.\n *\n * @param x The number of columns to resize to.\n * @param y The number of rows to resize to.\n */\n public resize(x: number, y: number): void {\n if (x === this.cols && y === this.rows) {\n // Check if we still need to measure the char size (fixes #785).\n if (this._charSizeService && !this._charSizeService.hasValidSize) {\n this._charSizeService.measure();\n }\n return;\n }\n\n super.resize(x, y);\n }\n\n private _afterResize(x: number, y: number): void {\n this._charSizeService?.measure();\n }\n\n /**\n * Clear the entire buffer, making the prompt line the new first line.\n */\n public clear(): void {\n if (this.buffer.ybase === 0 && this.buffer.y === 0) {\n // Don't clear if it's already clear\n return;\n }\n this.buffer.clearAllMarkers();\n this.buffer.lines.set(0, this.buffer.lines.get(this.buffer.ybase + this.buffer.y)!);\n this.buffer.lines.length = 1;\n this.buffer.ydisp = 0;\n this.buffer.ybase = 0;\n this.buffer.y = 0;\n for (let i = 1; i < this.rows; i++) {\n this.buffer.lines.push(this.buffer.getBlankLine(DEFAULT_ATTR_DATA));\n }\n // IMPORTANT: Fire scroll event before viewport is reset. This ensures embedders get the clear\n // scroll event and that the viewport's state will be valid for immediate writes.\n this._onScroll.fire({ position: this.buffer.ydisp });\n this.refresh(0, this.rows - 1);\n }\n\n /**\n * Reset terminal.\n * Note: Calling this directly from JS is synchronous but does not clear\n * input buffers and does not reset the parser, thus the terminal will\n * continue to apply pending input data.\n * If you need in band reset (synchronous with input data) consider\n * using DECSTR (soft reset, CSI ! p) or RIS instead (hard reset, ESC c).\n */\n public reset(): void {\n /**\n * Since _setup handles a full terminal creation, we have to carry forward\n * a few things that should not reset.\n */\n this.options.rows = this.rows;\n this.options.cols = this.cols;\n const customKeyEventHandler = this._customKeyEventHandler;\n\n this._setup();\n super.reset();\n this._selectionService?.reset();\n this._decorationService.reset();\n\n // reattach\n this._customKeyEventHandler = customKeyEventHandler;\n\n // do a full screen refresh\n this.refresh(0, this.rows - 1);\n }\n\n public clearTextureAtlas(): void {\n this._renderService?.clearTextureAtlas();\n }\n\n private _reportFocus(): void {\n if (this.element?.classList.contains('focus')) {\n this.coreService.triggerDataEvent(C0.ESC + '[I');\n } else {\n this.coreService.triggerDataEvent(C0.ESC + '[O');\n }\n }\n\n private _reportWindowsOptions(type: WindowsOptionsReportType): void {\n if (!this._renderService) {\n return;\n }\n\n switch (type) {\n case WindowsOptionsReportType.GET_WIN_SIZE_PIXELS:\n const canvasWidth = this._renderService.dimensions.css.canvas.width.toFixed(0);\n const canvasHeight = this._renderService.dimensions.css.canvas.height.toFixed(0);\n this.coreService.triggerDataEvent(`${C0.ESC}[4;${canvasHeight};${canvasWidth}t`);\n break;\n case WindowsOptionsReportType.GET_CELL_SIZE_PIXELS:\n const cellWidth = this._renderService.dimensions.css.cell.width.toFixed(0);\n const cellHeight = this._renderService.dimensions.css.cell.height.toFixed(0);\n this.coreService.triggerDataEvent(`${C0.ESC}[6;${cellHeight};${cellWidth}t`);\n break;\n }\n }\n\n // TODO: Remove cancel function and cancelEvents option\n public cancel(ev: MouseEvent | WheelEvent | KeyboardEvent | InputEvent, force?: boolean): boolean | undefined {\n if (!this.options.cancelEvents && !force) {\n return;\n }\n ev.preventDefault();\n ev.stopPropagation();\n return false;\n }\n}\n\n/**\n * Helpers\n */\n\nfunction wasModifierKeyOnlyEvent(ev: KeyboardEvent): boolean {\n return ev.keyCode === 16 || // Shift\n ev.keyCode === 17 || // Ctrl\n ev.keyCode === 18; // Alt\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferCellPosition, ILink, ILinkDecorations, ILinkWithState, ILinkifier2, ILinkifierEvent } from 'browser/Types';\nimport { Disposable, dispose, toDisposable } from 'vs/base/common/lifecycle';\nimport { IDisposable } from 'common/Types';\nimport { IBufferService } from 'common/services/Services';\nimport { ILinkProviderService, IMouseService, IRenderService } from './services/Services';\nimport { Emitter } from 'vs/base/common/event';\nimport { addDisposableListener } from 'vs/base/browser/dom';\n\nexport class Linkifier extends Disposable implements ILinkifier2 {\n public get currentLink(): ILinkWithState | undefined { return this._currentLink; }\n protected _currentLink: ILinkWithState | undefined;\n private _mouseDownLink: ILinkWithState | undefined;\n private _lastMouseEvent: MouseEvent | undefined;\n private _linkCacheDisposables: IDisposable[] = [];\n private _lastBufferCell: IBufferCellPosition | undefined;\n private _isMouseOut: boolean = true;\n private _wasResized: boolean = false;\n private _activeProviderReplies: Map | undefined;\n private _activeLine: number = -1;\n\n private readonly _onShowLinkUnderline = this._register(new Emitter());\n public readonly onShowLinkUnderline = this._onShowLinkUnderline.event;\n private readonly _onHideLinkUnderline = this._register(new Emitter());\n public readonly onHideLinkUnderline = this._onHideLinkUnderline.event;\n\n constructor(\n private readonly _element: HTMLElement,\n @IMouseService private readonly _mouseService: IMouseService,\n @IRenderService private readonly _renderService: IRenderService,\n @IBufferService private readonly _bufferService: IBufferService,\n @ILinkProviderService private readonly _linkProviderService: ILinkProviderService\n ) {\n super();\n this._register(toDisposable(() => {\n dispose(this._linkCacheDisposables);\n this._linkCacheDisposables.length = 0;\n this._lastMouseEvent = undefined;\n // Clear out link providers as they could easily cause an embedder memory leak\n this._activeProviderReplies?.clear();\n }));\n // Listen to resize to catch the case where it's resized and the cursor is out of the viewport.\n this._register(this._bufferService.onResize(() => {\n this._clearCurrentLink();\n this._wasResized = true;\n }));\n this._register(addDisposableListener(this._element, 'mouseleave', () => {\n this._isMouseOut = true;\n this._clearCurrentLink();\n }));\n this._register(addDisposableListener(this._element, 'mousemove', this._handleMouseMove.bind(this)));\n this._register(addDisposableListener(this._element, 'mousedown', this._handleMouseDown.bind(this)));\n this._register(addDisposableListener(this._element, 'mouseup', this._handleMouseUp.bind(this)));\n }\n\n private _handleMouseMove(event: MouseEvent): void {\n this._lastMouseEvent = event;\n\n const position = this._positionFromMouseEvent(event, this._element, this._mouseService);\n if (!position) {\n return;\n }\n this._isMouseOut = false;\n\n // Ignore the event if it's an embedder created hover widget\n const composedPath = event.composedPath() as HTMLElement[];\n for (let i = 0; i < composedPath.length; i++) {\n const target = composedPath[i];\n // Hit Terminal.element, break and continue\n if (target.classList.contains('xterm')) {\n break;\n }\n // It's a hover, don't respect hover event\n if (target.classList.contains('xterm-hover')) {\n return;\n }\n }\n\n if (!this._lastBufferCell || (position.x !== this._lastBufferCell.x || position.y !== this._lastBufferCell.y)) {\n this._handleHover(position);\n this._lastBufferCell = position;\n }\n }\n\n private _handleHover(position: IBufferCellPosition): void {\n // TODO: This currently does not cache link provider results across wrapped lines, activeLine\n // should be something like `activeRange: {startY, endY}`\n // Check if we need to clear the link\n if (this._activeLine !== position.y || this._wasResized) {\n this._clearCurrentLink();\n this._askForLink(position, false);\n this._wasResized = false;\n return;\n }\n\n // Check the if the link is in the mouse position\n const isCurrentLinkInPosition = this._currentLink && this._linkAtPosition(this._currentLink.link, position);\n if (!isCurrentLinkInPosition) {\n this._clearCurrentLink();\n this._askForLink(position, true);\n }\n }\n\n private _askForLink(position: IBufferCellPosition, useLineCache: boolean): void {\n if (!this._activeProviderReplies || !useLineCache) {\n this._activeProviderReplies?.forEach(reply => {\n reply?.forEach(linkWithState => {\n if (linkWithState.link.dispose) {\n linkWithState.link.dispose();\n }\n });\n });\n this._activeProviderReplies = new Map();\n this._activeLine = position.y;\n }\n let linkProvided = false;\n\n // There is no link cached, so ask for one\n for (const [i, linkProvider] of this._linkProviderService.linkProviders.entries()) {\n if (useLineCache) {\n const existingReply = this._activeProviderReplies?.get(i);\n // If there isn't a reply, the provider hasn't responded yet.\n\n // TODO: If there isn't a reply yet it means that the provider is still resolving. Ensuring\n // provideLinks isn't triggered again saves ILink.hover firing twice though. This probably\n // needs promises to get fixed\n if (existingReply) {\n linkProvided = this._checkLinkProviderResult(i, position, linkProvided);\n }\n } else {\n linkProvider.provideLinks(position.y, (links: ILink[] | undefined) => {\n if (this._isMouseOut) {\n return;\n }\n const linksWithState: ILinkWithState[] | undefined = links?.map(link => ({ link }));\n this._activeProviderReplies?.set(i, linksWithState);\n linkProvided = this._checkLinkProviderResult(i, position, linkProvided);\n\n // If all providers have responded, remove lower priority links that intersect ranges of\n // higher priority links\n if (this._activeProviderReplies?.size === this._linkProviderService.linkProviders.length) {\n this._removeIntersectingLinks(position.y, this._activeProviderReplies);\n }\n });\n }\n }\n }\n\n private _removeIntersectingLinks(y: number, replies: Map): void {\n const occupiedCells = new Set();\n for (let i = 0; i < replies.size; i++) {\n const providerReply = replies.get(i);\n if (!providerReply) {\n continue;\n }\n for (let i = 0; i < providerReply.length; i++) {\n const linkWithState = providerReply[i];\n const startX = linkWithState.link.range.start.y < y ? 0 : linkWithState.link.range.start.x;\n const endX = linkWithState.link.range.end.y > y ? this._bufferService.cols : linkWithState.link.range.end.x;\n for (let x = startX; x <= endX; x++) {\n if (occupiedCells.has(x)) {\n providerReply.splice(i--, 1);\n break;\n }\n occupiedCells.add(x);\n }\n }\n }\n }\n\n private _checkLinkProviderResult(index: number, position: IBufferCellPosition, linkProvided: boolean): boolean {\n if (!this._activeProviderReplies) {\n return linkProvided;\n }\n\n const links = this._activeProviderReplies.get(index);\n\n // Check if every provider before this one has come back undefined\n let hasLinkBefore = false;\n for (let j = 0; j < index; j++) {\n if (!this._activeProviderReplies.has(j) || this._activeProviderReplies.get(j)) {\n hasLinkBefore = true;\n }\n }\n\n // If all providers with higher priority came back undefined, then this provider's link for\n // the position should be used\n if (!hasLinkBefore && links) {\n const linkAtPosition = links.find(link => this._linkAtPosition(link.link, position));\n if (linkAtPosition) {\n linkProvided = true;\n this._handleNewLink(linkAtPosition);\n }\n }\n\n // Check if all the providers have responded\n if (this._activeProviderReplies.size === this._linkProviderService.linkProviders.length && !linkProvided) {\n // Respect the order of the link providers\n for (let j = 0; j < this._activeProviderReplies.size; j++) {\n const currentLink = this._activeProviderReplies.get(j)?.find(link => this._linkAtPosition(link.link, position));\n if (currentLink) {\n linkProvided = true;\n this._handleNewLink(currentLink);\n break;\n }\n }\n }\n\n return linkProvided;\n }\n\n private _handleMouseDown(): void {\n this._mouseDownLink = this._currentLink;\n }\n\n private _handleMouseUp(event: MouseEvent): void {\n if (!this._currentLink) {\n return;\n }\n\n const position = this._positionFromMouseEvent(event, this._element, this._mouseService);\n if (!position) {\n return;\n }\n\n if (this._mouseDownLink && linkEquals(this._mouseDownLink.link, this._currentLink.link) && this._linkAtPosition(this._currentLink.link, position)) {\n this._currentLink.link.activate(event, this._currentLink.link.text);\n }\n }\n\n private _clearCurrentLink(startRow?: number, endRow?: number): void {\n if (!this._currentLink || !this._lastMouseEvent) {\n return;\n }\n\n // If we have a start and end row, check that the link is within it\n if (!startRow || !endRow || (this._currentLink.link.range.start.y >= startRow && this._currentLink.link.range.end.y <= endRow)) {\n this._linkLeave(this._element, this._currentLink.link, this._lastMouseEvent);\n this._currentLink = undefined;\n dispose(this._linkCacheDisposables);\n this._linkCacheDisposables.length = 0;\n }\n }\n\n private _handleNewLink(linkWithState: ILinkWithState): void {\n if (!this._lastMouseEvent) {\n return;\n }\n\n const position = this._positionFromMouseEvent(this._lastMouseEvent, this._element, this._mouseService);\n\n if (!position) {\n return;\n }\n\n // Trigger hover if the we have a link at the position\n if (this._linkAtPosition(linkWithState.link, position)) {\n this._currentLink = linkWithState;\n this._currentLink.state = {\n decorations: {\n underline: linkWithState.link.decorations === undefined ? true : linkWithState.link.decorations.underline,\n pointerCursor: linkWithState.link.decorations === undefined ? true : linkWithState.link.decorations.pointerCursor\n },\n isHovered: true\n };\n this._linkHover(this._element, linkWithState.link, this._lastMouseEvent);\n\n // Add listener for tracking decorations changes\n linkWithState.link.decorations = {} as ILinkDecorations;\n Object.defineProperties(linkWithState.link.decorations, {\n pointerCursor: {\n get: () => this._currentLink?.state?.decorations.pointerCursor,\n set: v => {\n if (this._currentLink?.state && this._currentLink.state.decorations.pointerCursor !== v) {\n this._currentLink.state.decorations.pointerCursor = v;\n if (this._currentLink.state.isHovered) {\n this._element.classList.toggle('xterm-cursor-pointer', v);\n }\n }\n }\n },\n underline: {\n get: () => this._currentLink?.state?.decorations.underline,\n set: v => {\n if (this._currentLink?.state && this._currentLink?.state?.decorations.underline !== v) {\n this._currentLink.state.decorations.underline = v;\n if (this._currentLink.state.isHovered) {\n this._fireUnderlineEvent(linkWithState.link, v);\n }\n }\n }\n }\n });\n\n // Listen to viewport changes to re-render the link under the cursor (only when the line the\n // link is on changes)\n this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(e => {\n // Sanity check, this shouldn't happen in practice as this listener would be disposed\n if (!this._currentLink) {\n return;\n }\n // When start is 0 a scroll most likely occurred, make sure links above the fold also get\n // cleared.\n const start = e.start === 0 ? 0 : e.start + 1 + this._bufferService.buffer.ydisp;\n const end = this._bufferService.buffer.ydisp + 1 + e.end;\n // Only clear the link if the viewport change happened on this line\n if (this._currentLink.link.range.start.y >= start && this._currentLink.link.range.end.y <= end) {\n this._clearCurrentLink(start, end);\n if (this._lastMouseEvent) {\n // re-eval previously active link after changes\n const position = this._positionFromMouseEvent(this._lastMouseEvent, this._element, this._mouseService!);\n if (position) {\n this._askForLink(position, false);\n }\n }\n }\n }));\n }\n }\n\n protected _linkHover(element: HTMLElement, link: ILink, event: MouseEvent): void {\n if (this._currentLink?.state) {\n this._currentLink.state.isHovered = true;\n if (this._currentLink.state.decorations.underline) {\n this._fireUnderlineEvent(link, true);\n }\n if (this._currentLink.state.decorations.pointerCursor) {\n element.classList.add('xterm-cursor-pointer');\n }\n }\n\n if (link.hover) {\n link.hover(event, link.text);\n }\n }\n\n private _fireUnderlineEvent(link: ILink, showEvent: boolean): void {\n const range = link.range;\n const scrollOffset = this._bufferService.buffer.ydisp;\n const event = this._createLinkUnderlineEvent(range.start.x - 1, range.start.y - scrollOffset - 1, range.end.x, range.end.y - scrollOffset - 1, undefined);\n const emitter = showEvent ? this._onShowLinkUnderline : this._onHideLinkUnderline;\n emitter.fire(event);\n }\n\n protected _linkLeave(element: HTMLElement, link: ILink, event: MouseEvent): void {\n if (this._currentLink?.state) {\n this._currentLink.state.isHovered = false;\n if (this._currentLink.state.decorations.underline) {\n this._fireUnderlineEvent(link, false);\n }\n if (this._currentLink.state.decorations.pointerCursor) {\n element.classList.remove('xterm-cursor-pointer');\n }\n }\n\n if (link.leave) {\n link.leave(event, link.text);\n }\n }\n\n /**\n * Check if the buffer position is within the link\n * @param link\n * @param position\n */\n private _linkAtPosition(link: ILink, position: IBufferCellPosition): boolean {\n const lower = link.range.start.y * this._bufferService.cols + link.range.start.x;\n const upper = link.range.end.y * this._bufferService.cols + link.range.end.x;\n const current = position.y * this._bufferService.cols + position.x;\n return (lower <= current && current <= upper);\n }\n\n /**\n * Get the buffer position from a mouse event\n * @param event\n */\n private _positionFromMouseEvent(event: MouseEvent, element: HTMLElement, mouseService: IMouseService): IBufferCellPosition | undefined {\n const coords = mouseService.getCoords(event, element, this._bufferService.cols, this._bufferService.rows);\n if (!coords) {\n return;\n }\n\n return { x: coords[0], y: coords[1] + this._bufferService.buffer.ydisp };\n }\n\n private _createLinkUnderlineEvent(x1: number, y1: number, x2: number, y2: number, fg: number | undefined): ILinkifierEvent {\n return { x1, y1, x2, y2, cols: this._bufferService.cols, fg };\n }\n}\n\nfunction linkEquals(a: ILink, b: ILink): boolean {\n return (\n a.text === b.text &&\n a.range.start.x === b.range.start.x &&\n a.range.start.y === b.range.start.y &&\n a.range.end.x === b.range.end.x &&\n a.range.end.y === b.range.end.y\n );\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\n// This file contains strings that get exported in the API so they can be localized\n\nlet promptLabelInternal = 'Terminal input';\nconst promptLabel = {\n get: () => promptLabelInternal,\n set: (value: string) => promptLabelInternal = value\n};\n\nlet tooMuchOutputInternal = 'Too much output to announce, navigate to rows manually to read';\nconst tooMuchOutput = {\n get: () => tooMuchOutputInternal,\n set: (value: string) => tooMuchOutputInternal = value\n};\n\nexport {\n promptLabel,\n tooMuchOutput\n};\n","/**\n * Copyright (c) 2022 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferRange, ILink } from 'browser/Types';\nimport { ILinkProvider } from 'browser/services/Services';\nimport { CellData } from 'common/buffer/CellData';\nimport { IBufferService, IOptionsService, IOscLinkService } from 'common/services/Services';\n\nexport class OscLinkProvider implements ILinkProvider {\n constructor(\n @IBufferService private readonly _bufferService: IBufferService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @IOscLinkService private readonly _oscLinkService: IOscLinkService\n ) {\n }\n\n public provideLinks(y: number, callback: (links: ILink[] | undefined) => void): void {\n const line = this._bufferService.buffer.lines.get(y - 1);\n if (!line) {\n callback(undefined);\n return;\n }\n\n const result: ILink[] = [];\n const linkHandler = this._optionsService.rawOptions.linkHandler;\n const cell = new CellData();\n const lineLength = line.getTrimmedLength();\n let currentLinkId = -1;\n let currentStart = -1;\n let finishLink = false;\n for (let x = 0; x < lineLength; x++) {\n // Minor optimization, only check for content if there isn't a link in case the link ends with\n // a null cell\n if (currentStart === -1 && !line.hasContent(x)) {\n continue;\n }\n\n line.loadCell(x, cell);\n if (cell.hasExtendedAttrs() && cell.extended.urlId) {\n if (currentStart === -1) {\n currentStart = x;\n currentLinkId = cell.extended.urlId;\n continue;\n } else {\n finishLink = cell.extended.urlId !== currentLinkId;\n }\n } else {\n if (currentStart !== -1) {\n finishLink = true;\n }\n }\n\n if (finishLink || (currentStart !== -1 && x === lineLength - 1)) {\n const text = this._oscLinkService.getLinkData(currentLinkId)?.uri;\n if (text) {\n // These ranges are 1-based\n const range: IBufferRange = {\n start: {\n x: currentStart + 1,\n y\n },\n end: {\n // Offset end x if it's a link that ends on the last cell in the line\n x: x + (!finishLink && x === lineLength - 1 ? 1 : 0),\n y\n }\n };\n\n let ignoreLink = false;\n if (!linkHandler?.allowNonHttpProtocols) {\n try {\n const parsed = new URL(text);\n if (!['http:', 'https:'].includes(parsed.protocol)) {\n ignoreLink = true;\n }\n } catch (e) {\n // Ignore invalid URLs to prevent unexpected behaviors\n ignoreLink = true;\n }\n }\n\n if (!ignoreLink) {\n // OSC links always use underline and pointer decorations\n result.push({\n text,\n range,\n activate: (e, text) => (linkHandler ? linkHandler.activate(e, text, range) : defaultActivate(e, text)),\n hover: (e, text) => linkHandler?.hover?.(e, text, range),\n leave: (e, text) => linkHandler?.leave?.(e, text, range)\n });\n }\n }\n finishLink = false;\n\n // Clear link or start a new link if one starts immediately\n if (cell.hasExtendedAttrs() && cell.extended.urlId) {\n currentStart = x;\n currentLinkId = cell.extended.urlId;\n } else {\n currentStart = -1;\n currentLinkId = -1;\n }\n }\n }\n\n // TODO: Handle fetching and returning other link ranges to underline other links with the same\n // id\n callback(result);\n }\n}\n\nfunction defaultActivate(e: MouseEvent, uri: string): void {\n const answer = confirm(`Do you want to navigate to ${uri}?\\n\\nWARNING: This link could potentially be dangerous`);\n if (answer) {\n const newWindow = window.open();\n if (newWindow) {\n try {\n newWindow.opener = null;\n } catch {\n // no-op, Electron can throw\n }\n newWindow.location.href = uri;\n } else {\n console.warn('Opening link blocked as opener could not be cleared');\n }\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IRenderDebouncerWithCallback } from 'browser/Types';\nimport { ICoreBrowserService } from 'browser/services/Services';\n\n/**\n * Debounces calls to render terminal rows using animation frames.\n */\nexport class RenderDebouncer implements IRenderDebouncerWithCallback {\n private _rowStart: number | undefined;\n private _rowEnd: number | undefined;\n private _rowCount: number | undefined;\n private _animationFrame: number | undefined;\n private _refreshCallbacks: FrameRequestCallback[] = [];\n\n constructor(\n private _renderCallback: (start: number, end: number) => void,\n private readonly _coreBrowserService: ICoreBrowserService\n ) {\n }\n\n public dispose(): void {\n if (this._animationFrame) {\n this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame);\n this._animationFrame = undefined;\n }\n }\n\n public addRefreshCallback(callback: FrameRequestCallback): number {\n this._refreshCallbacks.push(callback);\n if (!this._animationFrame) {\n this._animationFrame = this._coreBrowserService.window.requestAnimationFrame(() => this._innerRefresh());\n }\n return this._animationFrame;\n }\n\n public refresh(rowStart: number | undefined, rowEnd: number | undefined, rowCount: number): void {\n this._rowCount = rowCount;\n // Get the min/max row start/end for the arg values\n rowStart = rowStart !== undefined ? rowStart : 0;\n rowEnd = rowEnd !== undefined ? rowEnd : this._rowCount - 1;\n // Set the properties to the updated values\n this._rowStart = this._rowStart !== undefined ? Math.min(this._rowStart, rowStart) : rowStart;\n this._rowEnd = this._rowEnd !== undefined ? Math.max(this._rowEnd, rowEnd) : rowEnd;\n\n if (this._animationFrame) {\n return;\n }\n\n this._animationFrame = this._coreBrowserService.window.requestAnimationFrame(() => this._innerRefresh());\n }\n\n private _innerRefresh(): void {\n this._animationFrame = undefined;\n\n // Make sure values are set\n if (this._rowStart === undefined || this._rowEnd === undefined || this._rowCount === undefined) {\n this._runRefreshCallbacks();\n return;\n }\n\n // Clamp values\n const start = Math.max(this._rowStart, 0);\n const end = Math.min(this._rowEnd, this._rowCount - 1);\n\n // Reset debouncer (this happens before render callback as the render could trigger it again)\n this._rowStart = undefined;\n this._rowEnd = undefined;\n\n // Run render callback\n this._renderCallback(start, end);\n this._runRefreshCallbacks();\n }\n\n private _runRefreshCallbacks(): void {\n for (const callback of this._refreshCallbacks) {\n callback(0);\n }\n this._refreshCallbacks = [];\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nconst RENDER_DEBOUNCE_THRESHOLD_MS = 1000; // 1 Second\n\nimport { IRenderDebouncer } from 'browser/Types';\n\n/**\n * Debounces calls to update screen readers to update at most once configurable interval of time.\n */\nexport class TimeBasedDebouncer implements IRenderDebouncer {\n private _rowStart: number | undefined;\n private _rowEnd: number | undefined;\n private _rowCount: number | undefined;\n\n // The last moment that the Terminal was refreshed at\n private _lastRefreshMs = 0;\n // Whether a trailing refresh should be triggered due to a refresh request that was throttled\n private _additionalRefreshRequested = false;\n\n private _refreshTimeoutID: number | undefined;\n\n constructor(\n private _renderCallback: (start: number, end: number) => void,\n private readonly _debounceThresholdMS = RENDER_DEBOUNCE_THRESHOLD_MS\n ) {\n }\n\n public dispose(): void {\n if (this._refreshTimeoutID) {\n clearTimeout(this._refreshTimeoutID);\n }\n }\n\n public refresh(rowStart: number | undefined, rowEnd: number | undefined, rowCount: number): void {\n this._rowCount = rowCount;\n // Get the min/max row start/end for the arg values\n rowStart = rowStart !== undefined ? rowStart : 0;\n rowEnd = rowEnd !== undefined ? rowEnd : this._rowCount - 1;\n // Set the properties to the updated values\n this._rowStart = this._rowStart !== undefined ? Math.min(this._rowStart, rowStart) : rowStart;\n this._rowEnd = this._rowEnd !== undefined ? Math.max(this._rowEnd, rowEnd) : rowEnd;\n\n // Only refresh if the time since last refresh is above a threshold, otherwise wait for\n // enough time to pass before refreshing again.\n const refreshRequestTime: number = Date.now();\n if (refreshRequestTime - this._lastRefreshMs >= this._debounceThresholdMS) {\n // Enough time has lapsed since the last refresh; refresh immediately\n this._lastRefreshMs = refreshRequestTime;\n this._innerRefresh();\n } else if (!this._additionalRefreshRequested) {\n // This is the first additional request throttled; set up trailing refresh\n const elapsed = refreshRequestTime - this._lastRefreshMs;\n const waitPeriodBeforeTrailingRefresh = this._debounceThresholdMS - elapsed;\n this._additionalRefreshRequested = true;\n\n this._refreshTimeoutID = window.setTimeout(() => {\n this._lastRefreshMs = Date.now();\n this._innerRefresh();\n this._additionalRefreshRequested = false;\n this._refreshTimeoutID = undefined; // No longer need to clear the timeout\n }, waitPeriodBeforeTrailingRefresh);\n }\n }\n\n private _innerRefresh(): void {\n // Make sure values are set\n if (this._rowStart === undefined || this._rowEnd === undefined || this._rowCount === undefined) {\n return;\n }\n\n // Clamp values\n const start = Math.max(this._rowStart, 0);\n const end = Math.min(this._rowEnd, this._rowCount - 1);\n\n // Reset debouncer (this happens before render callback as the render could trigger it again)\n this._rowStart = undefined;\n this._rowEnd = undefined;\n\n // Run render callback\n this._renderCallback(start, end);\n }\n}\n\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { CharData, IColor, ICoreTerminal, ITerminalOptions } from 'common/Types';\nimport { IBuffer } from 'common/buffer/Types';\nimport { IDisposable, Terminal as ITerminalApi } from '@xterm/xterm';\nimport { channels, css } from 'common/Color';\nimport type { Event } from 'vs/base/common/event';\n\n/**\n * A portion of the public API that are implemented identially internally and simply passed through.\n */\ntype InternalPassthroughApis = Omit;\n\nexport interface ITerminal extends InternalPassthroughApis, ICoreTerminal {\n screenElement: HTMLElement | undefined;\n browser: IBrowser;\n buffer: IBuffer;\n linkifier: ILinkifier2 | undefined;\n options: Required;\n\n onBlur: Event;\n onFocus: Event;\n onA11yChar: Event;\n onA11yTab: Event;\n onWillOpen: Event;\n\n cancel(ev: MouseEvent | WheelEvent | KeyboardEvent | InputEvent, force?: boolean): boolean | void;\n}\n\nexport type CustomKeyEventHandler = (event: KeyboardEvent) => boolean;\nexport type CustomWheelEventHandler = (event: WheelEvent) => boolean;\n\nexport type LineData = CharData[];\n\nexport interface ICompositionHelper {\n readonly isComposing: boolean;\n compositionstart(): void;\n compositionupdate(ev: CompositionEvent): void;\n compositionend(): void;\n updateCompositionElements(dontRecurse?: boolean): void;\n keydown(ev: KeyboardEvent): boolean;\n}\n\nexport interface IBrowser {\n isNode: boolean;\n userAgent: string;\n platform: string;\n isFirefox: boolean;\n isMac: boolean;\n isIpad: boolean;\n isIphone: boolean;\n isWindows: boolean;\n}\n\nexport interface IColorSet {\n foreground: IColor;\n background: IColor;\n cursor: IColor;\n cursorAccent: IColor;\n selectionForeground: IColor | undefined;\n selectionBackgroundTransparent: IColor;\n /** The selection blended on top of background. */\n selectionBackgroundOpaque: IColor;\n selectionInactiveBackgroundTransparent: IColor;\n selectionInactiveBackgroundOpaque: IColor;\n scrollbarSliderBackground: IColor;\n scrollbarSliderHoverBackground: IColor;\n scrollbarSliderActiveBackground: IColor;\n overviewRulerBorder: IColor;\n ansi: IColor[];\n /** Maps original colors to colors that respect minimum contrast ratio. */\n contrastCache: IColorContrastCache;\n /** Maps original colors to colors that respect _half_ of the minimum contrast ratio. */\n halfContrastCache: IColorContrastCache;\n}\n\nexport type ReadonlyColorSet = Readonly> & { ansi: Readonly['ansi']> };\n\nexport interface IColorContrastCache {\n clear(): void;\n setCss(bg: number, fg: number, value: string | null): void;\n getCss(bg: number, fg: number): string | null | undefined;\n setColor(bg: number, fg: number, value: IColor | null): void;\n getColor(bg: number, fg: number): IColor | null | undefined;\n}\n\nexport interface IPartialColorSet {\n foreground: IColor;\n background: IColor;\n cursor?: IColor;\n cursorAccent?: IColor;\n selectionBackground?: IColor;\n ansi: IColor[];\n}\n\nexport interface IViewport extends IDisposable {\n scrollBarWidth: number;\n readonly onRequestScrollLines: Event<{ amount: number, suppressScrollEvent: boolean }>;\n syncScrollArea(immediate?: boolean, force?: boolean): void;\n getLinesScrolled(ev: WheelEvent): number;\n getBufferElements(startLine: number, endLine?: number): { bufferElements: HTMLElement[], cursorElement?: HTMLElement };\n handleWheel(ev: WheelEvent): boolean;\n handleTouchStart(ev: TouchEvent): void;\n handleTouchMove(ev: TouchEvent): boolean;\n scrollLines(disp: number): void; // todo api name?\n reset(): void;\n}\n\nexport interface ILinkifierEvent {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n cols: number;\n fg: number | undefined;\n}\n\ninterface ILinkState {\n decorations: ILinkDecorations;\n isHovered: boolean;\n}\nexport interface ILinkWithState {\n link: ILink;\n state?: ILinkState;\n}\n\nexport interface ILinkifier2 extends IDisposable {\n onShowLinkUnderline: Event;\n onHideLinkUnderline: Event;\n readonly currentLink: ILinkWithState | undefined;\n}\n\nexport interface ILink {\n range: IBufferRange;\n text: string;\n decorations?: ILinkDecorations;\n activate(event: MouseEvent, text: string): void;\n hover?(event: MouseEvent, text: string): void;\n leave?(event: MouseEvent, text: string): void;\n dispose?(): void;\n}\n\nexport interface ILinkDecorations {\n pointerCursor: boolean;\n underline: boolean;\n}\n\nexport interface IBufferRange {\n start: IBufferCellPosition;\n end: IBufferCellPosition;\n}\n\nexport interface IBufferCellPosition {\n x: number;\n y: number;\n}\n\nexport type CharacterJoinerHandler = (text: string) => [number, number][];\n\nexport interface ICharacterJoiner {\n id: number;\n handler: CharacterJoinerHandler;\n}\n\nexport interface IRenderDebouncer extends IDisposable {\n refresh(rowStart: number | undefined, rowEnd: number | undefined, rowCount: number): void;\n}\n\nexport interface IRenderDebouncerWithCallback extends IRenderDebouncer {\n addRefreshCallback(callback: FrameRequestCallback): number;\n}\n\nexport interface IBufferElementProvider {\n provideBufferElements(): DocumentFragment | HTMLElement;\n}\n\n// An IIFE to generate DEFAULT_ANSI_COLORS.\nexport const DEFAULT_ANSI_COLORS = Object.freeze((() => {\n const colors = [\n // dark:\n css.toColor('#2e3436'),\n css.toColor('#cc0000'),\n css.toColor('#4e9a06'),\n css.toColor('#c4a000'),\n css.toColor('#3465a4'),\n css.toColor('#75507b'),\n css.toColor('#06989a'),\n css.toColor('#d3d7cf'),\n // bright:\n css.toColor('#555753'),\n css.toColor('#ef2929'),\n css.toColor('#8ae234'),\n css.toColor('#fce94f'),\n css.toColor('#729fcf'),\n css.toColor('#ad7fa8'),\n css.toColor('#34e2e2'),\n css.toColor('#eeeeec')\n ];\n\n // Fill in the remaining 240 ANSI colors.\n // Generate colors (16-231)\n const v = [0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff];\n for (let i = 0; i < 216; i++) {\n const r = v[(i / 36) % 6 | 0];\n const g = v[(i / 6) % 6 | 0];\n const b = v[i % 6];\n colors.push({\n css: channels.toCss(r, g, b),\n rgba: channels.toRgba(r, g, b)\n });\n }\n\n // Generate greys (232-255)\n for (let i = 0; i < 24; i++) {\n const c = 8 + i * 10;\n colors.push({\n css: channels.toCss(c, c, c),\n rgba: channels.toRgba(c, c, c)\n });\n }\n\n return colors;\n})());\n","/**\n * Copyright (c) 2024 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';\nimport { ViewportConstants } from 'browser/shared/Constants';\nimport { Disposable, toDisposable } from 'vs/base/common/lifecycle';\nimport { IBufferService, ICoreMouseService, IOptionsService } from 'common/services/Services';\nimport { CoreMouseEventType } from 'common/Types';\nimport { scheduleAtNextAnimationFrame } from 'vs/base/browser/dom';\nimport { SmoothScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement';\nimport type { ScrollableElementChangeOptions } from 'vs/base/browser/ui/scrollbar/scrollableElementOptions';\nimport { Emitter, Event } from 'vs/base/common/event';\nimport { Scrollable, ScrollbarVisibility, type ScrollEvent } from 'vs/base/common/scrollable';\n\nexport class Viewport extends Disposable {\n\n protected _onRequestScrollLines = this._register(new Emitter());\n public readonly onRequestScrollLines = this._onRequestScrollLines.event;\n\n private _scrollableElement: SmoothScrollableElement;\n private _styleElement: HTMLStyleElement;\n\n private _queuedAnimationFrame?: number;\n private _latestYDisp?: number;\n private _isSyncing: boolean = false;\n private _isHandlingScroll: boolean = false;\n private _suppressOnScrollHandler: boolean = false;\n\n constructor(\n element: HTMLElement,\n screenElement: HTMLElement,\n @IBufferService private readonly _bufferService: IBufferService,\n @ICoreBrowserService coreBrowserService: ICoreBrowserService,\n @ICoreMouseService coreMouseService: ICoreMouseService,\n @IThemeService themeService: IThemeService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @IRenderService private readonly _renderService: IRenderService\n ) {\n super();\n\n const scrollable = this._register(new Scrollable({\n forceIntegerValues: false,\n smoothScrollDuration: this._optionsService.rawOptions.smoothScrollDuration,\n // This is used over `IRenderService.addRefreshCallback` since it can be canceled\n scheduleAtNextAnimationFrame: cb => scheduleAtNextAnimationFrame(coreBrowserService.window, cb)\n }));\n this._register(this._optionsService.onSpecificOptionChange('smoothScrollDuration', () => {\n scrollable.setSmoothScrollDuration(this._optionsService.rawOptions.smoothScrollDuration);\n }));\n\n this._scrollableElement = this._register(new SmoothScrollableElement(screenElement, {\n vertical: ScrollbarVisibility.Auto,\n horizontal: ScrollbarVisibility.Hidden,\n useShadows: false,\n mouseWheelSmoothScroll: true,\n ...this._getChangeOptions()\n }, scrollable));\n this._register(this._optionsService.onMultipleOptionChange([\n 'scrollSensitivity',\n 'fastScrollSensitivity',\n 'overviewRuler'\n ], () => this._scrollableElement.updateOptions(this._getChangeOptions())));\n // Don't handle mouse wheel if wheel events are supported by the current mouse prototcol\n this._register(coreMouseService.onProtocolChange(type => {\n this._scrollableElement.updateOptions({\n handleMouseWheel: !(type & CoreMouseEventType.WHEEL)\n });\n }));\n\n this._scrollableElement.setScrollDimensions({ height: 0, scrollHeight: 0 });\n this._register(Event.runAndSubscribe(themeService.onChangeColors, () => {\n this._scrollableElement.getDomNode().style.backgroundColor = themeService.colors.background.css;\n }));\n element.appendChild(this._scrollableElement.getDomNode());\n this._register(toDisposable(() => this._scrollableElement.getDomNode().remove()));\n\n this._styleElement = coreBrowserService.mainDocument.createElement('style');\n screenElement.appendChild(this._styleElement);\n this._register(toDisposable(() => this._styleElement.remove()));\n this._register(Event.runAndSubscribe(themeService.onChangeColors, () => {\n this._styleElement.textContent = [\n `.xterm .xterm-scrollable-element > .scrollbar > .slider {`,\n ` background: ${themeService.colors.scrollbarSliderBackground.css};`,\n `}`,\n `.xterm .xterm-scrollable-element > .scrollbar > .slider:hover {`,\n ` background: ${themeService.colors.scrollbarSliderHoverBackground.css};`,\n `}`,\n `.xterm .xterm-scrollable-element > .scrollbar > .slider.active {`,\n ` background: ${themeService.colors.scrollbarSliderActiveBackground.css};`,\n `}`\n ].join('\\n');\n }));\n\n this._register(this._bufferService.onResize(() => this._queueSync()));\n this._register(this._bufferService.buffers.onBufferActivate(() => this._queueSync()));\n this._register(this._bufferService.onScroll(() => this._sync()));\n\n this._register(this._scrollableElement.onScroll(e => this._handleScroll(e)));\n }\n\n public scrollLines(disp: number): void {\n const pos = this._scrollableElement.getScrollPosition();\n this._scrollableElement.setScrollPosition({\n reuseAnimation: true,\n scrollTop: pos.scrollTop + disp * this._renderService.dimensions.css.cell.height\n });\n }\n\n public scrollToLine(line: number, disableSmoothScroll?: boolean): void {\n if (disableSmoothScroll) {\n this._latestYDisp = line;\n }\n this._scrollableElement.setScrollPosition({\n reuseAnimation: !disableSmoothScroll,\n scrollTop: line * this._renderService.dimensions.css.cell.height\n });\n }\n\n private _getChangeOptions(): ScrollableElementChangeOptions {\n return {\n mouseWheelScrollSensitivity: this._optionsService.rawOptions.scrollSensitivity,\n fastScrollSensitivity: this._optionsService.rawOptions.fastScrollSensitivity,\n verticalScrollbarSize: this._optionsService.rawOptions.overviewRuler?.width || ViewportConstants.DEFAULT_SCROLL_BAR_WIDTH\n };\n }\n\n private _queueSync(ydisp?: number): void {\n // Update state\n if (ydisp !== undefined) {\n this._latestYDisp = ydisp;\n }\n\n // Don't queue more than one callback\n if (this._queuedAnimationFrame !== undefined) {\n return;\n }\n this._queuedAnimationFrame = this._renderService.addRefreshCallback(() => {\n this._queuedAnimationFrame = undefined;\n this._sync(this._latestYDisp);\n });\n }\n\n private _sync(ydisp: number = this._bufferService.buffer.ydisp): void {\n if (!this._renderService || this._isSyncing) {\n return;\n }\n this._isSyncing = true;\n\n // Ignore any onScroll event that happens as a result of dimensions changing as this should\n // never cause a scrollLines call, only setScrollPosition can do that.\n this._suppressOnScrollHandler = true;\n this._scrollableElement.setScrollDimensions({\n height: this._renderService.dimensions.css.canvas.height,\n scrollHeight: this._renderService.dimensions.css.cell.height * this._bufferService.buffer.lines.length\n });\n this._suppressOnScrollHandler = false;\n\n // If ydisp has been changed by some other copmonent (input/buffer), then stop animating smooth\n // scroll and scroll there immediately.\n if (ydisp !== this._latestYDisp) {\n this._scrollableElement.setScrollPosition({\n scrollTop: ydisp * this._renderService.dimensions.css.cell.height\n });\n }\n\n this._isSyncing = false;\n }\n\n private _handleScroll(e: ScrollEvent): void {\n if (!this._renderService) {\n return;\n }\n if (this._isHandlingScroll || this._suppressOnScrollHandler) {\n return;\n }\n this._isHandlingScroll = true;\n const newRow = Math.round(e.scrollTop / this._renderService.dimensions.css.cell.height);\n const diff = newRow - this._bufferService.buffer.ydisp;\n if (diff !== 0) {\n this._latestYDisp = newRow;\n this._onRequestScrollLines.fire(diff);\n }\n this._isHandlingScroll = false;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ICoreBrowserService, IRenderService } from 'browser/services/Services';\nimport { Disposable, toDisposable } from 'vs/base/common/lifecycle';\nimport { IBufferService, IDecorationService, IInternalDecoration } from 'common/services/Services';\n\nexport class BufferDecorationRenderer extends Disposable {\n private readonly _container: HTMLElement;\n private readonly _decorationElements: Map = new Map();\n\n private _animationFrame: number | undefined;\n private _altBufferIsActive: boolean = false;\n private _dimensionsChanged: boolean = false;\n\n constructor(\n private readonly _screenElement: HTMLElement,\n @IBufferService private readonly _bufferService: IBufferService,\n @ICoreBrowserService private readonly _coreBrowserService: ICoreBrowserService,\n @IDecorationService private readonly _decorationService: IDecorationService,\n @IRenderService private readonly _renderService: IRenderService\n ) {\n super();\n\n this._container = document.createElement('div');\n this._container.classList.add('xterm-decoration-container');\n this._screenElement.appendChild(this._container);\n\n this._register(this._renderService.onRenderedViewportChange(() => this._doRefreshDecorations()));\n this._register(this._renderService.onDimensionsChange(() => {\n this._dimensionsChanged = true;\n this._queueRefresh();\n }));\n this._register(this._coreBrowserService.onDprChange(() => this._queueRefresh()));\n this._register(this._bufferService.buffers.onBufferActivate(() => {\n this._altBufferIsActive = this._bufferService.buffer === this._bufferService.buffers.alt;\n }));\n this._register(this._decorationService.onDecorationRegistered(() => this._queueRefresh()));\n this._register(this._decorationService.onDecorationRemoved(decoration => this._removeDecoration(decoration)));\n this._register(toDisposable(() => {\n this._container.remove();\n this._decorationElements.clear();\n }));\n }\n\n private _queueRefresh(): void {\n if (this._animationFrame !== undefined) {\n return;\n }\n this._animationFrame = this._renderService.addRefreshCallback(() => {\n this._doRefreshDecorations();\n this._animationFrame = undefined;\n });\n }\n\n private _doRefreshDecorations(): void {\n for (const decoration of this._decorationService.decorations) {\n this._renderDecoration(decoration);\n }\n this._dimensionsChanged = false;\n }\n\n private _renderDecoration(decoration: IInternalDecoration): void {\n this._refreshStyle(decoration);\n if (this._dimensionsChanged) {\n this._refreshXPosition(decoration);\n }\n }\n\n private _createElement(decoration: IInternalDecoration): HTMLElement {\n const element = this._coreBrowserService.mainDocument.createElement('div');\n element.classList.add('xterm-decoration');\n element.classList.toggle('xterm-decoration-top-layer', decoration?.options?.layer === 'top');\n element.style.width = `${Math.round((decoration.options.width || 1) * this._renderService.dimensions.css.cell.width)}px`;\n element.style.height = `${(decoration.options.height || 1) * this._renderService.dimensions.css.cell.height}px`;\n element.style.top = `${(decoration.marker.line - this._bufferService.buffers.active.ydisp) * this._renderService.dimensions.css.cell.height}px`;\n element.style.lineHeight = `${this._renderService.dimensions.css.cell.height}px`;\n\n const x = decoration.options.x ?? 0;\n if (x && x > this._bufferService.cols) {\n // exceeded the container width, so hide\n element.style.display = 'none';\n }\n this._refreshXPosition(decoration, element);\n\n return element;\n }\n\n private _refreshStyle(decoration: IInternalDecoration): void {\n const line = decoration.marker.line - this._bufferService.buffers.active.ydisp;\n if (line < 0 || line >= this._bufferService.rows) {\n // outside of viewport\n if (decoration.element) {\n decoration.element.style.display = 'none';\n decoration.onRenderEmitter.fire(decoration.element);\n }\n } else {\n let element = this._decorationElements.get(decoration);\n if (!element) {\n element = this._createElement(decoration);\n decoration.element = element;\n this._decorationElements.set(decoration, element);\n this._container.appendChild(element);\n decoration.onDispose(() => {\n this._decorationElements.delete(decoration);\n element!.remove();\n });\n }\n element.style.display = this._altBufferIsActive ? 'none' : 'block';\n if (!this._altBufferIsActive) {\n element.style.width = `${Math.round((decoration.options.width || 1) * this._renderService.dimensions.css.cell.width)}px`;\n element.style.height = `${(decoration.options.height || 1) * this._renderService.dimensions.css.cell.height}px`;\n element.style.top = `${line * this._renderService.dimensions.css.cell.height}px`;\n element.style.lineHeight = `${this._renderService.dimensions.css.cell.height}px`;\n }\n decoration.onRenderEmitter.fire(element);\n }\n }\n\n private _refreshXPosition(decoration: IInternalDecoration, element: HTMLElement | undefined = decoration.element): void {\n if (!element) {\n return;\n }\n const x = decoration.options.x ?? 0;\n if ((decoration.options.anchor || 'left') === 'right') {\n element.style.right = x ? `${x * this._renderService.dimensions.css.cell.width}px` : '';\n } else {\n element.style.left = x ? `${x * this._renderService.dimensions.css.cell.width}px` : '';\n }\n }\n\n private _removeDecoration(decoration: IInternalDecoration): void {\n this._decorationElements.get(decoration)?.remove();\n this._decorationElements.delete(decoration);\n decoration.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IInternalDecoration } from 'common/services/Services';\n\nexport interface IColorZoneStore {\n readonly zones: IColorZone[];\n clear(): void;\n addDecoration(decoration: IInternalDecoration): void;\n /**\n * Sets the amount of padding in lines that will be added between zones, if new lines intersect\n * the padding they will be merged into the same zone.\n */\n setPadding(padding: { [position: string]: number }): void;\n}\n\nexport interface IColorZone {\n /** Color in a format supported by canvas' fillStyle. */\n color: string;\n position: 'full' | 'left' | 'center' | 'right' | undefined;\n startBufferLine: number;\n endBufferLine: number;\n}\n\ninterface IMinimalDecorationForColorZone {\n marker: Pick;\n options: Pick;\n}\n\nexport class ColorZoneStore implements IColorZoneStore {\n private _zones: IColorZone[] = [];\n\n // The zone pool is used to keep zone objects from being freed between clearing the color zone\n // store and fetching the zones. This helps reduce GC pressure since the color zones are\n // accumulated on potentially every scroll event.\n private _zonePool: IColorZone[] = [];\n private _zonePoolIndex = 0;\n\n private _linePadding: { [position: string]: number } = {\n full: 0,\n left: 0,\n center: 0,\n right: 0\n };\n\n public get zones(): IColorZone[] {\n // Trim the zone pool to free unused memory\n this._zonePool.length = Math.min(this._zonePool.length, this._zones.length);\n return this._zones;\n }\n\n public clear(): void {\n this._zones.length = 0;\n this._zonePoolIndex = 0;\n }\n\n public addDecoration(decoration: IMinimalDecorationForColorZone): void {\n if (!decoration.options.overviewRulerOptions) {\n return;\n }\n for (const z of this._zones) {\n if (z.color === decoration.options.overviewRulerOptions.color &&\n z.position === decoration.options.overviewRulerOptions.position) {\n if (this._lineIntersectsZone(z, decoration.marker.line)) {\n return;\n }\n if (this._lineAdjacentToZone(z, decoration.marker.line, decoration.options.overviewRulerOptions.position)) {\n this._addLineToZone(z, decoration.marker.line);\n return;\n }\n }\n }\n // Create using zone pool if possible\n if (this._zonePoolIndex < this._zonePool.length) {\n this._zonePool[this._zonePoolIndex].color = decoration.options.overviewRulerOptions.color;\n this._zonePool[this._zonePoolIndex].position = decoration.options.overviewRulerOptions.position;\n this._zonePool[this._zonePoolIndex].startBufferLine = decoration.marker.line;\n this._zonePool[this._zonePoolIndex].endBufferLine = decoration.marker.line;\n this._zones.push(this._zonePool[this._zonePoolIndex++]);\n return;\n }\n // Create\n this._zones.push({\n color: decoration.options.overviewRulerOptions.color,\n position: decoration.options.overviewRulerOptions.position,\n startBufferLine: decoration.marker.line,\n endBufferLine: decoration.marker.line\n });\n this._zonePool.push(this._zones[this._zones.length - 1]);\n this._zonePoolIndex++;\n }\n\n public setPadding(padding: { [position: string]: number }): void {\n this._linePadding = padding;\n }\n\n private _lineIntersectsZone(zone: IColorZone, line: number): boolean {\n return (\n line >= zone.startBufferLine &&\n line <= zone.endBufferLine\n );\n }\n\n private _lineAdjacentToZone(zone: IColorZone, line: number, position: IColorZone['position']): boolean {\n return (\n (line >= zone.startBufferLine - this._linePadding[position || 'full']) &&\n (line <= zone.endBufferLine + this._linePadding[position || 'full'])\n );\n }\n\n private _addLineToZone(zone: IColorZone, line: number): void {\n zone.startBufferLine = Math.min(zone.startBufferLine, line);\n zone.endBufferLine = Math.max(zone.endBufferLine, line);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { ColorZoneStore, IColorZone, IColorZoneStore } from 'browser/decorations/ColorZoneStore';\nimport { ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';\nimport { Disposable, toDisposable } from 'vs/base/common/lifecycle';\nimport { IBufferService, IDecorationService, IOptionsService } from 'common/services/Services';\n\nconst enum Constants {\n OVERVIEW_RULER_BORDER_WIDTH = 1\n}\n\n// Helper objects to avoid excessive calculation and garbage collection during rendering. These are\n// static values for each render and can be accessed using the decoration position as the key.\nconst drawHeight = {\n full: 0,\n left: 0,\n center: 0,\n right: 0\n};\nconst drawWidth = {\n full: 0,\n left: 0,\n center: 0,\n right: 0\n};\nconst drawX = {\n full: 0,\n left: 0,\n center: 0,\n right: 0\n};\n\nexport class OverviewRulerRenderer extends Disposable {\n private readonly _canvas: HTMLCanvasElement;\n private readonly _ctx: CanvasRenderingContext2D;\n private readonly _colorZoneStore: IColorZoneStore = new ColorZoneStore();\n private get _width(): number {\n return this._optionsService.options.overviewRuler?.width || 0;\n }\n private _animationFrame: number | undefined;\n\n private _shouldUpdateDimensions: boolean | undefined = true;\n private _shouldUpdateAnchor: boolean | undefined = true;\n private _lastKnownBufferLength: number = 0;\n\n private _containerHeight: number | undefined;\n\n constructor(\n private readonly _viewportElement: HTMLElement,\n private readonly _screenElement: HTMLElement,\n @IBufferService private readonly _bufferService: IBufferService,\n @IDecorationService private readonly _decorationService: IDecorationService,\n @IRenderService private readonly _renderService: IRenderService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @IThemeService private readonly _themeService: IThemeService,\n @ICoreBrowserService private readonly _coreBrowserService: ICoreBrowserService\n ) {\n super();\n this._canvas = this._coreBrowserService.mainDocument.createElement('canvas');\n this._canvas.classList.add('xterm-decoration-overview-ruler');\n this._refreshCanvasDimensions();\n this._viewportElement.parentElement?.insertBefore(this._canvas, this._viewportElement);\n this._register(toDisposable(() => this._canvas?.remove()));\n\n const ctx = this._canvas.getContext('2d');\n if (!ctx) {\n throw new Error('Ctx cannot be null');\n } else {\n this._ctx = ctx;\n }\n\n this._register(this._decorationService.onDecorationRegistered(() => this._queueRefresh(undefined, true)));\n this._register(this._decorationService.onDecorationRemoved(() => this._queueRefresh(undefined, true)));\n\n this._register(this._renderService.onRenderedViewportChange(() => this._queueRefresh()));\n this._register(this._bufferService.buffers.onBufferActivate(() => {\n this._canvas!.style.display = this._bufferService.buffer === this._bufferService.buffers.alt ? 'none' : 'block';\n }));\n this._register(this._bufferService.onScroll(() => {\n if (this._lastKnownBufferLength !== this._bufferService.buffers.normal.lines.length) {\n this._refreshDrawHeightConstants();\n this._refreshColorZonePadding();\n }\n }));\n\n // Container height changed\n this._register(this._renderService.onRender((): void => {\n if (!this._containerHeight || this._containerHeight !== this._screenElement.clientHeight) {\n this._queueRefresh(true);\n this._containerHeight = this._screenElement.clientHeight;\n }\n }));\n\n this._register(this._coreBrowserService.onDprChange(() => this._queueRefresh(true)));\n this._register(this._optionsService.onSpecificOptionChange('overviewRuler', () => this._queueRefresh(true)));\n this._register(this._themeService.onChangeColors(() => this._queueRefresh()));\n this._queueRefresh(true);\n }\n\n private _refreshDrawConstants(): void {\n // width\n const outerWidth = Math.floor((this._canvas.width - Constants.OVERVIEW_RULER_BORDER_WIDTH) / 3);\n const innerWidth = Math.ceil((this._canvas.width - Constants.OVERVIEW_RULER_BORDER_WIDTH) / 3);\n drawWidth.full = this._canvas.width;\n drawWidth.left = outerWidth;\n drawWidth.center = innerWidth;\n drawWidth.right = outerWidth;\n // height\n this._refreshDrawHeightConstants();\n // x\n drawX.full = Constants.OVERVIEW_RULER_BORDER_WIDTH;\n drawX.left = Constants.OVERVIEW_RULER_BORDER_WIDTH;\n drawX.center = Constants.OVERVIEW_RULER_BORDER_WIDTH + drawWidth.left;\n drawX.right = Constants.OVERVIEW_RULER_BORDER_WIDTH + drawWidth.left + drawWidth.center;\n }\n\n private _refreshDrawHeightConstants(): void {\n drawHeight.full = Math.round(2 * this._coreBrowserService.dpr);\n // Calculate actual pixels per line\n const pixelsPerLine = this._canvas.height / this._bufferService.buffer.lines.length;\n // Clamp actual pixels within a range\n const nonFullHeight = Math.round(Math.max(Math.min(pixelsPerLine, 12), 6) * this._coreBrowserService.dpr);\n drawHeight.left = nonFullHeight;\n drawHeight.center = nonFullHeight;\n drawHeight.right = nonFullHeight;\n }\n\n private _refreshColorZonePadding(): void {\n this._colorZoneStore.setPadding({\n full: Math.floor(this._bufferService.buffers.active.lines.length / (this._canvas.height - 1) * drawHeight.full),\n left: Math.floor(this._bufferService.buffers.active.lines.length / (this._canvas.height - 1) * drawHeight.left),\n center: Math.floor(this._bufferService.buffers.active.lines.length / (this._canvas.height - 1) * drawHeight.center),\n right: Math.floor(this._bufferService.buffers.active.lines.length / (this._canvas.height - 1) * drawHeight.right)\n });\n this._lastKnownBufferLength = this._bufferService.buffers.normal.lines.length;\n }\n\n private _refreshCanvasDimensions(): void {\n this._canvas.style.width = `${this._width}px`;\n this._canvas.width = Math.round(this._width * this._coreBrowserService.dpr);\n this._canvas.style.height = `${this._screenElement.clientHeight}px`;\n this._canvas.height = Math.round(this._screenElement.clientHeight * this._coreBrowserService.dpr);\n this._refreshDrawConstants();\n this._refreshColorZonePadding();\n }\n\n private _refreshDecorations(): void {\n if (this._shouldUpdateDimensions) {\n this._refreshCanvasDimensions();\n }\n this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);\n this._colorZoneStore.clear();\n for (const decoration of this._decorationService.decorations) {\n this._colorZoneStore.addDecoration(decoration);\n }\n this._ctx.lineWidth = 1;\n this._renderRulerOutline();\n const zones = this._colorZoneStore.zones;\n for (const zone of zones) {\n if (zone.position !== 'full') {\n this._renderColorZone(zone);\n }\n }\n for (const zone of zones) {\n if (zone.position === 'full') {\n this._renderColorZone(zone);\n }\n }\n this._shouldUpdateDimensions = false;\n this._shouldUpdateAnchor = false;\n }\n\n private _renderRulerOutline(): void {\n this._ctx.fillStyle = this._themeService.colors.overviewRulerBorder.css;\n this._ctx.fillRect(0, 0, Constants.OVERVIEW_RULER_BORDER_WIDTH, this._canvas.height);\n if (this._optionsService.rawOptions.overviewRuler.showTopBorder) {\n this._ctx.fillRect(Constants.OVERVIEW_RULER_BORDER_WIDTH, 0, this._canvas.width - Constants.OVERVIEW_RULER_BORDER_WIDTH, Constants.OVERVIEW_RULER_BORDER_WIDTH);\n }\n if (this._optionsService.rawOptions.overviewRuler.showBottomBorder) {\n this._ctx.fillRect(Constants.OVERVIEW_RULER_BORDER_WIDTH, this._canvas.height - Constants.OVERVIEW_RULER_BORDER_WIDTH, this._canvas.width - Constants.OVERVIEW_RULER_BORDER_WIDTH, this._canvas.height);\n }\n }\n\n private _renderColorZone(zone: IColorZone): void {\n this._ctx.fillStyle = zone.color;\n this._ctx.fillRect(\n /* x */ drawX[zone.position || 'full'],\n /* y */ Math.round(\n (this._canvas.height - 1) * // -1 to ensure at least 2px are allowed for decoration on last line\n (zone.startBufferLine / this._bufferService.buffers.active.lines.length) - drawHeight[zone.position || 'full'] / 2\n ),\n /* w */ drawWidth[zone.position || 'full'],\n /* h */ Math.round(\n (this._canvas.height - 1) * // -1 to ensure at least 2px are allowed for decoration on last line\n ((zone.endBufferLine - zone.startBufferLine) / this._bufferService.buffers.active.lines.length) + drawHeight[zone.position || 'full']\n )\n );\n }\n\n private _queueRefresh(updateCanvasDimensions?: boolean, updateAnchor?: boolean): void {\n this._shouldUpdateDimensions = updateCanvasDimensions || this._shouldUpdateDimensions;\n this._shouldUpdateAnchor = updateAnchor || this._shouldUpdateAnchor;\n if (this._animationFrame !== undefined) {\n return;\n }\n this._animationFrame = this._coreBrowserService.window.requestAnimationFrame(() => {\n this._refreshDecorations();\n this._animationFrame = undefined;\n });\n }\n}\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IRenderService } from 'browser/services/Services';\nimport { IBufferService, ICoreService, IOptionsService } from 'common/services/Services';\nimport { C0 } from 'common/data/EscapeSequences';\n\ninterface IPosition {\n start: number;\n end: number;\n}\n\n/**\n * Encapsulates the logic for handling compositionstart, compositionupdate and compositionend\n * events, displaying the in-progress composition to the UI and forwarding the final composition\n * to the handler.\n */\nexport class CompositionHelper {\n /**\n * Whether input composition is currently happening, eg. via a mobile keyboard, speech input or\n * IME. This variable determines whether the compositionText should be displayed on the UI.\n */\n private _isComposing: boolean;\n public get isComposing(): boolean { return this._isComposing; }\n\n /**\n * The position within the input textarea's value of the current composition.\n */\n private _compositionPosition: IPosition;\n\n /**\n * Whether a composition is in the process of being sent, setting this to false will cancel any\n * in-progress composition.\n */\n private _isSendingComposition: boolean;\n\n /**\n * Data already sent due to keydown event.\n */\n private _dataAlreadySent: string;\n\n constructor(\n private readonly _textarea: HTMLTextAreaElement,\n private readonly _compositionView: HTMLElement,\n @IBufferService private readonly _bufferService: IBufferService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @ICoreService private readonly _coreService: ICoreService,\n @IRenderService private readonly _renderService: IRenderService\n ) {\n this._isComposing = false;\n this._isSendingComposition = false;\n this._compositionPosition = { start: 0, end: 0 };\n this._dataAlreadySent = '';\n }\n\n /**\n * Handles the compositionstart event, activating the composition view.\n */\n public compositionstart(): void {\n this._isComposing = true;\n this._compositionPosition.start = this._textarea.value.length;\n this._compositionView.textContent = '';\n this._dataAlreadySent = '';\n this._compositionView.classList.add('active');\n }\n\n /**\n * Handles the compositionupdate event, updating the composition view.\n * @param ev The event.\n */\n public compositionupdate(ev: Pick): void {\n this._compositionView.textContent = ev.data;\n this.updateCompositionElements();\n setTimeout(() => {\n this._compositionPosition.end = this._textarea.value.length;\n }, 0);\n }\n\n /**\n * Handles the compositionend event, hiding the composition view and sending the composition to\n * the handler.\n */\n public compositionend(): void {\n this._finalizeComposition(true);\n }\n\n /**\n * Handles the keydown event, routing any necessary events to the CompositionHelper functions.\n * @param ev The keydown event.\n * @returns Whether the Terminal should continue processing the keydown event.\n */\n public keydown(ev: KeyboardEvent): boolean {\n if (this._isComposing || this._isSendingComposition) {\n if (ev.keyCode === 229) {\n // Continue composing if the keyCode is the \"composition character\"\n return false;\n }\n if (ev.keyCode === 16 || ev.keyCode === 17 || ev.keyCode === 18) {\n // Continue composing if the keyCode is a modifier key\n return false;\n }\n // Finish composition immediately. This is mainly here for the case where enter is\n // pressed and the handler needs to be triggered before the command is executed.\n this._finalizeComposition(false);\n }\n\n if (ev.keyCode === 229) {\n // If the \"composition character\" is used but gets to this point it means a non-composition\n // character (eg. numbers and punctuation) was pressed when the IME was active.\n this._handleAnyTextareaChanges();\n return false;\n }\n\n return true;\n }\n\n /**\n * Finalizes the composition, resuming regular input actions. This is called when a composition\n * is ending.\n * @param waitForPropagation Whether to wait for events to propagate before sending\n * the input. This should be false if a non-composition keystroke is entered before the\n * compositionend event is triggered, such as enter, so that the composition is sent before\n * the command is executed.\n */\n private _finalizeComposition(waitForPropagation: boolean): void {\n this._compositionView.classList.remove('active');\n this._isComposing = false;\n\n if (!waitForPropagation) {\n // Cancel any delayed composition send requests and send the input immediately.\n this._isSendingComposition = false;\n const input = this._textarea.value.substring(this._compositionPosition.start, this._compositionPosition.end);\n this._coreService.triggerDataEvent(input, true);\n } else {\n // Make a deep copy of the composition position here as a new compositionstart event may\n // fire before the setTimeout executes.\n const currentCompositionPosition = {\n start: this._compositionPosition.start,\n end: this._compositionPosition.end\n };\n\n // Since composition* events happen before the changes take place in the textarea on most\n // browsers, use a setTimeout with 0ms time to allow the native compositionend event to\n // complete. This ensures the correct character is retrieved.\n // This solution was used because:\n // - The compositionend event's data property is unreliable, at least on Chromium\n // - The last compositionupdate event's data property does not always accurately describe\n // the character, a counter example being Korean where an ending consonsant can move to\n // the following character if the following input is a vowel.\n this._isSendingComposition = true;\n setTimeout(() => {\n // Ensure that the input has not already been sent\n if (this._isSendingComposition) {\n this._isSendingComposition = false;\n let input;\n // Add length of data already sent due to keydown event,\n // otherwise input characters can be duplicated. (Issue #3191)\n currentCompositionPosition.start += this._dataAlreadySent.length;\n if (this._isComposing) {\n // Use the start position of the new composition to get the string\n // if a new composition has started.\n input = this._textarea.value.substring(currentCompositionPosition.start, this._compositionPosition.start);\n } else {\n // Don't use the end position here in order to pick up any characters after the\n // composition has finished, for example when typing a non-composition character\n // (eg. 2) after a composition character.\n input = this._textarea.value.substring(currentCompositionPosition.start);\n }\n if (input.length > 0) {\n this._coreService.triggerDataEvent(input, true);\n }\n }\n }, 0);\n }\n }\n\n /**\n * Apply any changes made to the textarea after the current event chain is allowed to complete.\n * This should be called when not currently composing but a keydown event with the \"composition\n * character\" (229) is triggered, in order to allow non-composition text to be entered when an\n * IME is active.\n */\n private _handleAnyTextareaChanges(): void {\n const oldValue = this._textarea.value;\n setTimeout(() => {\n // Ignore if a composition has started since the timeout\n if (!this._isComposing) {\n const newValue = this._textarea.value;\n\n const diff = newValue.replace(oldValue, '');\n\n this._dataAlreadySent = diff;\n\n if (newValue.length > oldValue.length) {\n this._coreService.triggerDataEvent(diff, true);\n } else if (newValue.length < oldValue.length) {\n this._coreService.triggerDataEvent(`${C0.DEL}`, true);\n } else if ((newValue.length === oldValue.length) && (newValue !== oldValue)) {\n this._coreService.triggerDataEvent(newValue, true);\n }\n\n }\n }, 0);\n }\n\n /**\n * Positions the composition view on top of the cursor and the textarea just below it (so the\n * IME helper dialog is positioned correctly).\n * @param dontRecurse Whether to use setTimeout to recursively trigger another update, this is\n * necessary as the IME events across browsers are not consistently triggered.\n */\n public updateCompositionElements(dontRecurse?: boolean): void {\n if (!this._isComposing) {\n return;\n }\n\n if (this._bufferService.buffer.isCursorInViewport) {\n const cursorX = Math.min(this._bufferService.buffer.x, this._bufferService.cols - 1);\n\n const cellHeight = this._renderService.dimensions.css.cell.height;\n const cursorTop = this._bufferService.buffer.y * this._renderService.dimensions.css.cell.height;\n const cursorLeft = cursorX * this._renderService.dimensions.css.cell.width;\n\n this._compositionView.style.left = cursorLeft + 'px';\n this._compositionView.style.top = cursorTop + 'px';\n this._compositionView.style.height = cellHeight + 'px';\n this._compositionView.style.lineHeight = cellHeight + 'px';\n this._compositionView.style.fontFamily = this._optionsService.rawOptions.fontFamily;\n this._compositionView.style.fontSize = this._optionsService.rawOptions.fontSize + 'px';\n // Sync the textarea to the exact position of the composition view so the IME knows where the\n // text is.\n const compositionViewBounds = this._compositionView.getBoundingClientRect();\n this._textarea.style.left = cursorLeft + 'px';\n this._textarea.style.top = cursorTop + 'px';\n // Ensure the text area is at least 1x1, otherwise certain IMEs may break\n this._textarea.style.width = Math.max(compositionViewBounds.width, 1) + 'px';\n this._textarea.style.height = Math.max(compositionViewBounds.height, 1) + 'px';\n this._textarea.style.lineHeight = compositionViewBounds.height + 'px';\n }\n\n if (!dontRecurse) {\n setTimeout(() => this.updateCompositionElements(true), 0);\n }\n }\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nexport function getCoordsRelativeToElement(window: Pick, event: {clientX: number, clientY: number}, element: HTMLElement): [number, number] {\n const rect = element.getBoundingClientRect();\n const elementStyle = window.getComputedStyle(element);\n const leftPadding = parseInt(elementStyle.getPropertyValue('padding-left'));\n const topPadding = parseInt(elementStyle.getPropertyValue('padding-top'));\n return [\n event.clientX - rect.left - leftPadding,\n event.clientY - rect.top - topPadding\n ];\n}\n\n/**\n * Gets coordinates within the terminal for a particular mouse event. The result\n * is returned as an array in the form [x, y] instead of an object as it's a\n * little faster and this function is used in some low level code.\n * @param window The window object the element belongs to.\n * @param event The mouse event.\n * @param element The terminal's container element.\n * @param colCount The number of columns in the terminal.\n * @param rowCount The number of rows n the terminal.\n * @param hasValidCharSize Whether there is a valid character size available.\n * @param cssCellWidth The cell width device pixel render dimensions.\n * @param cssCellHeight The cell height device pixel render dimensions.\n * @param isSelection Whether the request is for the selection or not. This will\n * apply an offset to the x value such that the left half of the cell will\n * select that cell and the right half will select the next cell.\n */\nexport function getCoords(window: Pick, event: Pick, element: HTMLElement, colCount: number, rowCount: number, hasValidCharSize: boolean, cssCellWidth: number, cssCellHeight: number, isSelection?: boolean): [number, number] | undefined {\n // Coordinates cannot be measured if there are no valid\n if (!hasValidCharSize) {\n return undefined;\n }\n\n const coords = getCoordsRelativeToElement(window, event, element);\n if (!coords) {\n return undefined;\n }\n\n coords[0] = Math.ceil((coords[0] + (isSelection ? cssCellWidth / 2 : 0)) / cssCellWidth);\n coords[1] = Math.ceil(coords[1] / cssCellHeight);\n\n // Ensure coordinates are within the terminal viewport. Note that selections\n // need an addition point of precision to cover the end point (as characters\n // cover half of one char and half of the next).\n coords[0] = Math.min(Math.max(coords[0], 1), colCount + (isSelection ? 1 : 0));\n coords[1] = Math.min(Math.max(coords[1], 1), rowCount);\n\n return coords;\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { C0 } from 'common/data/EscapeSequences';\nimport { IBufferService } from 'common/services/Services';\n\nconst enum Direction {\n UP = 'A',\n DOWN = 'B',\n RIGHT = 'C',\n LEFT = 'D'\n}\n\n/**\n * Concatenates all the arrow sequences together.\n * Resets the starting row to an unwrapped row, moves to the requested row,\n * then moves to requested col.\n */\nexport function moveToCellSequence(targetX: number, targetY: number, bufferService: IBufferService, applicationCursor: boolean): string {\n const startX = bufferService.buffer.x;\n const startY = bufferService.buffer.y;\n\n // The alt buffer should try to navigate between rows\n if (!bufferService.buffer.hasScrollback) {\n return resetStartingRow(startX, startY, targetX, targetY, bufferService, applicationCursor) +\n moveToRequestedRow(startY, targetY, bufferService, applicationCursor) +\n moveToRequestedCol(startX, startY, targetX, targetY, bufferService, applicationCursor);\n }\n\n // Only move horizontally for the normal buffer\n let direction;\n if (startY === targetY) {\n direction = startX > targetX ? Direction.LEFT : Direction.RIGHT;\n return repeat(Math.abs(startX - targetX), sequence(direction, applicationCursor));\n }\n direction = startY > targetY ? Direction.LEFT : Direction.RIGHT;\n const rowDifference = Math.abs(startY - targetY);\n const cellsToMove = colsFromRowEnd(startY > targetY ? targetX : startX, bufferService) +\n (rowDifference - 1) * bufferService.cols + 1 /* wrap around 1 row */ +\n colsFromRowBeginning(startY > targetY ? startX : targetX, bufferService);\n return repeat(cellsToMove, sequence(direction, applicationCursor));\n}\n\n/**\n * Find the number of cols from a row beginning to a col.\n */\nfunction colsFromRowBeginning(currX: number, bufferService: IBufferService): number {\n return currX - 1;\n}\n\n/**\n * Find the number of cols from a col to row end.\n */\nfunction colsFromRowEnd(currX: number, bufferService: IBufferService): number {\n return bufferService.cols - currX;\n}\n\n/**\n * If the initial position of the cursor is on a row that is wrapped, move the\n * cursor up to the first row that is not wrapped to have accurate vertical\n * positioning.\n */\nfunction resetStartingRow(startX: number, startY: number, targetX: number, targetY: number, bufferService: IBufferService, applicationCursor: boolean): string {\n if (moveToRequestedRow(startY, targetY, bufferService, applicationCursor).length === 0) {\n return '';\n }\n return repeat(bufferLine(\n startX, startY, startX,\n startY - wrappedRowsForRow(startY, bufferService), false, bufferService\n ).length, sequence(Direction.LEFT, applicationCursor));\n}\n\n/**\n * Using the reset starting and ending row, move to the requested row,\n * ignoring wrapped rows\n */\nfunction moveToRequestedRow(startY: number, targetY: number, bufferService: IBufferService, applicationCursor: boolean): string {\n const startRow = startY - wrappedRowsForRow(startY, bufferService);\n const endRow = targetY - wrappedRowsForRow(targetY, bufferService);\n\n const rowsToMove = Math.abs(startRow - endRow) - wrappedRowsCount(startY, targetY, bufferService);\n\n return repeat(rowsToMove, sequence(verticalDirection(startY, targetY), applicationCursor));\n}\n\n/**\n * Move to the requested col on the ending row\n */\nfunction moveToRequestedCol(startX: number, startY: number, targetX: number, targetY: number, bufferService: IBufferService, applicationCursor: boolean): string {\n let startRow;\n if (moveToRequestedRow(startY, targetY, bufferService, applicationCursor).length > 0) {\n startRow = targetY - wrappedRowsForRow(targetY, bufferService);\n } else {\n startRow = startY;\n }\n\n const endRow = targetY;\n const direction = horizontalDirection(startX, startY, targetX, targetY, bufferService, applicationCursor);\n\n return repeat(bufferLine(\n startX, startRow, targetX, endRow,\n direction === Direction.RIGHT, bufferService\n ).length, sequence(direction, applicationCursor));\n}\n\n/**\n * Utility functions\n */\n\n/**\n * Calculates the number of wrapped rows between the unwrapped starting and\n * ending rows. These rows need to ignored since the cursor skips over them.\n */\nfunction wrappedRowsCount(startY: number, targetY: number, bufferService: IBufferService): number {\n let wrappedRows = 0;\n const startRow = startY - wrappedRowsForRow(startY, bufferService);\n const endRow = targetY - wrappedRowsForRow(targetY, bufferService);\n\n for (let i = 0; i < Math.abs(startRow - endRow); i++) {\n const direction = verticalDirection(startY, targetY) === Direction.UP ? -1 : 1;\n const line = bufferService.buffer.lines.get(startRow + (direction * i));\n if (line?.isWrapped) {\n wrappedRows++;\n }\n }\n\n return wrappedRows;\n}\n\n/**\n * Calculates the number of wrapped rows that make up a given row.\n * @param currentRow The row to determine how many wrapped rows make it up\n */\nfunction wrappedRowsForRow(currentRow: number, bufferService: IBufferService): number {\n let rowCount = 0;\n let line = bufferService.buffer.lines.get(currentRow);\n let lineWraps = line?.isWrapped;\n\n while (lineWraps && currentRow >= 0 && currentRow < bufferService.rows) {\n rowCount++;\n line = bufferService.buffer.lines.get(--currentRow);\n lineWraps = line?.isWrapped;\n }\n\n return rowCount;\n}\n\n/**\n * Direction determiners\n */\n\n/**\n * Determines if the right or left arrow is needed\n */\nfunction horizontalDirection(startX: number, startY: number, targetX: number, targetY: number, bufferService: IBufferService, applicationCursor: boolean): Direction {\n let startRow;\n if (moveToRequestedRow(targetX, targetY, bufferService, applicationCursor).length > 0) {\n startRow = targetY - wrappedRowsForRow(targetY, bufferService);\n } else {\n startRow = startY;\n }\n\n if ((startX < targetX &&\n startRow <= targetY) || // down/right or same y/right\n (startX >= targetX &&\n startRow < targetY)) { // down/left or same y/left\n return Direction.RIGHT;\n }\n return Direction.LEFT;\n}\n\n/**\n * Determines if the up or down arrow is needed\n */\nfunction verticalDirection(startY: number, targetY: number): Direction {\n return startY > targetY ? Direction.UP : Direction.DOWN;\n}\n\n/**\n * Constructs the string of chars in the buffer from a starting row and col\n * to an ending row and col\n * @param startCol The starting column position\n * @param startRow The starting row position\n * @param endCol The ending column position\n * @param endRow The ending row position\n * @param forward Direction to move\n */\nfunction bufferLine(\n startCol: number,\n startRow: number,\n endCol: number,\n endRow: number,\n forward: boolean,\n bufferService: IBufferService\n): string {\n let currentCol = startCol;\n let currentRow = startRow;\n let bufferStr = '';\n\n while (currentCol !== endCol || currentRow !== endRow) {\n currentCol += forward ? 1 : -1;\n\n if (forward && currentCol > bufferService.cols - 1) {\n bufferStr += bufferService.buffer.translateBufferLineToString(\n currentRow, false, startCol, currentCol\n );\n currentCol = 0;\n startCol = 0;\n currentRow++;\n } else if (!forward && currentCol < 0) {\n bufferStr += bufferService.buffer.translateBufferLineToString(\n currentRow, false, 0, startCol + 1\n );\n currentCol = bufferService.cols - 1;\n startCol = currentCol;\n currentRow--;\n }\n }\n\n return bufferStr + bufferService.buffer.translateBufferLineToString(\n currentRow, false, startCol, currentCol\n );\n}\n\n/**\n * Constructs the escape sequence for clicking an arrow\n * @param direction The direction to move\n */\nfunction sequence(direction: Direction, applicationCursor: boolean): string {\n const mod = applicationCursor ? 'O' : '[';\n return C0.ESC + mod + direction;\n}\n\n/**\n * Returns a string repeated a given number of times\n * Polyfill from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n * @param count The number of times to repeat the string\n * @param str The string that is to be repeated\n */\nfunction repeat(count: number, str: string): string {\n count = Math.floor(count);\n let rpt = '';\n for (let i = 0; i < count; i++) {\n rpt += str;\n }\n return rpt;\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { DomRendererRowFactory, RowCss } from 'browser/renderer/dom/DomRendererRowFactory';\nimport { WidthCache } from 'browser/renderer/dom/WidthCache';\nimport { INVERTED_DEFAULT_COLOR } from 'browser/renderer/shared/Constants';\nimport { createRenderDimensions } from 'browser/renderer/shared/RendererUtils';\nimport { createSelectionRenderModel } from 'browser/renderer/shared/SelectionRenderModel';\nimport { IRenderDimensions, IRenderer, IRequestRedrawEvent, ISelectionRenderModel } from 'browser/renderer/shared/Types';\nimport { ICharSizeService, ICoreBrowserService, IThemeService } from 'browser/services/Services';\nimport { ILinkifier2, ILinkifierEvent, ITerminal, ReadonlyColorSet } from 'browser/Types';\nimport { color } from 'common/Color';\nimport { Disposable, toDisposable } from 'vs/base/common/lifecycle';\nimport { IBufferService, IInstantiationService, IOptionsService } from 'common/services/Services';\nimport { Emitter } from 'vs/base/common/event';\n\n\nconst TERMINAL_CLASS_PREFIX = 'xterm-dom-renderer-owner-';\nconst ROW_CONTAINER_CLASS = 'xterm-rows';\nconst FG_CLASS_PREFIX = 'xterm-fg-';\nconst BG_CLASS_PREFIX = 'xterm-bg-';\nconst FOCUS_CLASS = 'xterm-focus';\nconst SELECTION_CLASS = 'xterm-selection';\n\nlet nextTerminalId = 1;\n\n/**\n * The standard renderer and fallback for when the webgl addon is slow. This is not meant to be\n * particularly fast and will even lack some features such as custom glyphs, hoever this is more\n * reliable as webgl may not work on some machines.\n */\nexport class DomRenderer extends Disposable implements IRenderer {\n private _rowFactory: DomRendererRowFactory;\n private _terminalClass: number = nextTerminalId++;\n\n private _themeStyleElement!: HTMLStyleElement;\n private _dimensionsStyleElement!: HTMLStyleElement;\n private _rowContainer: HTMLElement;\n private _rowElements: HTMLElement[] = [];\n private _selectionContainer: HTMLElement;\n private _widthCache: WidthCache;\n private _selectionRenderModel: ISelectionRenderModel = createSelectionRenderModel();\n\n public dimensions: IRenderDimensions;\n\n public readonly onRequestRedraw = this._register(new Emitter()).event;\n\n constructor(\n private readonly _terminal: ITerminal,\n private readonly _document: Document,\n private readonly _element: HTMLElement,\n private readonly _screenElement: HTMLElement,\n private readonly _viewportElement: HTMLElement,\n private readonly _helperContainer: HTMLElement,\n private readonly _linkifier2: ILinkifier2,\n @IInstantiationService instantiationService: IInstantiationService,\n @ICharSizeService private readonly _charSizeService: ICharSizeService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @IBufferService private readonly _bufferService: IBufferService,\n @ICoreBrowserService private readonly _coreBrowserService: ICoreBrowserService,\n @IThemeService private readonly _themeService: IThemeService\n ) {\n super();\n this._rowContainer = this._document.createElement('div');\n this._rowContainer.classList.add(ROW_CONTAINER_CLASS);\n this._rowContainer.style.lineHeight = 'normal';\n this._rowContainer.setAttribute('aria-hidden', 'true');\n this._refreshRowElements(this._bufferService.cols, this._bufferService.rows);\n this._selectionContainer = this._document.createElement('div');\n this._selectionContainer.classList.add(SELECTION_CLASS);\n this._selectionContainer.setAttribute('aria-hidden', 'true');\n\n this.dimensions = createRenderDimensions();\n this._updateDimensions();\n this._register(this._optionsService.onOptionChange(() => this._handleOptionsChanged()));\n\n this._register(this._themeService.onChangeColors(e => this._injectCss(e)));\n this._injectCss(this._themeService.colors);\n\n this._rowFactory = instantiationService.createInstance(DomRendererRowFactory, document);\n\n this._element.classList.add(TERMINAL_CLASS_PREFIX + this._terminalClass);\n this._screenElement.appendChild(this._rowContainer);\n this._screenElement.appendChild(this._selectionContainer);\n\n this._register(this._linkifier2.onShowLinkUnderline(e => this._handleLinkHover(e)));\n this._register(this._linkifier2.onHideLinkUnderline(e => this._handleLinkLeave(e)));\n\n this._register(toDisposable(() => {\n this._element.classList.remove(TERMINAL_CLASS_PREFIX + this._terminalClass);\n\n // Outside influences such as React unmounts may manipulate the DOM before our disposal.\n // https://github.com/xtermjs/xterm.js/issues/2960\n this._rowContainer.remove();\n this._selectionContainer.remove();\n this._widthCache.dispose();\n this._themeStyleElement.remove();\n this._dimensionsStyleElement.remove();\n }));\n\n this._widthCache = new WidthCache(this._document, this._helperContainer);\n this._widthCache.setFont(\n this._optionsService.rawOptions.fontFamily,\n this._optionsService.rawOptions.fontSize,\n this._optionsService.rawOptions.fontWeight,\n this._optionsService.rawOptions.fontWeightBold\n );\n this._setDefaultSpacing();\n }\n\n private _updateDimensions(): void {\n const dpr = this._coreBrowserService.dpr;\n this.dimensions.device.char.width = this._charSizeService.width * dpr;\n this.dimensions.device.char.height = Math.ceil(this._charSizeService.height * dpr);\n this.dimensions.device.cell.width = this.dimensions.device.char.width + Math.round(this._optionsService.rawOptions.letterSpacing);\n this.dimensions.device.cell.height = Math.floor(this.dimensions.device.char.height * this._optionsService.rawOptions.lineHeight);\n this.dimensions.device.char.left = 0;\n this.dimensions.device.char.top = 0;\n this.dimensions.device.canvas.width = this.dimensions.device.cell.width * this._bufferService.cols;\n this.dimensions.device.canvas.height = this.dimensions.device.cell.height * this._bufferService.rows;\n this.dimensions.css.canvas.width = Math.round(this.dimensions.device.canvas.width / dpr);\n this.dimensions.css.canvas.height = Math.round(this.dimensions.device.canvas.height / dpr);\n this.dimensions.css.cell.width = this.dimensions.css.canvas.width / this._bufferService.cols;\n this.dimensions.css.cell.height = this.dimensions.css.canvas.height / this._bufferService.rows;\n\n for (const element of this._rowElements) {\n element.style.width = `${this.dimensions.css.canvas.width}px`;\n element.style.height = `${this.dimensions.css.cell.height}px`;\n element.style.lineHeight = `${this.dimensions.css.cell.height}px`;\n // Make sure rows don't overflow onto following row\n element.style.overflow = 'hidden';\n }\n\n if (!this._dimensionsStyleElement) {\n this._dimensionsStyleElement = this._document.createElement('style');\n this._screenElement.appendChild(this._dimensionsStyleElement);\n }\n\n const styles =\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} span {` +\n ` display: inline-block;` + // TODO: find workaround for inline-block (creates ~20% render penalty)\n ` height: 100%;` +\n ` vertical-align: top;` +\n `}`;\n\n this._dimensionsStyleElement.textContent = styles;\n\n this._selectionContainer.style.height = this._viewportElement.style.height;\n this._screenElement.style.width = `${this.dimensions.css.canvas.width}px`;\n this._screenElement.style.height = `${this.dimensions.css.canvas.height}px`;\n }\n\n private _injectCss(colors: ReadonlyColorSet): void {\n if (!this._themeStyleElement) {\n this._themeStyleElement = this._document.createElement('style');\n this._screenElement.appendChild(this._themeStyleElement);\n }\n\n // Base CSS\n let styles =\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} {` +\n ` color: ${colors.foreground.css};` +\n ` font-family: ${this._optionsService.rawOptions.fontFamily};` +\n ` font-size: ${this._optionsService.rawOptions.fontSize}px;` +\n ` font-kerning: none;` +\n ` white-space: pre` +\n `}`;\n styles +=\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} .xterm-dim {` +\n ` color: ${color.multiplyOpacity(colors.foreground, 0.5).css};` +\n `}`;\n // Text styles\n styles +=\n `${this._terminalSelector} span:not(.${RowCss.BOLD_CLASS}) {` +\n ` font-weight: ${this._optionsService.rawOptions.fontWeight};` +\n `}` +\n `${this._terminalSelector} span.${RowCss.BOLD_CLASS} {` +\n ` font-weight: ${this._optionsService.rawOptions.fontWeightBold};` +\n `}` +\n `${this._terminalSelector} span.${RowCss.ITALIC_CLASS} {` +\n ` font-style: italic;` +\n `}`;\n // Blink animation\n const blinkAnimationUnderlineId = `blink_underline_${this._terminalClass}`;\n const blinkAnimationBarId = `blink_bar_${this._terminalClass}`;\n const blinkAnimationBlockId = `blink_block_${this._terminalClass}`;\n styles +=\n `@keyframes ${blinkAnimationUnderlineId} {` +\n ` 50% {` +\n ` border-bottom-style: hidden;` +\n ` }` +\n `}`;\n styles +=\n `@keyframes ${blinkAnimationBarId} {` +\n ` 50% {` +\n ` box-shadow: none;` +\n ` }` +\n `}`;\n styles +=\n `@keyframes ${blinkAnimationBlockId} {` +\n ` 0% {` +\n ` background-color: ${colors.cursor.css};` +\n ` color: ${colors.cursorAccent.css};` +\n ` }` +\n ` 50% {` +\n ` background-color: inherit;` +\n ` color: ${colors.cursor.css};` +\n ` }` +\n `}`;\n // Cursor\n styles +=\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS}.${FOCUS_CLASS} .${RowCss.CURSOR_CLASS}.${RowCss.CURSOR_BLINK_CLASS}.${RowCss.CURSOR_STYLE_UNDERLINE_CLASS} {` +\n ` animation: ${blinkAnimationUnderlineId} 1s step-end infinite;` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS}.${FOCUS_CLASS} .${RowCss.CURSOR_CLASS}.${RowCss.CURSOR_BLINK_CLASS}.${RowCss.CURSOR_STYLE_BAR_CLASS} {` +\n ` animation: ${blinkAnimationBarId} 1s step-end infinite;` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS}.${FOCUS_CLASS} .${RowCss.CURSOR_CLASS}.${RowCss.CURSOR_BLINK_CLASS}.${RowCss.CURSOR_STYLE_BLOCK_CLASS} {` +\n ` animation: ${blinkAnimationBlockId} 1s step-end infinite;` +\n `}` +\n // !important helps fix an issue where the cursor will not render on top of the selection,\n // however it's very hard to fix this issue and retain the blink animation without the use of\n // !important. So this edge case fails when cursor blink is on.\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} .${RowCss.CURSOR_CLASS}.${RowCss.CURSOR_STYLE_BLOCK_CLASS} {` +\n ` background-color: ${colors.cursor.css};` +\n ` color: ${colors.cursorAccent.css};` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} .${RowCss.CURSOR_CLASS}.${RowCss.CURSOR_STYLE_BLOCK_CLASS}:not(.${RowCss.CURSOR_BLINK_CLASS}) {` +\n ` background-color: ${colors.cursor.css} !important;` +\n ` color: ${colors.cursorAccent.css} !important;` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} .${RowCss.CURSOR_CLASS}.${RowCss.CURSOR_STYLE_OUTLINE_CLASS} {` +\n ` outline: 1px solid ${colors.cursor.css};` +\n ` outline-offset: -1px;` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} .${RowCss.CURSOR_CLASS}.${RowCss.CURSOR_STYLE_BAR_CLASS} {` +\n ` box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${colors.cursor.css} inset;` +\n `}` +\n `${this._terminalSelector} .${ROW_CONTAINER_CLASS} .${RowCss.CURSOR_CLASS}.${RowCss.CURSOR_STYLE_UNDERLINE_CLASS} {` +\n ` border-bottom: 1px ${colors.cursor.css};` +\n ` border-bottom-style: solid;` +\n ` height: calc(100% - 1px);` +\n `}`;\n // Selection\n styles +=\n `${this._terminalSelector} .${SELECTION_CLASS} {` +\n ` position: absolute;` +\n ` top: 0;` +\n ` left: 0;` +\n ` z-index: 1;` +\n ` pointer-events: none;` +\n `}` +\n `${this._terminalSelector}.focus .${SELECTION_CLASS} div {` +\n ` position: absolute;` +\n ` background-color: ${colors.selectionBackgroundOpaque.css};` +\n `}` +\n `${this._terminalSelector} .${SELECTION_CLASS} div {` +\n ` position: absolute;` +\n ` background-color: ${colors.selectionInactiveBackgroundOpaque.css};` +\n `}`;\n // Colors\n for (const [i, c] of colors.ansi.entries()) {\n styles +=\n `${this._terminalSelector} .${FG_CLASS_PREFIX}${i} { color: ${c.css}; }` +\n `${this._terminalSelector} .${FG_CLASS_PREFIX}${i}.${RowCss.DIM_CLASS} { color: ${color.multiplyOpacity(c, 0.5).css}; }` +\n `${this._terminalSelector} .${BG_CLASS_PREFIX}${i} { background-color: ${c.css}; }`;\n }\n styles +=\n `${this._terminalSelector} .${FG_CLASS_PREFIX}${INVERTED_DEFAULT_COLOR} { color: ${color.opaque(colors.background).css}; }` +\n `${this._terminalSelector} .${FG_CLASS_PREFIX}${INVERTED_DEFAULT_COLOR}.${RowCss.DIM_CLASS} { color: ${color.multiplyOpacity(color.opaque(colors.background), 0.5).css}; }` +\n `${this._terminalSelector} .${BG_CLASS_PREFIX}${INVERTED_DEFAULT_COLOR} { background-color: ${colors.foreground.css}; }`;\n\n this._themeStyleElement.textContent = styles;\n }\n\n /**\n * default letter spacing\n * Due to rounding issues in dimensions dpr calc glyph might render\n * slightly too wide or too narrow. The method corrects the stacking offsets\n * by applying a default letter-spacing for all chars.\n * The value gets passed to the row factory to avoid setting this value again\n * (render speedup is roughly 10%).\n */\n private _setDefaultSpacing(): void {\n // measure same char as in CharSizeService to get the base deviation\n const spacing = this.dimensions.css.cell.width - this._widthCache.get('W', false, false);\n this._rowContainer.style.letterSpacing = `${spacing}px`;\n this._rowFactory.defaultSpacing = spacing;\n }\n\n public handleDevicePixelRatioChange(): void {\n this._updateDimensions();\n this._widthCache.clear();\n this._setDefaultSpacing();\n }\n\n private _refreshRowElements(cols: number, rows: number): void {\n // Add missing elements\n for (let i = this._rowElements.length; i <= rows; i++) {\n const row = this._document.createElement('div');\n this._rowContainer.appendChild(row);\n this._rowElements.push(row);\n }\n // Remove excess elements\n while (this._rowElements.length > rows) {\n this._rowContainer.removeChild(this._rowElements.pop()!);\n }\n }\n\n public handleResize(cols: number, rows: number): void {\n this._refreshRowElements(cols, rows);\n this._updateDimensions();\n this.handleSelectionChanged(this._selectionRenderModel.selectionStart, this._selectionRenderModel.selectionEnd, this._selectionRenderModel.columnSelectMode);\n }\n\n public handleCharSizeChanged(): void {\n this._updateDimensions();\n this._widthCache.clear();\n this._setDefaultSpacing();\n }\n\n public handleBlur(): void {\n this._rowContainer.classList.remove(FOCUS_CLASS);\n this.renderRows(0, this._bufferService.rows - 1);\n }\n\n public handleFocus(): void {\n this._rowContainer.classList.add(FOCUS_CLASS);\n this.renderRows(this._bufferService.buffer.y, this._bufferService.buffer.y);\n }\n\n public handleSelectionChanged(start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode: boolean): void {\n // Remove all selections\n this._selectionContainer.replaceChildren();\n this._rowFactory.handleSelectionChanged(start, end, columnSelectMode);\n this.renderRows(0, this._bufferService.rows - 1);\n\n // Selection does not exist\n if (!start || !end) {\n return;\n }\n\n this._selectionRenderModel.update(this._terminal, start, end, columnSelectMode);\n if (!this._selectionRenderModel.hasSelection) {\n return;\n }\n\n // Translate from buffer position to viewport position\n const viewportStartRow = this._selectionRenderModel.viewportStartRow;\n const viewportEndRow = this._selectionRenderModel.viewportEndRow;\n const viewportCappedStartRow = this._selectionRenderModel.viewportCappedStartRow;\n const viewportCappedEndRow = this._selectionRenderModel.viewportCappedEndRow;\n\n // Create the selections\n const documentFragment = this._document.createDocumentFragment();\n\n if (columnSelectMode) {\n const isXFlipped = start[0] > end[0];\n documentFragment.appendChild(\n this._createSelectionElement(viewportCappedStartRow, isXFlipped ? end[0] : start[0], isXFlipped ? start[0] : end[0], viewportCappedEndRow - viewportCappedStartRow + 1)\n );\n } else {\n // Draw first row\n const startCol = viewportStartRow === viewportCappedStartRow ? start[0] : 0;\n const endCol = viewportCappedStartRow === viewportEndRow ? end[0] : this._bufferService.cols;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow, startCol, endCol));\n // Draw middle rows\n const middleRowsCount = viewportCappedEndRow - viewportCappedStartRow - 1;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedStartRow + 1, 0, this._bufferService.cols, middleRowsCount));\n // Draw final row\n if (viewportCappedStartRow !== viewportCappedEndRow) {\n // Only draw viewportEndRow if it's not the same as viewporttartRow\n const endCol = viewportEndRow === viewportCappedEndRow ? end[0] : this._bufferService.cols;\n documentFragment.appendChild(this._createSelectionElement(viewportCappedEndRow, 0, endCol));\n }\n }\n this._selectionContainer.appendChild(documentFragment);\n }\n\n /**\n * Creates a selection element at the specified position.\n * @param row The row of the selection.\n * @param colStart The start column.\n * @param colEnd The end columns.\n */\n private _createSelectionElement(row: number, colStart: number, colEnd: number, rowCount: number = 1): HTMLElement {\n const element = this._document.createElement('div');\n const left = colStart * this.dimensions.css.cell.width;\n let width = this.dimensions.css.cell.width * (colEnd - colStart);\n if (left + width > this.dimensions.css.canvas.width) {\n width = this.dimensions.css.canvas.width - left;\n }\n\n element.style.height = `${rowCount * this.dimensions.css.cell.height}px`;\n element.style.top = `${row * this.dimensions.css.cell.height}px`;\n element.style.left = `${left}px`;\n element.style.width = `${width}px`;\n return element;\n }\n\n public handleCursorMove(): void {\n // No-op, the cursor is drawn when rows are drawn\n }\n\n private _handleOptionsChanged(): void {\n // Force a refresh\n this._updateDimensions();\n // Refresh CSS\n this._injectCss(this._themeService.colors);\n // update spacing cache\n this._widthCache.setFont(\n this._optionsService.rawOptions.fontFamily,\n this._optionsService.rawOptions.fontSize,\n this._optionsService.rawOptions.fontWeight,\n this._optionsService.rawOptions.fontWeightBold\n );\n this._setDefaultSpacing();\n }\n\n public clear(): void {\n for (const e of this._rowElements) {\n /**\n * NOTE: This used to be `e.innerText = '';` but that doesn't work when using `jsdom` and\n * `@testing-library/react`\n *\n * references:\n * - https://github.com/testing-library/react-testing-library/issues/1146\n * - https://github.com/jsdom/jsdom/issues/1245\n */\n e.replaceChildren();\n }\n }\n\n public renderRows(start: number, end: number): void {\n const buffer = this._bufferService.buffer;\n const cursorAbsoluteY = buffer.ybase + buffer.y;\n const cursorX = Math.min(buffer.x, this._bufferService.cols - 1);\n const cursorBlink = this._optionsService.rawOptions.cursorBlink;\n const cursorStyle = this._optionsService.rawOptions.cursorStyle;\n const cursorInactiveStyle = this._optionsService.rawOptions.cursorInactiveStyle;\n\n for (let y = start; y <= end; y++) {\n const row = y + buffer.ydisp;\n const rowElement = this._rowElements[y];\n const lineData = buffer.lines.get(row);\n if (!rowElement || !lineData) {\n break;\n }\n rowElement.replaceChildren(\n ...this._rowFactory.createRow(\n lineData,\n row,\n row === cursorAbsoluteY,\n cursorStyle,\n cursorInactiveStyle,\n cursorX,\n cursorBlink,\n this.dimensions.css.cell.width,\n this._widthCache,\n -1,\n -1\n )\n );\n }\n }\n\n private get _terminalSelector(): string {\n return `.${TERMINAL_CLASS_PREFIX}${this._terminalClass}`;\n }\n\n private _handleLinkHover(e: ILinkifierEvent): void {\n this._setCellUnderline(e.x1, e.x2, e.y1, e.y2, e.cols, true);\n }\n\n private _handleLinkLeave(e: ILinkifierEvent): void {\n this._setCellUnderline(e.x1, e.x2, e.y1, e.y2, e.cols, false);\n }\n\n private _setCellUnderline(x: number, x2: number, y: number, y2: number, cols: number, enabled: boolean): void {\n /**\n * NOTE: The linkifier may send out of viewport y-values if:\n * - negative y-value: the link started at a higher line\n * - y-value >= maxY: the link ends at a line below viewport\n *\n * For negative y-values we can simply adjust x = 0,\n * as higher up link start means, that everything from\n * (0,0) is a link under top-down-left-right char progression\n *\n * Additionally there might be a small chance of out-of-sync x|y-values\n * from a race condition of render updates vs. link event handler execution:\n * - (sync) resize: chances terminal buffer in sync, schedules render update async\n * - (async) link handler race condition: new buffer metrics, but still on old render state\n * - (async) render update: brings term metrics and render state back in sync\n */\n // clip coords into viewport\n if (y < 0) x = 0;\n if (y2 < 0) x2 = 0;\n const maxY = this._bufferService.rows - 1;\n y = Math.max(Math.min(y, maxY), 0);\n y2 = Math.max(Math.min(y2, maxY), 0);\n\n cols = Math.min(cols, this._bufferService.cols);\n const buffer = this._bufferService.buffer;\n const cursorAbsoluteY = buffer.ybase + buffer.y;\n const cursorX = Math.min(buffer.x, cols - 1);\n const cursorBlink = this._optionsService.rawOptions.cursorBlink;\n const cursorStyle = this._optionsService.rawOptions.cursorStyle;\n const cursorInactiveStyle = this._optionsService.rawOptions.cursorInactiveStyle;\n\n // refresh rows within link range\n for (let i = y; i <= y2; ++i) {\n const row = i + buffer.ydisp;\n const rowElement = this._rowElements[i];\n const bufferline = buffer.lines.get(row);\n if (!rowElement || !bufferline) {\n break;\n }\n rowElement.replaceChildren(\n ...this._rowFactory.createRow(\n bufferline,\n row,\n row === cursorAbsoluteY,\n cursorStyle,\n cursorInactiveStyle,\n cursorX,\n cursorBlink,\n this.dimensions.css.cell.width,\n this._widthCache,\n enabled ? (i === y ? x : 0) : -1,\n enabled ? ((i === y2 ? x2 : cols) - 1) : -1\n )\n );\n }\n }\n}\n","/**\n * Copyright (c) 2018, 2023 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferLine, ICellData, IColor } from 'common/Types';\nimport { INVERTED_DEFAULT_COLOR } from 'browser/renderer/shared/Constants';\nimport { WHITESPACE_CELL_CHAR, Attributes } from 'common/buffer/Constants';\nimport { CellData } from 'common/buffer/CellData';\nimport { ICoreService, IDecorationService, IOptionsService } from 'common/services/Services';\nimport { channels, color } from 'common/Color';\nimport { ICharacterJoinerService, ICoreBrowserService, IThemeService } from 'browser/services/Services';\nimport { JoinedCellData } from 'browser/services/CharacterJoinerService';\nimport { treatGlyphAsBackgroundColor } from 'browser/renderer/shared/RendererUtils';\nimport { AttributeData } from 'common/buffer/AttributeData';\nimport { WidthCache } from 'browser/renderer/dom/WidthCache';\nimport { IColorContrastCache } from 'browser/Types';\n\n\nexport const enum RowCss {\n BOLD_CLASS = 'xterm-bold',\n DIM_CLASS = 'xterm-dim',\n ITALIC_CLASS = 'xterm-italic',\n UNDERLINE_CLASS = 'xterm-underline',\n OVERLINE_CLASS = 'xterm-overline',\n STRIKETHROUGH_CLASS = 'xterm-strikethrough',\n CURSOR_CLASS = 'xterm-cursor',\n CURSOR_BLINK_CLASS = 'xterm-cursor-blink',\n CURSOR_STYLE_BLOCK_CLASS = 'xterm-cursor-block',\n CURSOR_STYLE_OUTLINE_CLASS = 'xterm-cursor-outline',\n CURSOR_STYLE_BAR_CLASS = 'xterm-cursor-bar',\n CURSOR_STYLE_UNDERLINE_CLASS = 'xterm-cursor-underline'\n}\n\n\nexport class DomRendererRowFactory {\n private _workCell: CellData = new CellData();\n\n private _selectionStart: [number, number] | undefined;\n private _selectionEnd: [number, number] | undefined;\n private _columnSelectMode: boolean = false;\n\n public defaultSpacing = 0;\n\n constructor(\n private readonly _document: Document,\n @ICharacterJoinerService private readonly _characterJoinerService: ICharacterJoinerService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @ICoreBrowserService private readonly _coreBrowserService: ICoreBrowserService,\n @ICoreService private readonly _coreService: ICoreService,\n @IDecorationService private readonly _decorationService: IDecorationService,\n @IThemeService private readonly _themeService: IThemeService\n ) {}\n\n public handleSelectionChanged(start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode: boolean): void {\n this._selectionStart = start;\n this._selectionEnd = end;\n this._columnSelectMode = columnSelectMode;\n }\n\n public createRow(\n lineData: IBufferLine,\n row: number,\n isCursorRow: boolean,\n cursorStyle: string | undefined,\n cursorInactiveStyle: string | undefined,\n cursorX: number,\n cursorBlink: boolean,\n cellWidth: number,\n widthCache: WidthCache,\n linkStart: number,\n linkEnd: number\n ): HTMLSpanElement[] {\n\n const elements: HTMLSpanElement[] = [];\n const joinedRanges = this._characterJoinerService.getJoinedCharacters(row);\n const colors = this._themeService.colors;\n\n let lineLength = lineData.getNoBgTrimmedLength();\n if (isCursorRow && lineLength < cursorX + 1) {\n lineLength = cursorX + 1;\n }\n\n let charElement: HTMLSpanElement | undefined;\n let cellAmount = 0;\n let text = '';\n let oldBg = 0;\n let oldFg = 0;\n let oldExt = 0;\n let oldLinkHover: number | boolean = false;\n let oldSpacing = 0;\n let oldIsInSelection: boolean = false;\n let spacing = 0;\n const classes: string[] = [];\n\n const hasHover = linkStart !== -1 && linkEnd !== -1;\n\n for (let x = 0; x < lineLength; x++) {\n lineData.loadCell(x, this._workCell);\n let width = this._workCell.getWidth();\n\n // The character to the left is a wide character, drawing is owned by the char at x-1\n if (width === 0) {\n continue;\n }\n\n // If true, indicates that the current character(s) to draw were joined.\n let isJoined = false;\n let lastCharX = x;\n\n // Process any joined character ranges as needed. Because of how the\n // ranges are produced, we know that they are valid for the characters\n // and attributes of our input.\n let cell = this._workCell;\n if (joinedRanges.length > 0 && x === joinedRanges[0][0]) {\n isJoined = true;\n const range = joinedRanges.shift()!;\n\n // We already know the exact start and end column of the joined range,\n // so we get the string and width representing it directly\n cell = new JoinedCellData(\n this._workCell,\n lineData.translateToString(true, range[0], range[1]),\n range[1] - range[0]\n );\n\n // Skip over the cells occupied by this range in the loop\n lastCharX = range[1] - 1;\n\n // Recalculate width\n width = cell.getWidth();\n }\n\n const isInSelection = this._isCellInSelection(x, row);\n const isCursorCell = isCursorRow && x === cursorX;\n const isLinkHover = hasHover && x >= linkStart && x <= linkEnd;\n\n let isDecorated = false;\n this._decorationService.forEachDecorationAtCell(x, row, undefined, d => {\n isDecorated = true;\n });\n\n // get chars to render for this cell\n let chars = cell.getChars() || WHITESPACE_CELL_CHAR;\n if (chars === ' ' && (cell.isUnderline() || cell.isOverline())) {\n chars = '\\xa0';\n }\n\n // lookup char render width and calc spacing\n spacing = width * cellWidth - widthCache.get(chars, cell.isBold(), cell.isItalic());\n\n if (!charElement) {\n charElement = this._document.createElement('span');\n } else {\n /**\n * chars can only be merged on existing span if:\n * - existing span only contains mergeable chars (cellAmount != 0)\n * - bg did not change (or both are in selection)\n * - fg did not change (or both are in selection and selection fg is set)\n * - ext did not change\n * - underline from hover state did not change\n * - cell content renders to same letter-spacing\n * - cell is not cursor\n */\n if (\n cellAmount\n && (\n (isInSelection && oldIsInSelection)\n || (!isInSelection && !oldIsInSelection && cell.bg === oldBg)\n )\n && (\n (isInSelection && oldIsInSelection && colors.selectionForeground)\n || cell.fg === oldFg\n )\n && cell.extended.ext === oldExt\n && isLinkHover === oldLinkHover\n && spacing === oldSpacing\n && !isCursorCell\n && !isJoined\n && !isDecorated\n ) {\n // no span alterations, thus only account chars skipping all code below\n if (cell.isInvisible()) {\n text += WHITESPACE_CELL_CHAR;\n } else {\n text += chars;\n }\n cellAmount++;\n continue;\n } else {\n /**\n * cannot merge:\n * - apply left-over text to old span\n * - create new span, reset state holders cellAmount & text\n */\n if (cellAmount) {\n charElement.textContent = text;\n }\n charElement = this._document.createElement('span');\n cellAmount = 0;\n text = '';\n }\n }\n // preserve conditions for next merger eval round\n oldBg = cell.bg;\n oldFg = cell.fg;\n oldExt = cell.extended.ext;\n oldLinkHover = isLinkHover;\n oldSpacing = spacing;\n oldIsInSelection = isInSelection;\n\n if (isJoined) {\n // The DOM renderer colors the background of the cursor but for ligatures all cells are\n // joined. The workaround here is to show a cursor around the whole ligature so it shows up,\n // the cursor looks the same when on any character of the ligature though\n if (cursorX >= x && cursorX <= lastCharX) {\n cursorX = x;\n }\n }\n\n if (!this._coreService.isCursorHidden && isCursorCell && this._coreService.isCursorInitialized) {\n classes.push(RowCss.CURSOR_CLASS);\n if (this._coreBrowserService.isFocused) {\n if (cursorBlink) {\n classes.push(RowCss.CURSOR_BLINK_CLASS);\n }\n classes.push(\n cursorStyle === 'bar'\n ? RowCss.CURSOR_STYLE_BAR_CLASS\n : cursorStyle === 'underline'\n ? RowCss.CURSOR_STYLE_UNDERLINE_CLASS\n : RowCss.CURSOR_STYLE_BLOCK_CLASS\n );\n } else {\n if (cursorInactiveStyle) {\n switch (cursorInactiveStyle) {\n case 'outline':\n classes.push(RowCss.CURSOR_STYLE_OUTLINE_CLASS);\n break;\n case 'block':\n classes.push(RowCss.CURSOR_STYLE_BLOCK_CLASS);\n break;\n case 'bar':\n classes.push(RowCss.CURSOR_STYLE_BAR_CLASS);\n break;\n case 'underline':\n classes.push(RowCss.CURSOR_STYLE_UNDERLINE_CLASS);\n break;\n default:\n break;\n }\n }\n }\n }\n\n if (cell.isBold()) {\n classes.push(RowCss.BOLD_CLASS);\n }\n\n if (cell.isItalic()) {\n classes.push(RowCss.ITALIC_CLASS);\n }\n\n if (cell.isDim()) {\n classes.push(RowCss.DIM_CLASS);\n }\n\n if (cell.isInvisible()) {\n text = WHITESPACE_CELL_CHAR;\n } else {\n text = cell.getChars() || WHITESPACE_CELL_CHAR;\n }\n\n if (cell.isUnderline()) {\n classes.push(`${RowCss.UNDERLINE_CLASS}-${cell.extended.underlineStyle}`);\n if (text === ' ') {\n text = '\\xa0'; // = \n }\n if (!cell.isUnderlineColorDefault()) {\n if (cell.isUnderlineColorRGB()) {\n charElement.style.textDecorationColor = `rgb(${AttributeData.toColorRGB(cell.getUnderlineColor()).join(',')})`;\n } else {\n let fg = cell.getUnderlineColor();\n if (this._optionsService.rawOptions.drawBoldTextInBrightColors && cell.isBold() && fg < 8) {\n fg += 8;\n }\n charElement.style.textDecorationColor = colors.ansi[fg].css;\n }\n }\n }\n\n if (cell.isOverline()) {\n classes.push(RowCss.OVERLINE_CLASS);\n if (text === ' ') {\n text = '\\xa0'; // = \n }\n }\n\n if (cell.isStrikethrough()) {\n classes.push(RowCss.STRIKETHROUGH_CLASS);\n }\n\n // apply link hover underline late, effectively overrides any previous text-decoration\n // settings\n if (isLinkHover) {\n charElement.style.textDecoration = 'underline';\n }\n\n let fg = cell.getFgColor();\n let fgColorMode = cell.getFgColorMode();\n let bg = cell.getBgColor();\n let bgColorMode = cell.getBgColorMode();\n const isInverse = !!cell.isInverse();\n if (isInverse) {\n const temp = fg;\n fg = bg;\n bg = temp;\n const temp2 = fgColorMode;\n fgColorMode = bgColorMode;\n bgColorMode = temp2;\n }\n\n // Apply any decoration foreground/background overrides, this must happen after inverse has\n // been applied\n let bgOverride: IColor | undefined;\n let fgOverride: IColor | undefined;\n let isTop = false;\n this._decorationService.forEachDecorationAtCell(x, row, undefined, d => {\n if (d.options.layer !== 'top' && isTop) {\n return;\n }\n if (d.backgroundColorRGB) {\n bgColorMode = Attributes.CM_RGB;\n bg = d.backgroundColorRGB.rgba >> 8 & 0xFFFFFF;\n bgOverride = d.backgroundColorRGB;\n }\n if (d.foregroundColorRGB) {\n fgColorMode = Attributes.CM_RGB;\n fg = d.foregroundColorRGB.rgba >> 8 & 0xFFFFFF;\n fgOverride = d.foregroundColorRGB;\n }\n isTop = d.options.layer === 'top';\n });\n\n // Apply selection\n if (!isTop && isInSelection) {\n // If in the selection, force the element to be above the selection to improve contrast and\n // support opaque selections. The applies background is not actually needed here as\n // selection is drawn in a seperate container, the main purpose of this to ensuring minimum\n // contrast ratio\n bgOverride = this._coreBrowserService.isFocused ? colors.selectionBackgroundOpaque : colors.selectionInactiveBackgroundOpaque;\n bg = bgOverride.rgba >> 8 & 0xFFFFFF;\n bgColorMode = Attributes.CM_RGB;\n // Since an opaque selection is being rendered, the selection pretends to be a decoration to\n // ensure text is drawn above the selection.\n isTop = true;\n // Apply selection foreground if applicable\n if (colors.selectionForeground) {\n fgColorMode = Attributes.CM_RGB;\n fg = colors.selectionForeground.rgba >> 8 & 0xFFFFFF;\n fgOverride = colors.selectionForeground;\n }\n }\n\n // If it's a top decoration, render above the selection\n if (isTop) {\n classes.push('xterm-decoration-top');\n }\n\n // Background\n let resolvedBg: IColor;\n switch (bgColorMode) {\n case Attributes.CM_P16:\n case Attributes.CM_P256:\n resolvedBg = colors.ansi[bg];\n classes.push(`xterm-bg-${bg}`);\n break;\n case Attributes.CM_RGB:\n resolvedBg = channels.toColor(bg >> 16, bg >> 8 & 0xFF, bg & 0xFF);\n this._addStyle(charElement, `background-color:#${padStart((bg >>> 0).toString(16), '0', 6)}`);\n break;\n case Attributes.CM_DEFAULT:\n default:\n if (isInverse) {\n resolvedBg = colors.foreground;\n classes.push(`xterm-bg-${INVERTED_DEFAULT_COLOR}`);\n } else {\n resolvedBg = colors.background;\n }\n }\n\n // If there is no background override by now it's the original color, so apply dim if needed\n if (!bgOverride) {\n if (cell.isDim()) {\n bgOverride = color.multiplyOpacity(resolvedBg, 0.5);\n }\n }\n\n // Foreground\n switch (fgColorMode) {\n case Attributes.CM_P16:\n case Attributes.CM_P256:\n if (cell.isBold() && fg < 8 && this._optionsService.rawOptions.drawBoldTextInBrightColors) {\n fg += 8;\n }\n if (!this._applyMinimumContrast(charElement, resolvedBg, colors.ansi[fg], cell, bgOverride, undefined)) {\n classes.push(`xterm-fg-${fg}`);\n }\n break;\n case Attributes.CM_RGB:\n const color = channels.toColor(\n (fg >> 16) & 0xFF,\n (fg >> 8) & 0xFF,\n (fg ) & 0xFF\n );\n if (!this._applyMinimumContrast(charElement, resolvedBg, color, cell, bgOverride, fgOverride)) {\n this._addStyle(charElement, `color:#${padStart(fg.toString(16), '0', 6)}`);\n }\n break;\n case Attributes.CM_DEFAULT:\n default:\n if (!this._applyMinimumContrast(charElement, resolvedBg, colors.foreground, cell, bgOverride, fgOverride)) {\n if (isInverse) {\n classes.push(`xterm-fg-${INVERTED_DEFAULT_COLOR}`);\n }\n }\n }\n\n // apply CSS classes\n // slightly faster than using classList by omitting\n // checks for doubled entries (code above should not have doublets)\n if (classes.length) {\n charElement.className = classes.join(' ');\n classes.length = 0;\n }\n\n // exclude conditions for cell merging - never merge these\n if (!isCursorCell && !isJoined && !isDecorated) {\n cellAmount++;\n } else {\n charElement.textContent = text;\n }\n // apply letter-spacing rule\n if (spacing !== this.defaultSpacing) {\n charElement.style.letterSpacing = `${spacing}px`;\n }\n\n elements.push(charElement);\n x = lastCharX;\n }\n\n // postfix text of last merged span\n if (charElement && cellAmount) {\n charElement.textContent = text;\n }\n\n return elements;\n }\n\n private _applyMinimumContrast(element: HTMLElement, bg: IColor, fg: IColor, cell: ICellData, bgOverride: IColor | undefined, fgOverride: IColor | undefined): boolean {\n if (this._optionsService.rawOptions.minimumContrastRatio === 1 || treatGlyphAsBackgroundColor(cell.getCode())) {\n return false;\n }\n\n // Try get from cache first, only use the cache when there are no decoration overrides\n const cache = this._getContrastCache(cell);\n let adjustedColor: IColor | undefined | null = undefined;\n if (!bgOverride && !fgOverride) {\n adjustedColor = cache.getColor(bg.rgba, fg.rgba);\n }\n\n // Calculate and store in cache\n if (adjustedColor === undefined) {\n // Dim cells only require half the contrast, otherwise they wouldn't be distinguishable from\n // non-dim cells\n const ratio = this._optionsService.rawOptions.minimumContrastRatio / (cell.isDim() ? 2 : 1);\n adjustedColor = color.ensureContrastRatio(bgOverride || bg, fgOverride || fg, ratio);\n cache.setColor((bgOverride || bg).rgba, (fgOverride || fg).rgba, adjustedColor ?? null);\n }\n\n if (adjustedColor) {\n this._addStyle(element, `color:${adjustedColor.css}`);\n return true;\n }\n\n return false;\n }\n\n private _getContrastCache(cell: ICellData): IColorContrastCache {\n if (cell.isDim()) {\n return this._themeService.colors.halfContrastCache;\n }\n return this._themeService.colors.contrastCache;\n }\n\n private _addStyle(element: HTMLElement, style: string): void {\n element.setAttribute('style', `${element.getAttribute('style') || ''}${style};`);\n }\n\n private _isCellInSelection(x: number, y: number): boolean {\n const start = this._selectionStart;\n const end = this._selectionEnd;\n if (!start || !end) {\n return false;\n }\n if (this._columnSelectMode) {\n if (start[0] <= end[0]) {\n return x >= start[0] && y >= start[1] &&\n x < end[0] && y <= end[1];\n }\n return x < start[0] && y >= start[1] &&\n x >= end[0] && y <= end[1];\n }\n return (y > start[1] && y < end[1]) ||\n (start[1] === end[1] && y === start[1] && x >= start[0] && x < end[0]) ||\n (start[1] < end[1] && y === end[1] && x < end[0]) ||\n (start[1] < end[1] && y === start[1] && x >= start[0]);\n }\n}\n\nfunction padStart(text: string, padChar: string, length: number): string {\n while (text.length < length) {\n text = padChar + text;\n }\n return text;\n}\n","/**\n * Copyright (c) 2023 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IDisposable } from 'common/Types';\nimport { FontWeight } from 'common/services/Services';\n\n\nexport const enum WidthCacheSettings {\n /** sentinel for unset values in flat cache */\n FLAT_UNSET = -9999,\n /** size of flat cache, size-1 equals highest codepoint handled by flat */\n FLAT_SIZE = 256,\n /** char repeat for measuring */\n REPEAT = 32\n}\n\n\nconst enum FontVariant {\n REGULAR = 0,\n BOLD = 1,\n ITALIC = 2,\n BOLD_ITALIC = 3\n}\n\n\nexport class WidthCache implements IDisposable {\n // flat cache for regular variant up to CacheSettings.FLAT_SIZE\n // NOTE: ~4x faster access than holey (serving >>80% of terminal content)\n // It has a small memory footprint (only 1MB for full BMP caching),\n // still the sweet spot is not reached before touching 32k different codepoints,\n // thus we store the remaining <<20% of terminal data in a holey structure.\n protected _flat = new Float32Array(WidthCacheSettings.FLAT_SIZE);\n\n // holey cache for bold, italic and bold&italic for any string\n // FIXME: can grow really big over time (~8.5 MB for full BMP caching),\n // so a shared API across terminals is needed\n protected _holey: Map | undefined;\n\n private _font = '';\n private _fontSize = 0;\n private _weight: FontWeight = 'normal';\n private _weightBold: FontWeight = 'bold';\n private _container: HTMLDivElement;\n private _measureElements: HTMLSpanElement[] = [];\n\n constructor(_document: Document, _helperContainer: HTMLElement) {\n this._container = _document.createElement('div');\n this._container.classList.add('xterm-width-cache-measure-container');\n this._container.setAttribute('aria-hidden', 'true');\n // SP should stack in spans\n this._container.style.whiteSpace = 'pre';\n // avoid undercuts in non-monospace fonts from kerning\n this._container.style.fontKerning = 'none';\n\n const regular = _document.createElement('span');\n regular.classList.add('xterm-char-measure-element');\n\n const bold = _document.createElement('span');\n bold.classList.add('xterm-char-measure-element');\n bold.style.fontWeight = 'bold';\n\n const italic = _document.createElement('span');\n italic.classList.add('xterm-char-measure-element');\n italic.style.fontStyle = 'italic';\n\n const boldItalic = _document.createElement('span');\n boldItalic.classList.add('xterm-char-measure-element');\n boldItalic.style.fontWeight = 'bold';\n boldItalic.style.fontStyle = 'italic';\n\n // NOTE: must be in order of FontVariant\n this._measureElements = [regular, bold, italic, boldItalic];\n this._container.appendChild(regular);\n this._container.appendChild(bold);\n this._container.appendChild(italic);\n this._container.appendChild(boldItalic);\n\n _helperContainer.appendChild(this._container);\n\n this.clear();\n }\n\n public dispose(): void {\n this._container.remove(); // remove elements from DOM\n this._measureElements.length = 0; // release element refs\n this._holey = undefined; // free cache memory via GC\n }\n\n /**\n * Clear the width cache.\n */\n public clear(): void {\n this._flat.fill(WidthCacheSettings.FLAT_UNSET);\n // .clear() has some overhead, re-assign instead (>3 times faster)\n this._holey = new Map();\n }\n\n /**\n * Set the font for measuring.\n * Must be called for any changes on font settings.\n * Also clears the cache.\n */\n public setFont(font: string, fontSize: number, weight: FontWeight, weightBold: FontWeight): void {\n // skip if nothing changed\n if (font === this._font\n && fontSize === this._fontSize\n && weight === this._weight\n && weightBold === this._weightBold\n ) {\n return;\n }\n\n this._font = font;\n this._fontSize = fontSize;\n this._weight = weight;\n this._weightBold = weightBold;\n\n this._container.style.fontFamily = this._font;\n this._container.style.fontSize = `${this._fontSize}px`;\n this._measureElements[FontVariant.REGULAR].style.fontWeight = `${weight}`;\n this._measureElements[FontVariant.BOLD].style.fontWeight = `${weightBold}`;\n this._measureElements[FontVariant.ITALIC].style.fontWeight = `${weight}`;\n this._measureElements[FontVariant.BOLD_ITALIC].style.fontWeight = `${weightBold}`;\n\n this.clear();\n }\n\n /**\n * Get the render width for cell content `c` with current font settings.\n * `variant` denotes the font variant to be used.\n */\n public get(c: string, bold: boolean | number, italic: boolean | number): number {\n let cp = 0;\n if (!bold && !italic && c.length === 1 && (cp = c.charCodeAt(0)) < WidthCacheSettings.FLAT_SIZE) {\n if (this._flat[cp] !== WidthCacheSettings.FLAT_UNSET) {\n return this._flat[cp];\n }\n const width = this._measure(c, 0);\n if (width > 0) {\n this._flat[cp] = width;\n }\n return width;\n }\n let key = c;\n if (bold) key += 'B';\n if (italic) key += 'I';\n let width = this._holey!.get(key);\n if (width === undefined) {\n let variant = 0;\n if (bold) variant |= FontVariant.BOLD;\n if (italic) variant |= FontVariant.ITALIC;\n width = this._measure(c, variant);\n if (width > 0) {\n this._holey!.set(key, width);\n }\n }\n return width;\n }\n\n protected _measure(c: string, variant: FontVariant): number {\n const el = this._measureElements[variant];\n el.textContent = c.repeat(WidthCacheSettings.REPEAT);\n return el.offsetWidth / WidthCacheSettings.REPEAT;\n }\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { isFirefox, isLegacyEdge } from 'common/Platform';\n\nexport const INVERTED_DEFAULT_COLOR = 257;\n\nexport const DIM_OPACITY = 0.5;\n// The text baseline is set conditionally by browser. Using 'ideographic' for Firefox or Legacy Edge\n// would result in truncated text (Issue 3353). Using 'bottom' for Chrome would result in slightly\n// unaligned Powerline fonts (PR 3356#issuecomment-850928179).\nexport const TEXT_BASELINE: CanvasTextBaseline = isFirefox || isLegacyEdge ? 'bottom' : 'ideographic';\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IDimensions, IRenderDimensions } from 'browser/renderer/shared/Types';\n\nexport function throwIfFalsy(value: T | undefined | null): T {\n if (!value) {\n throw new Error('value must not be falsy');\n }\n return value;\n}\n\nexport function isPowerlineGlyph(codepoint: number): boolean {\n // Only return true for Powerline symbols which require\n // different padding and should be excluded from minimum contrast\n // ratio standards\n return 0xE0A4 <= codepoint && codepoint <= 0xE0D6;\n}\n\nexport function isRestrictedPowerlineGlyph(codepoint: number): boolean {\n return 0xE0B0 <= codepoint && codepoint <= 0xE0B7;\n}\n\nfunction isNerdFontGlyph(codepoint: number): boolean {\n return 0xE000 <= codepoint && codepoint <= 0xF8FF;\n}\n\nfunction isBoxOrBlockGlyph(codepoint: number): boolean {\n return 0x2500 <= codepoint && codepoint <= 0x259F;\n}\n\nexport function isEmoji(codepoint: number): boolean {\n return (\n codepoint >= 0x1F600 && codepoint <= 0x1F64F || // Emoticons\n codepoint >= 0x1F300 && codepoint <= 0x1F5FF || // Misc Symbols and Pictographs\n codepoint >= 0x1F680 && codepoint <= 0x1F6FF || // Transport and Map\n codepoint >= 0x2600 && codepoint <= 0x26FF || // Misc symbols\n codepoint >= 0x2700 && codepoint <= 0x27BF || // Dingbats\n codepoint >= 0xFE00 && codepoint <= 0xFE0F || // Variation Selectors\n codepoint >= 0x1F900 && codepoint <= 0x1F9FF || // Supplemental Symbols and Pictographs\n codepoint >= 0x1F1E6 && codepoint <= 0x1F1FF\n );\n}\n\nexport function allowRescaling(codepoint: number | undefined, width: number, glyphSizeX: number, deviceCellWidth: number): boolean {\n return (\n // Is single cell width\n width === 1 &&\n // Glyph exceeds cell bounds, add 50% to avoid hurting readability by rescaling glyphs that\n // barely overlap\n glyphSizeX > Math.ceil(deviceCellWidth * 1.5) &&\n // Never rescale ascii\n codepoint !== undefined && codepoint > 0xFF &&\n // Never rescale emoji\n !isEmoji(codepoint) &&\n // Never rescale powerline or nerd fonts\n !isPowerlineGlyph(codepoint) && !isNerdFontGlyph(codepoint)\n );\n}\n\nexport function treatGlyphAsBackgroundColor(codepoint: number): boolean {\n return isPowerlineGlyph(codepoint) || isBoxOrBlockGlyph(codepoint);\n}\n\nexport function createRenderDimensions(): IRenderDimensions {\n return {\n css: {\n canvas: createDimension(),\n cell: createDimension()\n },\n device: {\n canvas: createDimension(),\n cell: createDimension(),\n char: {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n }\n }\n };\n}\n\nfunction createDimension(): IDimensions {\n return {\n width: 0,\n height: 0\n };\n}\n\nexport function computeNextVariantOffset(cellWidth: number, lineWidth: number, currentOffset: number = 0): number {\n return (cellWidth - (Math.round(lineWidth) * 2 - currentOffset)) % (Math.round(lineWidth) * 2);\n}\n","/**\n * Copyright (c) 2022 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ITerminal } from 'browser/Types';\nimport { ISelectionRenderModel } from 'browser/renderer/shared/Types';\nimport { Terminal } from '@xterm/xterm';\n\nclass SelectionRenderModel implements ISelectionRenderModel {\n public hasSelection!: boolean;\n public columnSelectMode!: boolean;\n public viewportStartRow!: number;\n public viewportEndRow!: number;\n public viewportCappedStartRow!: number;\n public viewportCappedEndRow!: number;\n public startCol!: number;\n public endCol!: number;\n public selectionStart: [number, number] | undefined;\n public selectionEnd: [number, number] | undefined;\n\n constructor() {\n this.clear();\n }\n\n public clear(): void {\n this.hasSelection = false;\n this.columnSelectMode = false;\n this.viewportStartRow = 0;\n this.viewportEndRow = 0;\n this.viewportCappedStartRow = 0;\n this.viewportCappedEndRow = 0;\n this.startCol = 0;\n this.endCol = 0;\n this.selectionStart = undefined;\n this.selectionEnd = undefined;\n }\n\n public update(terminal: ITerminal, start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode: boolean = false): void {\n this.selectionStart = start;\n this.selectionEnd = end;\n // Selection does not exist\n if (!start || !end || (start[0] === end[0] && start[1] === end[1])) {\n this.clear();\n return;\n }\n\n // Translate from buffer position to viewport position\n const viewportY = terminal.buffers.active.ydisp;\n const viewportStartRow = start[1] - viewportY;\n const viewportEndRow = end[1] - viewportY;\n const viewportCappedStartRow = Math.max(viewportStartRow, 0);\n const viewportCappedEndRow = Math.min(viewportEndRow, terminal.rows - 1);\n\n // No need to draw the selection\n if (viewportCappedStartRow >= terminal.rows || viewportCappedEndRow < 0) {\n this.clear();\n return;\n }\n\n this.hasSelection = true;\n this.columnSelectMode = columnSelectMode;\n this.viewportStartRow = viewportStartRow;\n this.viewportEndRow = viewportEndRow;\n this.viewportCappedStartRow = viewportCappedStartRow;\n this.viewportCappedEndRow = viewportCappedEndRow;\n this.startCol = start[0];\n this.endCol = end[0];\n }\n\n public isCellSelected(terminal: Terminal, x: number, y: number): boolean {\n if (!this.hasSelection) {\n return false;\n }\n y -= terminal.buffer.active.viewportY;\n if (this.columnSelectMode) {\n if (this.startCol <= this.endCol) {\n return x >= this.startCol && y >= this.viewportCappedStartRow &&\n x < this.endCol && y <= this.viewportCappedEndRow;\n }\n return x < this.startCol && y >= this.viewportCappedStartRow &&\n x >= this.endCol && y <= this.viewportCappedEndRow;\n }\n return (y > this.viewportStartRow && y < this.viewportEndRow) ||\n (this.viewportStartRow === this.viewportEndRow && y === this.viewportStartRow && x >= this.startCol && x < this.endCol) ||\n (this.viewportStartRow < this.viewportEndRow && y === this.viewportEndRow && x < this.endCol) ||\n (this.viewportStartRow < this.viewportEndRow && y === this.viewportStartRow && x >= this.startCol);\n }\n}\n\nexport function createSelectionRenderModel(): ISelectionRenderModel {\n return new SelectionRenderModel();\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferService } from 'common/services/Services';\n\n/**\n * Represents a selection within the buffer. This model only cares about column\n * and row coordinates, not wide characters.\n */\nexport class SelectionModel {\n /**\n * Whether select all is currently active.\n */\n public isSelectAllActive: boolean = false;\n\n /**\n * The minimal length of the selection from the start position. When double\n * clicking on a word, the word will be selected which makes the selection\n * start at the start of the word and makes this variable the length.\n */\n public selectionStartLength: number = 0;\n\n /**\n * The [x, y] position the selection starts at.\n */\n public selectionStart: [number, number] | undefined;\n\n /**\n * The [x, y] position the selection ends at.\n */\n public selectionEnd: [number, number] | undefined;\n\n constructor(\n private _bufferService: IBufferService\n ) {\n }\n\n /**\n * Clears the current selection.\n */\n public clearSelection(): void {\n this.selectionStart = undefined;\n this.selectionEnd = undefined;\n this.isSelectAllActive = false;\n this.selectionStartLength = 0;\n }\n\n /**\n * The final selection start, taking into consideration select all.\n */\n public get finalSelectionStart(): [number, number] | undefined {\n if (this.isSelectAllActive) {\n return [0, 0];\n }\n\n if (!this.selectionEnd || !this.selectionStart) {\n return this.selectionStart;\n }\n\n return this.areSelectionValuesReversed() ? this.selectionEnd : this.selectionStart;\n }\n\n /**\n * The final selection end, taking into consideration select all, double click\n * word selection and triple click line selection.\n */\n public get finalSelectionEnd(): [number, number] | undefined {\n if (this.isSelectAllActive) {\n return [this._bufferService.cols, this._bufferService.buffer.ybase + this._bufferService.rows - 1];\n }\n\n if (!this.selectionStart) {\n return undefined;\n }\n\n // Use the selection start + length if the end doesn't exist or they're reversed\n if (!this.selectionEnd || this.areSelectionValuesReversed()) {\n const startPlusLength = this.selectionStart[0] + this.selectionStartLength;\n if (startPlusLength > this._bufferService.cols) {\n // Ensure the trailing EOL isn't included when the selection ends on the right edge\n if (startPlusLength % this._bufferService.cols === 0) {\n return [this._bufferService.cols, this.selectionStart[1] + Math.floor(startPlusLength / this._bufferService.cols) - 1];\n }\n return [startPlusLength % this._bufferService.cols, this.selectionStart[1] + Math.floor(startPlusLength / this._bufferService.cols)];\n }\n return [startPlusLength, this.selectionStart[1]];\n }\n\n // Ensure the the word/line is selected after a double/triple click\n if (this.selectionStartLength) {\n // Select the larger of the two when start and end are on the same line\n if (this.selectionEnd[1] === this.selectionStart[1]) {\n // Keep the whole wrapped word/line selected if the content wraps multiple lines\n const startPlusLength = this.selectionStart[0] + this.selectionStartLength;\n if (startPlusLength > this._bufferService.cols) {\n return [startPlusLength % this._bufferService.cols, this.selectionStart[1] + Math.floor(startPlusLength / this._bufferService.cols)];\n }\n return [Math.max(startPlusLength, this.selectionEnd[0]), this.selectionEnd[1]];\n }\n }\n return this.selectionEnd;\n }\n\n /**\n * Returns whether the selection start and end are reversed.\n */\n public areSelectionValuesReversed(): boolean {\n const start = this.selectionStart;\n const end = this.selectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[1] > end[1] || (start[1] === end[1] && start[0] > end[0]);\n }\n\n /**\n * Handle the buffer being trimmed, adjust the selection position.\n * @param amount The amount the buffer is being trimmed.\n * @returns Whether a refresh is necessary.\n */\n public handleTrim(amount: number): boolean {\n // Adjust the selection position based on the trimmed amount.\n if (this.selectionStart) {\n this.selectionStart[1] -= amount;\n }\n if (this.selectionEnd) {\n this.selectionEnd[1] -= amount;\n }\n\n // The selection has moved off the buffer, clear it.\n if (this.selectionEnd && this.selectionEnd[1] < 0) {\n this.clearSelection();\n return true;\n }\n\n // If the selection start is trimmed, ensure the start column is 0.\n if (this.selectionStart && this.selectionStart[1] < 0) {\n this.selectionStart[1] = 0;\n }\n return false;\n }\n}\n","/**\n * Copyright (c) 2016 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IOptionsService } from 'common/services/Services';\nimport { ICharSizeService } from 'browser/services/Services';\nimport { Disposable } from 'vs/base/common/lifecycle';\nimport { Emitter } from 'vs/base/common/event';\n\nexport class CharSizeService extends Disposable implements ICharSizeService {\n public serviceBrand: undefined;\n\n public width: number = 0;\n public height: number = 0;\n private _measureStrategy: IMeasureStrategy;\n\n public get hasValidSize(): boolean { return this.width > 0 && this.height > 0; }\n\n private readonly _onCharSizeChange = this._register(new Emitter());\n public readonly onCharSizeChange = this._onCharSizeChange.event;\n\n constructor(\n document: Document,\n parentElement: HTMLElement,\n @IOptionsService private readonly _optionsService: IOptionsService\n ) {\n super();\n try {\n this._measureStrategy = this._register(new TextMetricsMeasureStrategy(this._optionsService));\n } catch {\n this._measureStrategy = this._register(new DomMeasureStrategy(document, parentElement, this._optionsService));\n }\n this._register(this._optionsService.onMultipleOptionChange(['fontFamily', 'fontSize'], () => this.measure()));\n }\n\n public measure(): void {\n const result = this._measureStrategy.measure();\n if (result.width !== this.width || result.height !== this.height) {\n this.width = result.width;\n this.height = result.height;\n this._onCharSizeChange.fire();\n }\n }\n}\n\ninterface IMeasureStrategy {\n measure(): Readonly;\n}\n\ninterface IMeasureResult {\n width: number;\n height: number;\n}\n\nconst enum DomMeasureStrategyConstants {\n REPEAT = 32\n}\n\nabstract class BaseMeasureStategy extends Disposable implements IMeasureStrategy {\n protected _result: IMeasureResult = { width: 0, height: 0 };\n\n protected _validateAndSet(width: number | undefined, height: number | undefined): void {\n // If values are 0 then the element is likely currently display:none, in which case we should\n // retain the previous value.\n if (width !== undefined && width > 0 && height !== undefined && height > 0) {\n this._result.width = width;\n this._result.height = height;\n }\n }\n\n public abstract measure(): Readonly;\n}\n\nclass DomMeasureStrategy extends BaseMeasureStategy {\n private _measureElement: HTMLElement;\n\n constructor(\n private _document: Document,\n private _parentElement: HTMLElement,\n private _optionsService: IOptionsService\n ) {\n super();\n this._measureElement = this._document.createElement('span');\n this._measureElement.classList.add('xterm-char-measure-element');\n this._measureElement.textContent = 'W'.repeat(DomMeasureStrategyConstants.REPEAT);\n this._measureElement.setAttribute('aria-hidden', 'true');\n this._measureElement.style.whiteSpace = 'pre';\n this._measureElement.style.fontKerning = 'none';\n this._parentElement.appendChild(this._measureElement);\n }\n\n public measure(): Readonly {\n this._measureElement.style.fontFamily = this._optionsService.rawOptions.fontFamily;\n this._measureElement.style.fontSize = `${this._optionsService.rawOptions.fontSize}px`;\n\n // Note that this triggers a synchronous layout\n this._validateAndSet(Number(this._measureElement.offsetWidth) / DomMeasureStrategyConstants.REPEAT, Number(this._measureElement.offsetHeight));\n\n return this._result;\n }\n}\n\nclass TextMetricsMeasureStrategy extends BaseMeasureStategy {\n private _canvas: OffscreenCanvas;\n private _ctx: OffscreenCanvasRenderingContext2D;\n\n constructor(\n private _optionsService: IOptionsService\n ) {\n super();\n // This will throw if any required API is not supported\n this._canvas = new OffscreenCanvas(100, 100);\n this._ctx = this._canvas.getContext('2d')!;\n const a = this._ctx.measureText('W');\n if (!('width' in a && 'fontBoundingBoxAscent' in a && 'fontBoundingBoxDescent' in a)) {\n throw new Error('Required font metrics not supported');\n }\n }\n\n public measure(): Readonly {\n this._ctx.font = `${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;\n const metrics = this._ctx.measureText('W');\n this._validateAndSet(metrics.width, metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent);\n return this._result;\n }\n}\n","/**\n * Copyright (c) 2018 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferLine, ICellData, CharData } from 'common/Types';\nimport { ICharacterJoiner } from 'browser/Types';\nimport { AttributeData } from 'common/buffer/AttributeData';\nimport { WHITESPACE_CELL_CHAR, Content } from 'common/buffer/Constants';\nimport { CellData } from 'common/buffer/CellData';\nimport { IBufferService } from 'common/services/Services';\nimport { ICharacterJoinerService } from 'browser/services/Services';\n\nexport class JoinedCellData extends AttributeData implements ICellData {\n private _width: number;\n // .content carries no meaning for joined CellData, simply nullify it\n // thus we have to overload all other .content accessors\n public content: number = 0;\n public fg: number;\n public bg: number;\n public combinedData: string = '';\n\n constructor(firstCell: ICellData, chars: string, width: number) {\n super();\n this.fg = firstCell.fg;\n this.bg = firstCell.bg;\n this.combinedData = chars;\n this._width = width;\n }\n\n public isCombined(): number {\n // always mark joined cell data as combined\n return Content.IS_COMBINED_MASK;\n }\n\n public getWidth(): number {\n return this._width;\n }\n\n public getChars(): string {\n return this.combinedData;\n }\n\n public getCode(): number {\n // code always gets the highest possible fake codepoint (read as -1)\n // this is needed as code is used by caches as identifier\n return 0x1FFFFF;\n }\n\n public setFromCharData(value: CharData): void {\n throw new Error('not implemented');\n }\n\n public getAsCharData(): CharData {\n return [this.fg, this.getChars(), this.getWidth(), this.getCode()];\n }\n}\n\nexport class CharacterJoinerService implements ICharacterJoinerService {\n public serviceBrand: undefined;\n\n private _characterJoiners: ICharacterJoiner[] = [];\n private _nextCharacterJoinerId: number = 0;\n private _workCell: CellData = new CellData();\n\n constructor(\n @IBufferService private _bufferService: IBufferService\n ) { }\n\n public register(handler: (text: string) => [number, number][]): number {\n const joiner: ICharacterJoiner = {\n id: this._nextCharacterJoinerId++,\n handler\n };\n\n this._characterJoiners.push(joiner);\n return joiner.id;\n }\n\n public deregister(joinerId: number): boolean {\n for (let i = 0; i < this._characterJoiners.length; i++) {\n if (this._characterJoiners[i].id === joinerId) {\n this._characterJoiners.splice(i, 1);\n return true;\n }\n }\n\n return false;\n }\n\n public getJoinedCharacters(row: number): [number, number][] {\n if (this._characterJoiners.length === 0) {\n return [];\n }\n\n const line = this._bufferService.buffer.lines.get(row);\n if (!line || line.length === 0) {\n return [];\n }\n\n const ranges: [number, number][] = [];\n const lineStr = line.translateToString(true);\n\n // Because some cells can be represented by multiple javascript characters,\n // we track the cell and the string indexes separately. This allows us to\n // translate the string ranges we get from the joiners back into cell ranges\n // for use when rendering\n let rangeStartColumn = 0;\n let currentStringIndex = 0;\n let rangeStartStringIndex = 0;\n let rangeAttrFG = line.getFg(0);\n let rangeAttrBG = line.getBg(0);\n\n for (let x = 0; x < line.getTrimmedLength(); x++) {\n line.loadCell(x, this._workCell);\n\n if (this._workCell.getWidth() === 0) {\n // If this character is of width 0, skip it.\n continue;\n }\n\n // End of range\n if (this._workCell.fg !== rangeAttrFG || this._workCell.bg !== rangeAttrBG) {\n // If we ended up with a sequence of more than one character,\n // look for ranges to join.\n if (x - rangeStartColumn > 1) {\n const joinedRanges = this._getJoinedRanges(\n lineStr,\n rangeStartStringIndex,\n currentStringIndex,\n line,\n rangeStartColumn\n );\n for (let i = 0; i < joinedRanges.length; i++) {\n ranges.push(joinedRanges[i]);\n }\n }\n\n // Reset our markers for a new range.\n rangeStartColumn = x;\n rangeStartStringIndex = currentStringIndex;\n rangeAttrFG = this._workCell.fg;\n rangeAttrBG = this._workCell.bg;\n }\n\n currentStringIndex += this._workCell.getChars().length || WHITESPACE_CELL_CHAR.length;\n }\n\n // Process any trailing ranges.\n if (this._bufferService.cols - rangeStartColumn > 1) {\n const joinedRanges = this._getJoinedRanges(\n lineStr,\n rangeStartStringIndex,\n currentStringIndex,\n line,\n rangeStartColumn\n );\n for (let i = 0; i < joinedRanges.length; i++) {\n ranges.push(joinedRanges[i]);\n }\n }\n\n return ranges;\n }\n\n /**\n * Given a segment of a line of text, find all ranges of text that should be\n * joined in a single rendering unit. Ranges are internally converted to\n * column ranges, rather than string ranges.\n * @param line String representation of the full line of text\n * @param startIndex Start position of the range to search in the string (inclusive)\n * @param endIndex End position of the range to search in the string (exclusive)\n */\n private _getJoinedRanges(line: string, startIndex: number, endIndex: number, lineData: IBufferLine, startCol: number): [number, number][] {\n const text = line.substring(startIndex, endIndex);\n // At this point we already know that there is at least one joiner so\n // we can just pull its value and assign it directly rather than\n // merging it into an empty array, which incurs unnecessary writes.\n let allJoinedRanges: [number, number][] = [];\n try {\n allJoinedRanges = this._characterJoiners[0].handler(text);\n } catch (error) {\n console.error(error);\n }\n for (let i = 1; i < this._characterJoiners.length; i++) {\n // We merge any overlapping ranges across the different joiners\n try {\n const joinerRanges = this._characterJoiners[i].handler(text);\n for (let j = 0; j < joinerRanges.length; j++) {\n CharacterJoinerService._mergeRanges(allJoinedRanges, joinerRanges[j]);\n }\n } catch (error) {\n console.error(error);\n }\n }\n this._stringRangesToCellRanges(allJoinedRanges, lineData, startCol);\n return allJoinedRanges;\n }\n\n /**\n * Modifies the provided ranges in-place to adjust for variations between\n * string length and cell width so that the range represents a cell range,\n * rather than the string range the joiner provides.\n * @param ranges String ranges containing start (inclusive) and end (exclusive) index\n * @param line Cell data for the relevant line in the terminal\n * @param startCol Offset within the line to start from\n */\n private _stringRangesToCellRanges(ranges: [number, number][], line: IBufferLine, startCol: number): void {\n let currentRangeIndex = 0;\n let currentRangeStarted = false;\n let currentStringIndex = 0;\n let currentRange = ranges[currentRangeIndex];\n\n // If we got through all of the ranges, stop searching\n if (!currentRange) {\n return;\n }\n\n for (let x = startCol; x < this._bufferService.cols; x++) {\n const width = line.getWidth(x);\n const length = line.getString(x).length || WHITESPACE_CELL_CHAR.length;\n\n // We skip zero-width characters when creating the string to join the text\n // so we do the same here\n if (width === 0) {\n continue;\n }\n\n // Adjust the start of the range\n if (!currentRangeStarted && currentRange[0] <= currentStringIndex) {\n currentRange[0] = x;\n currentRangeStarted = true;\n }\n\n // Adjust the end of the range\n if (currentRange[1] <= currentStringIndex) {\n currentRange[1] = x;\n\n // We're finished with this range, so we move to the next one\n currentRange = ranges[++currentRangeIndex];\n\n // If there are no more ranges left, stop searching\n if (!currentRange) {\n break;\n }\n\n // Ranges can be on adjacent characters. Because the end index of the\n // ranges are exclusive, this means that the index for the start of a\n // range can be the same as the end index of the previous range. To\n // account for the start of the next range, we check here just in case.\n if (currentRange[0] <= currentStringIndex) {\n currentRange[0] = x;\n currentRangeStarted = true;\n } else {\n currentRangeStarted = false;\n }\n }\n\n // Adjust the string index based on the character length to line up with\n // the column adjustment\n currentStringIndex += length;\n }\n\n // If there is still a range left at the end, it must extend all the way to\n // the end of the line.\n if (currentRange) {\n currentRange[1] = this._bufferService.cols;\n }\n }\n\n /**\n * Merges the range defined by the provided start and end into the list of\n * existing ranges. The merge is done in place on the existing range for\n * performance and is also returned.\n * @param ranges Existing range list\n * @param newRange Tuple of two numbers representing the new range to merge in.\n * @returns The ranges input with the new range merged in place\n */\n private static _mergeRanges(ranges: [number, number][], newRange: [number, number]): [number, number][] {\n let inRange = false;\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n if (!inRange) {\n if (newRange[1] <= range[0]) {\n // Case 1: New range is before the search range\n ranges.splice(i, 0, newRange);\n return ranges;\n }\n\n if (newRange[1] <= range[1]) {\n // Case 2: New range is either wholly contained within the\n // search range or overlaps with the front of it\n range[0] = Math.min(newRange[0], range[0]);\n return ranges;\n }\n\n if (newRange[0] < range[1]) {\n // Case 3: New range either wholly contains the search range\n // or overlaps with the end of it\n range[0] = Math.min(newRange[0], range[0]);\n inRange = true;\n }\n\n // Case 4: New range starts after the search range\n continue;\n } else {\n if (newRange[1] <= range[0]) {\n // Case 5: New range extends from previous range but doesn't\n // reach the current one\n ranges[i - 1][1] = newRange[1];\n return ranges;\n }\n\n if (newRange[1] <= range[1]) {\n // Case 6: New range extends from prvious range into the\n // current range\n ranges[i - 1][1] = Math.max(newRange[1], range[1]);\n ranges.splice(i, 1);\n return ranges;\n }\n\n // Case 7: New range extends from previous range past the\n // end of the current range\n ranges.splice(i, 1);\n i--;\n }\n }\n\n if (inRange) {\n // Case 8: New range extends past the last existing range\n ranges[ranges.length - 1][1] = newRange[1];\n } else {\n // Case 9: New range starts after the last existing range\n ranges.push(newRange);\n }\n\n return ranges;\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICoreBrowserService } from './Services';\nimport { Emitter, Event } from 'vs/base/common/event';\nimport { addDisposableListener } from 'vs/base/browser/dom';\nimport { Disposable, MutableDisposable, toDisposable } from 'vs/base/common/lifecycle';\n\nexport class CoreBrowserService extends Disposable implements ICoreBrowserService {\n public serviceBrand: undefined;\n\n private _isFocused = false;\n private _cachedIsFocused: boolean | undefined = undefined;\n private _screenDprMonitor = this._register(new ScreenDprMonitor(this._window));\n\n private readonly _onDprChange = this._register(new Emitter());\n public readonly onDprChange = this._onDprChange.event;\n private readonly _onWindowChange = this._register(new Emitter());\n public readonly onWindowChange = this._onWindowChange.event;\n\n constructor(\n private _textarea: HTMLTextAreaElement,\n private _window: Window & typeof globalThis,\n public readonly mainDocument: Document\n ) {\n super();\n\n // Monitor device pixel ratio\n this._register(this.onWindowChange(w => this._screenDprMonitor.setWindow(w)));\n this._register(Event.forward(this._screenDprMonitor.onDprChange, this._onDprChange));\n\n this._register(addDisposableListener(this._textarea, 'focus', () => this._isFocused = true));\n this._register(addDisposableListener(this._textarea, 'blur', () => this._isFocused = false));\n }\n\n public get window(): Window & typeof globalThis {\n return this._window;\n }\n\n public set window(value: Window & typeof globalThis) {\n if (this._window !== value) {\n this._window = value;\n this._onWindowChange.fire(this._window);\n }\n }\n\n public get dpr(): number {\n return this.window.devicePixelRatio;\n }\n\n public get isFocused(): boolean {\n if (this._cachedIsFocused === undefined) {\n this._cachedIsFocused = this._isFocused && this._textarea.ownerDocument.hasFocus();\n queueMicrotask(() => this._cachedIsFocused = undefined);\n }\n return this._cachedIsFocused;\n }\n}\n\n\n/**\n * The screen device pixel ratio monitor allows listening for when the\n * window.devicePixelRatio value changes. This is done not with polling but with\n * the use of window.matchMedia to watch media queries. When the event fires,\n * the listener will be reattached using a different media query to ensure that\n * any further changes will _register.\n *\n * The listener should fire on both window zoom changes and switching to a\n * monitor with a different DPI.\n */\nclass ScreenDprMonitor extends Disposable {\n private _currentDevicePixelRatio: number;\n private _outerListener: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | undefined;\n private _resolutionMediaMatchList: MediaQueryList | undefined;\n private _windowResizeListener = this._register(new MutableDisposable());\n\n private readonly _onDprChange = this._register(new Emitter());\n public readonly onDprChange = this._onDprChange.event;\n\n constructor(private _parentWindow: Window) {\n super();\n\n // Initialize listener and dpr value\n this._outerListener = () => this._setDprAndFireIfDiffers();\n this._currentDevicePixelRatio = this._parentWindow.devicePixelRatio;\n this._updateDpr();\n\n // Monitor active window resize\n this._setWindowResizeListener();\n\n // Setup additional disposables\n this._register(toDisposable(() => this.clearListener()));\n }\n\n\n public setWindow(parentWindow: Window): void {\n this._parentWindow = parentWindow;\n this._setWindowResizeListener();\n this._setDprAndFireIfDiffers();\n }\n\n private _setWindowResizeListener(): void {\n this._windowResizeListener.value = addDisposableListener(this._parentWindow, 'resize', () => this._setDprAndFireIfDiffers());\n }\n\n private _setDprAndFireIfDiffers(): void {\n if (this._parentWindow.devicePixelRatio !== this._currentDevicePixelRatio) {\n this._onDprChange.fire(this._parentWindow.devicePixelRatio);\n }\n this._updateDpr();\n }\n\n private _updateDpr(): void {\n if (!this._outerListener) {\n return;\n }\n\n // Clear listeners for old DPR\n this._resolutionMediaMatchList?.removeListener(this._outerListener);\n\n // Add listeners for new DPR\n this._currentDevicePixelRatio = this._parentWindow.devicePixelRatio;\n this._resolutionMediaMatchList = this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`);\n this._resolutionMediaMatchList.addListener(this._outerListener);\n }\n\n public clearListener(): void {\n if (!this._resolutionMediaMatchList || !this._outerListener) {\n return;\n }\n this._resolutionMediaMatchList.removeListener(this._outerListener);\n this._resolutionMediaMatchList = undefined;\n this._outerListener = undefined;\n }\n}\n","import { ILinkProvider, ILinkProviderService } from 'browser/services/Services';\nimport { Disposable, toDisposable } from 'vs/base/common/lifecycle';\nimport { IDisposable } from 'common/Types';\n\nexport class LinkProviderService extends Disposable implements ILinkProviderService {\n declare public serviceBrand: undefined;\n\n public readonly linkProviders: ILinkProvider[] = [];\n\n constructor() {\n super();\n this._register(toDisposable(() => this.linkProviders.length = 0));\n }\n\n public registerLinkProvider(linkProvider: ILinkProvider): IDisposable {\n this.linkProviders.push(linkProvider);\n return {\n dispose: () => {\n // Remove the link provider from the list\n const providerIndex = this.linkProviders.indexOf(linkProvider);\n\n if (providerIndex !== -1) {\n this.linkProviders.splice(providerIndex, 1);\n }\n }\n };\n }\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { ICharSizeService, IRenderService, IMouseService } from './Services';\nimport { getCoords, getCoordsRelativeToElement } from 'browser/input/Mouse';\n\nexport class MouseService implements IMouseService {\n public serviceBrand: undefined;\n\n constructor(\n @IRenderService private readonly _renderService: IRenderService,\n @ICharSizeService private readonly _charSizeService: ICharSizeService\n ) {\n }\n\n public getCoords(event: {clientX: number, clientY: number}, element: HTMLElement, colCount: number, rowCount: number, isSelection?: boolean): [number, number] | undefined {\n return getCoords(\n window,\n event,\n element,\n colCount,\n rowCount,\n this._charSizeService.hasValidSize,\n this._renderService.dimensions.css.cell.width,\n this._renderService.dimensions.css.cell.height,\n isSelection\n );\n }\n\n public getMouseReportCoords(event: MouseEvent, element: HTMLElement): { col: number, row: number, x: number, y: number } | undefined {\n const coords = getCoordsRelativeToElement(window, event, element);\n if (!this._charSizeService.hasValidSize) {\n return undefined;\n }\n coords[0] = Math.min(Math.max(coords[0], 0), this._renderService.dimensions.css.canvas.width - 1);\n coords[1] = Math.min(Math.max(coords[1], 0), this._renderService.dimensions.css.canvas.height - 1);\n return {\n col: Math.floor(coords[0] / this._renderService.dimensions.css.cell.width),\n row: Math.floor(coords[1] / this._renderService.dimensions.css.cell.height),\n x: Math.floor(coords[0]),\n y: Math.floor(coords[1])\n };\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { RenderDebouncer } from 'browser/RenderDebouncer';\nimport { IRenderDebouncerWithCallback } from 'browser/Types';\nimport { IRenderDimensions, IRenderer } from 'browser/renderer/shared/Types';\nimport { ICharSizeService, ICoreBrowserService, IRenderService, IThemeService } from 'browser/services/Services';\nimport { Disposable, MutableDisposable, toDisposable } from 'vs/base/common/lifecycle';\nimport { DebouncedIdleTask } from 'common/TaskQueue';\nimport { IBufferService, IDecorationService, IOptionsService } from 'common/services/Services';\nimport { Emitter } from 'vs/base/common/event';\n\ninterface ISelectionState {\n start: [number, number] | undefined;\n end: [number, number] | undefined;\n columnSelectMode: boolean;\n}\n\nexport class RenderService extends Disposable implements IRenderService {\n public serviceBrand: undefined;\n\n private _renderer: MutableDisposable = this._register(new MutableDisposable());\n private _renderDebouncer: IRenderDebouncerWithCallback;\n private _pausedResizeTask = new DebouncedIdleTask();\n private _observerDisposable = this._register(new MutableDisposable());\n\n private _isPaused: boolean = false;\n private _needsFullRefresh: boolean = false;\n private _isNextRenderRedrawOnly: boolean = true;\n private _needsSelectionRefresh: boolean = false;\n private _canvasWidth: number = 0;\n private _canvasHeight: number = 0;\n private _selectionState: ISelectionState = {\n start: undefined,\n end: undefined,\n columnSelectMode: false\n };\n\n private readonly _onDimensionsChange = this._register(new Emitter());\n public readonly onDimensionsChange = this._onDimensionsChange.event;\n private readonly _onRenderedViewportChange = this._register(new Emitter<{ start: number, end: number }>());\n public readonly onRenderedViewportChange = this._onRenderedViewportChange.event;\n private readonly _onRender = this._register(new Emitter<{ start: number, end: number }>());\n public readonly onRender = this._onRender.event;\n private readonly _onRefreshRequest = this._register(new Emitter<{ start: number, end: number }>());\n public readonly onRefreshRequest = this._onRefreshRequest.event;\n\n public get dimensions(): IRenderDimensions { return this._renderer.value!.dimensions; }\n\n constructor(\n private _rowCount: number,\n screenElement: HTMLElement,\n @IOptionsService optionsService: IOptionsService,\n @ICharSizeService private readonly _charSizeService: ICharSizeService,\n @IDecorationService decorationService: IDecorationService,\n @IBufferService bufferService: IBufferService,\n @ICoreBrowserService coreBrowserService: ICoreBrowserService,\n @IThemeService themeService: IThemeService\n ) {\n super();\n\n this._renderDebouncer = new RenderDebouncer((start, end) => this._renderRows(start, end), coreBrowserService);\n this._register(this._renderDebouncer);\n\n this._register(coreBrowserService.onDprChange(() => this.handleDevicePixelRatioChange()));\n\n this._register(bufferService.onResize(() => this._fullRefresh()));\n this._register(bufferService.buffers.onBufferActivate(() => this._renderer.value?.clear()));\n this._register(optionsService.onOptionChange(() => this._handleOptionsChanged()));\n this._register(this._charSizeService.onCharSizeChange(() => this.handleCharSizeChanged()));\n\n // Do a full refresh whenever any decoration is added or removed. This may not actually result\n // in changes but since decorations should be used sparingly or added/removed all in the same\n // frame this should have minimal performance impact.\n this._register(decorationService.onDecorationRegistered(() => this._fullRefresh()));\n this._register(decorationService.onDecorationRemoved(() => this._fullRefresh()));\n\n // Clear the renderer when the a change that could affect glyphs occurs\n this._register(optionsService.onMultipleOptionChange([\n 'customGlyphs',\n 'drawBoldTextInBrightColors',\n 'letterSpacing',\n 'lineHeight',\n 'fontFamily',\n 'fontSize',\n 'fontWeight',\n 'fontWeightBold',\n 'minimumContrastRatio',\n 'rescaleOverlappingGlyphs'\n ], () => {\n this.clear();\n this.handleResize(bufferService.cols, bufferService.rows);\n this._fullRefresh();\n }));\n\n // Refresh the cursor line when the cursor changes\n this._register(optionsService.onMultipleOptionChange([\n 'cursorBlink',\n 'cursorStyle'\n ], () => this.refreshRows(bufferService.buffer.y, bufferService.buffer.y, true)));\n\n this._register(themeService.onChangeColors(() => this._fullRefresh()));\n\n this._registerIntersectionObserver(coreBrowserService.window, screenElement);\n this._register(coreBrowserService.onWindowChange((w) => this._registerIntersectionObserver(w, screenElement)));\n }\n\n private _registerIntersectionObserver(w: Window & typeof globalThis, screenElement: HTMLElement): void {\n // Detect whether IntersectionObserver is detected and enable renderer pause\n // and resume based on terminal visibility if so\n if ('IntersectionObserver' in w) {\n const observer = new w.IntersectionObserver(e => this._handleIntersectionChange(e[e.length - 1]), { threshold: 0 });\n observer.observe(screenElement);\n this._observerDisposable.value = toDisposable(() => observer.disconnect());\n }\n }\n\n private _handleIntersectionChange(entry: IntersectionObserverEntry): void {\n this._isPaused = entry.isIntersecting === undefined ? (entry.intersectionRatio === 0) : !entry.isIntersecting;\n\n // Terminal was hidden on open\n if (!this._isPaused && !this._charSizeService.hasValidSize) {\n this._charSizeService.measure();\n }\n\n if (!this._isPaused && this._needsFullRefresh) {\n this._pausedResizeTask.flush();\n this.refreshRows(0, this._rowCount - 1);\n this._needsFullRefresh = false;\n }\n }\n\n public refreshRows(start: number, end: number, isRedrawOnly: boolean = false): void {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n return;\n }\n if (!isRedrawOnly) {\n this._isNextRenderRedrawOnly = false;\n }\n this._renderDebouncer.refresh(start, end, this._rowCount);\n }\n\n private _renderRows(start: number, end: number): void {\n if (!this._renderer.value) {\n return;\n }\n\n // Since this is debounced, a resize event could have happened between the time a refresh was\n // requested and when this triggers. Clamp the values of start and end to ensure they're valid\n // given the current viewport state.\n start = Math.min(start, this._rowCount - 1);\n end = Math.min(end, this._rowCount - 1);\n\n // Render\n this._renderer.value.renderRows(start, end);\n\n // Update selection if needed\n if (this._needsSelectionRefresh) {\n this._renderer.value.handleSelectionChanged(this._selectionState.start, this._selectionState.end, this._selectionState.columnSelectMode);\n this._needsSelectionRefresh = false;\n }\n\n // Fire render event only if it was not a redraw\n if (!this._isNextRenderRedrawOnly) {\n this._onRenderedViewportChange.fire({ start, end });\n }\n this._onRender.fire({ start, end });\n this._isNextRenderRedrawOnly = true;\n }\n\n public resize(cols: number, rows: number): void {\n this._rowCount = rows;\n this._fireOnCanvasResize();\n }\n\n private _handleOptionsChanged(): void {\n if (!this._renderer.value) {\n return;\n }\n this.refreshRows(0, this._rowCount - 1);\n this._fireOnCanvasResize();\n }\n\n private _fireOnCanvasResize(): void {\n if (!this._renderer.value) {\n return;\n }\n // Don't fire the event if the dimensions haven't changed\n if (this._renderer.value.dimensions.css.canvas.width === this._canvasWidth && this._renderer.value.dimensions.css.canvas.height === this._canvasHeight) {\n return;\n }\n this._onDimensionsChange.fire(this._renderer.value.dimensions);\n }\n\n public hasRenderer(): boolean {\n return !!this._renderer.value;\n }\n\n public setRenderer(renderer: IRenderer): void {\n this._renderer.value = renderer;\n // If the value was not set, the terminal is being disposed so ignore it\n if (this._renderer.value) {\n this._renderer.value.onRequestRedraw(e => this.refreshRows(e.start, e.end, true));\n\n // Force a refresh\n this._needsSelectionRefresh = true;\n this._fullRefresh();\n }\n }\n\n public addRefreshCallback(callback: FrameRequestCallback): number {\n return this._renderDebouncer.addRefreshCallback(callback);\n }\n\n private _fullRefresh(): void {\n if (this._isPaused) {\n this._needsFullRefresh = true;\n } else {\n this.refreshRows(0, this._rowCount - 1);\n }\n }\n\n public clearTextureAtlas(): void {\n if (!this._renderer.value) {\n return;\n }\n this._renderer.value.clearTextureAtlas?.();\n this._fullRefresh();\n }\n\n public handleDevicePixelRatioChange(): void {\n // Force char size measurement as DomMeasureStrategy(getBoundingClientRect) is not stable\n // when devicePixelRatio changes\n this._charSizeService.measure();\n\n if (!this._renderer.value) {\n return;\n }\n this._renderer.value.handleDevicePixelRatioChange();\n this.refreshRows(0, this._rowCount - 1);\n }\n\n public handleResize(cols: number, rows: number): void {\n if (!this._renderer.value) {\n return;\n }\n if (this._isPaused) {\n this._pausedResizeTask.set(() => this._renderer.value?.handleResize(cols, rows));\n } else {\n this._renderer.value.handleResize(cols, rows);\n }\n this._fullRefresh();\n }\n\n // TODO: Is this useful when we have onResize?\n public handleCharSizeChanged(): void {\n this._renderer.value?.handleCharSizeChanged();\n }\n\n public handleBlur(): void {\n this._renderer.value?.handleBlur();\n }\n\n public handleFocus(): void {\n this._renderer.value?.handleFocus();\n }\n\n public handleSelectionChanged(start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode: boolean): void {\n this._selectionState.start = start;\n this._selectionState.end = end;\n this._selectionState.columnSelectMode = columnSelectMode;\n this._renderer.value?.handleSelectionChanged(start, end, columnSelectMode);\n }\n\n public handleCursorMove(): void {\n this._renderer.value?.handleCursorMove();\n }\n\n public clear(): void {\n this._renderer.value?.clear();\n }\n}\n","/**\n * Copyright (c) 2017 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IBufferRange, ILinkifier2 } from 'browser/Types';\nimport { getCoordsRelativeToElement } from 'browser/input/Mouse';\nimport { moveToCellSequence } from 'browser/input/MoveToCell';\nimport { SelectionModel } from 'browser/selection/SelectionModel';\nimport { ISelectionRedrawRequestEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types';\nimport { ICoreBrowserService, IMouseService, IRenderService, ISelectionService } from 'browser/services/Services';\nimport { Disposable, toDisposable } from 'vs/base/common/lifecycle';\nimport * as Browser from 'common/Platform';\nimport { IBufferLine, IDisposable } from 'common/Types';\nimport { getRangeLength } from 'common/buffer/BufferRange';\nimport { CellData } from 'common/buffer/CellData';\nimport { IBuffer } from 'common/buffer/Types';\nimport { IBufferService, ICoreService, IOptionsService } from 'common/services/Services';\nimport { Emitter } from 'vs/base/common/event';\n\n/**\n * The number of pixels the mouse needs to be above or below the viewport in\n * order to scroll at the maximum speed.\n */\nconst DRAG_SCROLL_MAX_THRESHOLD = 50;\n\n/**\n * The maximum scrolling speed\n */\nconst DRAG_SCROLL_MAX_SPEED = 15;\n\n/**\n * The number of milliseconds between drag scroll updates.\n */\nconst DRAG_SCROLL_INTERVAL = 50;\n\n/**\n * The maximum amount of time that can have elapsed for an alt click to move the\n * cursor.\n */\nconst ALT_CLICK_MOVE_CURSOR_TIME = 500;\n\nconst NON_BREAKING_SPACE_CHAR = String.fromCharCode(160);\nconst ALL_NON_BREAKING_SPACE_REGEX = new RegExp(NON_BREAKING_SPACE_CHAR, 'g');\n\n/**\n * Represents a position of a word on a line.\n */\ninterface IWordPosition {\n start: number;\n length: number;\n}\n\n/**\n * A selection mode, this drives how the selection behaves on mouse move.\n */\nexport const enum SelectionMode {\n NORMAL,\n WORD,\n LINE,\n COLUMN\n}\n\n/**\n * A class that manages the selection of the terminal. With help from\n * SelectionModel, SelectionService handles with all logic associated with\n * dealing with the selection, including handling mouse interaction, wide\n * characters and fetching the actual text within the selection. Rendering is\n * not handled by the SelectionService but the onRedrawRequest event is fired\n * when the selection is ready to be redrawn (on an animation frame).\n */\nexport class SelectionService extends Disposable implements ISelectionService {\n public serviceBrand: undefined;\n\n protected _model: SelectionModel;\n\n /**\n * The amount to scroll every drag scroll update (depends on how far the mouse\n * drag is above or below the terminal).\n */\n private _dragScrollAmount: number = 0;\n\n /**\n * The current selection mode.\n */\n protected _activeSelectionMode: SelectionMode;\n\n /**\n * A setInterval timer that is active while the mouse is down whose callback\n * scrolls the viewport when necessary.\n */\n private _dragScrollIntervalTimer: number | undefined;\n\n /**\n * The animation frame ID used for refreshing the selection.\n */\n private _refreshAnimationFrame: number | undefined;\n\n /**\n * Whether selection is enabled.\n */\n private _enabled = true;\n\n private _mouseMoveListener: EventListener;\n private _mouseUpListener: EventListener;\n private _trimListener: IDisposable;\n private _workCell: CellData = new CellData();\n\n private _mouseDownTimeStamp: number = 0;\n private _oldHasSelection: boolean = false;\n private _oldSelectionStart: [number, number] | undefined = undefined;\n private _oldSelectionEnd: [number, number] | undefined = undefined;\n\n private readonly _onLinuxMouseSelection = this._register(new Emitter());\n public readonly onLinuxMouseSelection = this._onLinuxMouseSelection.event;\n private readonly _onRedrawRequest = this._register(new Emitter());\n public readonly onRequestRedraw = this._onRedrawRequest.event;\n private readonly _onSelectionChange = this._register(new Emitter());\n public readonly onSelectionChange = this._onSelectionChange.event;\n private readonly _onRequestScrollLines = this._register(new Emitter());\n public readonly onRequestScrollLines = this._onRequestScrollLines.event;\n\n constructor(\n private readonly _element: HTMLElement,\n private readonly _screenElement: HTMLElement,\n private readonly _linkifier: ILinkifier2,\n @IBufferService private readonly _bufferService: IBufferService,\n @ICoreService private readonly _coreService: ICoreService,\n @IMouseService private readonly _mouseService: IMouseService,\n @IOptionsService private readonly _optionsService: IOptionsService,\n @IRenderService private readonly _renderService: IRenderService,\n @ICoreBrowserService private readonly _coreBrowserService: ICoreBrowserService\n ) {\n super();\n\n // Init listeners\n this._mouseMoveListener = event => this._handleMouseMove(event as MouseEvent);\n this._mouseUpListener = event => this._handleMouseUp(event as MouseEvent);\n this._coreService.onUserInput(() => {\n if (this.hasSelection) {\n this.clearSelection();\n }\n });\n this._trimListener = this._bufferService.buffer.lines.onTrim(amount => this._handleTrim(amount));\n this._register(this._bufferService.buffers.onBufferActivate(e => this._handleBufferActivate(e)));\n\n this.enable();\n\n this._model = new SelectionModel(this._bufferService);\n this._activeSelectionMode = SelectionMode.NORMAL;\n\n this._register(toDisposable(() => {\n this._removeMouseDownListeners();\n }));\n }\n\n public reset(): void {\n this.clearSelection();\n }\n\n /**\n * Disables the selection manager. This is useful for when terminal mouse\n * are enabled.\n */\n public disable(): void {\n this.clearSelection();\n this._enabled = false;\n }\n\n /**\n * Enable the selection manager.\n */\n public enable(): void {\n this._enabled = true;\n }\n\n public get selectionStart(): [number, number] | undefined { return this._model.finalSelectionStart; }\n public get selectionEnd(): [number, number] | undefined { return this._model.finalSelectionEnd; }\n\n /**\n * Gets whether there is an active text selection.\n */\n public get hasSelection(): boolean {\n const start = this._model.finalSelectionStart;\n const end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return start[0] !== end[0] || start[1] !== end[1];\n }\n\n /**\n * Gets the text currently selected.\n */\n public get selectionText(): string {\n const start = this._model.finalSelectionStart;\n const end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return '';\n }\n\n const buffer = this._bufferService.buffer;\n const result: string[] = [];\n\n if (this._activeSelectionMode === SelectionMode.COLUMN) {\n // Ignore zero width selections\n if (start[0] === end[0]) {\n return '';\n }\n\n // For column selection it's not enough to rely on final selection's swapping of reversed\n // values, it also needs the x coordinates to swap independently of the y coordinate is needed\n const startCol = start[0] < end[0] ? start[0] : end[0];\n const endCol = start[0] < end[0] ? end[0] : start[0];\n for (let i = start[1]; i <= end[1]; i++) {\n const lineText = buffer.translateBufferLineToString(i, true, startCol, endCol);\n result.push(lineText);\n }\n } else {\n // Get first row\n const startRowEndCol = start[1] === end[1] ? end[0] : undefined;\n result.push(buffer.translateBufferLineToString(start[1], true, start[0], startRowEndCol));\n\n // Get middle rows\n for (let i = start[1] + 1; i <= end[1] - 1; i++) {\n const bufferLine = buffer.lines.get(i);\n const lineText = buffer.translateBufferLineToString(i, true);\n if (bufferLine?.isWrapped) {\n result[result.length - 1] += lineText;\n } else {\n result.push(lineText);\n }\n }\n\n // Get final row\n if (start[1] !== end[1]) {\n const bufferLine = buffer.lines.get(end[1]);\n const lineText = buffer.translateBufferLineToString(end[1], true, 0, end[0]);\n if (bufferLine && bufferLine!.isWrapped) {\n result[result.length - 1] += lineText;\n } else {\n result.push(lineText);\n }\n }\n }\n\n // Format string by replacing non-breaking space chars with regular spaces\n // and joining the array into a multi-line string.\n const formattedResult = result.map(line => {\n return line.replace(ALL_NON_BREAKING_SPACE_REGEX, ' ');\n }).join(Browser.isWindows ? '\\r\\n' : '\\n');\n\n return formattedResult;\n }\n\n /**\n * Clears the current terminal selection.\n */\n public clearSelection(): void {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this.refresh();\n this._onSelectionChange.fire();\n }\n\n /**\n * Queues a refresh, redrawing the selection on the next opportunity.\n * @param isLinuxMouseSelection Whether the selection should be registered as a new\n * selection on Linux.\n */\n public refresh(isLinuxMouseSelection?: boolean): void {\n // Queue the refresh for the renderer\n if (!this._refreshAnimationFrame) {\n this._refreshAnimationFrame = this._coreBrowserService.window.requestAnimationFrame(() => this._refresh());\n }\n\n // If the platform is Linux and the refresh call comes from a mouse event,\n // we need to update the selection for middle click to paste selection.\n if (Browser.isLinux && isLinuxMouseSelection) {\n const selectionText = this.selectionText;\n if (selectionText.length) {\n this._onLinuxMouseSelection.fire(this.selectionText);\n }\n }\n }\n\n /**\n * Fires the refresh event, causing consumers to pick it up and redraw the\n * selection state.\n */\n private _refresh(): void {\n this._refreshAnimationFrame = undefined;\n this._onRedrawRequest.fire({\n start: this._model.finalSelectionStart,\n end: this._model.finalSelectionEnd,\n columnSelectMode: this._activeSelectionMode === SelectionMode.COLUMN\n });\n }\n\n /**\n * Checks if the current click was inside the current selection\n * @param event The mouse event\n */\n private _isClickInSelection(event: MouseEvent): boolean {\n const coords = this._getMouseBufferCoords(event);\n const start = this._model.finalSelectionStart;\n const end = this._model.finalSelectionEnd;\n\n if (!start || !end || !coords) {\n return false;\n }\n\n return this._areCoordsInSelection(coords, start, end);\n }\n\n public isCellInSelection(x: number, y: number): boolean {\n const start = this._model.finalSelectionStart;\n const end = this._model.finalSelectionEnd;\n if (!start || !end) {\n return false;\n }\n return this._areCoordsInSelection([x, y], start, end);\n }\n\n protected _areCoordsInSelection(coords: [number, number], start: [number, number], end: [number, number]): boolean {\n return (coords[1] > start[1] && coords[1] < end[1]) ||\n (start[1] === end[1] && coords[1] === start[1] && coords[0] >= start[0] && coords[0] < end[0]) ||\n (start[1] < end[1] && coords[1] === end[1] && coords[0] < end[0]) ||\n (start[1] < end[1] && coords[1] === start[1] && coords[0] >= start[0]);\n }\n\n /**\n * Selects word at the current mouse event coordinates.\n * @param event The mouse event.\n */\n private _selectWordAtCursor(event: MouseEvent, allowWhitespaceOnlySelection: boolean): boolean {\n // Check if there is a link under the cursor first and select that if so\n const range = this._linkifier.currentLink?.link?.range;\n if (range) {\n this._model.selectionStart = [range.start.x - 1, range.start.y - 1];\n this._model.selectionStartLength = getRangeLength(range, this._bufferService.cols);\n this._model.selectionEnd = undefined;\n return true;\n }\n\n const coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._selectWordAt(coords, allowWhitespaceOnlySelection);\n this._model.selectionEnd = undefined;\n return true;\n }\n return false;\n }\n\n /**\n * Selects all text within the terminal.\n */\n public selectAll(): void {\n this._model.isSelectAllActive = true;\n this.refresh();\n this._onSelectionChange.fire();\n }\n\n public selectLines(start: number, end: number): void {\n this._model.clearSelection();\n start = Math.max(start, 0);\n end = Math.min(end, this._bufferService.buffer.lines.length - 1);\n this._model.selectionStart = [0, start];\n this._model.selectionEnd = [this._bufferService.cols, end];\n this.refresh();\n this._onSelectionChange.fire();\n }\n\n /**\n * Handle the buffer being trimmed, adjust the selection position.\n * @param amount The amount the buffer is being trimmed.\n */\n private _handleTrim(amount: number): void {\n const needsRefresh = this._model.handleTrim(amount);\n if (needsRefresh) {\n this.refresh();\n }\n }\n\n /**\n * Gets the 0-based [x, y] buffer coordinates of the current mouse event.\n * @param event The mouse event.\n */\n private _getMouseBufferCoords(event: MouseEvent): [number, number] | undefined {\n const coords = this._mouseService.getCoords(event, this._screenElement, this._bufferService.cols, this._bufferService.rows, true);\n if (!coords) {\n return undefined;\n }\n\n // Convert to 0-based\n coords[0]--;\n coords[1]--;\n\n // Convert viewport coords to buffer coords\n coords[1] += this._bufferService.buffer.ydisp;\n return coords;\n }\n\n /**\n * Gets the amount the viewport should be scrolled based on how far out of the\n * terminal the mouse is.\n * @param event The mouse event.\n */\n private _getMouseEventScrollAmount(event: MouseEvent): number {\n let offset = getCoordsRelativeToElement(this._coreBrowserService.window, event, this._screenElement)[1];\n const terminalHeight = this._renderService.dimensions.css.canvas.height;\n if (offset >= 0 && offset <= terminalHeight) {\n return 0;\n }\n if (offset > terminalHeight) {\n offset -= terminalHeight;\n }\n\n offset = Math.min(Math.max(offset, -DRAG_SCROLL_MAX_THRESHOLD), DRAG_SCROLL_MAX_THRESHOLD);\n offset /= DRAG_SCROLL_MAX_THRESHOLD;\n return (offset / Math.abs(offset)) + Math.round(offset * (DRAG_SCROLL_MAX_SPEED - 1));\n }\n\n /**\n * Returns whether the selection manager should force selection, regardless of\n * whether the terminal is in mouse events mode.\n * @param event The mouse event.\n */\n public shouldForceSelection(event: MouseEvent): boolean {\n if (Browser.isMac) {\n return event.altKey && this._optionsService.rawOptions.macOptionClickForcesSelection;\n }\n\n return event.shiftKey;\n }\n\n /**\n * Handles te mousedown event, setting up for a new selection.\n * @param event The mousedown event.\n */\n public handleMouseDown(event: MouseEvent): void {\n this._mouseDownTimeStamp = event.timeStamp;\n // If we have selection, we want the context menu on right click even if the\n // terminal is in mouse mode.\n if (event.button === 2 && this.hasSelection) {\n return;\n }\n\n // Only action the primary button\n if (event.button !== 0) {\n return;\n }\n\n // Allow selection when using a specific modifier key, even when disabled\n if (!this._enabled) {\n if (!this.shouldForceSelection(event)) {\n return;\n }\n\n // Don't send the mouse down event to the current process, we want to select\n event.stopPropagation();\n }\n\n // Tell the browser not to start a regular selection\n event.preventDefault();\n\n // Reset drag scroll state\n this._dragScrollAmount = 0;\n\n if (this._enabled && event.shiftKey) {\n this._handleIncrementalClick(event);\n } else {\n if (event.detail === 1) {\n this._handleSingleClick(event);\n } else if (event.detail === 2) {\n this._handleDoubleClick(event);\n } else if (event.detail === 3) {\n this._handleTripleClick(event);\n }\n }\n\n this._addMouseDownListeners();\n this.refresh(true);\n }\n\n /**\n * Adds listeners when mousedown is triggered.\n */\n private _addMouseDownListeners(): void {\n // Listen on the document so that dragging outside of viewport works\n if (this._screenElement.ownerDocument) {\n this._screenElement.ownerDocument.addEventListener('mousemove', this._mouseMoveListener);\n this._screenElement.ownerDocument.addEventListener('mouseup', this._mouseUpListener);\n }\n this._dragScrollIntervalTimer = this._coreBrowserService.window.setInterval(() => this._dragScroll(), DRAG_SCROLL_INTERVAL);\n }\n\n /**\n * Removes the listeners that are registered when mousedown is triggered.\n */\n private _removeMouseDownListeners(): void {\n if (this._screenElement.ownerDocument) {\n this._screenElement.ownerDocument.removeEventListener('mousemove', this._mouseMoveListener);\n this._screenElement.ownerDocument.removeEventListener('mouseup', this._mouseUpListener);\n }\n this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer);\n this._dragScrollIntervalTimer = undefined;\n }\n\n /**\n * Performs an incremental click, setting the selection end position to the mouse\n * position.\n * @param event The mouse event.\n */\n private _handleIncrementalClick(event: MouseEvent): void {\n if (this._model.selectionStart) {\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n }\n }\n\n /**\n * Performs a single click, resetting relevant state and setting the selection\n * start position.\n * @param event The mouse event.\n */\n private _handleSingleClick(event: MouseEvent): void {\n this._model.selectionStartLength = 0;\n this._model.isSelectAllActive = false;\n this._activeSelectionMode = this.shouldColumnSelect(event) ? SelectionMode.COLUMN : SelectionMode.NORMAL;\n\n // Initialize the new selection\n this._model.selectionStart = this._getMouseBufferCoords(event);\n if (!this._model.selectionStart) {\n return;\n }\n this._model.selectionEnd = undefined;\n\n // Ensure the line exists\n const line = this._bufferService.buffer.lines.get(this._model.selectionStart[1]);\n if (!line) {\n return;\n }\n\n // Return early if the click event is not in the buffer (eg. in scroll bar)\n if (line.length === this._model.selectionStart[0]) {\n return;\n }\n\n // If the mouse is over the second half of a wide character, adjust the\n // selection to cover the whole character\n if (line.hasWidth(this._model.selectionStart[0]) === 0) {\n this._model.selectionStart[0]++;\n }\n }\n\n /**\n * Performs a double click, selecting the current word.\n * @param event The mouse event.\n */\n private _handleDoubleClick(event: MouseEvent): void {\n if (this._selectWordAtCursor(event, true)) {\n this._activeSelectionMode = SelectionMode.WORD;\n }\n }\n\n /**\n * Performs a triple click, selecting the current line and activating line\n * select mode.\n * @param event The mouse event.\n */\n private _handleTripleClick(event: MouseEvent): void {\n const coords = this._getMouseBufferCoords(event);\n if (coords) {\n this._activeSelectionMode = SelectionMode.LINE;\n this._selectLineAt(coords[1]);\n }\n }\n\n /**\n * Returns whether the selection manager should operate in column select mode\n * @param event the mouse or keyboard event\n */\n public shouldColumnSelect(event: KeyboardEvent | MouseEvent): boolean {\n return event.altKey && !(Browser.isMac && this._optionsService.rawOptions.macOptionClickForcesSelection);\n }\n\n /**\n * Handles the mousemove event when the mouse button is down, recording the\n * end of the selection and refreshing the selection.\n * @param event The mousemove event.\n */\n private _handleMouseMove(event: MouseEvent): void {\n // If the mousemove listener is active it means that a selection is\n // currently being made, we should stop propagation to prevent mouse events\n // to be sent to the pty.\n event.stopImmediatePropagation();\n\n // Do nothing if there is no selection start, this can happen if the first\n // click in the terminal is an incremental click\n if (!this._model.selectionStart) {\n return;\n }\n\n // Record the previous position so we know whether to redraw the selection\n // at the end.\n const previousSelectionEnd = this._model.selectionEnd ? [this._model.selectionEnd[0], this._model.selectionEnd[1]] : null;\n\n // Set the initial selection end based on the mouse coordinates\n this._model.selectionEnd = this._getMouseBufferCoords(event);\n if (!this._model.selectionEnd) {\n this.refresh(true);\n return;\n }\n\n // Select the entire line if line select mode is active.\n if (this._activeSelectionMode === SelectionMode.LINE) {\n if (this._model.selectionEnd[1] < this._model.selectionStart[1]) {\n this._model.selectionEnd[0] = 0;\n } else {\n this._model.selectionEnd[0] = this._bufferService.cols;\n }\n } else if (this._activeSelectionMode === SelectionMode.WORD) {\n this._selectToWordAt(this._model.selectionEnd);\n }\n\n // Determine the amount of scrolling that will happen.\n this._dragScrollAmount = this._getMouseEventScrollAmount(event);\n\n // If the cursor was above or below the viewport, make sure it's at the\n // start or end of the viewport respectively. This should only happen when\n // NOT in column select mode.\n if (this._activeSelectionMode !== SelectionMode.COLUMN) {\n if (this._dragScrollAmount > 0) {\n this._model.selectionEnd[0] = this._bufferService.cols;\n } else if (this._dragScrollAmount < 0) {\n this._model.selectionEnd[0] = 0;\n }\n }\n\n // If the character is a wide character include the cell to the right in the\n // selection. Note that selections at the very end of the line will never\n // have a character.\n const buffer = this._bufferService.buffer;\n if (this._model.selectionEnd[1] < buffer.lines.length) {\n const line = buffer.lines.get(this._model.selectionEnd[1]);\n if (line && line.hasWidth(this._model.selectionEnd[0]) === 0) {\n if (this._model.selectionEnd[0] < this._bufferService.cols) {\n this._model.selectionEnd[0]++;\n }\n }\n }\n\n // Only draw here if the selection changes.\n if (!previousSelectionEnd ||\n previousSelectionEnd[0] !== this._model.selectionEnd[0] ||\n previousSelectionEnd[1] !== this._model.selectionEnd[1]) {\n this.refresh(true);\n }\n }\n\n /**\n * The callback that occurs every DRAG_SCROLL_INTERVAL ms that does the\n * scrolling of the viewport.\n */\n private _dragScroll(): void {\n if (!this._model.selectionEnd || !this._model.selectionStart) {\n return;\n }\n if (this._dragScrollAmount) {\n this._onRequestScrollLines.fire({ amount: this._dragScrollAmount, suppressScrollEvent: false });\n // Re-evaluate selection\n // If the cursor was above or below the viewport, make sure it's at the\n // start or end of the viewport respectively. This should only happen when\n // NOT in column select mode.\n const buffer = this._bufferService.buffer;\n if (this._dragScrollAmount > 0) {\n if (this._activeSelectionMode !== SelectionMode.COLUMN) {\n this._model.selectionEnd[0] = this._bufferService.cols;\n }\n this._model.selectionEnd[1] = Math.min(buffer.ydisp + this._bufferService.rows, buffer.lines.length - 1);\n } else {\n if (this._activeSelectionMode !== SelectionMode.COLUMN) {\n this._model.selectionEnd[0] = 0;\n }\n this._model.selectionEnd[1] = buffer.ydisp;\n }\n this.refresh();\n }\n }\n\n /**\n * Handles the mouseup event, removing the mousedown listeners.\n * @param event The mouseup event.\n */\n private _handleMouseUp(event: MouseEvent): void {\n const timeElapsed = event.timeStamp - this._mouseDownTimeStamp;\n\n this._removeMouseDownListeners();\n\n if (this.selectionText.length <= 1 && timeElapsed < ALT_CLICK_MOVE_CURSOR_TIME && event.altKey && this._optionsService.rawOptions.altClickMovesCursor) {\n if (this._bufferService.buffer.ybase === this._bufferService.buffer.ydisp) {\n const coordinates = this._mouseService.getCoords(\n event,\n this._element,\n this._bufferService.cols,\n this._bufferService.rows,\n false\n );\n if (coordinates && coordinates[0] !== undefined && coordinates[1] !== undefined) {\n const sequence = moveToCellSequence(coordinates[0] - 1, coordinates[1] - 1, this._bufferService, this._coreService.decPrivateModes.applicationCursorKeys);\n this._coreService.triggerDataEvent(sequence, true);\n }\n }\n } else {\n this._fireEventIfSelectionChanged();\n }\n }\n\n private _fireEventIfSelectionChanged(): void {\n const start = this._model.finalSelectionStart;\n const end = this._model.finalSelectionEnd;\n const hasSelection = !!start && !!end && (start[0] !== end[0] || start[1] !== end[1]);\n\n if (!hasSelection) {\n if (this._oldHasSelection) {\n this._fireOnSelectionChange(start, end, hasSelection);\n }\n return;\n }\n\n // Sanity check, these should not be undefined as there is a selection\n if (!start || !end) {\n return;\n }\n\n if (!this._oldSelectionStart || !this._oldSelectionEnd || (\n start[0] !== this._oldSelectionStart[0] || start[1] !== this._oldSelectionStart[1] ||\n end[0] !== this._oldSelectionEnd[0] || end[1] !== this._oldSelectionEnd[1])) {\n\n this._fireOnSelectionChange(start, end, hasSelection);\n }\n }\n\n private _fireOnSelectionChange(start: [number, number] | undefined, end: [number, number] | undefined, hasSelection: boolean): void {\n this._oldSelectionStart = start;\n this._oldSelectionEnd = end;\n this._oldHasSelection = hasSelection;\n this._onSelectionChange.fire();\n }\n\n private _handleBufferActivate(e: {activeBuffer: IBuffer, inactiveBuffer: IBuffer}): void {\n this.clearSelection();\n // Only adjust the selection on trim, shiftElements is rarely used (only in\n // reverseIndex) and delete in a splice is only ever used when the same\n // number of elements was just added. Given this is could actually be\n // beneficial to leave the selection as is for these cases.\n this._trimListener.dispose();\n this._trimListener = e.activeBuffer.lines.onTrim(amount => this._handleTrim(amount));\n }\n\n /**\n * Converts a viewport column (0 to cols - 1) to the character index on the\n * buffer line, the latter takes into account wide and null characters.\n * @param bufferLine The buffer line to use.\n * @param x The x index in the buffer line to convert.\n */\n private _convertViewportColToCharacterIndex(bufferLine: IBufferLine, x: number): number {\n let charIndex = x;\n for (let i = 0; x >= i; i++) {\n const length = bufferLine.loadCell(i, this._workCell).getChars().length;\n if (this._workCell.getWidth() === 0) {\n // Wide characters aren't included in the line string so decrement the\n // index so the index is back on the wide character.\n charIndex--;\n } else if (length > 1 && x !== i) {\n // Emojis take up multiple characters, so adjust accordingly. For these\n // we don't want ot include the character at the column as we're\n // returning the start index in the string, not the end index.\n charIndex += length - 1;\n }\n }\n return charIndex;\n }\n\n public setSelection(col: number, row: number, length: number): void {\n this._model.clearSelection();\n this._removeMouseDownListeners();\n this._model.selectionStart = [col, row];\n this._model.selectionStartLength = length;\n this.refresh();\n this._fireEventIfSelectionChanged();\n }\n\n public rightClickSelect(ev: MouseEvent): void {\n if (!this._isClickInSelection(ev)) {\n if (this._selectWordAtCursor(ev, false)) {\n this.refresh(true);\n }\n this._fireEventIfSelectionChanged();\n }\n }\n\n /**\n * Gets positional information for the word at the coordinated specified.\n * @param coords The coordinates to get the word at.\n */\n private _getWordAt(coords: [number, number], allowWhitespaceOnlySelection: boolean, followWrappedLinesAbove: boolean = true, followWrappedLinesBelow: boolean = true): IWordPosition | undefined {\n // Ensure coords are within viewport (eg. not within scroll bar)\n if (coords[0] >= this._bufferService.cols) {\n return undefined;\n }\n\n const buffer = this._bufferService.buffer;\n const bufferLine = buffer.lines.get(coords[1]);\n if (!bufferLine) {\n return undefined;\n }\n\n const line = buffer.translateBufferLineToString(coords[1], false);\n\n // Get actual index, taking into consideration wide characters\n let startIndex = this._convertViewportColToCharacterIndex(bufferLine, coords[0]);\n let endIndex = startIndex;\n\n // Record offset to be used later\n const charOffset = coords[0] - startIndex;\n let leftWideCharCount = 0;\n let rightWideCharCount = 0;\n let leftLongCharOffset = 0;\n let rightLongCharOffset = 0;\n\n if (line.charAt(startIndex) === ' ') {\n // Expand until non-whitespace is hit\n while (startIndex > 0 && line.charAt(startIndex - 1) === ' ') {\n startIndex--;\n }\n while (endIndex < line.length && line.charAt(endIndex + 1) === ' ') {\n endIndex++;\n }\n } else {\n // Expand until whitespace is hit. This algorithm works by scanning left\n // and right from the starting position, keeping both the index format\n // (line) and the column format (bufferLine) in sync. When a wide\n // character is hit, it is recorded and the column index is adjusted.\n let startCol = coords[0];\n let endCol = coords[0];\n\n // Consider the initial position, skip it and increment the wide char\n // variable\n if (bufferLine.getWidth(startCol) === 0) {\n leftWideCharCount++;\n startCol--;\n }\n if (bufferLine.getWidth(endCol) === 2) {\n rightWideCharCount++;\n endCol++;\n }\n\n // Adjust the end index for characters whose length are > 1 (emojis)\n const length = bufferLine.getString(endCol).length;\n if (length > 1) {\n rightLongCharOffset += length - 1;\n endIndex += length - 1;\n }\n\n // Expand the string in both directions until a space is hit\n while (startCol > 0 && startIndex > 0 && !this._isCharWordSeparator(bufferLine.loadCell(startCol - 1, this._workCell))) {\n bufferLine.loadCell(startCol - 1, this._workCell);\n const length = this._workCell.getChars().length;\n if (this._workCell.getWidth() === 0) {\n // If the next character is a wide char, record it and skip the column\n leftWideCharCount++;\n startCol--;\n } else if (length > 1) {\n // If the next character's string is longer than 1 char (eg. emoji),\n // adjust the index\n leftLongCharOffset += length - 1;\n startIndex -= length - 1;\n }\n startIndex--;\n startCol--;\n }\n while (endCol < bufferLine.length && endIndex + 1 < line.length && !this._isCharWordSeparator(bufferLine.loadCell(endCol + 1, this._workCell))) {\n bufferLine.loadCell(endCol + 1, this._workCell);\n const length = this._workCell.getChars().length;\n if (this._workCell.getWidth() === 2) {\n // If the next character is a wide char, record it and skip the column\n rightWideCharCount++;\n endCol++;\n } else if (length > 1) {\n // If the next character's string is longer than 1 char (eg. emoji),\n // adjust the index\n rightLongCharOffset += length - 1;\n endIndex += length - 1;\n }\n endIndex++;\n endCol++;\n }\n }\n\n // Incremenet the end index so it is at the start of the next character\n endIndex++;\n\n // Calculate the start _column_, converting the the string indexes back to\n // column coordinates.\n let start =\n startIndex // The index of the selection's start char in the line string\n + charOffset // The difference between the initial char's column and index\n - leftWideCharCount // The number of wide chars left of the initial char\n + leftLongCharOffset; // The number of additional chars left of the initial char added by columns with strings longer than 1 (emojis)\n\n // Calculate the length in _columns_, converting the the string indexes back\n // to column coordinates.\n let length = Math.min(this._bufferService.cols, // Disallow lengths larger than the terminal cols\n endIndex // The index of the selection's end char in the line string\n - startIndex // The index of the selection's start char in the line string\n + leftWideCharCount // The number of wide chars left of the initial char\n + rightWideCharCount // The number of wide chars right of the initial char (inclusive)\n - leftLongCharOffset // The number of additional chars left of the initial char added by columns with strings longer than 1 (emojis)\n - rightLongCharOffset); // The number of additional chars right of the initial char (inclusive) added by columns with strings longer than 1 (emojis)\n\n if (!allowWhitespaceOnlySelection && line.slice(startIndex, endIndex).trim() === '') {\n return undefined;\n }\n\n // Recurse upwards if the line is wrapped and the word wraps to the above line\n if (followWrappedLinesAbove) {\n if (start === 0 && bufferLine.getCodePoint(0) !== 32 /* ' ' */) {\n const previousBufferLine = buffer.lines.get(coords[1] - 1);\n if (previousBufferLine && bufferLine.isWrapped && previousBufferLine.getCodePoint(this._bufferService.cols - 1) !== 32 /* ' ' */) {\n const previousLineWordPosition = this._getWordAt([this._bufferService.cols - 1, coords[1] - 1], false, true, false);\n if (previousLineWordPosition) {\n const offset = this._bufferService.cols - previousLineWordPosition.start;\n start -= offset;\n length += offset;\n }\n }\n }\n }\n\n // Recurse downwards if the line is wrapped and the word wraps to the next line\n if (followWrappedLinesBelow) {\n if (start + length === this._bufferService.cols && bufferLine.getCodePoint(this._bufferService.cols - 1) !== 32 /* ' ' */) {\n const nextBufferLine = buffer.lines.get(coords[1] + 1);\n if (nextBufferLine?.isWrapped && nextBufferLine.getCodePoint(0) !== 32 /* ' ' */) {\n const nextLineWordPosition = this._getWordAt([0, coords[1] + 1], false, false, true);\n if (nextLineWordPosition) {\n length += nextLineWordPosition.length;\n }\n }\n }\n }\n\n return { start, length };\n }\n\n /**\n * Selects the word at the coordinates specified.\n * @param coords The coordinates to get the word at.\n * @param allowWhitespaceOnlySelection If whitespace should be selected\n */\n protected _selectWordAt(coords: [number, number], allowWhitespaceOnlySelection: boolean): void {\n const wordPosition = this._getWordAt(coords, allowWhitespaceOnlySelection);\n if (wordPosition) {\n // Adjust negative start value\n while (wordPosition.start < 0) {\n wordPosition.start += this._bufferService.cols;\n coords[1]--;\n }\n this._model.selectionStart = [wordPosition.start, coords[1]];\n this._model.selectionStartLength = wordPosition.length;\n }\n }\n\n /**\n * Sets the selection end to the word at the coordinated specified.\n * @param coords The coordinates to get the word at.\n */\n private _selectToWordAt(coords: [number, number]): void {\n const wordPosition = this._getWordAt(coords, true);\n if (wordPosition) {\n let endRow = coords[1];\n\n // Adjust negative start value\n while (wordPosition.start < 0) {\n wordPosition.start += this._bufferService.cols;\n endRow--;\n }\n\n // Adjust wrapped length value, this only needs to happen when values are reversed as in that\n // case we're interested in the start of the word, not the end\n if (!this._model.areSelectionValuesReversed()) {\n while (wordPosition.start + wordPosition.length > this._bufferService.cols) {\n wordPosition.length -= this._bufferService.cols;\n endRow++;\n }\n }\n\n this._model.selectionEnd = [this._model.areSelectionValuesReversed() ? wordPosition.start : wordPosition.start + wordPosition.length, endRow];\n }\n }\n\n /**\n * Gets whether the character is considered a word separator by the select\n * word logic.\n * @param cell The cell to check.\n */\n private _isCharWordSeparator(cell: CellData): boolean {\n // Zero width characters are never separators as they are always to the\n // right of wide characters\n if (cell.getWidth() === 0) {\n return false;\n }\n return this._optionsService.rawOptions.wordSeparator.indexOf(cell.getChars()) >= 0;\n }\n\n /**\n * Selects the line specified.\n * @param line The line index.\n */\n protected _selectLineAt(line: number): void {\n const wrappedRange = this._bufferService.buffer.getWrappedRangeForLine(line);\n const range: IBufferRange = {\n start: { x: 0, y: wrappedRange.first },\n end: { x: this._bufferService.cols - 1, y: wrappedRange.last }\n };\n this._model.selectionStart = [0, wrappedRange.first];\n this._model.selectionEnd = undefined;\n this._model.selectionStartLength = getRangeLength(range, this._bufferService.cols);\n }\n}\n","/**\n * Copyright (c) 2019 The xterm.js authors. All rights reserved.\n * @license MIT\n */\n\nimport { IRenderDimensions, IRenderer } from 'browser/renderer/shared/Types';\nimport { IColorSet, ILink, ReadonlyColorSet } from 'browser/Types';\nimport { ISelectionRedrawRequestEvent as ISelectionRequestRedrawEvent, ISelectionRequestScrollLinesEvent } from 'browser/selection/Types';\nimport { createDecorator } from 'common/services/ServiceRegistry';\nimport { AllColorIndex, IDisposable } from 'common/Types';\nimport type { Event } from 'vs/base/common/event';\n\nexport const ICharSizeService = createDecorator('CharSizeService');\nexport interface ICharSizeService {\n serviceBrand: undefined;\n\n readonly width: number;\n readonly height: number;\n readonly hasValidSize: boolean;\n\n readonly onCharSizeChange: Event;\n\n measure(): void;\n}\n\nexport const ICoreBrowserService = createDecorator('CoreBrowserService');\nexport interface ICoreBrowserService {\n serviceBrand: undefined;\n\n readonly isFocused: boolean;\n\n readonly onDprChange: Event;\n readonly onWindowChange: Event;\n\n /**\n * Gets or sets the parent window that the terminal is rendered into. DOM and rendering APIs (e.g.\n * requestAnimationFrame) should be invoked in the context of this window. This should be set when\n * the window hosting the xterm.js instance changes.\n */\n window: Window & typeof globalThis;\n /**\n * The document of the primary window to be used to create elements when working with multiple\n * windows. This is defined by the documentOverride setting.\n */\n readonly mainDocument: Document;\n /**\n * Helper for getting the devicePixelRatio of the parent window.\n */\n readonly dpr: number;\n}\n\nexport const IMouseService = createDecorator('MouseService');\nexport interface IMouseService {\n serviceBrand: undefined;\n\n getCoords(event: {clientX: number, clientY: number}, element: HTMLElement, colCount: number, rowCount: number, isSelection?: boolean): [number, number] | undefined;\n getMouseReportCoords(event: MouseEvent, element: HTMLElement): { col: number, row: number, x: number, y: number } | undefined;\n}\n\nexport const IRenderService = createDecorator('RenderService');\nexport interface IRenderService extends IDisposable {\n serviceBrand: undefined;\n\n onDimensionsChange: Event;\n /**\n * Fires when buffer changes are rendered. This does not fire when only cursor\n * or selections are rendered.\n */\n onRenderedViewportChange: Event<{ start: number, end: number }>;\n /**\n * Fires on render\n */\n onRender: Event<{ start: number, end: number }>;\n onRefreshRequest: Event<{ start: number, end: number }>;\n\n dimensions: IRenderDimensions;\n\n addRefreshCallback(callback: FrameRequestCallback): number;\n\n refreshRows(start: number, end: number): void;\n clearTextureAtlas(): void;\n resize(cols: number, rows: number): void;\n hasRenderer(): boolean;\n setRenderer(renderer: IRenderer): void;\n handleDevicePixelRatioChange(): void;\n handleResize(cols: number, rows: number): void;\n handleCharSizeChanged(): void;\n handleBlur(): void;\n handleFocus(): void;\n handleSelectionChanged(start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode: boolean): void;\n handleCursorMove(): void;\n clear(): void;\n}\n\nexport const ISelectionService = createDecorator('SelectionService');\nexport interface ISelectionService {\n serviceBrand: undefined;\n\n readonly selectionText: string;\n readonly hasSelection: boolean;\n readonly selectionStart: [number, number] | undefined;\n readonly selectionEnd: [number, number] | undefined;\n\n readonly onLinuxMouseSelection: Event;\n readonly onRequestRedraw: Event;\n readonly onRequestScrollLines: Event;\n readonly onSelectionChange: Event;\n\n disable(): void;\n enable(): void;\n reset(): void;\n setSelection(row: number, col: number, length: number): void;\n selectAll(): void;\n selectLines(start: number, end: number): void;\n clearSelection(): void;\n rightClickSelect(event: MouseEvent): void;\n shouldColumnSelect(event: KeyboardEvent | MouseEvent): boolean;\n shouldForceSelection(event: MouseEvent): boolean;\n refresh(isLinuxMouseSelection?: boolean): void;\n handleMouseDown(event: MouseEvent): void;\n isCellInSelection(x: number, y: number): boolean;\n}\n\nexport const ICharacterJoinerService = createDecorator('CharacterJoinerService');\nexport interface ICharacterJoinerService {\n serviceBrand: undefined;\n\n register(handler: (text: string) => [number, number][]): number;\n deregister(joinerId: number): boolean;\n getJoinedCharacters(row: number): [number, number][];\n}\n\nexport const IThemeService = createDecorator('ThemeService');\nexport interface IThemeService {\n serviceBrand: undefined;\n\n readonly colors: ReadonlyColorSet;\n\n readonly onChangeColors: Event;\n\n restoreColor(slot?: AllColorIndex): void;\n /**\n * Allows external modifying of colors in the theme, this is used instead of {@link colors} to\n * prevent accidental writes.\n */\n modifyColors(callback: (colors: IColorSet) => void): void;\n}\n\n\nexport const ILinkProviderService = createDecorator