@atlaskit/editor-plugin-block-type
Version:
BlockType plugin for @atlaskit/editor-core
246 lines (245 loc) • 11.4 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.toolbarBlockTypesWithRank = exports.getBlockTypesInDropdown = exports.WRAPPER_BLOCK_TYPES = exports.TEXT_BLOCK_TYPES = exports.SMALL_TEXT = exports.PANEL = exports.OTHER = exports.NORMAL_TEXT = exports.HEADING_6 = exports.HEADING_5 = exports.HEADING_4 = exports.HEADING_3 = exports.HEADING_2 = exports.HEADING_1 = exports.HEADINGS_BY_NAME = exports.HEADINGS_BY_LEVEL = exports.FORMATTING_NODE_TYPES = exports.FORMATTING_MARK_TYPES = exports.CODE_BLOCK = exports.BLOCK_QUOTE = exports.ALL_BLOCK_TYPES = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _messages = require("@atlaskit/editor-common/messages");
var _toolbar = require("@atlaskit/editor-common/toolbar");
var _editorToolbar = require("@atlaskit/editor-toolbar");
var _textHeadingFive = _interopRequireDefault(require("@atlaskit/icon-lab/core/text-heading-five"));
var _textHeadingFour = _interopRequireDefault(require("@atlaskit/icon-lab/core/text-heading-four"));
var _textHeadingOne = _interopRequireDefault(require("@atlaskit/icon-lab/core/text-heading-one"));
var _textHeadingSix = _interopRequireDefault(require("@atlaskit/icon-lab/core/text-heading-six"));
var _textHeadingThree = _interopRequireDefault(require("@atlaskit/icon-lab/core/text-heading-three"));
var _textHeadingTwo = _interopRequireDefault(require("@atlaskit/icon-lab/core/text-heading-two"));
var _text = _interopRequireDefault(require("@atlaskit/icon/core/text"));
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
var _icons = require("./ui/ToolbarBlockType/icons");
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) { (0, _defineProperty2.default)(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; }
var NORMAL_TEXT = exports.NORMAL_TEXT = {
name: 'normal',
title: _messages.blockTypeMessages.normal,
nodeName: 'paragraph',
tagName: 'p',
icon: /*#__PURE__*/_react.default.createElement(_text.default, {
label: ""
}),
LEGACY_icon: /*#__PURE__*/_react.default.createElement(_icons.Text, null)
};
var SMALL_TEXT = exports.SMALL_TEXT = {
name: 'smallText',
title: _messages.blockTypeMessages.smallText,
nodeName: 'paragraph',
markName: 'fontSize',
icon: /*#__PURE__*/_react.default.createElement(_editorToolbar.TextSmallIcon, {
label: ""
}),
LEGACY_icon: /*#__PURE__*/_react.default.createElement(_icons.Text, null)
};
var HEADING_1 = exports.HEADING_1 = {
name: 'heading1',
title: _messages.blockTypeMessages.heading1,
nodeName: 'heading',
tagName: 'h1',
level: 1,
icon: /*#__PURE__*/_react.default.createElement(_textHeadingOne.default, {
label: ""
}),
LEGACY_icon: /*#__PURE__*/_react.default.createElement(_icons.H1, null)
};
var HEADING_2 = exports.HEADING_2 = {
name: 'heading2',
title: _messages.blockTypeMessages.heading2,
nodeName: 'heading',
tagName: 'h2',
level: 2,
icon: /*#__PURE__*/_react.default.createElement(_textHeadingTwo.default, {
label: ""
}),
LEGACY_icon: /*#__PURE__*/_react.default.createElement(_icons.H2, null)
};
var HEADING_3 = exports.HEADING_3 = {
name: 'heading3',
title: _messages.blockTypeMessages.heading3,
nodeName: 'heading',
tagName: 'h3',
level: 3,
icon: /*#__PURE__*/_react.default.createElement(_textHeadingThree.default, {
label: ""
}),
LEGACY_icon: /*#__PURE__*/_react.default.createElement(_icons.H3, null)
};
var HEADING_4 = exports.HEADING_4 = {
name: 'heading4',
title: _messages.blockTypeMessages.heading4,
nodeName: 'heading',
tagName: 'h4',
level: 4,
icon: /*#__PURE__*/_react.default.createElement(_textHeadingFour.default, {
label: ""
}),
LEGACY_icon: /*#__PURE__*/_react.default.createElement(_icons.H4, null)
};
var HEADING_5 = exports.HEADING_5 = {
name: 'heading5',
title: _messages.blockTypeMessages.heading5,
nodeName: 'heading',
tagName: 'h5',
level: 5,
icon: /*#__PURE__*/_react.default.createElement(_textHeadingFive.default, {
label: ""
}),
LEGACY_icon: /*#__PURE__*/_react.default.createElement(_icons.H5, null)
};
var HEADING_6 = exports.HEADING_6 = {
name: 'heading6',
title: _messages.blockTypeMessages.heading6,
nodeName: 'heading',
tagName: 'h6',
level: 6,
icon: /*#__PURE__*/_react.default.createElement(_textHeadingSix.default, {
label: ""
}),
LEGACY_icon: /*#__PURE__*/_react.default.createElement(_icons.H6, null)
};
var BLOCK_QUOTE = exports.BLOCK_QUOTE = {
name: 'blockquote',
title: _messages.blockTypeMessages.blockquote,
nodeName: 'blockquote',
tagName: 'blockquote'
};
var CODE_BLOCK = exports.CODE_BLOCK = {
name: 'codeblock',
title: _messages.blockTypeMessages.codeblock,
nodeName: 'codeBlock'
};
var PANEL = exports.PANEL = {
name: 'panel',
title: _messages.blockTypeMessages.infoPanel,
nodeName: 'panel'
};
var OTHER = exports.OTHER = {
name: 'other',
title: _messages.blockTypeMessages.other,
nodeName: ''
};
var TEXT_BLOCK_TYPES = exports.TEXT_BLOCK_TYPES = [NORMAL_TEXT, SMALL_TEXT, HEADING_1, HEADING_2, HEADING_3, HEADING_4, HEADING_5, HEADING_6];
var ToolbarBlockTypes = /*#__PURE__*/function (ToolbarBlockTypes) {
ToolbarBlockTypes["normal"] = "normal";
ToolbarBlockTypes["heading1"] = "heading1";
ToolbarBlockTypes["heading2"] = "heading2";
ToolbarBlockTypes["heading3"] = "heading3";
ToolbarBlockTypes["heading4"] = "heading4";
ToolbarBlockTypes["heading5"] = "heading5";
ToolbarBlockTypes["heading6"] = "heading6";
ToolbarBlockTypes["blockquote"] = "blockquote";
return ToolbarBlockTypes;
}(ToolbarBlockTypes || {});
var toolbarBlockTypesWithRank = exports.toolbarBlockTypesWithRank = function toolbarBlockTypesWithRank(_ref) {
var allowFontSize = _ref.allowFontSize;
return _objectSpread(_objectSpread({
normal: _objectSpread(_objectSpread({}, NORMAL_TEXT), {}, {
icon:
// eslint-disable-next-line @atlaskit/platform/no-preconditioning
(0, _expValEquals.expValEquals)('platform_editor_small_font_size', 'isEnabled', true) && (0, _platformFeatureFlags.fg)('platform_editor_change_normal_text_icon') ? /*#__PURE__*/_react.default.createElement(_editorToolbar.TextNormalIcon, {
size: "small",
label: ""
}) : /*#__PURE__*/_react.default.createElement(_editorToolbar.TextIcon, {
size: "small",
label: ""
}),
toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.NORMAL_TEXT_MENU_ITEM.key],
toolbarKey: _toolbar.NORMAL_TEXT_MENU_ITEM.key
})
}, allowFontSize && (0, _expValEquals.expValEquals)('platform_editor_small_font_size', 'isEnabled', true) && {
smallText: _objectSpread(_objectSpread({}, SMALL_TEXT), {}, {
icon: /*#__PURE__*/_react.default.createElement(_editorToolbar.TextSmallIcon, {
size: "small",
label: ""
}),
toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.SMALL_TEXT_MENU_ITEM.key],
toolbarKey: _toolbar.SMALL_TEXT_MENU_ITEM.key
})
}), {}, {
heading1: _objectSpread(_objectSpread({}, HEADING_1), {}, {
icon: /*#__PURE__*/_react.default.createElement(_editorToolbar.HeadingOneIcon, {
size: "small",
label: ""
}),
toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_1_MENU_ITEM.key],
toolbarKey: _toolbar.HEADING_1_MENU_ITEM.key
}),
heading2: _objectSpread(_objectSpread({}, HEADING_2), {}, {
icon: /*#__PURE__*/_react.default.createElement(_editorToolbar.HeadingTwoIcon, {
size: "small",
label: ""
}),
toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_2_MENU_ITEM.key],
toolbarKey: _toolbar.HEADING_2_MENU_ITEM.key
}),
heading3: _objectSpread(_objectSpread({}, HEADING_3), {}, {
icon: /*#__PURE__*/_react.default.createElement(_editorToolbar.HeadingThreeIcon, {
size: "small",
label: ""
}),
toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_3_MENU_ITEM.key],
toolbarKey: _toolbar.HEADING_3_MENU_ITEM.key
}),
heading4: _objectSpread(_objectSpread({}, HEADING_4), {}, {
icon: /*#__PURE__*/_react.default.createElement(_editorToolbar.HeadingFourIcon, {
size: "small",
label: ""
}),
toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_4_MENU_ITEM.key],
toolbarKey: _toolbar.HEADING_4_MENU_ITEM.key
}),
heading5: _objectSpread(_objectSpread({}, HEADING_5), {}, {
icon: /*#__PURE__*/_react.default.createElement(_editorToolbar.HeadingFiveIcon, {
size: "small",
label: ""
}),
toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_5_MENU_ITEM.key],
toolbarKey: _toolbar.HEADING_5_MENU_ITEM.key
}),
heading6: _objectSpread(_objectSpread({}, HEADING_6), {}, {
icon: /*#__PURE__*/_react.default.createElement(_editorToolbar.HeadingSixIcon, {
size: "small",
label: ""
}),
toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.HEADING_6_MENU_ITEM.key],
toolbarKey: _toolbar.HEADING_6_MENU_ITEM.key
}),
blockquote: _objectSpread(_objectSpread({}, BLOCK_QUOTE), {}, {
icon: /*#__PURE__*/_react.default.createElement(_editorToolbar.QuoteIcon, {
size: "small",
label: ""
}),
toolbarRank: _toolbar.TEXT_STYLES_MENU_SECTION_RANK[_toolbar.BLOCK_QUOTE_MENU_ITEM.key],
toolbarKey: _toolbar.BLOCK_QUOTE_MENU_ITEM.key
})
});
};
var FORMATTING_NODE_TYPES = exports.FORMATTING_NODE_TYPES = ['heading', 'blockquote'];
var FORMATTING_MARK_TYPES = exports.FORMATTING_MARK_TYPES = ['em', 'code', 'strike', 'strong', 'underline', 'textColor', 'subsup', 'backgroundColor'];
var WRAPPER_BLOCK_TYPES = exports.WRAPPER_BLOCK_TYPES = [BLOCK_QUOTE, CODE_BLOCK, PANEL];
var ALL_BLOCK_TYPES = exports.ALL_BLOCK_TYPES = TEXT_BLOCK_TYPES.concat(WRAPPER_BLOCK_TYPES);
var getBlockTypesInDropdown = exports.getBlockTypesInDropdown = function getBlockTypesInDropdown(includeBlockQuoteAsTextstyleOption) {
return includeBlockQuoteAsTextstyleOption ? [].concat(TEXT_BLOCK_TYPES, [BLOCK_QUOTE]) : TEXT_BLOCK_TYPES;
};
var HEADINGS_BY_LEVEL = exports.HEADINGS_BY_LEVEL = TEXT_BLOCK_TYPES.reduce(function (acc, blockType) {
if (blockType.level && blockType.nodeName === 'heading') {
acc[blockType.level] = blockType;
}
return acc;
}, {});
var HEADINGS_BY_NAME = exports.HEADINGS_BY_NAME = TEXT_BLOCK_TYPES.reduce(function (acc, blockType) {
if (blockType.level && blockType.nodeName === 'heading') {
acc[blockType.name] = blockType;
}
return acc;
}, {});