usfm-editor
Version:
A WYSIWYG editor component for USFM
72 lines (61 loc) • 2.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.defaultToolbarSpecs = exports.UsfmToolbar = void 0;
var React = _interopRequireWildcard(require("react"));
var _Toolbar = _interopRequireDefault(require("@material-ui/core/Toolbar"));
var _ToolbarButton = require("./ToolbarButton");
var _UsfmMarkers = require("../utils/UsfmMarkers");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
const UsfmToolbar = ({
toolbarSpecs,
editor
}) => {
const specs = toolbarSpecs || defaultToolbarSpecs;
return /*#__PURE__*/React.createElement(_Toolbar.default, {
className: "usfm-editor-toolbar usfm-editor-border-bottom"
}, Object.keys(specs).map(function (text) {
return /*#__PURE__*/React.createElement(_ToolbarButton.ToolbarButton, {
key: text,
buttonSpec: specs[text],
editor: editor,
buttonLabel: text
});
}));
};
/**
* The button specifications for a Usfm Toolbar are defined using this type.
* The string key of each record will be used as the label and the tooltip text
* for the corresponding button.
*/
exports.UsfmToolbar = UsfmToolbar;
const defaultToolbarSpecs = {
"Section Header": {
icon: "S",
cssClass: "s-toolbar-button",
actionSpec: {
buttonType: "ParagraphButton",
usfmMarker: _UsfmMarkers.UsfmMarkers.TITLES_HEADINGS_LABELS.s
}
},
"Quoted Book Title": {
icon: "BK",
cssClass: "bk-toolbar-button",
actionSpec: {
buttonType: "MarkButton",
usfmMarker: _UsfmMarkers.UsfmMarkers.SPECIAL_TEXT.bk
}
},
"Nomen Domini": {
icon: "ND",
cssClass: "nd-toolbar-button",
actionSpec: {
buttonType: "MarkButton",
usfmMarker: _UsfmMarkers.UsfmMarkers.SPECIAL_TEXT.nd
}
}
};
exports.defaultToolbarSpecs = defaultToolbarSpecs;