@visulima/ansi
Version:
ANSI escape codes for some terminal swag.
109 lines (106 loc) • 3.48 kB
JavaScript
import { E as ESC } from './packem_shared/constants-CE7WkXh_.mjs';
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
const MOUSE_BIT_SHIFT = 4;
const MOUSE_BIT_ALT = 8;
const MOUSE_BIT_CTRL = 16;
const MOUSE_BIT_MOTION = 32;
const MOUSE_BIT_WHEEL = 64;
const MOUSE_BIT_ADDITIONAL = 128;
const MOUSE_BUTTON_BITS_MASK = 3;
const X10_MOUSE_OFFSET = 32;
const MouseButton = {
BACKWARD: 8,
BUTTON_1: 1,
// Left
BUTTON_2: 2,
// Middle
BUTTON_3: 3,
// Right
BUTTON_4: 4,
// Wheel Up
BUTTON_5: 5,
// Wheel Down
BUTTON_6: 6,
// Wheel Left
BUTTON_7: 7,
// Wheel Right
BUTTON_8: 8,
// Aux 1 (e.g., Browser Backward)
BUTTON_9: 9,
// Aux 2 (e.g., Browser Forward)
BUTTON_10: 10,
// Aux 3
BUTTON_11: 11,
// Aux 4
FORWARD: 9,
// Aliases
LEFT: 1,
MIDDLE: 2,
NONE: 0,
// Also used for release if no specific button for release
RELEASE: 0,
RIGHT: 3,
WHEEL_DOWN: 5,
WHEEL_LEFT: 6,
WHEEL_RIGHT: 7,
WHEEL_UP: 4
};
const encodeMouseButtonByte = /* @__PURE__ */ __name((button, motion, modifiers = {}) => {
let callback;
if (button === MouseButton.RELEASE) {
callback = MOUSE_BUTTON_BITS_MASK;
} else if (button >= MouseButton.LEFT && button <= MouseButton.RIGHT) {
callback = button - MouseButton.LEFT;
} else if (button >= MouseButton.WHEEL_UP && button <= MouseButton.WHEEL_RIGHT) {
callback = button - MouseButton.WHEEL_UP;
callback |= MOUSE_BIT_WHEEL;
} else if (button >= MouseButton.BACKWARD && button <= MouseButton.BUTTON_11) {
callback = button - MouseButton.BACKWARD;
callback |= MOUSE_BIT_ADDITIONAL;
} else {
return 255;
}
if (modifiers.shift) {
callback |= MOUSE_BIT_SHIFT;
}
if (modifiers.alt) {
callback |= MOUSE_BIT_ALT;
}
if (modifiers.ctrl) {
callback |= MOUSE_BIT_CTRL;
}
if (motion) {
callback |= MOUSE_BIT_MOTION;
}
return callback;
}, "encodeMouseButtonByte");
const mouseX10Sequence = /* @__PURE__ */ __name((callback, x, y) => {
if (callback === 255) {
return "";
}
const charCallback = String.fromCodePoint(callback + X10_MOUSE_OFFSET);
const charCx = String.fromCodePoint(x + 1 + X10_MOUSE_OFFSET);
const charCy = String.fromCodePoint(y + 1 + X10_MOUSE_OFFSET);
return `${ESC}[M${charCallback}${charCx}${charCy}`;
}, "mouseX10Sequence");
const mouseSgrSequence = /* @__PURE__ */ __name((callback, x, y, isRelease) => {
if (callback === 255) {
return "";
}
const finalChar = isRelease ? "m" : "M";
return `${ESC}[<${callback};${x + 1};${y + 1}${finalChar}`;
}, "mouseSgrSequence");
const enableX10Mouse = `${ESC}[?9h`;
const disableX10Mouse = `${ESC}[?9l`;
const enableNormalMouse = `${ESC}[?1000h`;
const disableNormalMouse = `${ESC}[?1000l`;
const enableButtonEventMouse = `${ESC}[?1002h`;
const disableButtonEventMouse = `${ESC}[?1002l`;
const enableAnyEventMouse = `${ESC}[?1003h`;
const disableAnyEventMouse = `${ESC}[?1003l`;
const enableSgrMouse = `${ESC}[?1006h`;
const disableSgrMouse = `${ESC}[?1006l`;
const enableFocusTracking = `${ESC}[?1004h`;
const disableFocusTracking = `${ESC}[?1004l`;
export { MouseButton, disableAnyEventMouse, disableButtonEventMouse, disableFocusTracking, disableNormalMouse, disableSgrMouse, disableX10Mouse, enableAnyEventMouse, enableButtonEventMouse, enableFocusTracking, enableNormalMouse, enableSgrMouse, enableX10Mouse, encodeMouseButtonByte, mouseSgrSequence, mouseX10Sequence };