UNPKG

@visulima/ansi

Version:

ANSI escape codes for some terminal swag.

109 lines (106 loc) 3.48 kB
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 };