// 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 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,
  IMAGE_BACKGROUND_TYPE,
  VIDEO_BACKGROUND_TYPE,
  attributesFromMedia,
  dimRatioToClass,
  getPositionClassName,
  isContentPositionCenter,
  mediaPosition
};
//# sourceMappingURL=shared.js.map
