@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
152 lines • 4.59 kB
JavaScript
;
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