ComfyUI/web/assets/TerminalOutputDrawer-CKr7Br7O.js
Comfy Org PR Bot d0399f4343
Update frontend to v1.9.18 (#6828)
Co-authored-by: huchenlei <20929282+huchenlei@users.noreply.github.com>
2025-02-16 11:45:47 -05:00

1062 lines
55 KiB
JavaScript
Vendored
Generated

var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
import { bG as BaseStyle, bH as script$2, bZ as ZIndex, bU as addClass, bL as focus, cy as blockBodyScroll, cA as unblockBodyScroll, cB as FocusTrap, l as script$3, ca as script$4, cl as script$5, bR as resolveComponent, r as resolveDirective, o as openBlock, y as createBlock, z as withCtx, f as createElementBlock, at as mergeProps, k as createVNode, bI as Transition, i as withDirectives, A as renderSlot, F as Fragment, m as createBaseVNode, aj as normalizeClass, E as toDisplayString, B as createCommentVNode, C as resolveDynamicComponent, dd as commonjsGlobal, de as getDefaultExportFromCjs, H as markRaw, df as xtermExports, p as onMounted, d8 as onUnmounted, d as defineComponent, bw as mergeModels, bq as useModel, bp as BaseTerminal, j as unref, b9 as electronAPI } from "./index-Bv0b06LE.js";
var theme = /* @__PURE__ */ __name(function theme2(_ref) {
var dt = _ref.dt;
return "\n.p-drawer {\n display: flex;\n flex-direction: column;\n transform: translate3d(0px, 0px, 0px);\n position: relative;\n transition: transform 0.3s;\n background: ".concat(dt("drawer.background"), ";\n color: ").concat(dt("drawer.color"), ";\n border: 1px solid ").concat(dt("drawer.border.color"), ";\n box-shadow: ").concat(dt("drawer.shadow"), ";\n}\n\n.p-drawer-content {\n overflow-y: auto;\n flex-grow: 1;\n padding: ").concat(dt("drawer.content.padding"), ";\n}\n\n.p-drawer-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-shrink: 0;\n padding: ").concat(dt("drawer.header.padding"), ";\n}\n\n.p-drawer-footer {\n padding: ").concat(dt("drawer.footer.padding"), ";\n}\n\n.p-drawer-title {\n font-weight: ").concat(dt("drawer.title.font.weight"), ";\n font-size: ").concat(dt("drawer.title.font.size"), ";\n}\n\n.p-drawer-full .p-drawer {\n transition: none;\n transform: none;\n width: 100vw !important;\n height: 100vh !important;\n max-height: 100%;\n top: 0px !important;\n left: 0px !important;\n border-width: 1px;\n}\n\n.p-drawer-left .p-drawer-enter-from,\n.p-drawer-left .p-drawer-leave-to {\n transform: translateX(-100%);\n}\n\n.p-drawer-right .p-drawer-enter-from,\n.p-drawer-right .p-drawer-leave-to {\n transform: translateX(100%);\n}\n\n.p-drawer-top .p-drawer-enter-from,\n.p-drawer-top .p-drawer-leave-to {\n transform: translateY(-100%);\n}\n\n.p-drawer-bottom .p-drawer-enter-from,\n.p-drawer-bottom .p-drawer-leave-to {\n transform: translateY(100%);\n}\n\n.p-drawer-full .p-drawer-enter-from,\n.p-drawer-full .p-drawer-leave-to {\n opacity: 0;\n}\n\n.p-drawer-full .p-drawer-enter-active,\n.p-drawer-full .p-drawer-leave-active {\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n}\n\n.p-drawer-left .p-drawer {\n width: 20rem;\n height: 100%;\n border-inline-end-width: 1px;\n}\n\n.p-drawer-right .p-drawer {\n width: 20rem;\n height: 100%;\n border-inline-start-width: 1px;\n}\n\n.p-drawer-top .p-drawer {\n height: 10rem;\n width: 100%;\n border-block-end-width: 1px;\n}\n\n.p-drawer-bottom .p-drawer {\n height: 10rem;\n width: 100%;\n border-block-start-width: 1px;\n}\n\n.p-drawer-left .p-drawer-content,\n.p-drawer-right .p-drawer-content,\n.p-drawer-top .p-drawer-content,\n.p-drawer-bottom .p-drawer-content {\n width: 100%;\n height: 100%;\n}\n\n.p-drawer-open {\n display: flex;\n}\n\n.p-drawer-mask:dir(rtl) {\n flex-direction: row-reverse;\n}\n");
}, "theme");
var inlineStyles = {
mask: /* @__PURE__ */ __name(function mask(_ref2) {
var position = _ref2.position, modal = _ref2.modal;
return {
position: "fixed",
height: "100%",
width: "100%",
left: 0,
top: 0,
display: "flex",
justifyContent: position === "left" ? "flex-start" : position === "right" ? "flex-end" : "center",
alignItems: position === "top" ? "flex-start" : position === "bottom" ? "flex-end" : "center",
pointerEvents: modal ? "auto" : "none"
};
}, "mask"),
root: {
pointerEvents: "auto"
}
};
var classes = {
mask: /* @__PURE__ */ __name(function mask2(_ref3) {
var instance = _ref3.instance, props = _ref3.props;
var positions = ["left", "right", "top", "bottom"];
var pos = positions.find(function(item) {
return item === props.position;
});
return ["p-drawer-mask", {
"p-overlay-mask p-overlay-mask-enter": props.modal,
"p-drawer-open": instance.containerVisible,
"p-drawer-full": instance.fullScreen
}, pos ? "p-drawer-".concat(pos) : ""];
}, "mask"),
root: /* @__PURE__ */ __name(function root(_ref4) {
var instance = _ref4.instance;
return ["p-drawer p-component", {
"p-drawer-full": instance.fullScreen
}];
}, "root"),
header: "p-drawer-header",
title: "p-drawer-title",
pcCloseButton: "p-drawer-close-button",
content: "p-drawer-content",
footer: "p-drawer-footer"
};
var DrawerStyle = BaseStyle.extend({
name: "drawer",
theme,
classes,
inlineStyles
});
var script$1 = {
name: "BaseDrawer",
"extends": script$2,
props: {
visible: {
type: Boolean,
"default": false
},
position: {
type: String,
"default": "left"
},
header: {
type: null,
"default": null
},
baseZIndex: {
type: Number,
"default": 0
},
autoZIndex: {
type: Boolean,
"default": true
},
dismissable: {
type: Boolean,
"default": true
},
showCloseIcon: {
type: Boolean,
"default": true
},
closeButtonProps: {
type: Object,
"default": /* @__PURE__ */ __name(function _default() {
return {
severity: "secondary",
text: true,
rounded: true
};
}, "_default")
},
closeIcon: {
type: String,
"default": void 0
},
modal: {
type: Boolean,
"default": true
},
blockScroll: {
type: Boolean,
"default": false
}
},
style: DrawerStyle,
provide: /* @__PURE__ */ __name(function provide() {
return {
$pcDrawer: this,
$parentInstance: this
};
}, "provide")
};
var script = {
name: "Drawer",
"extends": script$1,
inheritAttrs: false,
emits: ["update:visible", "show", "after-show", "hide", "after-hide"],
data: /* @__PURE__ */ __name(function data() {
return {
containerVisible: this.visible
};
}, "data"),
container: null,
mask: null,
content: null,
headerContainer: null,
footerContainer: null,
closeButton: null,
outsideClickListener: null,
documentKeydownListener: null,
watch: {
dismissable: /* @__PURE__ */ __name(function dismissable(newValue) {
if (newValue) {
this.enableDocumentSettings();
} else {
this.disableDocumentSettings();
}
}, "dismissable")
},
updated: /* @__PURE__ */ __name(function updated() {
if (this.visible) {
this.containerVisible = this.visible;
}
}, "updated"),
beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount() {
this.disableDocumentSettings();
if (this.mask && this.autoZIndex) {
ZIndex.clear(this.mask);
}
this.container = null;
this.mask = null;
}, "beforeUnmount"),
methods: {
hide: /* @__PURE__ */ __name(function hide() {
this.$emit("update:visible", false);
}, "hide"),
onEnter: /* @__PURE__ */ __name(function onEnter() {
this.$emit("show");
this.focus();
this.bindDocumentKeyDownListener();
if (this.autoZIndex) {
ZIndex.set("modal", this.mask, this.baseZIndex || this.$primevue.config.zIndex.modal);
}
}, "onEnter"),
onAfterEnter: /* @__PURE__ */ __name(function onAfterEnter() {
this.enableDocumentSettings();
this.$emit("after-show");
}, "onAfterEnter"),
onBeforeLeave: /* @__PURE__ */ __name(function onBeforeLeave() {
if (this.modal) {
!this.isUnstyled && addClass(this.mask, "p-overlay-mask-leave");
}
}, "onBeforeLeave"),
onLeave: /* @__PURE__ */ __name(function onLeave() {
this.$emit("hide");
}, "onLeave"),
onAfterLeave: /* @__PURE__ */ __name(function onAfterLeave() {
if (this.autoZIndex) {
ZIndex.clear(this.mask);
}
this.unbindDocumentKeyDownListener();
this.containerVisible = false;
this.disableDocumentSettings();
this.$emit("after-hide");
}, "onAfterLeave"),
onMaskClick: /* @__PURE__ */ __name(function onMaskClick(event) {
if (this.dismissable && this.modal && this.mask === event.target) {
this.hide();
}
}, "onMaskClick"),
focus: /* @__PURE__ */ __name(function focus$1() {
var findFocusableElement = /* @__PURE__ */ __name(function findFocusableElement2(container) {
return container && container.querySelector("[autofocus]");
}, "findFocusableElement");
var focusTarget = this.$slots.header && findFocusableElement(this.headerContainer);
if (!focusTarget) {
focusTarget = this.$slots["default"] && findFocusableElement(this.container);
if (!focusTarget) {
focusTarget = this.$slots.footer && findFocusableElement(this.footerContainer);
if (!focusTarget) {
focusTarget = this.closeButton;
}
}
}
focusTarget && focus(focusTarget);
}, "focus$1"),
enableDocumentSettings: /* @__PURE__ */ __name(function enableDocumentSettings() {
if (this.dismissable && !this.modal) {
this.bindOutsideClickListener();
}
if (this.blockScroll) {
blockBodyScroll();
}
}, "enableDocumentSettings"),
disableDocumentSettings: /* @__PURE__ */ __name(function disableDocumentSettings() {
this.unbindOutsideClickListener();
if (this.blockScroll) {
unblockBodyScroll();
}
}, "disableDocumentSettings"),
onKeydown: /* @__PURE__ */ __name(function onKeydown(event) {
if (event.code === "Escape") {
this.hide();
}
}, "onKeydown"),
containerRef: /* @__PURE__ */ __name(function containerRef(el) {
this.container = el;
}, "containerRef"),
maskRef: /* @__PURE__ */ __name(function maskRef(el) {
this.mask = el;
}, "maskRef"),
contentRef: /* @__PURE__ */ __name(function contentRef(el) {
this.content = el;
}, "contentRef"),
headerContainerRef: /* @__PURE__ */ __name(function headerContainerRef(el) {
this.headerContainer = el;
}, "headerContainerRef"),
footerContainerRef: /* @__PURE__ */ __name(function footerContainerRef(el) {
this.footerContainer = el;
}, "footerContainerRef"),
closeButtonRef: /* @__PURE__ */ __name(function closeButtonRef(el) {
this.closeButton = el ? el.$el : void 0;
}, "closeButtonRef"),
bindDocumentKeyDownListener: /* @__PURE__ */ __name(function bindDocumentKeyDownListener() {
if (!this.documentKeydownListener) {
this.documentKeydownListener = this.onKeydown;
document.addEventListener("keydown", this.documentKeydownListener);
}
}, "bindDocumentKeyDownListener"),
unbindDocumentKeyDownListener: /* @__PURE__ */ __name(function unbindDocumentKeyDownListener() {
if (this.documentKeydownListener) {
document.removeEventListener("keydown", this.documentKeydownListener);
this.documentKeydownListener = null;
}
}, "unbindDocumentKeyDownListener"),
bindOutsideClickListener: /* @__PURE__ */ __name(function bindOutsideClickListener() {
var _this = this;
if (!this.outsideClickListener) {
this.outsideClickListener = function(event) {
if (_this.isOutsideClicked(event)) {
_this.hide();
}
};
document.addEventListener("click", this.outsideClickListener);
}
}, "bindOutsideClickListener"),
unbindOutsideClickListener: /* @__PURE__ */ __name(function unbindOutsideClickListener() {
if (this.outsideClickListener) {
document.removeEventListener("click", this.outsideClickListener);
this.outsideClickListener = null;
}
}, "unbindOutsideClickListener"),
isOutsideClicked: /* @__PURE__ */ __name(function isOutsideClicked(event) {
return this.container && !this.container.contains(event.target);
}, "isOutsideClicked")
},
computed: {
fullScreen: /* @__PURE__ */ __name(function fullScreen() {
return this.position === "full";
}, "fullScreen"),
closeAriaLabel: /* @__PURE__ */ __name(function closeAriaLabel() {
return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : void 0;
}, "closeAriaLabel")
},
directives: {
focustrap: FocusTrap
},
components: {
Button: script$3,
Portal: script$4,
TimesIcon: script$5
}
};
var _hoisted_1 = ["aria-modal"];
function render(_ctx, _cache, $props, $setup, $data, $options) {
var _component_Button = resolveComponent("Button");
var _component_Portal = resolveComponent("Portal");
var _directive_focustrap = resolveDirective("focustrap");
return openBlock(), createBlock(_component_Portal, null, {
"default": withCtx(function() {
return [$data.containerVisible ? (openBlock(), createElementBlock("div", mergeProps({
key: 0,
ref: $options.maskRef,
onMousedown: _cache[0] || (_cache[0] = function() {
return $options.onMaskClick && $options.onMaskClick.apply($options, arguments);
}),
"class": _ctx.cx("mask"),
style: _ctx.sx("mask", true, {
position: _ctx.position,
modal: _ctx.modal
})
}, _ctx.ptm("mask")), [createVNode(Transition, mergeProps({
name: "p-drawer",
onEnter: $options.onEnter,
onAfterEnter: $options.onAfterEnter,
onBeforeLeave: $options.onBeforeLeave,
onLeave: $options.onLeave,
onAfterLeave: $options.onAfterLeave,
appear: ""
}, _ctx.ptm("transition")), {
"default": withCtx(function() {
return [_ctx.visible ? withDirectives((openBlock(), createElementBlock("div", mergeProps({
key: 0,
ref: $options.containerRef,
"class": _ctx.cx("root"),
style: _ctx.sx("root"),
role: "complementary",
"aria-modal": _ctx.modal
}, _ctx.ptmi("root")), [_ctx.$slots.container ? renderSlot(_ctx.$slots, "container", {
key: 0,
closeCallback: $options.hide
}) : (openBlock(), createElementBlock(Fragment, {
key: 1
}, [createBaseVNode("div", mergeProps({
ref: $options.headerContainerRef,
"class": _ctx.cx("header")
}, _ctx.ptm("header")), [renderSlot(_ctx.$slots, "header", {
"class": normalizeClass(_ctx.cx("title"))
}, function() {
return [_ctx.header ? (openBlock(), createElementBlock("div", mergeProps({
key: 0,
"class": _ctx.cx("title")
}, _ctx.ptm("title")), toDisplayString(_ctx.header), 17)) : createCommentVNode("", true)];
}), _ctx.showCloseIcon ? (openBlock(), createBlock(_component_Button, mergeProps({
key: 0,
ref: $options.closeButtonRef,
type: "button",
"class": _ctx.cx("pcCloseButton"),
"aria-label": $options.closeAriaLabel,
unstyled: _ctx.unstyled,
onClick: $options.hide
}, _ctx.closeButtonProps, {
pt: _ctx.ptm("pcCloseButton"),
"data-pc-group-section": "iconcontainer"
}), {
icon: withCtx(function(slotProps) {
return [renderSlot(_ctx.$slots, "closeicon", {}, function() {
return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.closeIcon ? "span" : "TimesIcon"), mergeProps({
"class": [_ctx.closeIcon, slotProps["class"]]
}, _ctx.ptm("pcCloseButton")["icon"]), null, 16, ["class"]))];
})];
}),
_: 3
}, 16, ["class", "aria-label", "unstyled", "onClick", "pt"])) : createCommentVNode("", true)], 16), createBaseVNode("div", mergeProps({
ref: $options.contentRef,
"class": _ctx.cx("content")
}, _ctx.ptm("content")), [renderSlot(_ctx.$slots, "default")], 16), _ctx.$slots.footer ? (openBlock(), createElementBlock("div", mergeProps({
key: 0,
ref: $options.footerContainerRef,
"class": _ctx.cx("footer")
}, _ctx.ptm("footer")), [renderSlot(_ctx.$slots, "footer")], 16)) : createCommentVNode("", true)], 64))], 16, _hoisted_1)), [[_directive_focustrap]]) : createCommentVNode("", true)];
}),
_: 3
}, 16, ["onEnter", "onAfterEnter", "onBeforeLeave", "onLeave", "onAfterLeave"])], 16)) : createCommentVNode("", true)];
}),
_: 3
});
}
__name(render, "render");
script.render = render;
var addonSerialize$2 = { exports: {} };
var addonSerialize = addonSerialize$2.exports;
(function(module, exports) {
!function(e, t) {
true ? module.exports = t() : false ? (void 0)([], t) : true ? exports.SerializeAddon = t() : e.SerializeAddon = t();
}(commonjsGlobal, () => (() => {
"use strict";
var e = { 930: (e2, t2, s2) => {
Object.defineProperty(t2, "__esModule", { value: true }), t2.ColorContrastCache = void 0;
const r2 = s2(485);
t2.ColorContrastCache = class {
constructor() {
this._color = new r2.TwoKeyMap(), this._css = new r2.TwoKeyMap();
}
setCss(e3, t3, s3) {
this._css.set(e3, t3, s3);
}
getCss(e3, t3) {
return this._css.get(e3, t3);
}
setColor(e3, t3, s3) {
this._color.set(e3, t3, s3);
}
getColor(e3, t3) {
return this._color.get(e3, t3);
}
clear() {
this._color.clear(), this._css.clear();
}
};
}, 997: function(e2, t2, s2) {
var r2 = this && this.__decorate || function(e3, t3, s3, r3) {
var o2, i2 = arguments.length, n2 = i2 < 3 ? t3 : null === r3 ? r3 = Object.getOwnPropertyDescriptor(t3, s3) : r3;
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) n2 = Reflect.decorate(e3, t3, s3, r3);
else for (var l2 = e3.length - 1; l2 >= 0; l2--) (o2 = e3[l2]) && (n2 = (i2 < 3 ? o2(n2) : i2 > 3 ? o2(t3, s3, n2) : o2(t3, s3)) || n2);
return i2 > 3 && n2 && Object.defineProperty(t3, s3, n2), n2;
}, o = this && this.__param || function(e3, t3) {
return function(s3, r3) {
t3(s3, r3, e3);
};
};
Object.defineProperty(t2, "__esModule", { value: true }), t2.ThemeService = t2.DEFAULT_ANSI_COLORS = void 0;
const i = s2(930), n = s2(160), l = s2(345), a = s2(859), c = s2(97), h = n.css.toColor("#ffffff"), u = n.css.toColor("#000000"), _ = n.css.toColor("#ffffff"), d = n.css.toColor("#000000"), C = { css: "rgba(255, 255, 255, 0.3)", rgba: 4294967117 };
t2.DEFAULT_ANSI_COLORS = Object.freeze((() => {
const e3 = [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.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")], t3 = [0, 95, 135, 175, 215, 255];
for (let s3 = 0; s3 < 216; s3++) {
const r3 = t3[s3 / 36 % 6 | 0], o2 = t3[s3 / 6 % 6 | 0], i2 = t3[s3 % 6];
e3.push({ css: n.channels.toCss(r3, o2, i2), rgba: n.channels.toRgba(r3, o2, i2) });
}
for (let t4 = 0; t4 < 24; t4++) {
const s3 = 8 + 10 * t4;
e3.push({ css: n.channels.toCss(s3, s3, s3), rgba: n.channels.toRgba(s3, s3, s3) });
}
return e3;
})());
let f = t2.ThemeService = class extends a.Disposable {
get colors() {
return this._colors;
}
constructor(e3) {
super(), this._optionsService = e3, this._contrastCache = new i.ColorContrastCache(), this._halfContrastCache = new i.ColorContrastCache(), this._onChangeColors = this.register(new l.EventEmitter()), this.onChangeColors = this._onChangeColors.event, this._colors = { foreground: h, background: u, cursor: _, cursorAccent: d, selectionForeground: void 0, selectionBackgroundTransparent: C, selectionBackgroundOpaque: n.color.blend(u, C), selectionInactiveBackgroundTransparent: C, selectionInactiveBackgroundOpaque: n.color.blend(u, C), ansi: t2.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(e3 = {}) {
const s3 = this._colors;
if (s3.foreground = g(e3.foreground, h), s3.background = g(e3.background, u), s3.cursor = g(e3.cursor, _), s3.cursorAccent = g(e3.cursorAccent, d), s3.selectionBackgroundTransparent = g(e3.selectionBackground, C), s3.selectionBackgroundOpaque = n.color.blend(s3.background, s3.selectionBackgroundTransparent), s3.selectionInactiveBackgroundTransparent = g(e3.selectionInactiveBackground, s3.selectionBackgroundTransparent), s3.selectionInactiveBackgroundOpaque = n.color.blend(s3.background, s3.selectionInactiveBackgroundTransparent), s3.selectionForeground = e3.selectionForeground ? g(e3.selectionForeground, n.NULL_COLOR) : void 0, s3.selectionForeground === n.NULL_COLOR && (s3.selectionForeground = void 0), n.color.isOpaque(s3.selectionBackgroundTransparent)) {
const e4 = 0.3;
s3.selectionBackgroundTransparent = n.color.opacity(s3.selectionBackgroundTransparent, e4);
}
if (n.color.isOpaque(s3.selectionInactiveBackgroundTransparent)) {
const e4 = 0.3;
s3.selectionInactiveBackgroundTransparent = n.color.opacity(s3.selectionInactiveBackgroundTransparent, e4);
}
if (s3.ansi = t2.DEFAULT_ANSI_COLORS.slice(), s3.ansi[0] = g(e3.black, t2.DEFAULT_ANSI_COLORS[0]), s3.ansi[1] = g(e3.red, t2.DEFAULT_ANSI_COLORS[1]), s3.ansi[2] = g(e3.green, t2.DEFAULT_ANSI_COLORS[2]), s3.ansi[3] = g(e3.yellow, t2.DEFAULT_ANSI_COLORS[3]), s3.ansi[4] = g(e3.blue, t2.DEFAULT_ANSI_COLORS[4]), s3.ansi[5] = g(e3.magenta, t2.DEFAULT_ANSI_COLORS[5]), s3.ansi[6] = g(e3.cyan, t2.DEFAULT_ANSI_COLORS[6]), s3.ansi[7] = g(e3.white, t2.DEFAULT_ANSI_COLORS[7]), s3.ansi[8] = g(e3.brightBlack, t2.DEFAULT_ANSI_COLORS[8]), s3.ansi[9] = g(e3.brightRed, t2.DEFAULT_ANSI_COLORS[9]), s3.ansi[10] = g(e3.brightGreen, t2.DEFAULT_ANSI_COLORS[10]), s3.ansi[11] = g(e3.brightYellow, t2.DEFAULT_ANSI_COLORS[11]), s3.ansi[12] = g(e3.brightBlue, t2.DEFAULT_ANSI_COLORS[12]), s3.ansi[13] = g(e3.brightMagenta, t2.DEFAULT_ANSI_COLORS[13]), s3.ansi[14] = g(e3.brightCyan, t2.DEFAULT_ANSI_COLORS[14]), s3.ansi[15] = g(e3.brightWhite, t2.DEFAULT_ANSI_COLORS[15]), e3.extendedAnsi) {
const r3 = Math.min(s3.ansi.length - 16, e3.extendedAnsi.length);
for (let o2 = 0; o2 < r3; o2++) s3.ansi[o2 + 16] = g(e3.extendedAnsi[o2], t2.DEFAULT_ANSI_COLORS[o2 + 16]);
}
this._contrastCache.clear(), this._halfContrastCache.clear(), this._updateRestoreColors(), this._onChangeColors.fire(this.colors);
}
restoreColor(e3) {
this._restoreColor(e3), this._onChangeColors.fire(this.colors);
}
_restoreColor(e3) {
if (void 0 !== e3) switch (e3) {
case 256:
this._colors.foreground = this._restoreColors.foreground;
break;
case 257:
this._colors.background = this._restoreColors.background;
break;
case 258:
this._colors.cursor = this._restoreColors.cursor;
break;
default:
this._colors.ansi[e3] = this._restoreColors.ansi[e3];
}
else for (let e4 = 0; e4 < this._restoreColors.ansi.length; ++e4) this._colors.ansi[e4] = this._restoreColors.ansi[e4];
}
modifyColors(e3) {
e3(this._colors), this._onChangeColors.fire(this.colors);
}
_updateRestoreColors() {
this._restoreColors = { foreground: this._colors.foreground, background: this._colors.background, cursor: this._colors.cursor, ansi: this._colors.ansi.slice() };
}
};
function g(e3, t3) {
if (void 0 !== e3) try {
return n.css.toColor(e3);
} catch {
}
return t3;
}
__name(g, "g");
t2.ThemeService = f = r2([o(0, c.IOptionsService)], f);
}, 160: (e2, t2) => {
Object.defineProperty(t2, "__esModule", { value: true }), t2.contrastRatio = t2.toPaddedHex = t2.rgba = t2.rgb = t2.css = t2.color = t2.channels = t2.NULL_COLOR = void 0;
let s2 = 0, r2 = 0, o = 0, i = 0;
var n, l, a, c, h;
function u(e3) {
const t3 = e3.toString(16);
return t3.length < 2 ? "0" + t3 : t3;
}
__name(u, "u");
function _(e3, t3) {
return e3 < t3 ? (t3 + 0.05) / (e3 + 0.05) : (e3 + 0.05) / (t3 + 0.05);
}
__name(_, "_");
t2.NULL_COLOR = { css: "#00000000", rgba: 0 }, function(e3) {
e3.toCss = function(e4, t3, s3, r3) {
return void 0 !== r3 ? `#${u(e4)}${u(t3)}${u(s3)}${u(r3)}` : `#${u(e4)}${u(t3)}${u(s3)}`;
}, e3.toRgba = function(e4, t3, s3, r3 = 255) {
return (e4 << 24 | t3 << 16 | s3 << 8 | r3) >>> 0;
}, e3.toColor = function(t3, s3, r3, o2) {
return { css: e3.toCss(t3, s3, r3, o2), rgba: e3.toRgba(t3, s3, r3, o2) };
};
}(n || (t2.channels = n = {})), function(e3) {
function t3(e4, t4) {
return i = Math.round(255 * t4), [s2, r2, o] = h.toChannels(e4.rgba), { css: n.toCss(s2, r2, o, i), rgba: n.toRgba(s2, r2, o, i) };
}
__name(t3, "t");
e3.blend = function(e4, t4) {
if (i = (255 & t4.rgba) / 255, 1 === i) return { css: t4.css, rgba: t4.rgba };
const l2 = t4.rgba >> 24 & 255, a2 = t4.rgba >> 16 & 255, c2 = t4.rgba >> 8 & 255, h2 = e4.rgba >> 24 & 255, u2 = e4.rgba >> 16 & 255, _2 = e4.rgba >> 8 & 255;
return s2 = h2 + Math.round((l2 - h2) * i), r2 = u2 + Math.round((a2 - u2) * i), o = _2 + Math.round((c2 - _2) * i), { css: n.toCss(s2, r2, o), rgba: n.toRgba(s2, r2, o) };
}, e3.isOpaque = function(e4) {
return 255 == (255 & e4.rgba);
}, e3.ensureContrastRatio = function(e4, t4, s3) {
const r3 = h.ensureContrastRatio(e4.rgba, t4.rgba, s3);
if (r3) return n.toColor(r3 >> 24 & 255, r3 >> 16 & 255, r3 >> 8 & 255);
}, e3.opaque = function(e4) {
const t4 = (255 | e4.rgba) >>> 0;
return [s2, r2, o] = h.toChannels(t4), { css: n.toCss(s2, r2, o), rgba: t4 };
}, e3.opacity = t3, e3.multiplyOpacity = function(e4, s3) {
return i = 255 & e4.rgba, t3(e4, i * s3 / 255);
}, e3.toColorRGB = function(e4) {
return [e4.rgba >> 24 & 255, e4.rgba >> 16 & 255, e4.rgba >> 8 & 255];
};
}(l || (t2.color = l = {})), function(e3) {
let t3, l2;
try {
const e4 = document.createElement("canvas");
e4.width = 1, e4.height = 1;
const s3 = e4.getContext("2d", { willReadFrequently: true });
s3 && (t3 = s3, t3.globalCompositeOperation = "copy", l2 = t3.createLinearGradient(0, 0, 1, 1));
} catch {
}
e3.toColor = function(e4) {
if (e4.match(/#[\da-f]{3,8}/i)) switch (e4.length) {
case 4:
return s2 = parseInt(e4.slice(1, 2).repeat(2), 16), r2 = parseInt(e4.slice(2, 3).repeat(2), 16), o = parseInt(e4.slice(3, 4).repeat(2), 16), n.toColor(s2, r2, o);
case 5:
return s2 = parseInt(e4.slice(1, 2).repeat(2), 16), r2 = parseInt(e4.slice(2, 3).repeat(2), 16), o = parseInt(e4.slice(3, 4).repeat(2), 16), i = parseInt(e4.slice(4, 5).repeat(2), 16), n.toColor(s2, r2, o, i);
case 7:
return { css: e4, rgba: (parseInt(e4.slice(1), 16) << 8 | 255) >>> 0 };
case 9:
return { css: e4, rgba: parseInt(e4.slice(1), 16) >>> 0 };
}
const a2 = e4.match(/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(,\s*(0|1|\d?\.(\d+))\s*)?\)/);
if (a2) return s2 = parseInt(a2[1]), r2 = parseInt(a2[2]), o = parseInt(a2[3]), i = Math.round(255 * (void 0 === a2[5] ? 1 : parseFloat(a2[5]))), n.toColor(s2, r2, o, i);
if (!t3 || !l2) throw new Error("css.toColor: Unsupported css format");
if (t3.fillStyle = l2, t3.fillStyle = e4, "string" != typeof t3.fillStyle) throw new Error("css.toColor: Unsupported css format");
if (t3.fillRect(0, 0, 1, 1), [s2, r2, o, i] = t3.getImageData(0, 0, 1, 1).data, 255 !== i) throw new Error("css.toColor: Unsupported css format");
return { rgba: n.toRgba(s2, r2, o, i), css: e4 };
};
}(a || (t2.css = a = {})), function(e3) {
function t3(e4, t4, s3) {
const r3 = e4 / 255, o2 = t4 / 255, i2 = s3 / 255;
return 0.2126 * (r3 <= 0.03928 ? r3 / 12.92 : Math.pow((r3 + 0.055) / 1.055, 2.4)) + 0.7152 * (o2 <= 0.03928 ? o2 / 12.92 : Math.pow((o2 + 0.055) / 1.055, 2.4)) + 0.0722 * (i2 <= 0.03928 ? i2 / 12.92 : Math.pow((i2 + 0.055) / 1.055, 2.4));
}
__name(t3, "t");
e3.relativeLuminance = function(e4) {
return t3(e4 >> 16 & 255, e4 >> 8 & 255, 255 & e4);
}, e3.relativeLuminance2 = t3;
}(c || (t2.rgb = c = {})), function(e3) {
function t3(e4, t4, s3) {
const r3 = e4 >> 24 & 255, o2 = e4 >> 16 & 255, i2 = e4 >> 8 & 255;
let n2 = t4 >> 24 & 255, l3 = t4 >> 16 & 255, a2 = t4 >> 8 & 255, h2 = _(c.relativeLuminance2(n2, l3, a2), c.relativeLuminance2(r3, o2, i2));
for (; h2 < s3 && (n2 > 0 || l3 > 0 || a2 > 0); ) n2 -= Math.max(0, Math.ceil(0.1 * n2)), l3 -= Math.max(0, Math.ceil(0.1 * l3)), a2 -= Math.max(0, Math.ceil(0.1 * a2)), h2 = _(c.relativeLuminance2(n2, l3, a2), c.relativeLuminance2(r3, o2, i2));
return (n2 << 24 | l3 << 16 | a2 << 8 | 255) >>> 0;
}
__name(t3, "t");
function l2(e4, t4, s3) {
const r3 = e4 >> 24 & 255, o2 = e4 >> 16 & 255, i2 = e4 >> 8 & 255;
let n2 = t4 >> 24 & 255, l3 = t4 >> 16 & 255, a2 = t4 >> 8 & 255, h2 = _(c.relativeLuminance2(n2, l3, a2), c.relativeLuminance2(r3, o2, i2));
for (; h2 < s3 && (n2 < 255 || l3 < 255 || a2 < 255); ) n2 = Math.min(255, n2 + Math.ceil(0.1 * (255 - n2))), l3 = Math.min(255, l3 + Math.ceil(0.1 * (255 - l3))), a2 = Math.min(255, a2 + Math.ceil(0.1 * (255 - a2))), h2 = _(c.relativeLuminance2(n2, l3, a2), c.relativeLuminance2(r3, o2, i2));
return (n2 << 24 | l3 << 16 | a2 << 8 | 255) >>> 0;
}
__name(l2, "l");
e3.blend = function(e4, t4) {
if (i = (255 & t4) / 255, 1 === i) return t4;
const l3 = t4 >> 24 & 255, a2 = t4 >> 16 & 255, c2 = t4 >> 8 & 255, h2 = e4 >> 24 & 255, u2 = e4 >> 16 & 255, _2 = e4 >> 8 & 255;
return s2 = h2 + Math.round((l3 - h2) * i), r2 = u2 + Math.round((a2 - u2) * i), o = _2 + Math.round((c2 - _2) * i), n.toRgba(s2, r2, o);
}, e3.ensureContrastRatio = function(e4, s3, r3) {
const o2 = c.relativeLuminance(e4 >> 8), i2 = c.relativeLuminance(s3 >> 8);
if (_(o2, i2) < r3) {
if (i2 < o2) {
const i3 = t3(e4, s3, r3), n3 = _(o2, c.relativeLuminance(i3 >> 8));
if (n3 < r3) {
const t4 = l2(e4, s3, r3);
return n3 > _(o2, c.relativeLuminance(t4 >> 8)) ? i3 : t4;
}
return i3;
}
const n2 = l2(e4, s3, r3), a2 = _(o2, c.relativeLuminance(n2 >> 8));
if (a2 < r3) {
const i3 = t3(e4, s3, r3);
return a2 > _(o2, c.relativeLuminance(i3 >> 8)) ? n2 : i3;
}
return n2;
}
}, e3.reduceLuminance = t3, e3.increaseLuminance = l2, e3.toChannels = function(e4) {
return [e4 >> 24 & 255, e4 >> 16 & 255, e4 >> 8 & 255, 255 & e4];
};
}(h || (t2.rgba = h = {})), t2.toPaddedHex = u, t2.contrastRatio = _;
}, 345: (e2, t2) => {
Object.defineProperty(t2, "__esModule", { value: true }), t2.runAndSubscribe = t2.forwardEvent = t2.EventEmitter = void 0, t2.EventEmitter = class {
constructor() {
this._listeners = [], this._disposed = false;
}
get event() {
return this._event || (this._event = (e3) => (this._listeners.push(e3), { dispose: /* @__PURE__ */ __name(() => {
if (!this._disposed) {
for (let t3 = 0; t3 < this._listeners.length; t3++) if (this._listeners[t3] === e3) return void this._listeners.splice(t3, 1);
}
}, "dispose") })), this._event;
}
fire(e3, t3) {
const s2 = [];
for (let e4 = 0; e4 < this._listeners.length; e4++) s2.push(this._listeners[e4]);
for (let r2 = 0; r2 < s2.length; r2++) s2[r2].call(void 0, e3, t3);
}
dispose() {
this.clearListeners(), this._disposed = true;
}
clearListeners() {
this._listeners && (this._listeners.length = 0);
}
}, t2.forwardEvent = function(e3, t3) {
return e3((e4) => t3.fire(e4));
}, t2.runAndSubscribe = function(e3, t3) {
return t3(void 0), e3((e4) => t3(e4));
};
}, 859: (e2, t2) => {
function s2(e3) {
for (const t3 of e3) t3.dispose();
e3.length = 0;
}
__name(s2, "s");
Object.defineProperty(t2, "__esModule", { value: true }), t2.getDisposeArrayDisposable = t2.disposeArray = t2.toDisposable = t2.MutableDisposable = t2.Disposable = void 0, t2.Disposable = class {
constructor() {
this._disposables = [], this._isDisposed = false;
}
dispose() {
this._isDisposed = true;
for (const e3 of this._disposables) e3.dispose();
this._disposables.length = 0;
}
register(e3) {
return this._disposables.push(e3), e3;
}
unregister(e3) {
const t3 = this._disposables.indexOf(e3);
-1 !== t3 && this._disposables.splice(t3, 1);
}
}, t2.MutableDisposable = class {
constructor() {
this._isDisposed = false;
}
get value() {
return this._isDisposed ? void 0 : this._value;
}
set value(e3) {
this._isDisposed || e3 === this._value || (this._value?.dispose(), this._value = e3);
}
clear() {
this.value = void 0;
}
dispose() {
this._isDisposed = true, this._value?.dispose(), this._value = void 0;
}
}, t2.toDisposable = function(e3) {
return { dispose: e3 };
}, t2.disposeArray = s2, t2.getDisposeArrayDisposable = function(e3) {
return { dispose: /* @__PURE__ */ __name(() => s2(e3), "dispose") };
};
}, 485: (e2, t2) => {
Object.defineProperty(t2, "__esModule", { value: true }), t2.FourKeyMap = t2.TwoKeyMap = void 0;
class s2 {
static {
__name(this, "s");
}
constructor() {
this._data = {};
}
set(e3, t3, s3) {
this._data[e3] || (this._data[e3] = {}), this._data[e3][t3] = s3;
}
get(e3, t3) {
return this._data[e3] ? this._data[e3][t3] : void 0;
}
clear() {
this._data = {};
}
}
t2.TwoKeyMap = s2, t2.FourKeyMap = class {
constructor() {
this._data = new s2();
}
set(e3, t3, r2, o, i) {
this._data.get(e3, t3) || this._data.set(e3, t3, new s2()), this._data.get(e3, t3).set(r2, o, i);
}
get(e3, t3, s3, r2) {
return this._data.get(e3, t3)?.get(s3, r2);
}
clear() {
this._data.clear();
}
};
}, 726: (e2, t2) => {
Object.defineProperty(t2, "__esModule", { value: true }), t2.createDecorator = t2.getServiceDependencies = t2.serviceRegistry = void 0;
const s2 = "di$target", r2 = "di$dependencies";
t2.serviceRegistry = /* @__PURE__ */ new Map(), t2.getServiceDependencies = function(e3) {
return e3[r2] || [];
}, t2.createDecorator = function(e3) {
if (t2.serviceRegistry.has(e3)) return t2.serviceRegistry.get(e3);
const o = /* @__PURE__ */ __name(function(e4, t3, i) {
if (3 !== arguments.length) throw new Error("@IServiceName-decorator can only be used to decorate a parameter");
!function(e5, t4, o2) {
t4[s2] === t4 ? t4[r2].push({ id: e5, index: o2 }) : (t4[r2] = [{ id: e5, index: o2 }], t4[s2] = t4);
}(o, e4, i);
}, "o");
return o.toString = () => e3, t2.serviceRegistry.set(e3, o), o;
};
}, 97: (e2, t2, s2) => {
Object.defineProperty(t2, "__esModule", { value: true }), t2.IDecorationService = t2.IUnicodeService = t2.IOscLinkService = t2.IOptionsService = t2.ILogService = t2.LogLevelEnum = t2.IInstantiationService = t2.ICharsetService = t2.ICoreService = t2.ICoreMouseService = t2.IBufferService = void 0;
const r2 = s2(726);
var o;
t2.IBufferService = (0, r2.createDecorator)("BufferService"), t2.ICoreMouseService = (0, r2.createDecorator)("CoreMouseService"), t2.ICoreService = (0, r2.createDecorator)("CoreService"), t2.ICharsetService = (0, r2.createDecorator)("CharsetService"), t2.IInstantiationService = (0, r2.createDecorator)("InstantiationService"), function(e3) {
e3[e3.TRACE = 0] = "TRACE", e3[e3.DEBUG = 1] = "DEBUG", e3[e3.INFO = 2] = "INFO", e3[e3.WARN = 3] = "WARN", e3[e3.ERROR = 4] = "ERROR", e3[e3.OFF = 5] = "OFF";
}(o || (t2.LogLevelEnum = o = {})), t2.ILogService = (0, r2.createDecorator)("LogService"), t2.IOptionsService = (0, r2.createDecorator)("OptionsService"), t2.IOscLinkService = (0, r2.createDecorator)("OscLinkService"), t2.IUnicodeService = (0, r2.createDecorator)("UnicodeService"), t2.IDecorationService = (0, r2.createDecorator)("DecorationService");
} }, t = {};
function s(r2) {
var o = t[r2];
if (void 0 !== o) return o.exports;
var i = t[r2] = { exports: {} };
return e[r2].call(i.exports, i, i.exports, s), i.exports;
}
__name(s, "s");
var r = {};
return (() => {
var e2 = r;
Object.defineProperty(e2, "__esModule", { value: true }), e2.HTMLSerializeHandler = e2.SerializeAddon = void 0;
const t2 = s(997);
function o(e3, t3, s2) {
return Math.max(t3, Math.min(e3, s2));
}
__name(o, "o");
class i {
static {
__name(this, "i");
}
constructor(e3) {
this._buffer = e3;
}
serialize(e3, t3) {
const s2 = this._buffer.getNullCell(), r2 = this._buffer.getNullCell();
let o2 = s2;
const i2 = e3.start.y, n2 = e3.end.y, l2 = e3.start.x, a2 = e3.end.x;
this._beforeSerialize(n2 - i2, i2, n2);
for (let t4 = i2; t4 <= n2; t4++) {
const i3 = this._buffer.getLine(t4);
if (i3) {
const n3 = t4 === e3.start.y ? l2 : 0, c2 = t4 === e3.end.y ? a2 : i3.length;
for (let e4 = n3; e4 < c2; e4++) {
const n4 = i3.getCell(e4, o2 === s2 ? r2 : s2);
n4 ? (this._nextCell(n4, o2, t4, e4), o2 = n4) : console.warn(`Can't get cell at row=${t4}, col=${e4}`);
}
}
this._rowEnd(t4, t4 === n2);
}
return this._afterSerialize(), this._serializeString(t3);
}
_nextCell(e3, t3, s2, r2) {
}
_rowEnd(e3, t3) {
}
_beforeSerialize(e3, t3, s2) {
}
_afterSerialize() {
}
_serializeString(e3) {
return "";
}
}
function n(e3, t3) {
return e3.getFgColorMode() === t3.getFgColorMode() && e3.getFgColor() === t3.getFgColor();
}
__name(n, "n");
function l(e3, t3) {
return e3.getBgColorMode() === t3.getBgColorMode() && e3.getBgColor() === t3.getBgColor();
}
__name(l, "l");
function a(e3, t3) {
return e3.isInverse() === t3.isInverse() && e3.isBold() === t3.isBold() && e3.isUnderline() === t3.isUnderline() && e3.isOverline() === t3.isOverline() && e3.isBlink() === t3.isBlink() && e3.isInvisible() === t3.isInvisible() && e3.isItalic() === t3.isItalic() && e3.isDim() === t3.isDim() && e3.isStrikethrough() === t3.isStrikethrough();
}
__name(a, "a");
class c extends i {
static {
__name(this, "c");
}
constructor(e3, t3) {
super(e3), this._terminal = t3, this._rowIndex = 0, this._allRows = new Array(), this._allRowSeparators = new Array(), this._currentRow = "", this._nullCellCount = 0, this._cursorStyle = this._buffer.getNullCell(), this._cursorStyleRow = 0, this._cursorStyleCol = 0, this._backgroundCell = this._buffer.getNullCell(), this._firstRow = 0, this._lastCursorRow = 0, this._lastCursorCol = 0, this._lastContentCursorRow = 0, this._lastContentCursorCol = 0, this._thisRowLastChar = this._buffer.getNullCell(), this._thisRowLastSecondChar = this._buffer.getNullCell(), this._nextRowFirstChar = this._buffer.getNullCell();
}
_beforeSerialize(e3, t3, s2) {
this._allRows = new Array(e3), this._lastContentCursorRow = t3, this._lastCursorRow = t3, this._firstRow = t3;
}
_rowEnd(e3, t3) {
this._nullCellCount > 0 && !l(this._cursorStyle, this._backgroundCell) && (this._currentRow += `\x1B[${this._nullCellCount}X`);
let s2 = "";
if (!t3) {
e3 - this._firstRow >= this._terminal.rows && this._buffer.getLine(this._cursorStyleRow)?.getCell(this._cursorStyleCol, this._backgroundCell);
const t4 = this._buffer.getLine(e3), r2 = this._buffer.getLine(e3 + 1);
if (r2.isWrapped) {
s2 = "";
const o2 = t4.getCell(t4.length - 1, this._thisRowLastChar), i2 = t4.getCell(t4.length - 2, this._thisRowLastSecondChar), n2 = r2.getCell(0, this._nextRowFirstChar), a2 = n2.getWidth() > 1;
let c2 = false;
(n2.getChars() && a2 ? this._nullCellCount <= 1 : this._nullCellCount <= 0) && ((o2.getChars() || 0 === o2.getWidth()) && l(o2, n2) && (c2 = true), a2 && (i2.getChars() || 0 === i2.getWidth()) && l(o2, n2) && l(i2, n2) && (c2 = true)), c2 || (s2 = "-".repeat(this._nullCellCount + 1), s2 += "\x1B[1D\x1B[1X", this._nullCellCount > 0 && (s2 += "\x1B[A", s2 += `\x1B[${t4.length - this._nullCellCount}C`, s2 += `\x1B[${this._nullCellCount}X`, s2 += `\x1B[${t4.length - this._nullCellCount}D`, s2 += "\x1B[B"), this._lastContentCursorRow = e3 + 1, this._lastContentCursorCol = 0, this._lastCursorRow = e3 + 1, this._lastCursorCol = 0);
} else s2 = "\r\n", this._lastCursorRow = e3 + 1, this._lastCursorCol = 0;
}
this._allRows[this._rowIndex] = this._currentRow, this._allRowSeparators[this._rowIndex++] = s2, this._currentRow = "", this._nullCellCount = 0;
}
_diffStyle(e3, t3) {
const s2 = [], r2 = !n(e3, t3), o2 = !l(e3, t3), i2 = !a(e3, t3);
if (r2 || o2 || i2) if (e3.isAttributeDefault()) t3.isAttributeDefault() || s2.push(0);
else {
if (r2) {
const t4 = e3.getFgColor();
e3.isFgRGB() ? s2.push(38, 2, t4 >>> 16 & 255, t4 >>> 8 & 255, 255 & t4) : e3.isFgPalette() ? t4 >= 16 ? s2.push(38, 5, t4) : s2.push(8 & t4 ? 90 + (7 & t4) : 30 + (7 & t4)) : s2.push(39);
}
if (o2) {
const t4 = e3.getBgColor();
e3.isBgRGB() ? s2.push(48, 2, t4 >>> 16 & 255, t4 >>> 8 & 255, 255 & t4) : e3.isBgPalette() ? t4 >= 16 ? s2.push(48, 5, t4) : s2.push(8 & t4 ? 100 + (7 & t4) : 40 + (7 & t4)) : s2.push(49);
}
i2 && (e3.isInverse() !== t3.isInverse() && s2.push(e3.isInverse() ? 7 : 27), e3.isBold() !== t3.isBold() && s2.push(e3.isBold() ? 1 : 22), e3.isUnderline() !== t3.isUnderline() && s2.push(e3.isUnderline() ? 4 : 24), e3.isOverline() !== t3.isOverline() && s2.push(e3.isOverline() ? 53 : 55), e3.isBlink() !== t3.isBlink() && s2.push(e3.isBlink() ? 5 : 25), e3.isInvisible() !== t3.isInvisible() && s2.push(e3.isInvisible() ? 8 : 28), e3.isItalic() !== t3.isItalic() && s2.push(e3.isItalic() ? 3 : 23), e3.isDim() !== t3.isDim() && s2.push(e3.isDim() ? 2 : 22), e3.isStrikethrough() !== t3.isStrikethrough() && s2.push(e3.isStrikethrough() ? 9 : 29));
}
return s2;
}
_nextCell(e3, t3, s2, r2) {
if (0 === e3.getWidth()) return;
const o2 = "" === e3.getChars(), i2 = this._diffStyle(e3, this._cursorStyle);
if (o2 ? !l(this._cursorStyle, e3) : i2.length > 0) {
this._nullCellCount > 0 && (l(this._cursorStyle, this._backgroundCell) || (this._currentRow += `\x1B[${this._nullCellCount}X`), this._currentRow += `\x1B[${this._nullCellCount}C`, this._nullCellCount = 0), this._lastContentCursorRow = this._lastCursorRow = s2, this._lastContentCursorCol = this._lastCursorCol = r2, this._currentRow += `\x1B[${i2.join(";")}m`;
const e4 = this._buffer.getLine(s2);
void 0 !== e4 && (e4.getCell(r2, this._cursorStyle), this._cursorStyleRow = s2, this._cursorStyleCol = r2);
}
o2 ? this._nullCellCount += e3.getWidth() : (this._nullCellCount > 0 && (l(this._cursorStyle, this._backgroundCell) || (this._currentRow += `\x1B[${this._nullCellCount}X`), this._currentRow += `\x1B[${this._nullCellCount}C`, this._nullCellCount = 0), this._currentRow += e3.getChars(), this._lastContentCursorRow = this._lastCursorRow = s2, this._lastContentCursorCol = this._lastCursorCol = r2 + e3.getWidth());
}
_serializeString(e3) {
let t3 = this._allRows.length;
this._buffer.length - this._firstRow <= this._terminal.rows && (t3 = this._lastContentCursorRow + 1 - this._firstRow, this._lastCursorCol = this._lastContentCursorCol, this._lastCursorRow = this._lastContentCursorRow);
let s2 = "";
for (let e4 = 0; e4 < t3; e4++) s2 += this._allRows[e4], e4 + 1 < t3 && (s2 += this._allRowSeparators[e4]);
if (!e3) {
const e4 = this._buffer.baseY + this._buffer.cursorY, t4 = this._buffer.cursorX, o3 = /* @__PURE__ */ __name((e5) => {
e5 > 0 ? s2 += `\x1B[${e5}C` : e5 < 0 && (s2 += `\x1B[${-e5}D`);
}, "o");
(e4 !== this._lastCursorRow || t4 !== this._lastCursorCol) && ((r2 = e4 - this._lastCursorRow) > 0 ? s2 += `\x1B[${r2}B` : r2 < 0 && (s2 += `\x1B[${-r2}A`), o3(t4 - this._lastCursorCol));
}
var r2;
const o2 = this._terminal._core._inputHandler._curAttrData, i2 = this._diffStyle(o2, this._cursorStyle);
return i2.length > 0 && (s2 += `\x1B[${i2.join(";")}m`), s2;
}
}
e2.SerializeAddon = class {
activate(e3) {
this._terminal = e3;
}
_serializeBufferByScrollback(e3, t3, s2) {
const r2 = t3.length, i2 = void 0 === s2 ? r2 : o(s2 + e3.rows, 0, r2);
return this._serializeBufferByRange(e3, t3, { start: r2 - i2, end: r2 - 1 }, false);
}
_serializeBufferByRange(e3, t3, s2, r2) {
return new c(t3, e3).serialize({ start: { x: 0, y: "number" == typeof s2.start ? s2.start : s2.start.line }, end: { x: e3.cols, y: "number" == typeof s2.end ? s2.end : s2.end.line } }, r2);
}
_serializeBufferAsHTML(e3, t3) {
const s2 = e3.buffer.active, r2 = new h(s2, e3, t3);
if (!t3.onlySelection) {
const i3 = s2.length, n2 = t3.scrollback, l2 = void 0 === n2 ? i3 : o(n2 + e3.rows, 0, i3);
return r2.serialize({ start: { x: 0, y: i3 - l2 }, end: { x: e3.cols, y: i3 - 1 } });
}
const i2 = this._terminal?.getSelectionPosition();
return void 0 !== i2 ? r2.serialize({ start: { x: i2.start.x, y: i2.start.y }, end: { x: i2.end.x, y: i2.end.y } }) : "";
}
_serializeModes(e3) {
let t3 = "";
const s2 = e3.modes;
if (s2.applicationCursorKeysMode && (t3 += "\x1B[?1h"), s2.applicationKeypadMode && (t3 += "\x1B[?66h"), s2.bracketedPasteMode && (t3 += "\x1B[?2004h"), s2.insertMode && (t3 += "\x1B[4h"), s2.originMode && (t3 += "\x1B[?6h"), s2.reverseWraparoundMode && (t3 += "\x1B[?45h"), s2.sendFocusMode && (t3 += "\x1B[?1004h"), false === s2.wraparoundMode && (t3 += "\x1B[?7l"), "none" !== s2.mouseTrackingMode) switch (s2.mouseTrackingMode) {
case "x10":
t3 += "\x1B[?9h";
break;
case "vt200":
t3 += "\x1B[?1000h";
break;
case "drag":
t3 += "\x1B[?1002h";
break;
case "any":
t3 += "\x1B[?1003h";
}
return t3;
}
serialize(e3) {
if (!this._terminal) throw new Error("Cannot use addon until it has been loaded");
let t3 = e3?.range ? this._serializeBufferByRange(this._terminal, this._terminal.buffer.normal, e3.range, true) : this._serializeBufferByScrollback(this._terminal, this._terminal.buffer.normal, e3?.scrollback);
return e3?.excludeAltBuffer || "alternate" !== this._terminal.buffer.active.type || (t3 += `\x1B[?1049h\x1B[H${this._serializeBufferByScrollback(this._terminal, this._terminal.buffer.alternate, void 0)}`), e3?.excludeModes || (t3 += this._serializeModes(this._terminal)), t3;
}
serializeAsHTML(e3) {
if (!this._terminal) throw new Error("Cannot use addon until it has been loaded");
return this._serializeBufferAsHTML(this._terminal, e3 || {});
}
dispose() {
}
};
class h extends i {
static {
__name(this, "h");
}
constructor(e3, s2, r2) {
super(e3), this._terminal = s2, this._options = r2, this._currentRow = "", this._htmlContent = "", s2._core._themeService ? this._ansiColors = s2._core._themeService.colors.ansi : this._ansiColors = t2.DEFAULT_ANSI_COLORS;
}
_padStart(e3, t3, s2) {
return t3 >>= 0, s2 = s2 ?? " ", e3.length > t3 ? e3 : ((t3 -= e3.length) > s2.length && (s2 += s2.repeat(t3 / s2.length)), s2.slice(0, t3) + e3);
}
_beforeSerialize(e3, t3, s2) {
this._htmlContent += "<html><body><!--StartFragment--><pre>";
let r2 = "#000000", o2 = "#ffffff";
this._options.includeGlobalBackground && (r2 = this._terminal.options.theme?.foreground ?? "#ffffff", o2 = this._terminal.options.theme?.background ?? "#000000");
const i2 = [];
i2.push("color: " + r2 + ";"), i2.push("background-color: " + o2 + ";"), i2.push("font-family: " + this._terminal.options.fontFamily + ";"), i2.push("font-size: " + this._terminal.options.fontSize + "px;"), this._htmlContent += "<div style='" + i2.join(" ") + "'>";
}
_afterSerialize() {
this._htmlContent += "</div>", this._htmlContent += "</pre><!--EndFragment--></body></html>";
}
_rowEnd(e3, t3) {
this._htmlContent += "<div><span>" + this._currentRow + "</span></div>", this._currentRow = "";
}
_getHexColor(e3, t3) {
const s2 = t3 ? e3.getFgColor() : e3.getBgColor();
return (t3 ? e3.isFgRGB() : e3.isBgRGB()) ? "#" + [s2 >> 16 & 255, s2 >> 8 & 255, 255 & s2].map((e4) => this._padStart(e4.toString(16), 2, "0")).join("") : (t3 ? e3.isFgPalette() : e3.isBgPalette()) ? this._ansiColors[s2].css : void 0;
}
_diffStyle(e3, t3) {
const s2 = [], r2 = !n(e3, t3), o2 = !l(e3, t3), i2 = !a(e3, t3);
if (r2 || o2 || i2) {
const t4 = this._getHexColor(e3, true);
t4 && s2.push("color: " + t4 + ";");
const r3 = this._getHexColor(e3, false);
return r3 && s2.push("background-color: " + r3 + ";"), e3.isInverse() && s2.push("color: #000000; background-color: #BFBFBF;"), e3.isBold() && s2.push("font-weight: bold;"), e3.isUnderline() && e3.isOverline() ? s2.push("text-decoration: overline underline;") : e3.isUnderline() ? s2.push("text-decoration: underline;") : e3.isOverline() && s2.push("text-decoration: overline;"), e3.isBlink() && s2.push("text-decoration: blink;"), e3.isInvisible() && s2.push("visibility: hidden;"), e3.isItalic() && s2.push("font-style: italic;"), e3.isDim() && s2.push("opacity: 0.5;"), e3.isStrikethrough() && s2.push("text-decoration: line-through;"), s2;
}
}
_nextCell(e3, t3, s2, r2) {
if (0 === e3.getWidth()) return;
const o2 = "" === e3.getChars(), i2 = this._diffStyle(e3, t3);
i2 && (this._currentRow += 0 === i2.length ? "</span><span>" : "</span><span style='" + i2.join(" ") + "'>"), this._currentRow += o2 ? " " : e3.getChars();
}
_serializeString() {
return this._htmlContent;
}
}
e2.HTMLSerializeHandler = h;
})(), r;
})());
})(addonSerialize$2, addonSerialize$2.exports);
var addonSerializeExports = addonSerialize$2.exports;
const addonSerialize$1 = /* @__PURE__ */ getDefaultExportFromCjs(addonSerializeExports);
function useTerminalBuffer() {
const serializeAddon = new addonSerializeExports.SerializeAddon();
const terminal = markRaw(new xtermExports.Terminal({ convertEol: true }));
const copyTo = /* @__PURE__ */ __name((destinationTerminal) => {
destinationTerminal.write(serializeAddon.serialize());
}, "copyTo");
const write = /* @__PURE__ */ __name((message) => terminal.write(message), "write");
const serialize = /* @__PURE__ */ __name(() => serializeAddon.serialize(), "serialize");
onMounted(() => {
terminal.loadAddon(serializeAddon);
});
onUnmounted(() => {
terminal.dispose();
});
return {
copyTo,
serialize,
write
};
}
__name(useTerminalBuffer, "useTerminalBuffer");
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "TerminalOutputDrawer",
props: /* @__PURE__ */ mergeModels({
header: {},
defaultMessage: {}
}, {
"modelValue": { type: Boolean, ...{ required: true } },
"modelModifiers": {}
}),
emits: ["update:modelValue"],
setup(__props) {
const terminalVisible = useModel(__props, "modelValue");
const props = __props;
const electron = electronAPI();
const buffer = useTerminalBuffer();
let xterm = null;
const terminalCreated = /* @__PURE__ */ __name(({ terminal, useAutoSize }, root2) => {
xterm = terminal;
useAutoSize({ root: root2, autoRows: true, autoCols: true });
terminal.write(props.defaultMessage);
buffer.copyTo(terminal);
terminal.options.cursorBlink = false;
terminal.options.cursorStyle = "bar";
terminal.options.cursorInactiveStyle = "bar";
terminal.options.disableStdin = true;
}, "terminalCreated");
const terminalUnmounted = /* @__PURE__ */ __name(() => {
xterm = null;
}, "terminalUnmounted");
onMounted(async () => {
electron.onLogMessage((message) => {
buffer.write(message);
xterm?.write(message);
});
});
return (_ctx, _cache) => {
return openBlock(), createBlock(unref(script), {
visible: terminalVisible.value,
"onUpdate:visible": _cache[0] || (_cache[0] = ($event) => terminalVisible.value = $event),
header: _ctx.header,
position: "bottom",
style: { "height": "max(50vh, 34rem)" }
}, {
default: withCtx(() => [
createVNode(BaseTerminal, {
onCreated: terminalCreated,
onUnmounted: terminalUnmounted
})
]),
_: 1
}, 8, ["visible", "header"]);
};
}
});
export {
_sfc_main as _,
script as s
};
//# sourceMappingURL=TerminalOutputDrawer-CKr7Br7O.js.map