import { isEqual, diff } from "ohash/utils"; import { linkKeys } from "./link-keys.js"; export { linkKeys }; const linkKeySet = new Set(linkKeys); export function pickLinkProps(link) { const picked = {}; for (const key of Object.keys(link)) { if (linkKeySet.has(key) || key.startsWith("aria-") || key.startsWith("data-")) { picked[key] = link[key]; } } return picked; } export function isPartiallyEqual(item1, item2) { const diffedKeys = diff(item1, item2).reduce((filtered, q) => { if (q.type === "added") { filtered.add(q.key); } return filtered; }, /* @__PURE__ */ new Set()); const item1Filtered = Object.fromEntries(Object.entries(item1).filter(([key]) => !diffedKeys.has(key))); const item2Filtered = Object.fromEntries(Object.entries(item2).filter(([key]) => !diffedKeys.has(key))); return isEqual(item1Filtered, item2Filtered); }