UNPKG

@wordpress/block-library

Version:
84 lines (83 loc) 2.58 kB
// packages/block-library/src/cover/shared.js import { getBlobTypeByURL, isBlobURL } from "@wordpress/blob"; var POSITION_CLASSNAMES = { "top left": "is-position-top-left", "top center": "is-position-top-center", "top right": "is-position-top-right", "center left": "is-position-center-left", "center center": "is-position-center-center", center: "is-position-center-center", "center right": "is-position-center-right", "bottom left": "is-position-bottom-left", "bottom center": "is-position-bottom-center", "bottom right": "is-position-bottom-right" }; var IMAGE_BACKGROUND_TYPE = "image"; var VIDEO_BACKGROUND_TYPE = "video"; var EMBED_VIDEO_BACKGROUND_TYPE = "embed-video"; var COVER_MIN_HEIGHT = 50; var COVER_MAX_HEIGHT = 1e3; var COVER_DEFAULT_HEIGHT = 300; var DEFAULT_FOCAL_POINT = { x: 0.5, y: 0.5 }; var ALLOWED_MEDIA_TYPES = ["image", "video"]; function mediaPosition({ x, y } = DEFAULT_FOCAL_POINT) { return `${Math.round(x * 100)}% ${Math.round(y * 100)}%`; } function dimRatioToClass(ratio) { return ratio === 50 || ratio === void 0 ? null : "has-background-dim-" + 10 * Math.round(ratio / 10); } function attributesFromMedia(media) { if (!media || !media.url && !media.src) { return { url: void 0, id: void 0 }; } if (isBlobURL(media.url)) { media.type = getBlobTypeByURL(media.url); } let mediaType; if (media.media_type) { if (media.media_type === IMAGE_BACKGROUND_TYPE) { mediaType = IMAGE_BACKGROUND_TYPE; } else { mediaType = VIDEO_BACKGROUND_TYPE; } } else if (media.type && (media.type === IMAGE_BACKGROUND_TYPE || media.type === VIDEO_BACKGROUND_TYPE)) { mediaType = media.type; } else { return; } return { url: media.url || media.src, id: media.id, alt: media?.alt, backgroundType: mediaType, ...mediaType === VIDEO_BACKGROUND_TYPE ? { hasParallax: void 0 } : {} }; } function isContentPositionCenter(contentPosition) { return !contentPosition || contentPosition === "center center" || contentPosition === "center"; } function getPositionClassName(contentPosition) { if (isContentPositionCenter(contentPosition)) { return ""; } return POSITION_CLASSNAMES[contentPosition]; } export { ALLOWED_MEDIA_TYPES, COVER_DEFAULT_HEIGHT, COVER_MAX_HEIGHT, COVER_MIN_HEIGHT, DEFAULT_FOCAL_POINT, EMBED_VIDEO_BACKGROUND_TYPE, IMAGE_BACKGROUND_TYPE, VIDEO_BACKGROUND_TYPE, attributesFromMedia, dimRatioToClass, getPositionClassName, isContentPositionCenter, mediaPosition }; //# sourceMappingURL=shared.js.map