@atlaskit/editor-plugin-quick-insert
Version:
Quick insert plugin for @atlaskit/editor-core
115 lines (114 loc) • 4.48 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getQuickInsertComponents = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _react = _interopRequireDefault(require("react"));
var _reactIntl = require("react-intl");
var _keys = require("@atlaskit/editor-common/quick-insert/keys");
var _menuRoot = require("@atlaskit/editor-common/quick-insert/menu-root");
var _menuSection = require("@atlaskit/editor-common/quick-insert/menu-section");
var _messages = require("@atlaskit/editor-common/quick-insert/messages");
var _rank = require("@atlaskit/editor-common/quick-insert/rank");
var _typeAheadGetMenuFooterSectionKey = require("@atlaskit/editor-common/type-ahead-get-menu-footer-section-key");
var _typeAheadGetSectionOverflowItemKey = require("@atlaskit/editor-common/type-ahead-get-section-overflow-item-key");
var _QuickInsertMenuFooterItem = require("./QuickInsertMenuFooterItem");
var _QuickInsertSectionOverflowMenuItem = require("./QuickInsertSectionOverflowMenuItem");
var categories = [{
message: _messages.messages.categoryRecommended,
section: _keys.RECOMMENDED_SECTION
}, {
message: _messages.messages.categoryStructure,
section: _keys.STRUCTURE_SECTION
}, {
message: _messages.messages.categoryMedia,
section: _keys.MEDIA_SECTION
}, {
message: _messages.messages.categoryEmbed,
section: _keys.EMBED_SECTION
}, {
message: _messages.messages.categoryTextFormatting,
section: _keys.TEXT_FORMATTING_SECTION
}, {
message: _messages.messages.categoryRovo,
section: _keys.ROVO_SECTION
}, {
message: _messages.messages.categoryDataAndCharts,
section: _keys.DATA_AND_CHARTS_SECTION
}, {
message: _messages.messages.categoryBlockTemplates,
section: _keys.BLOCK_TEMPLATES_SECTION
}, {
message: _messages.messages.categoryOther,
section: _keys.OTHER_SECTION
}];
var createSectionComponent = function createSectionComponent(message) {
var SectionComponent = function SectionComponent(_ref) {
var children = _ref.children;
var _useIntl = (0, _reactIntl.useIntl)(),
formatMessage = _useIntl.formatMessage;
return /*#__PURE__*/_react.default.createElement(_menuSection.QuickInsertMenuSection, {
title: formatMessage(message)
}, children);
};
return SectionComponent;
};
var getQuickInsertComponents = exports.getQuickInsertComponents = function getQuickInsertComponents(_ref2) {
var api = _ref2.api,
includeElementBrowserItems = _ref2.includeElementBrowserItems;
return [{
key: _keys.MENU.key,
type: _keys.MENU.type,
component: _menuRoot.QuickInsertMenuRoot
}].concat((0, _toConsumableArray2.default)(categories.flatMap(function (_ref3) {
var message = _ref3.message,
section = _ref3.section;
return [{
key: section.key,
type: section.type,
parents: [{
key: _keys.MENU.key,
type: _keys.MENU.type,
rank: _rank.QUICK_INSERT_MENU_RANK[section.key]
}],
component: createSectionComponent(message)
}].concat((0, _toConsumableArray2.default)(includeElementBrowserItems ? [{
key: (0, _typeAheadGetSectionOverflowItemKey.getSectionOverflowItemKey)(section.key),
type: 'menu-item',
parents: [{
key: section.key,
type: section.type,
rank: _rank.CATEGORY_VIEW_MORE_RANK
}],
component: function component() {
return /*#__PURE__*/_react.default.createElement(_QuickInsertSectionOverflowMenuItem.QuickInsertSectionOverflowMenuItem, {
api: api,
category: section.key
});
}
}] : []));
})), (0, _toConsumableArray2.default)(includeElementBrowserItems ? [{
key: (0, _typeAheadGetMenuFooterSectionKey.getMenuFooterSectionKey)(_keys.MENU.key),
type: 'menu-section',
parents: [{
key: _keys.MENU.key,
type: _keys.MENU.type,
rank: Number.MAX_SAFE_INTEGER
}]
}, {
key: _keys.VIEW_ALL_ELEMENTS_MENU_ITEM.key,
type: _keys.VIEW_ALL_ELEMENTS_MENU_ITEM.type,
parents: [{
key: (0, _typeAheadGetMenuFooterSectionKey.getMenuFooterSectionKey)(_keys.MENU.key),
type: 'menu-section',
rank: 100
}],
component: function component() {
return /*#__PURE__*/_react.default.createElement(_QuickInsertMenuFooterItem.QuickInsertMenuFooterItem, {
api: api
});
}
}] : []));
};