@progress/kendo-react-data-tools
Version:
Includes React Pager & React Filter component, an intuitive interface to create complex filter descriptions. KendoReact Data Tools package
9 lines (8 loc) • 2.9 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
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("@progress/kendo-data-query"),f=require("@progress/kendo-react-common");function u(t,e,n){return n?{...t,[e]:n.length?[...n]:void 0}:t&&t[e]?[...t[e]]:[]}function s(t,e,n){if(t[n]){const r=u(t,n,v.orderBy(u(t,n),e)),o=u(r,n).map(c=>s(c,e,n));return{...r,[n]:o}}return t}function S(t,e,n){let r=v.orderBy(t,e);return r=r.map(o=>s(o,e,n)),r}function y(t,e,n){let r=u(t,n);if(r&&r.length){r=r.map(l=>y(l,e,n));const c={filters:[{filters:e,logic:"and"},{operator:l=>!!(l[n]||[]).length}],logic:"or"},a=v.filterBy(r,c);return u(t,n,a)}return t}function D(t,e,n){let r={[n]:[...t]};return r=y(r,e,n),r[n]||[]}function T(t,e,n){const r=[],o=[];for(let c=t.length-1;c>=0;c--){const a=t[c];r.push({root:a,data:e(a),level:[c],levelCount:t.length})}for(;r.length>0;){const c=r.pop();if(o.push({dataItem:c.root,level:[...c.level],...n(c.root),levelCount:c.levelCount}),c.data.length)for(let a=c.data.length-1;a>=0;a--){const l=c.data[a];r.push({root:l,data:e(l),level:[...c.level,a],levelCount:c.data.length})}}return o}const B=(t,e,n)=>{const r=h=>!!f.getNestedValue(e,h),o=h=>!!f.getNestedValue(n,h),c=h=>{const i=[];return r(h)&&o(h)&&i.push(...f.getNestedValue(n,h)),i},a=(h,i,g)=>{i.push({...h,level:g}),c(h).forEach(C=>a(C,i,g+1))},l=[];return t.forEach(h=>a(h,l,0)),l},P=(t,e,n,r)=>{let o={},c=[],a;return t.forEach(l=>o[e(l)]={...l}),t.forEach(l=>{a=o[n(l)],a?(a[r]=a[r]||[],a[r].push(o[e(l)])):c.push(o[e(l)])}),c},x=(t,e,n)=>f.extendDataItem(t,e,n),k=(t,e,n)=>[...f.mapTree([{[e]:[...t]}],e,o=>w(o,n,e))[0][e]],w=(t,e,n)=>{const r=t[n]||[],o=r.findIndex(e);if(o!==-1){const c=[...r];return c.splice(o,1),{...t,[n]:c}}return t},E=(t,e,n,r)=>f.mapTree(t,e,o=>n(o)?{...o,[e]:r(o[e]||[])}:o),p=(t,e,n)=>f.getItemPath(t,e,n),N=(t,e,n,r)=>{const o=[...t],c=p(o,e,r),a=c.pop(),l=c.pop(),h=e[e.length-1];if(n){const g=p(o,n,r).pop();(l?l[r]:o).splice(h,1),g[r]=g[r]||[],g[r].push(a)}else(l?l[r]:o).splice(h,1),o.push(a);return o},V=(t,e)=>({...t,filters:t.filters.map(n=>({...n,value:e}))}),q=t=>t!=null&&t.filters.length&&t.filters[0].value||"",d=(t,e)=>{if(e&&!t)return e;if(t&&!e)return t;if(t&&e)return{logic:"and",filters:[t,e]}};exports.combineFilters=d;exports.createDataTree=P;exports.extendDataItem=x;exports.filterBy=D;exports.flatData=T;exports.getItemPath=p;exports.getSearchFromString=V;exports.getStringFromSearch=q;exports.modifySubItems=E;exports.moveTreeItem=N;exports.orderBy=S;exports.removeItems=k;exports.treeToFlat=B;