UNPKG

@atlaskit/editor-plugin-quick-insert

Version:

Quick insert plugin for @atlaskit/editor-core

115 lines (114 loc) 4.48 kB
"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 }); } }] : [])); };