@wordpress/block-library
Version:
Block library for the WordPress editor.
118 lines (116 loc) • 3.83 kB
JavaScript
;
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-library/src/columns/transforms.js
var transforms_exports = {};
__export(transforms_exports, {
default: () => transforms_default
});
module.exports = __toCommonJS(transforms_exports);
var import_blocks = require("@wordpress/blocks");
var MAXIMUM_SELECTED_BLOCKS = 6;
var transforms = {
from: [
{
type: "block",
isMultiBlock: true,
blocks: ["*"],
__experimentalConvert: (blocks) => {
const columnWidth = +(100 / blocks.length).toFixed(2);
const innerBlocksTemplate = blocks.map(
({ name, attributes, innerBlocks }) => [
"core/column",
{ width: `${columnWidth}%` },
[[name, { ...attributes }, innerBlocks]]
]
);
return (0, import_blocks.createBlock)(
"core/columns",
{},
(0, import_blocks.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate)
);
},
isMatch: ({ length: selectedBlocksLength }, blocks) => {
if (blocks.length === 1 && blocks[0].name === "core/columns") {
return false;
}
return selectedBlocksLength && selectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS;
}
},
{
type: "block",
blocks: ["core/media-text"],
priority: 1,
transform: (attributes, innerBlocks) => {
const {
align,
backgroundColor,
textColor,
style,
mediaAlt: alt,
mediaId: id,
mediaPosition,
mediaSizeSlug: sizeSlug,
mediaType,
mediaUrl: url,
mediaWidth,
verticalAlignment
} = attributes;
let media;
if (mediaType === "image" || !mediaType) {
const imageAttrs = { id, alt, url, sizeSlug };
const linkAttrs = {
href: attributes.href,
linkClass: attributes.linkClass,
linkDestination: attributes.linkDestination,
linkTarget: attributes.linkTarget,
rel: attributes.rel
};
media = ["core/image", { ...imageAttrs, ...linkAttrs }];
} else {
media = ["core/video", { id, src: url }];
}
const innerBlocksTemplate = [
["core/column", { width: `${mediaWidth}%` }, [media]],
[
"core/column",
{ width: `${100 - mediaWidth}%` },
innerBlocks
]
];
if (mediaPosition === "right") {
innerBlocksTemplate.reverse();
}
return (0, import_blocks.createBlock)(
"core/columns",
{
align,
backgroundColor,
textColor,
style,
verticalAlignment
},
(0, import_blocks.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate)
);
}
}
],
ungroup: (attributes, innerBlocks) => innerBlocks.flatMap((innerBlock) => innerBlock.innerBlocks)
};
var transforms_default = transforms;
//# sourceMappingURL=transforms.js.map