UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

152 lines 4.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var applicationCard_1 = require("./applicationCard"); exports.ApplicationCard = applicationCard_1.default; var blockquote_1 = require("./blockquote"); exports.Blockquote = blockquote_1.default; var bulletList_1 = require("./bulletList"); exports.BulletList = bulletList_1.default; var codeBlock_1 = require("./codeBlock"); exports.CodeBlock = codeBlock_1.default; var decisionItem_1 = require("./decisionItem"); exports.DecisionItem = decisionItem_1.default; var decisionList_1 = require("./decisionList"); exports.DecisionList = decisionList_1.default; var doc_1 = require("./doc"); exports.Doc = doc_1.default; var emoji_1 = require("./emoji"); exports.Emoji = emoji_1.default; var hardBreak_1 = require("./hardBreak"); exports.HardBreak = hardBreak_1.default; var heading_1 = require("./heading"); exports.Heading = heading_1.default; var listItem_1 = require("./listItem"); exports.ListItem = listItem_1.default; var media_1 = require("./media"); exports.Media = media_1.default; var mediaGroup_1 = require("./mediaGroup"); exports.MediaGroup = mediaGroup_1.default; var mention_1 = require("./mention"); exports.Mention = mention_1.default; var orderedList_1 = require("./orderedList"); exports.OrderedList = orderedList_1.default; var panel_1 = require("./panel"); exports.Panel = panel_1.default; var paragraph_1 = require("./paragraph"); exports.Paragraph = paragraph_1.default; var rule_1 = require("./rule"); exports.Rule = rule_1.default; var taskItem_1 = require("./taskItem"); exports.TaskItem = taskItem_1.default; var taskList_1 = require("./taskList"); exports.TaskList = taskList_1.default; var table_1 = require("./table"); exports.Table = table_1.default; var tableCell_1 = require("./tableCell"); exports.TableCell = tableCell_1.default; var tableHeader_1 = require("./tableHeader"); exports.TableHeader = tableHeader_1.default; var tableRow_1 = require("./tableRow"); exports.TableRow = tableRow_1.default; var unknownBlock_1 = require("./unknownBlock"); exports.UnknownBlock = unknownBlock_1.default; exports.nodeToReact = { 'applicationCard': applicationCard_1.default, 'blockquote': blockquote_1.default, 'bulletList': bulletList_1.default, 'codeBlock': codeBlock_1.default, 'decisionItem': decisionItem_1.default, 'decisionList': decisionList_1.default, 'doc': doc_1.default, 'emoji': emoji_1.default, 'hardBreak': hardBreak_1.default, 'heading': heading_1.default, 'listItem': listItem_1.default, 'media': media_1.default, 'mediaGroup': mediaGroup_1.default, 'mention': mention_1.default, 'orderedList': orderedList_1.default, 'panel': panel_1.default, 'paragraph': paragraph_1.default, 'rule': rule_1.default, 'taskItem': taskItem_1.default, 'taskList': taskList_1.default, 'table': table_1.default, 'tableCell': tableCell_1.default, 'tableHeader': tableHeader_1.default, 'tableRow': tableRow_1.default, 'unknownBlock': unknownBlock_1.default, }; exports.toReact = function (node) { return exports.nodeToReact[node.type.name]; }; /* * Wraps adjecent textnodes in a textWrapper * * Input: * [ * { * type: 'text', * text: 'Hello' * }, * { * type: 'text', * text: 'World!', * marks: [ * { * type: 'strong' * } * ] * } * ] * * Output: * [ * { * type: 'textWrapper', * content: [ * { * type: 'text', * text: 'Hello' * }, * { * type: 'text', * text: 'World!', * marks: [ * { * type: 'strong' * } * ] * } * ] * } * ] */ exports.mergeTextNodes = function (nodes) { return nodes.reduce(function (acc, current) { if (!exports.isText(current.type.name)) { acc.push(current); return acc; } // Append node to previous node, if it was a text wrapper if (acc.length > 0 && exports.isTextWrapper(acc[acc.length - 1].type.name)) { acc[acc.length - 1].content.push(current); } else { acc.push({ type: { name: 'textWrapper', }, content: [current] }); } return acc; }, []); }; exports.isText = function (type) { return type === 'text'; }; exports.isTextWrapper = function (type) { return type === 'textWrapper'; }; //# sourceMappingURL=index.js.map