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