UNPKG

@wordpress/block-editor

Version:
119 lines (117 loc) 4.4 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // packages/block-editor/src/components/convert-to-group-buttons/index.js var convert_to_group_buttons_exports = {}; __export(convert_to_group_buttons_exports, { BlockGroupToolbar: () => import_toolbar.default, ConvertToGroupButton: () => ConvertToGroupButton, useConvertToGroupButtonProps: () => import_use_convert_to_group_button_props.default }); module.exports = __toCommonJS(convert_to_group_buttons_exports); var import_components = require("@wordpress/components"); var import_i18n = require("@wordpress/i18n"); var import_blocks = require("@wordpress/blocks"); var import_data = require("@wordpress/data"); var import_keycodes = require("@wordpress/keycodes"); var import_store = require("../../store"); var import_use_convert_to_group_button_props = __toESM(require("./use-convert-to-group-button-props")); var import_toolbar = __toESM(require("./toolbar")); var import_jsx_runtime = require("react/jsx-runtime"); function ConvertToGroupButton({ clientIds, isGroupable, isUngroupable, onUngroup, blocksSelection, groupingBlockName, onClose = () => { } }) { const { getSelectedBlockClientIds } = (0, import_data.useSelect)(import_store.store); const { replaceBlocks } = (0, import_data.useDispatch)(import_store.store); const onConvertToGroup = () => { const newBlocks = (0, import_blocks.switchToBlockType)( blocksSelection, groupingBlockName ); if (newBlocks) { replaceBlocks(clientIds, newBlocks); } }; const onConvertFromGroup = () => { let innerBlocks = blocksSelection[0].innerBlocks; if (!innerBlocks.length) { return; } if (onUngroup) { innerBlocks = onUngroup( blocksSelection[0].attributes, blocksSelection[0].innerBlocks ); } replaceBlocks(clientIds, innerBlocks); }; if (!isGroupable && !isUngroupable) { return null; } const selectedBlockClientIds = getSelectedBlockClientIds(); return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [ isGroupable && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_components.MenuItem, { shortcut: selectedBlockClientIds.length > 1 ? import_keycodes.displayShortcut.primary("g") : void 0, onClick: () => { onConvertToGroup(); onClose(); }, children: (0, import_i18n._x)("Group", "verb") } ), isUngroupable && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_components.MenuItem, { onClick: () => { onConvertFromGroup(); onClose(); }, children: (0, import_i18n._x)( "Ungroup", "Ungrouping blocks from within a grouping block back into individual blocks within the Editor" ) } ) ] }); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { BlockGroupToolbar, ConvertToGroupButton, useConvertToGroupButtonProps }); //# sourceMappingURL=index.js.map