usxeditor
Version:
USX editor react component.
59 lines (58 loc) • 3.52 kB
JavaScript
;
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;