UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

72 lines 2.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var utils_1 = require("../../utils"); exports.posOfMediaGroupNearby = function (state) { return exports.posOfParentMediaGroup(state) || posOfFollowingMediaGroup(state) || exports.posOfPreceedingMediaGroup(state); }; exports.isSelectionNonMediaBlockNode = function (state) { var node = state.selection.node; return node && node.type !== state.schema.nodes.media && node.isBlock; }; exports.posOfPreceedingMediaGroup = function (state) { if (!utils_1.atTheBeginningOfBlock(state)) { return; } return posOfMediaGroupAbove(state, state.selection.$from); }; var posOfFollowingMediaGroup = function (state) { if (!utils_1.atTheEndOfBlock(state)) { return; } return exports.posOfMediaGroupBelow(state, state.selection.$to); }; var posOfMediaGroupAbove = function (state, $pos) { var adjacentPos; var adjacentNode; if (exports.isSelectionNonMediaBlockNode(state)) { adjacentPos = $pos.pos; adjacentNode = $pos.nodeBefore; } else { adjacentPos = utils_1.startPositionOfParent($pos) - 1; adjacentNode = state.doc.resolve(adjacentPos).nodeBefore; } if (adjacentNode && adjacentNode.type === state.schema.nodes.mediaGroup) { return adjacentPos - adjacentNode.nodeSize + 1; } }; /** * Determine whether the cursor is inside empty paragraph * or the selection is the entire paragraph */ exports.isInsidePotentialEmptyParagraph = function (state) { var $from = state.selection.$from; return $from.parent.type === state.schema.nodes.paragraph && utils_1.atTheBeginningOfBlock(state) && utils_1.atTheEndOfBlock(state); }; exports.posOfMediaGroupBelow = function (state, $pos, prepend) { if (prepend === void 0) { prepend = true; } var adjacentPos; var adjacentNode; if (exports.isSelectionNonMediaBlockNode(state)) { adjacentPos = $pos.pos; adjacentNode = $pos.nodeAfter; } else { adjacentPos = utils_1.endPositionOfParent($pos); adjacentNode = state.doc.nodeAt(adjacentPos); } if (adjacentNode && adjacentNode.type === state.schema.nodes.mediaGroup) { return prepend ? adjacentPos + 1 : adjacentPos + adjacentNode.nodeSize - 1; } }; exports.posOfParentMediaGroup = function (state, $pos, prepend) { if (prepend === void 0) { prepend = true; } var $from = state.selection.$from; $pos = $pos || $from; if ($pos.parent.type === state.schema.nodes.mediaGroup) { return prepend ? utils_1.startPositionOfParent($pos) : utils_1.endPositionOfParent($pos) - 1; } }; //# sourceMappingURL=utils.js.map