UNPKG

usxeditor

Version:

USX editor react component.

59 lines (58 loc) 3.52 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = __importDefault(require("react")); var react_autobind_1 = __importDefault(require("react-autobind")); var UsxMainEditor_1 = __importDefault(require("./UsxMainEditor")); var UsxFootnoteEditor_1 = __importDefault(require("./UsxFootnoteEditor")); var StatusBar_1 = __importDefault(require("./StatusBar")); var ErrorBoundary_1 = __importDefault(require("./ErrorBoundary")); var UsxEditor = /** @class */ (function (_super) { __extends(UsxEditor, _super); function UsxEditor(props) { var _this = _super.call(this, props) || this; (0, react_autobind_1.default)(_this); _this.state = { startIndex: 0, endIndex: 0, topPaneHasFocus: true, }; return _this; } UsxEditor.prototype.render = function () { var _this = this; var _a = this.props, usx = _a.usx, paraMap = _a.paraMap, charMap = _a.charMap, onUsxChanged = _a.onUsxChanged, showFootnotePane = _a.showFootnotePane, showStatusBar = _a.showStatusBar; var _b = this.state, startIndex = _b.startIndex, endIndex = _b.endIndex, topPaneHasFocus = _b.topPaneHasFocus; var mainEditor = react_1.default.createElement(UsxMainEditor_1.default, { usx: usx, paraMap: paraMap, charMap: charMap, selectionStart: startIndex, selectionEnd: endIndex, allowFocus: topPaneHasFocus, onSelectionChanged: function (start, end) { _this.setState({ topPaneHasFocus: true, startIndex: start, endIndex: end }); }, onUsxChanged: onUsxChanged }); var footnoteEditor = showFootnotePane ? react_1.default.createElement(UsxFootnoteEditor_1.default, { usx: usx, selectionStart: startIndex, selectionEnd: endIndex, allowFocus: !topPaneHasFocus, onSelectionChanged: function (start, end) { _this.setState({ topPaneHasFocus: false, startIndex: start, endIndex: end }); }, onUsxChanged: onUsxChanged }) : null; var statusBar = showStatusBar ? react_1.default.createElement(StatusBar_1.default, { selectionStart: startIndex }) : null; return react_1.default.createElement("div", { className: 'usxEditor', style: { display: 'flex', flexDirection: 'column', width: '80%', fontSize: '14pt' } }, react_1.default.createElement(ErrorBoundary_1.default, { usx: usx }, mainEditor, footnoteEditor, statusBar)); }; return UsxEditor; }(react_1.default.PureComponent)); exports.default = UsxEditor;