@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) • 3.42 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"});var N=(e=>(e.TOGGLE="GROUP-EXPAND_TOGGLE",e.EXPAND="GROUP-EXPAND_EXPAND",e.COLLAPSE="GROUP-EXPAND_COLLAPSE",e.RESET="GROUP-EXPAND_RESET",e))(N||{});const U=e=>{var r;return{enabled:typeof e=="boolean"?e:(r=e==null?void 0:e.enabled)!=null?r:!0,defaultExpand:typeof e=="object"?e==null?void 0:e.defaultExpand:!0}},i=(e=[],r=null)=>{const u=[];return e==null||e.forEach(d=>{var a;const l={value:d.value,field:d.field,parents:r?[r,...(a=r.parents)!=null?a:[]]:[]};d.expanded!==void 0&&(l.expanded=d.expanded),d.groups&&u.push(...i(d.groups,l)),u.push(l)}),u},x=e=>{var r,u,d,l;return`${(r=e.parents)!=null&&r.length?((l=(d=(u=e.parents)==null?void 0:u.slice())==null?void 0:d.reverse())==null?void 0:l.map(a=>x({field:a.field,value:a.value})).join("/"))+"/":""}${e.field}:${e.value}`},w=(e,r)=>{const u=i(e);return g(u,r)},j=(e,r)=>{var l;const u=i(e),d=g(u,r);return d?(l=d.expanded)!=null?l:!0:!1},v=e=>{var l;const r=new Map;r.set("root",{value:null,field:"",groups:new Set}),(a=>{a.forEach(s=>{var o,P,h,G;const c=x(s),n=(o=r.get(c))!=null?o:{value:s.value,field:s.field};s.expanded!==void 0&&(n.expanded=s.expanded),r.has(c)||r.set(c,n);let f=n;(P=s.parents)!=null&&P.length?s.parents.forEach((p,O)=>{var A,L,R,S,T,D,X;const E=x({value:p.value,field:p.field,parents:(L=s.parents)==null?void 0:L.slice(O+1,(A=s==null?void 0:s.parents)==null?void 0:A.length)}),t=(R=r.get(E))!=null?R:{value:p.value,field:p.field};p.expanded&&(t.expanded=p.expanded),r.has(E)||r.set(E,t),t!=null&&t.groups||(t.groups=new Set),t.groups.add(f),f=t,O===((T=(S=s.parents)==null?void 0:S.length)!=null?T:-1)-1&&((X=(D=r.get("root"))==null?void 0:D.groups)==null||X.add(t))}):(G=(h=r.get("root"))==null?void 0:h.groups)==null||G.add(f)})})(e);const d=a=>{a.groups&&(a.groups=Array.from(a.groups),a.groups.forEach(d))};return d(r.get("root")),((l=r.get("root"))==null?void 0:l.groups)||[]},F=(e,r)=>{var u;return!!((u=r.parents)!=null&&u.every((d,l)=>{var a;return(a=e.parents)==null?void 0:a.find(s=>d.value===s.value&&d.field===s.field)}))},g=(e,r)=>e.find(d=>d.value===r.value&&d.field===r.field&&F(d,r)),_=(e,r,u)=>{var a,s,c;const d=i(e!=null?e:[]),l=g(d,r.group);switch(r.type){case"GROUP-EXPAND_TOGGLE":return v(l?d==null?void 0:d.map(n=>{var f,o;return n===l?{...n,expanded:!((o=(f=n.expanded)!=null?f:u==null?void 0:u.defaultExpand)==null||o)}:n}):[...d,{...r.group,expanded:!((a=u==null?void 0:u.defaultExpand)==null||a)}]);case"GROUP-EXPAND_EXPAND":{let n;return l?n=d==null?void 0:d.map(f=>f===l?{...f,expanded:!0}:f):(s=u==null?void 0:u.defaultExpand)==null||s?n=d:n=[...d,{...r.group,expanded:!0}],v(n)}case"GROUP-EXPAND_COLLAPSE":{let n;return l?n=d==null?void 0:d.map(f=>f===l?{...f,expanded:!1}:f):(c=u==null?void 0:u.defaultExpand)==null||c?n=[...d,{...r.group,expanded:!1}]:n=d,v(n)}default:return e}};exports.GROUP_EXPAND_ACTION=N;exports.findGroupExpand=w;exports.flatToTree=v;exports.getGroupExpandableOptions=U;exports.groupExpandReducer=_;exports.isExpanded=j;