@portabletext/editor
Version:
Portable Text Editor made in React
171 lines (170 loc) • 8.25 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_isSelectionExpanded = require("../_chunks-cjs/selector.is-selection-expanded.cjs"), selector_getTextBefore = require("../_chunks-cjs/selector.get-text-before.cjs");
const getAnchorBlock = (snapshot) => {
if (!snapshot.context.selection)
return;
const key = util_sliceBlocks.getBlockKeyFromSelectionPoint(snapshot.context.selection.anchor), index = key ? snapshot.blockIndexMap.get(key) : void 0, node = index !== void 0 ? snapshot.context.value.at(index) : void 0;
return node && key ? {
node,
path: [{
_key: key
}]
} : void 0;
}, getAnchorTextBlock = (snapshot) => {
const anchorBlock = getAnchorBlock(snapshot);
return anchorBlock && util_sliceBlocks.isTextBlock(snapshot.context, anchorBlock.node) ? {
node: anchorBlock.node,
path: anchorBlock.path
} : void 0;
}, getAnchorChild = (snapshot) => {
if (!snapshot.context.selection)
return;
const anchorBlock = getAnchorTextBlock(snapshot);
if (!anchorBlock)
return;
const key = util_sliceBlocks.getChildKeyFromSelectionPoint(snapshot.context.selection.anchor), 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_isSelectionExpanded.getSelectionStartPoint(snapshot), selectionEndPoint = selector_isSelectingEntireBlocks.getSelectionEndPoint(snapshot);
if (!selectionStartPoint || !selectionEndPoint)
return;
const start = util_sliceBlocks.spanSelectionPointToBlockOffset({
context: snapshot.context,
selectionPoint: selectionStartPoint
}), end = util_sliceBlocks.spanSelectionPointToBlockOffset({
context: snapshot.context,
selectionPoint: selectionEndPoint
});
return start && end ? {
start,
end
} : void 0;
};
function getListIndex({
path
}) {
return (snapshot) => {
const selection = {
anchor: {
path,
offset: 0
},
focus: {
path,
offset: 0
}
}, focusTextBlock = selector_isSelectionExpanded.getFocusTextBlock({
...snapshot,
context: {
...snapshot.context,
selection
}
});
if (!focusTextBlock || focusTextBlock.node.listItem === void 0 || focusTextBlock.node.level === void 0)
return;
const targetListItem = focusTextBlock.node.listItem, targetLevel = focusTextBlock.node.level, targetKey = focusTextBlock.node._key, targetIndex = snapshot.blockIndexMap.get(targetKey);
if (targetIndex === void 0)
return;
let listIndex = 1;
for (let i = targetIndex - 1; i >= 0; i--) {
const block = snapshot.context.value[i];
if (!util_sliceBlocks.isTextBlock(snapshot.context, block) || block.listItem === void 0 || block.level === void 0 || block.listItem !== targetListItem || block.level < targetLevel)
break;
block.level === targetLevel && listIndex++;
}
return listIndex;
};
}
const getSelectedSlice = (snapshot) => selector_isSelectionExpanded.getSelectedValue(snapshot), getSelection = (snapshot) => snapshot.context.selection, getSelectionEndChild = (snapshot) => {
const endPoint = util_sliceBlocks.getSelectionEndPoint(snapshot.context.selection);
if (endPoint)
return selector_isSelectionExpanded.getFocusChild({
...snapshot,
context: {
...snapshot.context,
selection: {
anchor: endPoint,
focus: endPoint
}
}
});
}, getSelectionStartChild = (snapshot) => {
const startPoint = util_sliceBlocks.getSelectionStartPoint(snapshot.context.selection);
if (startPoint)
return selector_isSelectionExpanded.getFocusChild({
...snapshot,
context: {
...snapshot.context,
selection: {
anchor: startPoint,
focus: startPoint
}
}
});
}, getValue = (snapshot) => snapshot.context.value;
exports.getActiveAnnotations = selector_isSelectingEntireBlocks.getActiveAnnotations;
exports.getActiveListItem = selector_isSelectingEntireBlocks.getActiveListItem;
exports.getActiveStyle = selector_isSelectingEntireBlocks.getActiveStyle;
exports.getCaretWordSelection = selector_isSelectingEntireBlocks.getCaretWordSelection;
exports.getFirstBlock = selector_isSelectingEntireBlocks.getFirstBlock;
exports.getFocusBlockObject = selector_isSelectingEntireBlocks.getFocusBlockObject;
exports.getFocusInlineObject = selector_isSelectingEntireBlocks.getFocusInlineObject;
exports.getFocusListBlock = selector_isSelectingEntireBlocks.getFocusListBlock;
exports.getLastBlock = selector_isSelectingEntireBlocks.getLastBlock;
exports.getNextBlock = selector_isSelectingEntireBlocks.getNextBlock;
exports.getNextInlineObject = selector_isSelectingEntireBlocks.getNextInlineObject;
exports.getPreviousBlock = selector_isSelectingEntireBlocks.getPreviousBlock;
exports.getSelectedBlocks = selector_isSelectingEntireBlocks.getSelectedBlocks;
exports.getSelectedSpans = selector_isSelectingEntireBlocks.getSelectedSpans;
exports.getSelectedTextBlocks = selector_isSelectingEntireBlocks.getSelectedTextBlocks;
exports.getSelectionEndBlock = selector_isSelectingEntireBlocks.getSelectionEndBlock;
exports.getSelectionEndPoint = selector_isSelectingEntireBlocks.getSelectionEndPoint;
exports.getSelectionStartBlock = selector_isSelectingEntireBlocks.getSelectionStartBlock;
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.isAtTheEndOfBlock = selector_isSelectingEntireBlocks.isAtTheEndOfBlock;
exports.isAtTheStartOfBlock = selector_isSelectingEntireBlocks.isAtTheStartOfBlock;
exports.isOverlappingSelection = selector_isSelectingEntireBlocks.isOverlappingSelection;
exports.isPointAfterSelection = selector_isSelectingEntireBlocks.isPointAfterSelection;
exports.isPointBeforeSelection = selector_isSelectingEntireBlocks.isPointBeforeSelection;
exports.isSelectingEntireBlocks = selector_isSelectingEntireBlocks.isSelectingEntireBlocks;
exports.getFocusBlock = selector_isSelectionExpanded.getFocusBlock;
exports.getFocusChild = selector_isSelectionExpanded.getFocusChild;
exports.getFocusSpan = selector_isSelectionExpanded.getFocusSpan;
exports.getFocusTextBlock = selector_isSelectionExpanded.getFocusTextBlock;
exports.getPreviousInlineObject = selector_isSelectionExpanded.getPreviousInlineObject;
exports.getSelectedValue = selector_isSelectionExpanded.getSelectedValue;
exports.getSelectionStartPoint = selector_isSelectionExpanded.getSelectionStartPoint;
exports.getSelectionText = selector_isSelectionExpanded.getSelectionText;
exports.isSelectionCollapsed = selector_isSelectionExpanded.isSelectionCollapsed;
exports.isSelectionExpanded = selector_isSelectionExpanded.isSelectionExpanded;
exports.getBlockTextBefore = selector_getTextBefore.getBlockTextBefore;
exports.getAnchorBlock = getAnchorBlock;
exports.getAnchorChild = getAnchorChild;
exports.getAnchorSpan = getAnchorSpan;
exports.getAnchorTextBlock = getAnchorTextBlock;
exports.getBlockOffsets = getBlockOffsets;
exports.getListIndex = getListIndex;
exports.getSelectedSlice = getSelectedSlice;
exports.getSelection = getSelection;
exports.getSelectionEndChild = getSelectionEndChild;
exports.getSelectionStartChild = getSelectionStartChild;
exports.getValue = getValue;
//# sourceMappingURL=index.cjs.map