"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 gallery_converter_exports = {};
__export(gallery_converter_exports, {
  galleryConverter: () => galleryConverter
});
module.exports = __toCommonJS(gallery_converter_exports);
var import_types = require("./../pm-converters/types.js");
var import_next_schema = require("./../ricos-schema/next-schema/index.js");
var import_link_converters = require("./../_shared/link/link-converters.js");
const galleryConverter = (0, import_types.definePmNodeConverter)({
  toPm: {
    types: [import_next_schema.Node_Type.GALLERY],
    convert: (node) => ({
      type: import_next_schema.Node_Type.GALLERY,
      attrs: {
        ...node.galleryData,
        id: node.id
      }
    })
  },
  fromPm: {
    types: [import_next_schema.Node_Type.GALLERY],
    convert: (node) => {
      const { id, ...data } = node.attrs || {};
      const { spoiler, ...rest } = data.containerData || {};
      const containerData = {
        ...rest,
        ...spoiler?.enabled ? { spoiler: { ...spoiler } } : {}
      };
      const galleryData = data;
      const items = galleryData.items.map(({ loading, error, ...item }) => {
        if (loading || error) {
          return void 0;
        }
        if ("image" in item && item.image) {
          return {
            ...item,
            image: {
              ...item.image,
              link: (0, import_link_converters.fromTiptapLinkConverter)(item.image.link)
            }
          };
        }
        return item;
      }).filter(Boolean);
      if (items.length === 0) {
        return void 0;
      }
      return {
        type: import_next_schema.Node_Type.GALLERY,
        id,
        nodes: [],
        galleryData: {
          ...galleryData,
          items,
          disableExpand: data.disableExpand || void 0,
          disableDownload: data.disableDownload || void 0,
          containerData: Object.keys(containerData).length ? containerData : void 0
        }
      };
    }
  }
});
//# sourceMappingURL=gallery-converter.js.map
