"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);
var create_open_media_manager_fn_exports = {};
__export(create_open_media_manager_fn_exports, {
  createOpenMediaManagerFn: () => createOpenMediaManagerFn
});
module.exports = __toCommonJS(create_open_media_manager_fn_exports);
var import_is_ssr = require("../is-ssr.js");
const createOpenMediaManagerFn = () => {
  if ((0, import_is_ssr.isSSR)()) {
    return void 0;
  }
  const mediaManagerInstance = window.editorSDK || window.ModuleRegistry;
  const isInEditor = mediaManagerInstance && "editor" in mediaManagerInstance;
  const isInBM = mediaManagerInstance && "registeredMethods" in mediaManagerInstance && mediaManagerInstance.registeredMethods && typeof mediaManagerInstance.registeredMethods === "object" && "mediaManager.open" in mediaManagerInstance.registeredMethods;
  if (!mediaManagerInstance || !isInEditor && !isInBM) {
    return void 0;
  }
  return async ({ mediaType, isMultiSelect, appDefId }) => {
    return "editor" in mediaManagerInstance ? mediaManagerInstance.editor.openMediaPanel("", {
      mediaType,
      isMultiSelect
    }) : new Promise((resolve, reject) => {
      mediaManagerInstance.invoke("mediaManager.open", mediaType, appDefId || "ricos", {
        multiSelect: isMultiSelect,
        onSuccess: (data) => resolve(data.items),
        onCancel: reject
      });
    });
  };
};
//# sourceMappingURL=create-open-media-manager-fn.js.map
