@atlaskit/editor-plugin-text-formatting
Version:
Text-formatting plugin for @atlaskit/editor-core
117 lines (116 loc) • 4.77 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.textFormattingMenuGroup = exports.getFormatMenuItems = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireDefault(require("react"));
var _toolbar = require("@atlaskit/editor-common/toolbar");
var _editorToolbar = require("@atlaskit/editor-toolbar");
var _Component = require("./Component");
var _utils = require("./utils");
var getFormatMenuItems = exports.getFormatMenuItems = function getFormatMenuItems(api) {
return Object.entries((0, _utils.formatOptions)()).map(function (_ref) {
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
optionType = _ref2[0],
_ref2$ = _ref2[1],
icon = _ref2$.icon,
shortcut = _ref2$.shortcut,
title = _ref2$.title,
command = _ref2$.command,
rank = _ref2$.rank,
key = _ref2$.key;
return {
type: 'menu-item',
key: key,
parents: [{
type: _toolbar.TEXT_FORMATTING_MENU_SECTION.type,
key: _toolbar.TEXT_FORMATTING_MENU_SECTION.key,
rank: rank
}],
component: function component(_ref3) {
var parents = _ref3.parents;
return /*#__PURE__*/_react.default.createElement(_Component.FormatMenuItem, {
api: api,
parents: parents,
icon: icon,
shortcut: shortcut,
title: title,
optionType: optionType,
toggleMarkWithAnalyticsCallback: command
});
}
};
});
};
var textFormattingMenuGroup = exports.textFormattingMenuGroup = function textFormattingMenuGroup(api) {
return [{
type: _toolbar.TEXT_FORMATTING_MENU.type,
key: _toolbar.TEXT_FORMATTING_MENU.key,
parents: [{
type: _toolbar.TEXT_FORMATTING_GROUP.type,
key: _toolbar.TEXT_FORMATTING_GROUP.key,
rank: _toolbar.TEXT_FORMAT_GROUP_RANK[_toolbar.TEXT_FORMATTING_MENU.key]
}, {
type: _toolbar.TEXT_FORMATTING_GROUP_COLLAPSED.type,
key: _toolbar.TEXT_FORMATTING_GROUP_COLLAPSED.key,
rank: _toolbar.TEXT_FORMAT_GROUP_RANK[_toolbar.TEXT_FORMATTING_MENU.key]
}, {
type: _toolbar.TEXT_FORMATTING_GROUP_INLINE.type,
key: _toolbar.TEXT_FORMATTING_GROUP_INLINE.key,
rank: _toolbar.TEXT_FORMAT_GROUP_RANK[_toolbar.TEXT_FORMATTING_HERO_BUTTON.key]
}],
component: function component(_ref4) {
var children = _ref4.children;
return /*#__PURE__*/_react.default.createElement(_Component.MoreFormattingMenu, null, children);
}
}, {
type: _toolbar.TEXT_FORMATTING_MENU_SECTION.type,
key: _toolbar.TEXT_FORMATTING_MENU_SECTION.key,
parents: [{
type: _toolbar.TEXT_FORMATTING_MENU.type,
key: _toolbar.TEXT_FORMATTING_MENU.key,
rank: _toolbar.TEXT_FORMAT_MENU_RANK[_toolbar.TEXT_FORMATTING_MENU_SECTION.key]
}, {
type: _toolbar.TEXT_COLLAPSED_MENU.type,
key: _toolbar.TEXT_COLLAPSED_MENU.key,
rank: _toolbar.TEXT_COLLAPSED_MENU_RANK[_toolbar.TEXT_FORMATTING_MENU_SECTION.key]
}],
component: _Component.MenuSection
}].concat((0, _toConsumableArray2.default)(getFormatMenuItems(api)), [{
type: _toolbar.CLEAR_FORMARTTING_MENU_SECTION.type,
key: _toolbar.CLEAR_FORMARTTING_MENU_SECTION.key,
parents: [{
type: _toolbar.TEXT_FORMATTING_MENU.type,
key: _toolbar.TEXT_FORMATTING_MENU.key,
rank: _toolbar.TEXT_FORMAT_MENU_RANK[_toolbar.CLEAR_FORMARTTING_MENU_SECTION.key]
}, {
type: _toolbar.TEXT_COLLAPSED_MENU.type,
key: _toolbar.TEXT_COLLAPSED_MENU.key,
rank: _toolbar.TEXT_COLLAPSED_MENU_RANK[_toolbar.CLEAR_FORMARTTING_MENU_SECTION.key]
}],
component: function component(_ref5) {
var children = _ref5.children;
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, {
hasSeparator: true
}, children);
}
}, {
type: _toolbar.CLEAR_FORMATTING_MENU_ITEM.type,
key: _toolbar.CLEAR_FORMATTING_MENU_ITEM.key,
parents: [{
type: _toolbar.CLEAR_FORMARTTING_MENU_SECTION.type,
key: _toolbar.CLEAR_FORMARTTING_MENU_SECTION.key,
rank: _toolbar.CLEAR_FORMARTTING_MENU_SECTION_RANK[_toolbar.CLEAR_FORMATTING_MENU_ITEM.key]
}],
component: function component(_ref6) {
var parents = _ref6.parents;
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Component.ClearFormatMenuItem, {
parents: parents,
api: api
}));
}
}]);
};