UNPKG

@atlaskit/editor-plugin-list

Version:

List plugin for @atlaskit/editor-core

55 lines (53 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.joinSiblingListItems = void 0; var _utils = require("@atlaskit/editor-common/utils"); //Case for two adjacent list items of the same indentation var joinSiblingListItems = exports.joinSiblingListItems = function joinSiblingListItems(_ref) { var tr = _ref.tr, $next = _ref.$next, $head = _ref.$head; /* CASE 2 * Initial Structure: * * List A { * ListItem B { * ...Children C * Paragraph D { text1 |$head||textInsertPos| } //Cant have children since that would be Case 4 * |childrenGInsertPos| } * ListItem E { |$next| * Paragraph F { text2 } * ...Children G * } * } * * Converts to: * * List A { * ListItem B { * ...Children C * Paragraph C { text1text2 } * ...Children G * } * } * */ var listItemE = $next.parent; var paragraphF = $next.nodeAfter; //ListItem must have at least one child if (!paragraphF) { return false; } var beforeListItemE = $next.before(); var afterListItemE = $next.after(); var endListItemB = $head.end(-1); var textInsertPos = $head.pos; var childrenGInsertPos = endListItemB; var textContent = paragraphF.content; var childrenGContent = listItemE.content.cut(paragraphF.nodeSize); (0, _utils.insertContentDeleteRange)(tr, function (tr) { return tr.doc.resolve(textInsertPos); }, [[textContent, textInsertPos], [childrenGContent, childrenGInsertPos]], [[beforeListItemE, afterListItemE]]); return true; };