UNPKG

adverich-kun-ui

Version:

Una librería de componentes Vue.js con Tailwind CSS

44 lines (43 loc) 1.36 kB
import { reactive as F, ref as k, computed as w, watch as A } from "vue"; import { debounce as S } from "../../../../utils/utils.js"; function v(u, i) { const t = F({ search: "", byColumn: {} }), { items: c, customFilter: s, searchableKeys: f } = u, y = k(!1), a = (e, r) => e == null ? !1 : String(e).toLowerCase().includes(String(r).toLowerCase()), l = (e, r, n) => { const o = e[r]; return typeof (s == null ? void 0 : s.value) == "function" ? s.value(e, r, n) : Array.isArray(n) ? n.some((b) => a(o, b)) : a(o, n); }, m = w(() => Array.isArray(c.value) ? c.value.filter((e) => { if (t.search && !(f.value || Object.keys(e)).some((o) => l(e, o, t.search))) return !1; for (const r in t.byColumn) { const n = t.byColumn[r]; if (n != null && n !== "" && !l(e, r, n)) return !1; } return !0; }) : []), h = S((e) => { t.search = (e == null ? void 0 : e.toString().toLowerCase()) || ""; }, i.value), p = (e, r) => { t.byColumn[e] = r; }; function C(e) { for (const r in e) p(r, e[r]); } const d = () => { t.search = "", t.byColumn = {}; }; return A(() => c.value, () => { }, { deep: !0 }), { modalFilter: y, appliedFilters: t, filteredItems: m, setSearch: h, applyColumnFilters: C, clearFilters: d }; } export { v as default };