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.98 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 H=require("react"),x=require("@progress/kendo-react-treeview"),l=require("@progress/kendo-react-common"),i=require("../utils/index.js"),R=require("../shared/PivotGridConfiguratorEditorStateContext.js");function A(t){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(c,n,o.get?o:{enumerable:!0,get:()=>t[n]})}}return c.default=t,Object.freeze(c)}const a=A(H),g=a.forwardRef((t,c)=>{const{data:n,rowAxes:o,columnAxes:v,measureAxes:C,onExpand:h,onCheck:f}={...m,...t},s=a.useRef(null),d=a.useRef(null),[p,y]=l.useCustomComponent(t.treeView||m.treeView),[E,q]=l.useCustomComponent(t.noData||m.noData);a.useImperativeHandle(d,()=>({props:t,element:s.current&&s.current.element})),a.useImperativeHandle(c,()=>d.current);const[w]=a.useContext(R.PivotGridConfiguratorEditorStateContext),N=i.extractDefaultFields(v),P=i.extractDefaultFields(o),k=i.extractDefaultFields(C),b=i.flatMap(n).filter(e=>[...N,...P,...k].some(r=>r===e.uniqueName||r===e.defaultHierarchy)),I={caption:e=>e.dataItem.caption,id:e=>e.dataItem.uniqueName,value:e=>e.dataItem.defaultHierarchy||e.dataItem.uniqueName,expanded:e=>w.expanded.some(r=>r.uniqueName===e.dataItem.uniqueName),hasChildren:e=>!("hierarchyUniqueName"in e.dataItem)&&!("aggregator"in e.dataItem),selectable:e=>!(!e.hasChildren&&!e.dataItem.aggregator&&!e.dataItem.measure||e.dataItem.type===2||e.dataItem.uniqueName==="[KPIs]"),children:e=>i.recursiveMap(e.dataItem.children,I,e),checked:e=>b.some(r=>e.dataItem.defaultHierarchy?r.defaultHierarchy===e.dataItem.defaultHierarchy:r.uniqueName===e.dataItem.uniqueName)||e.children.length&&e.children.every(r=>r.checked)},F=e=>{h&&h({value:e.item.dataItem,target:d.current,syntheticEvent:e.syntheticEvent})},D=e=>{f&&f({value:e.item.dataItem,target:d.current,syntheticEvent:e.syntheticEvent})},u=i.recursiveMap(t.data,I);return a.createElement(x.TreeViewItemPropsContext.Provider,{value:e=>({...e,checkboxes:e.item.selectable})},u&&u.length?a.createElement(p,{ref:l.canUseRef(p)?s:void 0,data:u,checkboxes:!0,onExpandChange:F,onCheckChange:D,textField:"caption",expandIcons:!0,hasChildrenField:"hasChildren",checkIndeterminateField:"checkIndeterminate",childrenField:"children",...y}):a.createElement(E,{...q}))}),m={data:[],rowAxes:[],columnAxes:[],measureAxes:[],treeView:x.TreeView,noData:()=>a.createElement("div",null,"NO DATA")};g.displayName="KendoReactPivotGridFieldsEditor";exports.PivotGridFieldsEditor=g;