UNPKG

@atlaskit/editor-plugin-block-type

Version:

BlockType plugin for @atlaskit/editor-core

176 lines (175 loc) • 7.96 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getBlockTypeComponents = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _blockMenu = require("@atlaskit/editor-common/block-menu"); var _key = require("@atlaskit/editor-common/block-menu/key"); var _rank = require("@atlaskit/editor-common/block-menu/rank"); var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled"); var _HeadingBlockMenuItem = require("./HeadingBlockMenuItem"); var _ParagraphBlockMenuItem = require("./ParagraphBlockMenuItem"); var _QuoteBlockMenuItem = require("./QuoteBlockMenuItem"); var _SmallTextBlockMenuItem = require("./SmallTextBlockMenuItem"); var HEADING_NODE_NAME = 'heading'; var QUOTE_NODE_NAME = 'blockquote'; var PARAGRAPH_NODE_NAME = 'paragraph'; var getBlockTypeComponents = exports.getBlockTypeComponents = function getBlockTypeComponents(api) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, allowFontSize = _ref.allowFontSize; var isSmallTextExperimentEnabled = (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_menu_small_text'); var isSmallTextEnabled = Boolean(allowFontSize && isSmallTextExperimentEnabled); var textFormattingRank = isSmallTextExperimentEnabled ? _rank.TRANSFORM_TEXT_FORMATTING_MENU_SECTION_RANK : _blockMenu.TRANSFORM_HEADINGS_MENU_SECTION_RANK; var isTransformHeadingDisabled = function isTransformHeadingDisabled(level) { var _api$blockMenu; return Boolean(api === null || api === void 0 || (_api$blockMenu = api.blockMenu) === null || _api$blockMenu === void 0 ? void 0 : _api$blockMenu.actions.isTransformOptionDisabled(HEADING_NODE_NAME, { level: level })); }; return [{ type: 'block-menu-item', key: _blockMenu.TRANSFORM_HEADINGS_H1_MENU_ITEM.key, parent: { type: 'block-menu-section', key: _key.TRANSFORM_TEXTFORMATTING_MENU_SECTION.key, rank: textFormattingRank[_blockMenu.TRANSFORM_HEADINGS_H1_MENU_ITEM.key] }, component: (0, _HeadingBlockMenuItem.createHeadingBlockMenuItem)({ level: 1, api: api }), isHidden: function isHidden() { return isTransformHeadingDisabled(1); } }, { type: 'block-menu-item', key: _blockMenu.TRANSFORM_HEADINGS_H2_MENU_ITEM.key, parent: { type: 'block-menu-section', key: _key.TRANSFORM_TEXTFORMATTING_MENU_SECTION.key, rank: textFormattingRank[_blockMenu.TRANSFORM_HEADINGS_H2_MENU_ITEM.key] }, component: (0, _HeadingBlockMenuItem.createHeadingBlockMenuItem)({ level: 2, api: api }), isHidden: function isHidden() { return isTransformHeadingDisabled(2); } }, { type: 'block-menu-item', key: _blockMenu.TRANSFORM_HEADINGS_H3_MENU_ITEM.key, parent: { type: 'block-menu-section', key: _key.TRANSFORM_TEXTFORMATTING_MENU_SECTION.key, rank: textFormattingRank[_blockMenu.TRANSFORM_HEADINGS_H3_MENU_ITEM.key] }, component: (0, _HeadingBlockMenuItem.createHeadingBlockMenuItem)({ level: 3, api: api }), isHidden: function isHidden() { return isTransformHeadingDisabled(3); } }, { type: 'block-menu-item', key: _blockMenu.TRANSFORM_HEADINGS_H4_MENU_ITEM.key, parent: { type: 'block-menu-section', key: _key.TRANSFORM_TEXTFORMATTING_MENU_SECTION.key, rank: textFormattingRank[_blockMenu.TRANSFORM_HEADINGS_H4_MENU_ITEM.key] }, component: (0, _HeadingBlockMenuItem.createHeadingBlockMenuItem)({ level: 4, api: api }), isHidden: function isHidden() { return isTransformHeadingDisabled(4); } }, { type: 'block-menu-item', key: _blockMenu.TRANSFORM_HEADINGS_H5_MENU_ITEM.key, parent: { type: 'block-menu-section', key: _key.TRANSFORM_TEXTFORMATTING_MENU_SECTION.key, rank: textFormattingRank[_blockMenu.TRANSFORM_HEADINGS_H5_MENU_ITEM.key] }, component: (0, _HeadingBlockMenuItem.createHeadingBlockMenuItem)({ level: 5, api: api }), isHidden: function isHidden() { return isTransformHeadingDisabled(5); } }, { type: 'block-menu-item', key: _blockMenu.TRANSFORM_HEADINGS_H6_MENU_ITEM.key, parent: { type: 'block-menu-section', key: _key.TRANSFORM_TEXTFORMATTING_MENU_SECTION.key, rank: textFormattingRank[_blockMenu.TRANSFORM_HEADINGS_H6_MENU_ITEM.key] }, component: (0, _HeadingBlockMenuItem.createHeadingBlockMenuItem)({ level: 6, api: api }), isHidden: function isHidden() { return isTransformHeadingDisabled(6); } }, { type: 'block-menu-item', key: _blockMenu.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key, parent: { type: 'block-menu-section', key: isSmallTextExperimentEnabled ? _key.TRANSFORM_TEXTFORMATTING_MENU_SECTION.key : _blockMenu.TRANSFORM_STRUCTURE_MENU_SECTION.key, rank: isSmallTextExperimentEnabled ? _rank.TRANSFORM_TEXT_FORMATTING_MENU_SECTION_RANK[_blockMenu.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key] : _blockMenu.TRANSFORM_STRUCTURE_MENU_SECTION_RANK[_blockMenu.TRANSFORM_STRUCTURE_QUOTE_MENU_ITEM.key] }, component: (0, _QuoteBlockMenuItem.createQuoteBlockMenuItem)({ api: api }), isHidden: function isHidden() { var _api$blockMenu2; return Boolean(api === null || api === void 0 || (_api$blockMenu2 = api.blockMenu) === null || _api$blockMenu2 === void 0 ? void 0 : _api$blockMenu2.actions.isTransformOptionDisabled(QUOTE_NODE_NAME)); } }, { type: 'block-menu-item', key: _blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key, parent: { type: 'block-menu-section', key: isSmallTextExperimentEnabled ? _key.TRANSFORM_TEXTFORMATTING_MENU_SECTION.key : _blockMenu.TRANSFORM_STRUCTURE_MENU_SECTION.key, rank: isSmallTextExperimentEnabled ? _rank.TRANSFORM_TEXT_FORMATTING_MENU_SECTION_RANK[_blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key] : _blockMenu.TRANSFORM_STRUCTURE_MENU_SECTION_RANK[_blockMenu.TRANSFORM_STRUCTURE_PARAGRAPH_MENU_ITEM.key] }, component: (0, _ParagraphBlockMenuItem.createParagraphBlockMenuItem)({ api: api }), isHidden: function isHidden() { var _api$blockMenu3; return Boolean(api === null || api === void 0 || (_api$blockMenu3 = api.blockMenu) === null || _api$blockMenu3 === void 0 ? void 0 : _api$blockMenu3.actions.isTransformOptionDisabled(PARAGRAPH_NODE_NAME, undefined, isSmallTextExperimentEnabled ? { marksToRemove: ['fontSize'] } : undefined)); } }].concat((0, _toConsumableArray2.default)(isSmallTextEnabled ? [{ type: 'block-menu-item', key: _key.TRANSFORM_TEXT_FORMATTING_SMALL_TEXT_MENU_ITEM.key, parent: { type: 'block-menu-section', key: _key.TRANSFORM_TEXTFORMATTING_MENU_SECTION.key, rank: _rank.TRANSFORM_TEXT_FORMATTING_MENU_SECTION_RANK[_key.TRANSFORM_TEXT_FORMATTING_SMALL_TEXT_MENU_ITEM.key] }, component: (0, _SmallTextBlockMenuItem.createSmallTextBlockMenuItem)({ api: api }), isHidden: function isHidden() { var _api$core$sharedState, _api$blockMenu4; return !(api !== null && api !== void 0 && (_api$core$sharedState = api.core.sharedState.currentState()) !== null && _api$core$sharedState !== void 0 && (_api$core$sharedState = _api$core$sharedState.schema) !== null && _api$core$sharedState !== void 0 && _api$core$sharedState.marks.fontSize) || Boolean(api === null || api === void 0 || (_api$blockMenu4 = api.blockMenu) === null || _api$blockMenu4 === void 0 ? void 0 : _api$blockMenu4.actions.isTransformOptionDisabled(PARAGRAPH_NODE_NAME, undefined, { marksToAdd: { fontSize: { fontSize: 'small' } } })); } }] : [])); };