@progress/kendo-vue-data-tools
Version:
63 lines (62 loc) • 1.62 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
import { orderBy as g, filterBy as B } from "@progress/kendo-data-query";
function l(r, t, n) {
return n ? { ...r, [t]: n.length ? [...n] : void 0 } : r && r[t] ? [...r[t]] : [];
}
function u(r, t, n) {
if (r[n]) {
let o = l(r, n, g(l(r, n), t)), i = l(o, n).map((e) => u(e, t, n));
return { ...o, [n]: i };
}
return r;
}
function y(r, t, n) {
let o = g(r, t);
return o = o.map((i) => u(i, t, n)), o;
}
function c(r, t, n) {
let o = l(r, n);
if (o && o.length) {
o = o.map((f) => c(f, t, n));
const h = B(o, {
filters: [
{ filters: t, logic: "and" },
{ operator: (f) => !!(f[n] || []).length }
],
logic: "or"
});
return l(r, n, h);
}
return r;
}
function C(r, t, n) {
let o = { [n]: [...r] };
return o = c(o, t, n), o[n] || [];
}
const S = (r, t) => ({
...r,
filters: r.filters.map((n) => ({ ...n, value: t }))
}), v = (r) => r != null && r.filters.length && r.filters[0].value || "", $ = (r, t) => {
if (t && !r)
return t;
if (r && !t)
return r;
if (r && t)
return {
logic: "and",
filters: [r, t]
};
};
export {
$ as combineFilters,
C as filterBy,
S as getSearchFromString,
v as getStringFromSearch,
y as orderBy
};