"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 active_decoration_by_type_exports = {};
__export(active_decoration_by_type_exports, {
  activeDecorationByType: () => activeDecorationByType
});
module.exports = __toCommonJS(active_decoration_by_type_exports);
var import_utils = require("../utils.js");
const NAME = "activeDecorationsByType";
const activeDecorationsByType = ({ editorQuery }) => (decorationType, attrs) => {
  const selectedNodesDecorations = editorQuery.selection().doc.descendants((node) => node.isText()).map((node) => {
    return editorQuery.styles().getComputedDecoration(node, decorationType);
  });
  let allDecorations = [...selectedNodesDecorations];
  if (editorQuery.selection().isEmpty) {
    const storedDecorations = editorQuery.state().storedDecorations();
    if (storedDecorations) {
      allDecorations = [...allDecorations, ...storedDecorations];
    } else {
      allDecorations = [...allDecorations, ...editorQuery.selection().collapsedDecorations];
    }
  }
  const activeDecorations = allDecorations.filter((decoration) => !!decoration).filter((decoration) => decoration?.type === decorationType).filter((decoration) => {
    return (0, import_utils.objectIncludes)(decoration, attrs || {}, { strict: false });
  });
  return activeDecorations;
};
const activeDecorationByType = { NAME, query: activeDecorationsByType };
//# sourceMappingURL=active-decoration-by-type.js.map
