"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 clipboard_text_serializer_exports = {};
__export(clipboard_text_serializer_exports, {
  ClipboardTextSerializer: () => ClipboardTextSerializer
});
module.exports = __toCommonJS(clipboard_text_serializer_exports);
var import_state = require("./../../pm/state.js");
var import_extension = require("../extension.js");
var import_get_text_between = require("../helpers/get-text-between.js");
var import_get_text_serializers_from_schema = require("../helpers/get-text-serializers-from-schema.js");
const ClipboardTextSerializer = import_extension.Extension.create({
  name: "clipboardTextSerializer",
  addOptions() {
    return {
      blockSeparator: void 0
    };
  },
  addProseMirrorPlugins() {
    return [
      new import_state.Plugin({
        key: new import_state.PluginKey("clipboardTextSerializer"),
        props: {
          clipboardTextSerializer: () => {
            const { editor } = this;
            const { state, schema } = editor;
            const { doc, selection } = state;
            const { ranges } = selection;
            const from = Math.min(...ranges.map((range2) => range2.$from.pos));
            const to = Math.max(...ranges.map((range2) => range2.$to.pos));
            const textSerializers = (0, import_get_text_serializers_from_schema.getTextSerializersFromSchema)(schema);
            const range = { from, to };
            return (0, import_get_text_between.getTextBetween)(doc, range, {
              ...this.options.blockSeparator !== void 0 ? { blockSeparator: this.options.blockSeparator } : {},
              textSerializers
            });
          }
        }
      })
    ];
  }
});
//# sourceMappingURL=clipboard-text-serializer.js.map
