@portabletext/editor
Version:
Portable Text Editor made in React
75 lines (74 loc) • 3.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: !0 });
var util_sliceBlocks = require("../_chunks-cjs/util.slice-blocks.cjs"), util_selectionPointToBlockOffset = require("../_chunks-cjs/util.selection-point-to-block-offset.cjs"), util_isSelectionCollapsed = require("../_chunks-cjs/util.is-selection-collapsed.cjs"), util_mergeTextBlocks = require("../_chunks-cjs/util.merge-text-blocks.cjs");
function getSelectionStartPoint(selection) {
return selection ? selection.backward ? selection.focus : selection.anchor : null;
}
function isEqualSelections(a, b) {
return !a && !b ? !0 : !a || !b ? !1 : util_sliceBlocks.isEqualSelectionPoints(a.anchor, b.anchor) && util_sliceBlocks.isEqualSelectionPoints(a.focus, b.focus);
}
function splitTextBlock({
context,
block,
point
}) {
const firstChild = block.children.at(0), lastChild = block.children.at(block.children.length - 1);
if (!firstChild || !lastChild)
return;
const before = util_sliceBlocks.sliceBlocks({
blocks: [block],
selection: {
anchor: {
path: [{
_key: block._key
}, "children", {
_key: firstChild._key
}],
offset: 0
},
focus: point
}
}).at(0), after = util_sliceBlocks.sliceBlocks({
blocks: [block],
selection: {
anchor: point,
focus: {
path: [{
_key: block._key
}, "children", {
_key: lastChild._key
}],
offset: util_sliceBlocks.isSpan(context, lastChild) ? lastChild.text.length : 0
}
}
}).at(0);
if (!(!before || !after) && !(!util_mergeTextBlocks.isTextBlock(context, before) || !util_mergeTextBlocks.isTextBlock(context, after)))
return {
before,
after
};
}
exports.blockOffsetToSpanSelectionPoint = util_sliceBlocks.blockOffsetToSpanSelectionPoint;
exports.getBlockEndPoint = util_sliceBlocks.getBlockEndPoint;
exports.getBlockStartPoint = util_sliceBlocks.getBlockStartPoint;
exports.getTextBlockText = util_sliceBlocks.getTextBlockText;
exports.isEmptyTextBlock = util_sliceBlocks.isEmptyTextBlock;
exports.isEqualSelectionPoints = util_sliceBlocks.isEqualSelectionPoints;
exports.isKeyedSegment = util_sliceBlocks.isKeyedSegment;
exports.isSpan = util_sliceBlocks.isSpan;
exports.reverseSelection = util_sliceBlocks.reverseSelection;
exports.sliceBlocks = util_sliceBlocks.sliceBlocks;
exports.spanSelectionPointToBlockOffset = util_sliceBlocks.spanSelectionPointToBlockOffset;
exports.blockOffsetToBlockSelectionPoint = util_selectionPointToBlockOffset.blockOffsetToBlockSelectionPoint;
exports.blockOffsetToSelectionPoint = util_selectionPointToBlockOffset.blockOffsetToSelectionPoint;
exports.blockOffsetsToSelection = util_selectionPointToBlockOffset.blockOffsetsToSelection;
exports.childSelectionPointToBlockOffset = util_selectionPointToBlockOffset.childSelectionPointToBlockOffset;
exports.selectionPointToBlockOffset = util_selectionPointToBlockOffset.selectionPointToBlockOffset;
exports.getSelectionEndPoint = util_isSelectionCollapsed.getSelectionEndPoint;
exports.isSelectionCollapsed = util_isSelectionCollapsed.isSelectionCollapsed;
exports.isTextBlock = util_mergeTextBlocks.isTextBlock;
exports.mergeTextBlocks = util_mergeTextBlocks.mergeTextBlocks;
exports.getSelectionStartPoint = getSelectionStartPoint;
exports.isEqualSelections = isEqualSelections;
exports.splitTextBlock = splitTextBlock;
//# sourceMappingURL=index.cjs.map