usfm-editor
Version:
A WYSIWYG editor component for USFM
39 lines (30 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _NodeTypes = _interopRequireDefault(require("./NodeTypes"));
var _UsfmMarkers = require("./UsfmMarkers");
var _slate = require("slate");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function isFormattableBlockType(nodeOrTypeString) {
const type = typeString(nodeOrTypeString);
return type === _NodeTypes.default.INLINE_CONTAINER || type !== undefined && _UsfmMarkers.UsfmMarkers.isParagraphType(type);
}
function typeString(nodeOrTypeString) {
if (typeof nodeOrTypeString === "string") return nodeOrTypeString;
if (_slate.Element.isElement(nodeOrTypeString)) return nodeOrTypeString.type;
return undefined;
}
function canMergeAIntoB(a, b) {
const typeA = typeString(a);
const typeB = typeString(b);
return typeA === _NodeTypes.default.INLINE_CONTAINER && (typeB === _NodeTypes.default.INLINE_CONTAINER || // Inline containers should not be merged into just any paragraph-type marker
// (such as section headers)
typeB === _UsfmMarkers.UsfmMarkers.PARAGRAPHS.p);
}
var _default = {
isFormattableBlockType,
canMergeAIntoB
};
exports.default = _default;