@progress/kendo-react-pivotgrid
Version:
React PivotGrid (also called Pivot Table) can be data-bound to an OLAP service and customized extensively. KendoReact PivotGrid package
9 lines (8 loc) • 2.44 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 T=require("react"),u=require("@progress/kendo-pivotgrid-common");function _(e){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(a,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return a.default=e,Object.freeze(a)}const t=_(T),q="aggregate",z="columns",p={dataField:q,columnsData:z},l="&",w=e=>{const[a,n]=t.useState(!0),[s,M]=t.useState(e.defaultColumnAxes||[]),[r,b]=t.useState(e.defaultRowAxes||[]),[i,D]=t.useState(e.defaultMeasureAxes||[]),[m,P]=t.useState(e.defaultSort||[]),[d,F]=t.useState(e.defaultFilter||[]),[S,y]=t.useState({data:[],rows:[],columns:[]}),h=t.useCallback(o=>{b(o.value)},[]),v=t.useCallback(o=>{M(o.value)},[]),R=o=>{D(o.value)},j=o=>{P(o.value)},k=o=>{F(o.value)},f=t.useMemo(()=>Array.from(u.rootFields(s).keys()).join(l),[s]),g=t.useMemo(()=>Array.from(u.rootFields(r).keys()).join(l),[r]),c=t.useCallback(o=>({key:o,...e.dimensions[o]}),[e.dimensions]),A=t.useMemo(()=>f?f.split(l).map(c):[],[f,c]),C=t.useMemo(()=>g?g.split(l).map(c):[],[g,c]),x=t.useMemo(()=>i.map(o=>e.measures.find(O=>String(O.name)===String(o.name))).filter(Boolean),[i,e.measures]);t.useEffect(()=>{n(!0),setTimeout(()=>{const o=new Map(u.createDataTree(e.data,C,A,x,p,d));y(u.createLocalDataState({dataTree:o,rowSettings:C,columnSettings:A,rowAxes:r,columnAxes:s,measures:x,sort:m,fields:p})),n(!1)},0)},[e.data,C,A,x,d,r,s,m]);const L=t.useMemo(()=>u.createFlatSchemaDimensions(e.dimensions,e.measures),[e.dimensions,e.measures]);return{pivotProps:{rowAxes:r,columnAxes:s,data:S.data,rows:S.rows,columns:S.columns,onRowAxesChange:h,onColumnAxesChange:v},configuratorProps:{sort:m,onSortChange:j,filter:d,onFilterChange:k,data:L,rowAxes:r,columnAxes:s,measureAxes:i,onRowAxesChange:h,onColumnAxesChange:v,onMeasureAxesChange:R},state:{loading:a}}},B=e=>{const a=w(e);return e.children(a)};exports.PivotLocalDataService=B;exports.usePivotLocalDataService=w;