UNPKG

@eccenca/gui-elements

Version:

GUI elements based on other libraries, usable in React application, written in Typescript.

25 lines 2.07 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExtendedCodeEditor = void 0; const react_1 = __importDefault(require("react")); const core_1 = require("@blueprintjs/core"); const state_1 = require("@codemirror/state"); const view_1 = require("@codemirror/view"); const constants_1 = require("../../configuration/constants"); const CodeMirror_1 = require("../../extensions/codemirror/CodeMirror"); /** Supports single-line and multiline editing. */ const ExtendedCodeEditor = ({ multiline = false, initialValue = "", onKeyDown, enableTab = false, mode, setCM, onFocusChange, onMouseDown, onChange, placeholder, onCursorChange, onSelection, codeEditorProps, height, readOnly }) => { const initialContent = react_1.default.useRef(multiline ? initialValue : initialValue.replace(/[\r\n]/g, " ")); const multilineExtensions = multiline ? [(0, view_1.lineNumbers)(), view_1.EditorView.lineWrapping] : [ state_1.EditorState === null || state_1.EditorState === void 0 ? void 0 : state_1.EditorState.transactionFilter.of((tr) => (tr.newDoc.lines > 1 ? [] : tr)), ]; return (react_1.default.createElement(CodeMirror_1.CodeEditor, Object.assign({ defaultValue: initialContent.current, setEditorView: setCM, onSelection: onSelection, onMouseDown: onMouseDown, onChange: onChange, placeholder: placeholder, onCursorChange: onCursorChange, onFocusChange: onFocusChange, onKeyDown: onKeyDown, shouldHaveMinimalSetup: false, preventLineNumbers: !multiline, mode: mode, height: height, readOnly: readOnly, name: "", enableTab: enableTab, additionalExtensions: [...multilineExtensions], className: multiline ? undefined : `${constants_1.CLASSPREFIX}-singlelinecodeeditor ${core_1.Classes.INPUT}` }, codeEditorProps))); }; exports.ExtendedCodeEditor = ExtendedCodeEditor; exports.default = exports.ExtendedCodeEditor; //# sourceMappingURL=ExtendedCodeEditor.js.map