UNPKG

@wordpress/block-library

Version:
985 lines (983 loc) 26.6 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-library/src/gallery/deprecated.js var deprecated_exports = {}; __export(deprecated_exports, { default: () => deprecated_default, defaultColumnsNumberV1: () => defaultColumnsNumberV1, getHrefAndDestination: () => getHrefAndDestination, getImageBlock: () => getImageBlock }); module.exports = __toCommonJS(deprecated_exports); var import_clsx = __toESM(require("clsx")); var import_block_editor = require("@wordpress/block-editor"); var import_blocks = require("@wordpress/blocks"); var import_constants = require("./constants"); var import_jsx_runtime = require("react/jsx-runtime"); var DEPRECATED_LINK_DESTINATION_MEDIA = "file"; var DEPRECATED_LINK_DESTINATION_ATTACHMENT = "post"; function defaultColumnsNumberV1(attributes) { return Math.min(3, attributes?.images?.length); } function getHrefAndDestination(image, destination) { switch (destination) { case DEPRECATED_LINK_DESTINATION_MEDIA: return { href: image?.source_url || image?.url, linkDestination: import_constants.LINK_DESTINATION_MEDIA }; case DEPRECATED_LINK_DESTINATION_ATTACHMENT: return { href: image?.link, linkDestination: import_constants.LINK_DESTINATION_ATTACHMENT }; case import_constants.LINK_DESTINATION_MEDIA: return { href: image?.source_url || image?.url, linkDestination: import_constants.LINK_DESTINATION_MEDIA }; case import_constants.LINK_DESTINATION_ATTACHMENT: return { href: image?.link, linkDestination: import_constants.LINK_DESTINATION_ATTACHMENT }; case import_constants.LINK_DESTINATION_NONE: return { href: void 0, linkDestination: import_constants.LINK_DESTINATION_NONE }; } return {}; } function runV2Migration(attributes) { let linkTo = attributes.linkTo ? attributes.linkTo : "none"; if (linkTo === "post") { linkTo = "attachment"; } else if (linkTo === "file") { linkTo = "media"; } const imageBlocks = attributes.images.map((image) => { return getImageBlock(image, attributes.sizeSlug, linkTo); }); const { images, ids, ...restAttributes } = attributes; return [ { ...restAttributes, linkTo, allowResize: false }, imageBlocks ]; } function getImageBlock(image, sizeSlug, linkTo) { return (0, import_blocks.createBlock)("core/image", { ...image.id && { id: parseInt(image.id) }, url: image.url, alt: image.alt, caption: image.caption, sizeSlug, ...getHrefAndDestination(image, linkTo) }); } var v7 = { attributes: { images: { type: "array", default: [], source: "query", selector: ".blocks-gallery-item", query: { url: { type: "string", source: "attribute", selector: "img", attribute: "src" }, fullUrl: { type: "string", source: "attribute", selector: "img", attribute: "data-full-url" }, link: { type: "string", source: "attribute", selector: "img", attribute: "data-link" }, alt: { type: "string", source: "attribute", selector: "img", attribute: "alt", default: "" }, id: { type: "string", source: "attribute", selector: "img", attribute: "data-id" }, caption: { type: "string", source: "html", selector: ".blocks-gallery-item__caption" } } }, ids: { type: "array", items: { type: "number" }, default: [] }, shortCodeTransforms: { type: "array", default: [], items: { type: "object" } }, columns: { type: "number", minimum: 1, maximum: 8 }, caption: { type: "string", source: "html", selector: ".blocks-gallery-caption" }, imageCrop: { type: "boolean", default: true }, fixedHeight: { type: "boolean", default: true }, linkTarget: { type: "string" }, linkTo: { type: "string" }, sizeSlug: { type: "string", default: "large" }, allowResize: { type: "boolean", default: false } }, save({ attributes }) { const { caption, columns, imageCrop } = attributes; const className = (0, import_clsx.default)("has-nested-images", { [`columns-${columns}`]: columns !== void 0, [`columns-default`]: columns === void 0, "is-cropped": imageCrop }); const blockProps = import_block_editor.useBlockProps.save({ className }); const innerBlocksProps = import_block_editor.useInnerBlocksProps.save(blockProps); return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("figure", { ...innerBlocksProps, children: [ innerBlocksProps.children, !import_block_editor.RichText.isEmpty(caption) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_block_editor.RichText.Content, { tagName: "figcaption", className: "blocks-gallery-caption", value: caption } ) ] }); } }; var v6 = { attributes: { images: { type: "array", default: [], source: "query", selector: ".blocks-gallery-item", query: { url: { type: "string", source: "attribute", selector: "img", attribute: "src" }, fullUrl: { type: "string", source: "attribute", selector: "img", attribute: "data-full-url" }, link: { type: "string", source: "attribute", selector: "img", attribute: "data-link" }, alt: { type: "string", source: "attribute", selector: "img", attribute: "alt", default: "" }, id: { type: "string", source: "attribute", selector: "img", attribute: "data-id" }, caption: { type: "string", source: "html", selector: ".blocks-gallery-item__caption" } } }, ids: { type: "array", items: { type: "number" }, default: [] }, columns: { type: "number", minimum: 1, maximum: 8 }, caption: { type: "string", source: "html", selector: ".blocks-gallery-caption" }, imageCrop: { type: "boolean", default: true }, fixedHeight: { type: "boolean", default: true }, linkTo: { type: "string" }, sizeSlug: { type: "string", default: "large" } }, supports: { anchor: true, align: true }, save({ attributes }) { const { images, columns = defaultColumnsNumberV1(attributes), imageCrop, caption, linkTo } = attributes; const className = `columns-${columns} ${imageCrop ? "is-cropped" : ""}`; return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("figure", { ...import_block_editor.useBlockProps.save({ className }), children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: "blocks-gallery-grid", children: images.map((image) => { let href; switch (linkTo) { case DEPRECATED_LINK_DESTINATION_MEDIA: href = image.fullUrl || image.url; break; case DEPRECATED_LINK_DESTINATION_ATTACHMENT: href = image.link; break; } const img = /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "img", { src: image.url, alt: image.alt, "data-id": image.id, "data-full-url": image.fullUrl, "data-link": image.link, className: image.id ? `wp-image-${image.id}` : null } ); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "li", { className: "blocks-gallery-item", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("figure", { children: [ href ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href, children: img }) : img, !import_block_editor.RichText.isEmpty(image.caption) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_block_editor.RichText.Content, { tagName: "figcaption", className: "blocks-gallery-item__caption", value: image.caption } ) ] }) }, image.id || image.url ); }) }), !import_block_editor.RichText.isEmpty(caption) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_block_editor.RichText.Content, { tagName: "figcaption", className: "blocks-gallery-caption", value: caption } ) ] }); }, migrate(attributes) { return runV2Migration(attributes); } }; var v5 = { attributes: { images: { type: "array", default: [], source: "query", selector: ".blocks-gallery-item", query: { url: { type: "string", source: "attribute", selector: "img", attribute: "src" }, fullUrl: { type: "string", source: "attribute", selector: "img", attribute: "data-full-url" }, link: { type: "string", source: "attribute", selector: "img", attribute: "data-link" }, alt: { type: "string", source: "attribute", selector: "img", attribute: "alt", default: "" }, id: { type: "string", source: "attribute", selector: "img", attribute: "data-id" }, caption: { type: "string", source: "html", selector: ".blocks-gallery-item__caption" } } }, ids: { type: "array", items: { type: "number" }, default: [] }, columns: { type: "number", minimum: 1, maximum: 8 }, caption: { type: "string", source: "html", selector: ".blocks-gallery-caption" }, imageCrop: { type: "boolean", default: true }, linkTo: { type: "string", default: "none" }, sizeSlug: { type: "string", default: "large" } }, supports: { align: true }, isEligible({ linkTo }) { return !linkTo || linkTo === "attachment" || linkTo === "media"; }, migrate(attributes) { return runV2Migration(attributes); }, save({ attributes }) { const { images, columns = defaultColumnsNumberV1(attributes), imageCrop, caption, linkTo } = attributes; return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)( "figure", { className: `columns-${columns} ${imageCrop ? "is-cropped" : ""}`, children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: "blocks-gallery-grid", children: images.map((image) => { let href; switch (linkTo) { case "media": href = image.fullUrl || image.url; break; case "attachment": href = image.link; break; } const img = /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "img", { src: image.url, alt: image.alt, "data-id": image.id, "data-full-url": image.fullUrl, "data-link": image.link, className: image.id ? `wp-image-${image.id}` : null } ); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "li", { className: "blocks-gallery-item", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("figure", { children: [ href ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href, children: img }) : img, !import_block_editor.RichText.isEmpty(image.caption) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_block_editor.RichText.Content, { tagName: "figcaption", className: "blocks-gallery-item__caption", value: image.caption } ) ] }) }, image.id || image.url ); }) }), !import_block_editor.RichText.isEmpty(caption) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_block_editor.RichText.Content, { tagName: "figcaption", className: "blocks-gallery-caption", value: caption } ) ] } ); } }; var v4 = { attributes: { images: { type: "array", default: [], source: "query", selector: ".blocks-gallery-item", query: { url: { source: "attribute", selector: "img", attribute: "src" }, fullUrl: { source: "attribute", selector: "img", attribute: "data-full-url" }, link: { source: "attribute", selector: "img", attribute: "data-link" }, alt: { source: "attribute", selector: "img", attribute: "alt", default: "" }, id: { source: "attribute", selector: "img", attribute: "data-id" }, caption: { type: "string", source: "html", selector: ".blocks-gallery-item__caption" } } }, ids: { type: "array", default: [] }, columns: { type: "number" }, caption: { type: "string", source: "html", selector: ".blocks-gallery-caption" }, imageCrop: { type: "boolean", default: true }, linkTo: { type: "string", default: "none" } }, supports: { align: true }, isEligible({ ids }) { return ids && ids.some((id) => typeof id === "string"); }, migrate(attributes) { return runV2Migration(attributes); }, save({ attributes }) { const { images, columns = defaultColumnsNumberV1(attributes), imageCrop, caption, linkTo } = attributes; return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)( "figure", { className: `columns-${columns} ${imageCrop ? "is-cropped" : ""}`, children: [ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: "blocks-gallery-grid", children: images.map((image) => { let href; switch (linkTo) { case "media": href = image.fullUrl || image.url; break; case "attachment": href = image.link; break; } const img = /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "img", { src: image.url, alt: image.alt, "data-id": image.id, "data-full-url": image.fullUrl, "data-link": image.link, className: image.id ? `wp-image-${image.id}` : null } ); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "li", { className: "blocks-gallery-item", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("figure", { children: [ href ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href, children: img }) : img, !import_block_editor.RichText.isEmpty(image.caption) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_block_editor.RichText.Content, { tagName: "figcaption", className: "blocks-gallery-item__caption", value: image.caption } ) ] }) }, image.id || image.url ); }) }), !import_block_editor.RichText.isEmpty(caption) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_block_editor.RichText.Content, { tagName: "figcaption", className: "blocks-gallery-caption", value: caption } ) ] } ); } }; var v3 = { attributes: { images: { type: "array", default: [], source: "query", selector: "ul.wp-block-gallery .blocks-gallery-item", query: { url: { source: "attribute", selector: "img", attribute: "src" }, fullUrl: { source: "attribute", selector: "img", attribute: "data-full-url" }, alt: { source: "attribute", selector: "img", attribute: "alt", default: "" }, id: { source: "attribute", selector: "img", attribute: "data-id" }, link: { source: "attribute", selector: "img", attribute: "data-link" }, caption: { type: "string", source: "html", selector: "figcaption" } } }, ids: { type: "array", default: [] }, columns: { type: "number" }, imageCrop: { type: "boolean", default: true }, linkTo: { type: "string", default: "none" } }, supports: { align: true }, save({ attributes }) { const { images, columns = defaultColumnsNumberV1(attributes), imageCrop, linkTo } = attributes; return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "ul", { className: `columns-${columns} ${imageCrop ? "is-cropped" : ""}`, children: images.map((image) => { let href; switch (linkTo) { case "media": href = image.fullUrl || image.url; break; case "attachment": href = image.link; break; } const img = /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "img", { src: image.url, alt: image.alt, "data-id": image.id, "data-full-url": image.fullUrl, "data-link": image.link, className: image.id ? `wp-image-${image.id}` : null } ); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "li", { className: "blocks-gallery-item", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("figure", { children: [ href ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href, children: img }) : img, image.caption && image.caption.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_block_editor.RichText.Content, { tagName: "figcaption", value: image.caption } ) ] }) }, image.id || image.url ); }) } ); }, migrate(attributes) { return runV2Migration(attributes); } }; var v2 = { attributes: { images: { type: "array", default: [], source: "query", selector: "ul.wp-block-gallery .blocks-gallery-item", query: { url: { source: "attribute", selector: "img", attribute: "src" }, alt: { source: "attribute", selector: "img", attribute: "alt", default: "" }, id: { source: "attribute", selector: "img", attribute: "data-id" }, link: { source: "attribute", selector: "img", attribute: "data-link" }, caption: { type: "string", source: "html", selector: "figcaption" } } }, columns: { type: "number" }, imageCrop: { type: "boolean", default: true }, linkTo: { type: "string", default: "none" } }, isEligible({ images, ids }) { return images && images.length > 0 && (!ids && images || ids && images && ids.length !== images.length || images.some((id, index) => { if (!id && ids[index] !== null) { return true; } return parseInt(id, 10) !== ids[index]; })); }, migrate(attributes) { return runV2Migration(attributes); }, supports: { align: true }, save({ attributes }) { const { images, columns = defaultColumnsNumberV1(attributes), imageCrop, linkTo } = attributes; return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "ul", { className: `columns-${columns} ${imageCrop ? "is-cropped" : ""}`, children: images.map((image) => { let href; switch (linkTo) { case "media": href = image.url; break; case "attachment": href = image.link; break; } const img = /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "img", { src: image.url, alt: image.alt, "data-id": image.id, "data-link": image.link, className: image.id ? `wp-image-${image.id}` : null } ); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "li", { className: "blocks-gallery-item", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("figure", { children: [ href ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href, children: img }) : img, image.caption && image.caption.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( import_block_editor.RichText.Content, { tagName: "figcaption", value: image.caption } ) ] }) }, image.id || image.url ); }) } ); } }; var v1 = { attributes: { images: { type: "array", default: [], source: "query", selector: "div.wp-block-gallery figure.blocks-gallery-image img", query: { url: { source: "attribute", attribute: "src" }, alt: { source: "attribute", attribute: "alt", default: "" }, id: { source: "attribute", attribute: "data-id" } } }, columns: { type: "number" }, imageCrop: { type: "boolean", default: true }, linkTo: { type: "string", default: "none" }, align: { type: "string", default: "none" } }, supports: { align: true }, save({ attributes }) { const { images, columns = defaultColumnsNumberV1(attributes), align, imageCrop, linkTo } = attributes; const className = (0, import_clsx.default)(`columns-${columns}`, { alignnone: align === "none", "is-cropped": imageCrop }); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className, children: images.map((image) => { let href; switch (linkTo) { case "media": href = image.url; break; case "attachment": href = image.link; break; } const img = /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "img", { src: image.url, alt: image.alt, "data-id": image.id } ); return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( "figure", { className: "blocks-gallery-image", children: href ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href, children: img }) : img }, image.id || image.url ); }) }); }, migrate(attributes) { return runV2Migration(attributes); } }; var deprecated_default = [v7, v6, v5, v4, v3, v2, v1]; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { defaultColumnsNumberV1, getHrefAndDestination, getImageBlock }); //# sourceMappingURL=deprecated.js.map