@visulima/ansi
Version:
ANSI escape codes for some terminal swag.
128 lines (123 loc) • 4.2 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const constants = require('./packem_shared/constants-BK26O-46.cjs');
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 `${constants.ESC}[M${charCallback}${charCx}${charCy}`;
}, "mouseX10Sequence");
const mouseSgrSequence = /* @__PURE__ */ __name((callback, x, y, isRelease) => {
if (callback === 255) {
return "";
}
const finalChar = isRelease ? "m" : "M";
return `${constants.ESC}[<${callback};${x + 1};${y + 1}${finalChar}`;
}, "mouseSgrSequence");
const enableX10Mouse = `${constants.ESC}[?9h`;
const disableX10Mouse = `${constants.ESC}[?9l`;
const enableNormalMouse = `${constants.ESC}[?1000h`;
const disableNormalMouse = `${constants.ESC}[?1000l`;
const enableButtonEventMouse = `${constants.ESC}[?1002h`;
const disableButtonEventMouse = `${constants.ESC}[?1002l`;
const enableAnyEventMouse = `${constants.ESC}[?1003h`;
const disableAnyEventMouse = `${constants.ESC}[?1003l`;
const enableSgrMouse = `${constants.ESC}[?1006h`;
const disableSgrMouse = `${constants.ESC}[?1006l`;
const enableFocusTracking = `${constants.ESC}[?1004h`;
const disableFocusTracking = `${constants.ESC}[?1004l`;
exports.MouseButton = MouseButton;
exports.disableAnyEventMouse = disableAnyEventMouse;
exports.disableButtonEventMouse = disableButtonEventMouse;
exports.disableFocusTracking = disableFocusTracking;
exports.disableNormalMouse = disableNormalMouse;
exports.disableSgrMouse = disableSgrMouse;
exports.disableX10Mouse = disableX10Mouse;
exports.enableAnyEventMouse = enableAnyEventMouse;
exports.enableButtonEventMouse = enableButtonEventMouse;
exports.enableFocusTracking = enableFocusTracking;
exports.enableNormalMouse = enableNormalMouse;
exports.enableSgrMouse = enableSgrMouse;
exports.enableX10Mouse = enableX10Mouse;
exports.encodeMouseButtonByte = encodeMouseButtonByte;
exports.mouseSgrSequence = mouseSgrSequence;
exports.mouseX10Sequence = mouseX10Sequence;