"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 update_service_exports = {};
__export(update_service_exports, {
  createUpdateService: () => createUpdateService
});
module.exports = __toCommonJS(update_service_exports);
const createUpdateService = () => {
  let publicCommands;
  return {
    setEditorCommands: (_publicCommands) => {
      publicCommands = _publicCommands;
    },
    updatePluginData: (uploadedData, nodeId, type, mediaPluginService, fileState) => {
      if (doesNodeExist(nodeId, publicCommands)) {
        const componentData = publicCommands?.getBlockComponentData(nodeId);
        const newComponentData = mediaPluginService.createPluginData(
          uploadedData,
          componentData,
          fileState
        );
        publicCommands?.setBlock(nodeId, type, newComponentData);
      }
    },
    updateLoadingState: (url, file, nodeId, type, mediaPluginService, fileState) => {
      if (doesNodeExist(nodeId, publicCommands)) {
        const currentComponentData = publicCommands?.getBlockComponentData(nodeId);
        const {
          componentState,
          componentData,
          fileState: newFileState
        } = mediaPluginService.createLoadingData(file, url, currentComponentData, fileState);
        publicCommands?.setBlock(nodeId, type, {
          ...componentData,
          ...componentState
        });
        return newFileState;
      }
    },
    updateErrorState: (error, nodeId, type, mediaPluginService, fileState) => {
      if (doesNodeExist(nodeId, publicCommands)) {
        const componentData = publicCommands?.getBlockComponentData(nodeId);
        const newComponentData = mediaPluginService.createErrorData(
          error,
          componentData,
          fileState
        );
        publicCommands?.setBlock(nodeId, type, newComponentData);
      }
    }
  };
};
const doesNodeExist = (nodeId, publicCommands) => publicCommands?.getAllBlocksKeys().includes(nodeId);
//# sourceMappingURL=update-service.js.map
