@portabletext/editor
Version:
Portable Text Editor made in React
101 lines (100 loc) • 6.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: !0 });
var selector_isSelectingEntireBlocks = require("../_chunks-cjs/selector.is-selecting-entire-blocks.cjs"), util_sliceBlocks = require("../_chunks-cjs/util.slice-blocks.cjs"), types = require("@sanity/types"), selector_isOverlappingSelection = require("../_chunks-cjs/selector.is-overlapping-selection.cjs"), selector_getFocusInlineObject = require("../_chunks-cjs/selector.get-focus-inline-object.cjs"), selector_getTextBefore = require("../_chunks-cjs/selector.get-text-before.cjs");
const getAnchorBlock = (snapshot) => {
const key = snapshot.context.selection && util_sliceBlocks.isKeyedSegment(snapshot.context.selection.anchor.path[0]) ? snapshot.context.selection.anchor.path[0]._key : void 0, node = key ? snapshot.context.value.find((block) => block._key === key) : void 0;
return node && key ? {
node,
path: [{
_key: key
}]
} : void 0;
}, getAnchorTextBlock = (snapshot) => {
const anchorBlock = getAnchorBlock(snapshot);
return anchorBlock && types.isPortableTextTextBlock(anchorBlock.node) ? {
node: anchorBlock.node,
path: anchorBlock.path
} : void 0;
}, getAnchorChild = (snapshot) => {
const anchorBlock = getAnchorTextBlock(snapshot);
if (!anchorBlock)
return;
const key = snapshot.context.selection && util_sliceBlocks.isKeyedSegment(snapshot.context.selection.anchor.path[2]) ? snapshot.context.selection.anchor.path[2]._key : void 0, node = key ? anchorBlock.node.children.find((span) => span._key === key) : void 0;
return node && key ? {
node,
path: [...anchorBlock.path, "children", {
_key: key
}]
} : void 0;
}, getAnchorSpan = (snapshot) => {
const anchorChild = getAnchorChild(snapshot);
return anchorChild && types.isPortableTextSpan(anchorChild.node) ? {
node: anchorChild.node,
path: anchorChild.path
} : void 0;
}, getBlockOffsets = (snapshot) => {
if (!snapshot.context.selection)
return;
const selectionStartPoint = selector_isOverlappingSelection.getSelectionStartPoint(snapshot), selectionEndPoint = selector_isOverlappingSelection.getSelectionEndPoint(snapshot);
if (!selectionStartPoint || !selectionEndPoint)
return;
const start = util_sliceBlocks.spanSelectionPointToBlockOffset({
value: snapshot.context.value,
selectionPoint: selectionStartPoint
}), end = util_sliceBlocks.spanSelectionPointToBlockOffset({
value: snapshot.context.value,
selectionPoint: selectionEndPoint
});
return start && end ? {
start,
end
} : void 0;
}, getSelection = (snapshot) => snapshot.context.selection, getValue = (snapshot) => snapshot.context.value;
exports.getActiveAnnotations = selector_isSelectingEntireBlocks.getActiveAnnotations;
exports.getActiveListItem = selector_isSelectingEntireBlocks.getActiveListItem;
exports.getActiveStyle = selector_isSelectingEntireBlocks.getActiveStyle;
exports.getSelectedSpans = selector_isSelectingEntireBlocks.getSelectedSpans;
exports.getSelectedTextBlocks = selector_isSelectingEntireBlocks.getSelectedTextBlocks;
exports.getTrimmedSelection = selector_isSelectingEntireBlocks.getTrimmedSelection;
exports.isActiveAnnotation = selector_isSelectingEntireBlocks.isActiveAnnotation;
exports.isActiveDecorator = selector_isSelectingEntireBlocks.isActiveDecorator;
exports.isActiveListItem = selector_isSelectingEntireBlocks.isActiveListItem;
exports.isActiveStyle = selector_isSelectingEntireBlocks.isActiveStyle;
exports.isSelectingEntireBlocks = selector_isSelectingEntireBlocks.isSelectingEntireBlocks;
exports.getCaretWordSelection = selector_isOverlappingSelection.getCaretWordSelection;
exports.getFirstBlock = selector_isOverlappingSelection.getFirstBlock;
exports.getFocusBlock = selector_isOverlappingSelection.getFocusBlock;
exports.getFocusBlockObject = selector_isOverlappingSelection.getFocusBlockObject;
exports.getFocusChild = selector_isOverlappingSelection.getFocusChild;
exports.getFocusListBlock = selector_isOverlappingSelection.getFocusListBlock;
exports.getFocusSpan = selector_isOverlappingSelection.getFocusSpan;
exports.getFocusTextBlock = selector_isOverlappingSelection.getFocusTextBlock;
exports.getLastBlock = selector_isOverlappingSelection.getLastBlock;
exports.getNextBlock = selector_isOverlappingSelection.getNextBlock;
exports.getNextInlineObject = selector_isOverlappingSelection.getNextInlineObject;
exports.getPreviousBlock = selector_isOverlappingSelection.getPreviousBlock;
exports.getPreviousInlineObject = selector_isOverlappingSelection.getPreviousInlineObject;
exports.getSelectedBlocks = selector_isOverlappingSelection.getSelectedBlocks;
exports.getSelectedSlice = selector_isOverlappingSelection.getSelectedSlice;
exports.getSelectionEndBlock = selector_isOverlappingSelection.getSelectionEndBlock;
exports.getSelectionEndPoint = selector_isOverlappingSelection.getSelectionEndPoint;
exports.getSelectionStartBlock = selector_isOverlappingSelection.getSelectionStartBlock;
exports.getSelectionStartPoint = selector_isOverlappingSelection.getSelectionStartPoint;
exports.getSelectionText = selector_isOverlappingSelection.getSelectionText;
exports.isAtTheEndOfBlock = selector_isOverlappingSelection.isAtTheEndOfBlock;
exports.isAtTheStartOfBlock = selector_isOverlappingSelection.isAtTheStartOfBlock;
exports.isOverlappingSelection = selector_isOverlappingSelection.isOverlappingSelection;
exports.isPointAfterSelection = selector_isOverlappingSelection.isPointAfterSelection;
exports.isPointBeforeSelection = selector_isOverlappingSelection.isPointBeforeSelection;
exports.isSelectionCollapsed = selector_isOverlappingSelection.isSelectionCollapsed;
exports.isSelectionExpanded = selector_isOverlappingSelection.isSelectionExpanded;
exports.getFocusInlineObject = selector_getFocusInlineObject.getFocusInlineObject;
exports.getBlockTextBefore = selector_getTextBefore.getBlockTextBefore;
exports.getAnchorBlock = getAnchorBlock;
exports.getAnchorChild = getAnchorChild;
exports.getAnchorSpan = getAnchorSpan;
exports.getAnchorTextBlock = getAnchorTextBlock;
exports.getBlockOffsets = getBlockOffsets;
exports.getSelection = getSelection;
exports.getValue = getValue;
//# sourceMappingURL=index.cjs.map