UNPKG

@atlaskit/editor-plugin-selection

Version:

Selection plugin for @atlaskit/editor-core

52 lines (51 loc) 2.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createMarkBoundaryCursorPlugin = void 0; var _safePlugin = require("@atlaskit/editor-common/safe-plugin"); var _view = require("@atlaskit/editor-prosemirror/view"); var _markBoundaryCursorPluginKey = require("./mark-boundary-cursor-plugin-key"); var _markBoundaryCursorDecoration = require("./mark-boundary-cursor/ui/mark-boundary-cursor-decoration"); var _activeMarksSide = require("./mark-boundary-cursor/utils/active-marks-side"); var createMarkBoundaryCursorPlugin = exports.createMarkBoundaryCursorPlugin = function createMarkBoundaryCursorPlugin() { return new _safePlugin.SafePlugin({ key: _markBoundaryCursorPluginKey.markBoundaryCursorPluginKey, state: { init: function init() { return { decorations: _view.DecorationSet.empty }; }, apply: function apply(tr, currentState) { var selection = tr.selection, storedMarks = tr.storedMarks, doc = tr.doc, selectionSet = tr.selectionSet, storedMarksSet = tr.storedMarksSet, docChanged = tr.docChanged; if (!selectionSet && !storedMarksSet && !docChanged) { return currentState; } var side = (0, _activeMarksSide.getActiveMarksSide)({ selection: selection, storedMarks: storedMarks }); if (!side) { return { decorations: _view.DecorationSet.empty }; } return { decorations: _view.DecorationSet.create(doc, [(0, _markBoundaryCursorDecoration.createMarkBoundaryCursorDecoration)(selection.head, side)]) }; } }, props: { decorations: function decorations(state) { var _markBoundaryCursorPl; return (_markBoundaryCursorPl = _markBoundaryCursorPluginKey.markBoundaryCursorPluginKey.getState(state)) === null || _markBoundaryCursorPl === void 0 ? void 0 : _markBoundaryCursorPl.decorations; } } }); };