UNPKG

@nuxt/ui

Version:

A UI Library for Modern Web Apps, powered by Vue & Tailwind CSS.

27 lines (26 loc) 986 B
import { reactivePick } from "@vueuse/core"; import { isEqual, diff } from "ohash/utils"; import { linkKeys } from "./link-keys.js"; export { linkKeys }; export function pickLinkProps(link) { const keys = Object.keys(link); const ariaKeys = keys.filter((key) => key.startsWith("aria-")); const dataKeys = keys.filter((key) => key.startsWith("data-")); const propsToInclude = [ ...linkKeys, ...ariaKeys, ...dataKeys ]; return reactivePick(link, ...propsToInclude); } 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); }