UNPKG

@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.56 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const q=require("react"),u=require("@progress/kendo-pivotgrid-common");function z(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(s,n,o.get?o:{enumerable:!0,get:()=>e[n]})}}return s.default=e,Object.freeze(s)}const t=z(q),B="aggregate",E="columns",h={dataField:B,columnsData:E},S="&",D=e=>{const[s,n]=t.useState(!0),[o,M]=t.useState(e.defaultColumnAxes||[]),[r,w]=t.useState(e.defaultRowAxes||[]),[f,b]=t.useState(e.defaultMeasureAxes||[]),[c,P]=t.useState(e.defaultSort||[]),[g,F]=t.useState(e.defaultFilter||[]),[y,R]=t.useState(new Map),v=t.useCallback(a=>{w(a.value)},[]),p=t.useCallback(a=>{M(a.value)},[]),j=a=>{b(a.value)},L=a=>{P(a.value)},T=a=>{F(a.value)},A=t.useMemo(()=>Array.from(u.rootFields(o).keys()).join(S),[o]),C=t.useMemo(()=>Array.from(u.rootFields(r).keys()).join(S),[r]),l=t.useCallback(a=>({key:a,...e.dimensions[a]}),[e.dimensions]),i=t.useMemo(()=>A?A.split(S).map(l):[],[A,l]),m=t.useMemo(()=>C?C.split(S).map(l):[],[C,l]),d=t.useMemo(()=>f.map(a=>e.measures.find(_=>String(_.name)===String(a.name))).filter(Boolean),[f,e.measures]),[x,k]=t.useState(u.createLocalDataState({dataTree:y,rowSettings:m,columnSettings:i,rowAxes:r,columnAxes:o,measures:d,sort:c,fields:h}));t.useEffect(()=>{n(!0),setTimeout(()=>{const a=new Map(u.createDataTree(e.data,m,i,d,h,g));R(a),k(u.createLocalDataState({dataTree:a,rowSettings:m,columnSettings:i,rowAxes:r,columnAxes:o,measures:d,sort:c,fields:h})),n(!1)},0)},[e.data,m,i,d,g,r,o,c]);const O=t.useMemo(()=>u.createFlatSchemaDimensions(e.dimensions,e.measures),[e.dimensions,e.measures]);return{pivotProps:{rowAxes:r,columnAxes:o,data:x.data,rows:x.rows,columns:x.columns,onRowAxesChange:v,onColumnAxesChange:p},configuratorProps:{sort:c,onSortChange:L,filter:g,onFilterChange:T,data:O,rowAxes:r,columnAxes:o,measureAxes:f,onRowAxesChange:v,onColumnAxesChange:p,onMeasureAxesChange:j},state:{loading:s}}},N=e=>{const s=D(e);return e.children(s)};exports.PivotLocalDataService=N;exports.usePivotLocalDataService=D;