UNPKG

@wordpress/block-editor

Version:
65 lines (63 loc) 2.2 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; 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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // packages/block-editor/src/components/block-switcher/utils.js var utils_exports = {}; __export(utils_exports, { getMatchingBlockByName: () => getMatchingBlockByName, getRetainedBlockAttributes: () => getRetainedBlockAttributes }); module.exports = __toCommonJS(utils_exports); var import_blocks = require("@wordpress/blocks"); var getMatchingBlockByName = (block, selectedBlockName, consumedBlocks = /* @__PURE__ */ new Set()) => { const { clientId, name, innerBlocks = [] } = block; if (consumedBlocks.has(clientId)) { return; } if (name === selectedBlockName) { return block; } for (const innerBlock of innerBlocks) { const match = getMatchingBlockByName( innerBlock, selectedBlockName, consumedBlocks ); if (match) { return match; } } }; var getRetainedBlockAttributes = (name, attributes) => { const contentAttributes = (0, import_blocks.getBlockAttributesNamesByRole)(name, "content"); if (!contentAttributes?.length) { return attributes; } return contentAttributes.reduce((_accumulator, attribute) => { if (attributes[attribute]) { _accumulator[attribute] = attributes[attribute]; } return _accumulator; }, {}); }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { getMatchingBlockByName, getRetainedBlockAttributes }); //# sourceMappingURL=utils.js.map