UNPKG

@atlaskit/editor-plugin-block-menu

Version:

BlockMenu plugin for @atlaskit/editor-core

41 lines (40 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSuggestedItemsFromSelection = void 0; var _selection = require("@atlaskit/editor-common/selection"); var _utils = require("../../editor-commands/transform-node-utils/utils"); var _suggestedItemsRank = require("../utils/suggested-items-rank"); /** * Pure function to calculate suggested items based on selection and menu components. */ var getSuggestedItemsFromSelection = exports.getSuggestedItemsFromSelection = function getSuggestedItemsFromSelection(menuItemsMap, currentSelection) { if (menuItemsMap.size === 0 || !currentSelection) { return []; } var _expandSelectionToBlo = (0, _selection.expandSelectionToBlockRange)(currentSelection), range = _expandSelectionToBlo.range; if (!range) { return []; } var blockNodes = (0, _utils.getBlockNodesInRange)(range); if (blockNodes.length === 0) { return []; } var firstNodeType = blockNodes[0].type.name; var allSameType = blockNodes.every(function (node) { return node.type.name === firstNodeType; }); if (!allSameType) { return []; } var nodeTypeName = firstNodeType; var sortedKeys = (0, _suggestedItemsRank.getSortedSuggestedItems)(nodeTypeName); return sortedKeys.map(function (key) { return menuItemsMap.get(key); }).filter(function (item) { var _item$isHidden; return item !== undefined && !((_item$isHidden = item.isHidden) !== null && _item$isHidden !== void 0 && _item$isHidden.call(item)); }); };