/ components / VimTextInput.tsx
VimTextInput.tsx
  1  import { c as _c } from "react/compiler-runtime";
  2  import chalk from 'chalk';
  3  import React from 'react';
  4  import { useClipboardImageHint } from '../hooks/useClipboardImageHint.js';
  5  import { useVimInput } from '../hooks/useVimInput.js';
  6  import { Box, color, useTerminalFocus, useTheme } from '../ink.js';
  7  import type { VimTextInputProps } from '../types/textInputTypes.js';
  8  import type { TextHighlight } from '../utils/textHighlighting.js';
  9  import { BaseTextInput } from './BaseTextInput.js';
 10  export type Props = VimTextInputProps & {
 11    highlights?: TextHighlight[];
 12  };
 13  export default function VimTextInput(props) {
 14    const $ = _c(38);
 15    const [theme] = useTheme();
 16    const isTerminalFocused = useTerminalFocus();
 17    useClipboardImageHint(isTerminalFocused, !!props.onImagePaste);
 18    const t0 = props.value;
 19    const t1 = props.onChange;
 20    const t2 = props.onSubmit;
 21    const t3 = props.onExit;
 22    const t4 = props.onExitMessage;
 23    const t5 = props.onHistoryReset;
 24    const t6 = props.onHistoryUp;
 25    const t7 = props.onHistoryDown;
 26    const t8 = props.onClearInput;
 27    const t9 = props.focus;
 28    const t10 = props.mask;
 29    const t11 = props.multiline;
 30    const t12 = props.showCursor ? " " : "";
 31    const t13 = props.highlightPastedText;
 32    const t14 = isTerminalFocused ? chalk.inverse : _temp;
 33    let t15;
 34    if ($[0] !== theme) {
 35      t15 = color("text", theme);
 36      $[0] = theme;
 37      $[1] = t15;
 38    } else {
 39      t15 = $[1];
 40    }
 41    let t16;
 42    if ($[2] !== props.columns || $[3] !== props.cursorOffset || $[4] !== props.disableCursorMovementForUpDownKeys || $[5] !== props.disableEscapeDoublePress || $[6] !== props.focus || $[7] !== props.highlightPastedText || $[8] !== props.inputFilter || $[9] !== props.mask || $[10] !== props.maxVisibleLines || $[11] !== props.multiline || $[12] !== props.onChange || $[13] !== props.onChangeCursorOffset || $[14] !== props.onClearInput || $[15] !== props.onExit || $[16] !== props.onExitMessage || $[17] !== props.onHistoryDown || $[18] !== props.onHistoryReset || $[19] !== props.onHistoryUp || $[20] !== props.onImagePaste || $[21] !== props.onModeChange || $[22] !== props.onSubmit || $[23] !== props.onUndo || $[24] !== props.value || $[25] !== t12 || $[26] !== t14 || $[27] !== t15) {
 43      t16 = {
 44        value: t0,
 45        onChange: t1,
 46        onSubmit: t2,
 47        onExit: t3,
 48        onExitMessage: t4,
 49        onHistoryReset: t5,
 50        onHistoryUp: t6,
 51        onHistoryDown: t7,
 52        onClearInput: t8,
 53        focus: t9,
 54        mask: t10,
 55        multiline: t11,
 56        cursorChar: t12,
 57        highlightPastedText: t13,
 58        invert: t14,
 59        themeText: t15,
 60        columns: props.columns,
 61        maxVisibleLines: props.maxVisibleLines,
 62        onImagePaste: props.onImagePaste,
 63        disableCursorMovementForUpDownKeys: props.disableCursorMovementForUpDownKeys,
 64        disableEscapeDoublePress: props.disableEscapeDoublePress,
 65        externalOffset: props.cursorOffset,
 66        onOffsetChange: props.onChangeCursorOffset,
 67        inputFilter: props.inputFilter,
 68        onModeChange: props.onModeChange,
 69        onUndo: props.onUndo
 70      };
 71      $[2] = props.columns;
 72      $[3] = props.cursorOffset;
 73      $[4] = props.disableCursorMovementForUpDownKeys;
 74      $[5] = props.disableEscapeDoublePress;
 75      $[6] = props.focus;
 76      $[7] = props.highlightPastedText;
 77      $[8] = props.inputFilter;
 78      $[9] = props.mask;
 79      $[10] = props.maxVisibleLines;
 80      $[11] = props.multiline;
 81      $[12] = props.onChange;
 82      $[13] = props.onChangeCursorOffset;
 83      $[14] = props.onClearInput;
 84      $[15] = props.onExit;
 85      $[16] = props.onExitMessage;
 86      $[17] = props.onHistoryDown;
 87      $[18] = props.onHistoryReset;
 88      $[19] = props.onHistoryUp;
 89      $[20] = props.onImagePaste;
 90      $[21] = props.onModeChange;
 91      $[22] = props.onSubmit;
 92      $[23] = props.onUndo;
 93      $[24] = props.value;
 94      $[25] = t12;
 95      $[26] = t14;
 96      $[27] = t15;
 97      $[28] = t16;
 98    } else {
 99      t16 = $[28];
100    }
101    const vimInputState = useVimInput(t16);
102    const {
103      mode,
104      setMode
105    } = vimInputState;
106    let t17;
107    let t18;
108    if ($[29] !== mode || $[30] !== props.initialMode || $[31] !== setMode) {
109      t17 = () => {
110        if (props.initialMode && props.initialMode !== mode) {
111          setMode(props.initialMode);
112        }
113      };
114      t18 = [props.initialMode, mode, setMode];
115      $[29] = mode;
116      $[30] = props.initialMode;
117      $[31] = setMode;
118      $[32] = t17;
119      $[33] = t18;
120    } else {
121      t17 = $[32];
122      t18 = $[33];
123    }
124    React.useEffect(t17, t18);
125    let t19;
126    if ($[34] !== isTerminalFocused || $[35] !== props || $[36] !== vimInputState) {
127      t19 = <Box flexDirection="column"><BaseTextInput inputState={vimInputState} terminalFocus={isTerminalFocused} highlights={props.highlights} {...props} /></Box>;
128      $[34] = isTerminalFocused;
129      $[35] = props;
130      $[36] = vimInputState;
131      $[37] = t19;
132    } else {
133      t19 = $[37];
134    }
135    return t19;
136  }
137  function _temp(text) {
138    return text;
139  }
140  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjaGFsayIsIlJlYWN0IiwidXNlQ2xpcGJvYXJkSW1hZ2VIaW50IiwidXNlVmltSW5wdXQiLCJCb3giLCJjb2xvciIsInVzZVRlcm1pbmFsRm9jdXMiLCJ1c2VUaGVtZSIsIlZpbVRleHRJbnB1dFByb3BzIiwiVGV4dEhpZ2hsaWdodCIsIkJhc2VUZXh0SW5wdXQiLCJQcm9wcyIsImhpZ2hsaWdodHMiLCJWaW1UZXh0SW5wdXQiLCJwcm9wcyIsIiQiLCJfYyIsInRoZW1lIiwiaXNUZXJtaW5hbEZvY3VzZWQiLCJvbkltYWdlUGFzdGUiLCJ0MCIsInZhbHVlIiwidDEiLCJvbkNoYW5nZSIsInQyIiwib25TdWJtaXQiLCJ0MyIsIm9uRXhpdCIsInQ0Iiwib25FeGl0TWVzc2FnZSIsInQ1Iiwib25IaXN0b3J5UmVzZXQiLCJ0NiIsIm9uSGlzdG9yeVVwIiwidDciLCJvbkhpc3RvcnlEb3duIiwidDgiLCJvbkNsZWFySW5wdXQiLCJ0OSIsImZvY3VzIiwidDEwIiwibWFzayIsInQxMSIsIm11bHRpbGluZSIsInQxMiIsInNob3dDdXJzb3IiLCJ0MTMiLCJoaWdobGlnaHRQYXN0ZWRUZXh0IiwidDE0IiwiaW52ZXJzZSIsIl90ZW1wIiwidDE1IiwidDE2IiwiY29sdW1ucyIsImN1cnNvck9mZnNldCIsImRpc2FibGVDdXJzb3JNb3ZlbWVudEZvclVwRG93bktleXMiLCJkaXNhYmxlRXNjYXBlRG91YmxlUHJlc3MiLCJpbnB1dEZpbHRlciIsIm1heFZpc2libGVMaW5lcyIsIm9uQ2hhbmdlQ3Vyc29yT2Zmc2V0Iiwib25Nb2RlQ2hhbmdlIiwib25VbmRvIiwiY3Vyc29yQ2hhciIsImludmVydCIsInRoZW1lVGV4dCIsImV4dGVybmFsT2Zmc2V0Iiwib25PZmZzZXRDaGFuZ2UiLCJ2aW1JbnB1dFN0YXRlIiwibW9kZSIsInNldE1vZGUiLCJ0MTciLCJ0MTgiLCJpbml0aWFsTW9kZSIsInVzZUVmZmVjdCIsInQxOSIsInRleHQiXSwic291cmNlcyI6WyJWaW1UZXh0SW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tICdjaGFsaydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNsaXBib2FyZEltYWdlSGludCB9IGZyb20gJy4uL2hvb2tzL3VzZUNsaXBib2FyZEltYWdlSGludC5qcydcbmltcG9ydCB7IHVzZVZpbUlucHV0IH0gZnJvbSAnLi4vaG9va3MvdXNlVmltSW5wdXQuanMnXG5pbXBvcnQgeyBCb3gsIGNvbG9yLCB1c2VUZXJtaW5hbEZvY3VzLCB1c2VUaGVtZSB9IGZyb20gJy4uL2luay5qcydcbmltcG9ydCB0eXBlIHsgVmltVGV4dElucHV0UHJvcHMgfSBmcm9tICcuLi90eXBlcy90ZXh0SW5wdXRUeXBlcy5qcydcbmltcG9ydCB0eXBlIHsgVGV4dEhpZ2hsaWdodCB9IGZyb20gJy4uL3V0aWxzL3RleHRIaWdobGlnaHRpbmcuanMnXG5pbXBvcnQgeyBCYXNlVGV4dElucHV0IH0gZnJvbSAnLi9CYXNlVGV4dElucHV0LmpzJ1xuXG5leHBvcnQgdHlwZSBQcm9wcyA9IFZpbVRleHRJbnB1dFByb3BzICYge1xuICBoaWdobGlnaHRzPzogVGV4dEhpZ2hsaWdodFtdXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFZpbVRleHRJbnB1dChwcm9wczogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbdGhlbWVdID0gdXNlVGhlbWUoKVxuICBjb25zdCBpc1Rlcm1pbmFsRm9jdXNlZCA9IHVzZVRlcm1pbmFsRm9jdXMoKVxuXG4gIC8vIFNob3cgaGludCB3aGVuIHRlcm1pbmFsIHJlZ2FpbnMgZm9jdXMgYW5kIGNsaXBib2FyZCBoYXMgYW4gaW1hZ2VcbiAgdXNlQ2xpcGJvYXJkSW1hZ2VIaW50KGlzVGVybWluYWxGb2N1c2VkLCAhIXByb3BzLm9uSW1hZ2VQYXN0ZSlcblxuICBjb25zdCB2aW1JbnB1dFN0YXRlID0gdXNlVmltSW5wdXQoe1xuICAgIHZhbHVlOiBwcm9wcy52YWx1ZSxcbiAgICBvbkNoYW5nZTogcHJvcHMub25DaGFuZ2UsXG4gICAgb25TdWJtaXQ6IHByb3BzLm9uU3VibWl0LFxuICAgIG9uRXhpdDogcHJvcHMub25FeGl0LFxuICAgIG9uRXhpdE1lc3NhZ2U6IHByb3BzLm9uRXhpdE1lc3NhZ2UsXG4gICAgb25IaXN0b3J5UmVzZXQ6IHByb3BzLm9uSGlzdG9yeVJlc2V0LFxuICAgIG9uSGlzdG9yeVVwOiBwcm9wcy5vbkhpc3RvcnlVcCxcbiAgICBvbkhpc3RvcnlEb3duOiBwcm9wcy5vbkhpc3RvcnlEb3duLFxuICAgIG9uQ2xlYXJJbnB1dDogcHJvcHMub25DbGVhcklucHV0LFxuICAgIGZvY3VzOiBwcm9wcy5mb2N1cyxcbiAgICBtYXNrOiBwcm9wcy5tYXNrLFxuICAgIG11bHRpbGluZTogcHJvcHMubXVsdGlsaW5lLFxuICAgIGN1cnNvckNoYXI6IHByb3BzLnNob3dDdXJzb3IgPyAnICcgOiAnJyxcbiAgICBoaWdobGlnaHRQYXN0ZWRUZXh0OiBwcm9wcy5oaWdobGlnaHRQYXN0ZWRUZXh0LFxuICAgIGludmVydDogaXNUZXJtaW5hbEZvY3VzZWQgPyBjaGFsay5pbnZlcnNlIDogKHRleHQ6IHN0cmluZykgPT4gdGV4dCxcbiAgICB0aGVtZVRleHQ6IGNvbG9yKCd0ZXh0JywgdGhlbWUpLFxuICAgIGNvbHVtbnM6IHByb3BzLmNvbHVtbnMsXG4gICAgbWF4VmlzaWJsZUxpbmVzOiBwcm9wcy5tYXhWaXNpYmxlTGluZXMsXG4gICAgb25JbWFnZVBhc3RlOiBwcm9wcy5vbkltYWdlUGFzdGUsXG4gICAgZGlzYWJsZUN1cnNvck1vdmVtZW50Rm9yVXBEb3duS2V5czpcbiAgICAgIHByb3BzLmRpc2FibGVDdXJzb3JNb3ZlbWVudEZvclVwRG93bktleXMsXG4gICAgZGlzYWJsZUVzY2FwZURvdWJsZVByZXNzOiBwcm9wcy5kaXNhYmxlRXNjYXBlRG91YmxlUHJlc3MsXG4gICAgZXh0ZXJuYWxPZmZzZXQ6IHByb3BzLmN1cnNvck9mZnNldCxcbiAgICBvbk9mZnNldENoYW5nZTogcHJvcHMub25DaGFuZ2VDdXJzb3JPZmZzZXQsXG4gICAgaW5wdXRGaWx0ZXI6IHByb3BzLmlucHV0RmlsdGVyLFxuICAgIG9uTW9kZUNoYW5nZTogcHJvcHMub25Nb2RlQ2hhbmdlLFxuICAgIG9uVW5kbzogcHJvcHMub25VbmRvLFxuICB9KVxuXG4gIGNvbnN0IHsgbW9kZSwgc2V0TW9kZSB9ID0gdmltSW5wdXRTdGF0ZVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByb3BzLmluaXRpYWxNb2RlICYmIHByb3BzLmluaXRpYWxNb2RlICE9PSBtb2RlKSB7XG4gICAgICBzZXRNb2RlKHByb3BzLmluaXRpYWxNb2RlKVxuICAgIH1cbiAgfSwgW3Byb3BzLmluaXRpYWxNb2RlLCBtb2RlLCBzZXRNb2RlXSlcblxuICByZXR1cm4gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgPEJhc2VUZXh0SW5wdXRcbiAgICAgICAgaW5wdXRTdGF0ZT17dmltSW5wdXRTdGF0ZX1cbiAgICAgICAgdGVybWluYWxGb2N1cz17aXNUZXJtaW5hbEZvY3VzZWR9XG4gICAgICAgIGhpZ2hsaWdodHM9e3Byb3BzLmhpZ2hsaWdodHN9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgIC8+XG4gICAgPC9Cb3g+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVNDLHFCQUFxQixRQUFRLG1DQUFtQztBQUN6RSxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxnQkFBZ0IsRUFBRUMsUUFBUSxRQUFRLFdBQVc7QUFDbEUsY0FBY0MsaUJBQWlCLFFBQVEsNEJBQTRCO0FBQ25FLGNBQWNDLGFBQWEsUUFBUSw4QkFBOEI7QUFDakUsU0FBU0MsYUFBYSxRQUFRLG9CQUFvQjtBQUVsRCxPQUFPLEtB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