UNPKG

@atlaskit/editor-plugin-block-controls

Version:

Block controls plugin for @atlaskit/editor-core

64 lines 3.6 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } export var getBlockControlsSurfaceControlSide = function getBlockControlsSurfaceControlSide(context, reliableAnchorEnabled) { return (context === null || context === void 0 ? void 0 : context.targetNode.type.name) === 'layoutColumn' || Boolean(context) && reliableAnchorEnabled && (context === null || context === void 0 ? void 0 : context.targetNode.parentType) !== 'doc' ? undefined : 'left'; }; var getNodeContext = function getNodeContext(state, pos) { var node = state.doc.nodeAt(pos); if (!node) { return undefined; } var $pos = state.doc.resolve(pos); var ancestors = []; for (var depth = 0; depth <= $pos.depth; depth++) { var ancestor = $pos.node(depth); ancestors.push({ depth: depth, pos: depth === 0 ? 0 : $pos.before(depth), type: { name: ancestor.type.name } }); } return { ancestors: ancestors, depth: $pos.depth + 1, node: node, parentType: $pos.parent.type.name, pos: pos, type: { name: node.type.name } }; }; export var createBlockControlsSurfaceContextForPosition = function createBlockControlsSurfaceContextForPosition(state, targetPos, activeNode) { var _activeNode$rootPos, _getNodeContext, _activeNode$rootNodeT; var targetNodeContext = getNodeContext(state, targetPos); if (!targetNodeContext) { return undefined; } var activeNodeContext = activeNode ? getNodeContext(state, activeNode.pos) : undefined; var rootPos = activeNode ? (_activeNode$rootPos = activeNode.rootPos) !== null && _activeNode$rootPos !== void 0 ? _activeNode$rootPos : activeNode.pos : targetPos; var rootNodeContext = (_getNodeContext = getNodeContext(state, rootPos)) !== null && _getNodeContext !== void 0 ? _getNodeContext : targetNodeContext; return { activeControlKey: activeNode === null || activeNode === void 0 ? void 0 : activeNode.controlKey, activeNode: activeNode && activeNodeContext ? _objectSpread(_objectSpread({}, activeNodeContext), {}, { rootPos: rootPos, rootType: { name: (_activeNode$rootNodeT = activeNode.rootNodeType) !== null && _activeNode$rootNodeT !== void 0 ? _activeNode$rootNodeT : rootNodeContext.type.name } }) : undefined, rootNode: rootNodeContext, targetNode: targetNodeContext }; }; export var createBlockControlsSurfaceContext = function createBlockControlsSurfaceContext(view, activeNode) { var _activeNode$rootPos2; var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'root'; if (!activeNode) { return undefined; } var rootPos = (_activeNode$rootPos2 = activeNode.rootPos) !== null && _activeNode$rootPos2 !== void 0 ? _activeNode$rootPos2 : activeNode.pos; return createBlockControlsSurfaceContextForPosition(view.state, target === 'active' ? activeNode.pos : rootPos, activeNode); };