@progress/kendo-react-grid
Version:
React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package
9 lines (8 loc) • 2.78 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 D=require("react"),i=require("@progress/kendo-react-common"),E=require("./package-metadata.js");function M(s){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const o in s)if(o!=="default"){const n=Object.getOwnPropertyDescriptor(s,o);Object.defineProperty(a,o,n.get?n:{enumerable:!0,get:()=>s[o]})}}return a.default=s,Object.freeze(a)}const l=M(D),b=s=>{const{data:a=[]}=s,o=!i.validatePackage(E.packageMetadata,{component:"StatusBar"});return l.createElement("div",{className:"k-selection-aggregates k-grid-selection-aggregates"},a.map((n,u)=>l.createElement("div",{key:u},l.createElement("span",{className:"k-selection-aggregates-item-text"},n.type,": "),l.createElement("span",{className:"k-selection-aggregates-item-value"},n.formattedValue))),o&&l.createElement(i.WatermarkOverlay,null))};b.displayName="KendoReactGridStatusBar";const y=s=>{var o;const a=s.slice();for(let n=0;n<a.length;n++)for(;a[n]&&((o=a[n].children)!=null&&o.length);)a.splice(n,1,...a[n].children);return a},O=s=>{const{dataItems:a,target:o}=s,u=y(o.columns).map(e=>e.field).filter(e=>e&&typeof e=="string").map(e=>i.getter(e)),S=e=>s.select[i.getter(s.dataItemKey)(e)],t={dates:[],numbers:[],booleans:[],others:[]},k=e=>{typeof e=="number"?t.numbers.push(e):typeof e=="boolean"?t.booleans.push(e):e instanceof Date?t.dates.push(e):t.others.push(e)};a.forEach(e=>{const r=S(e);Array.isArray(r)&&r.forEach(c=>{k(u[c](e))})});const g=t.dates.map(e=>e.getTime()),d=t.booleans.filter(e=>e).length,f=t.booleans.filter(e=>!e).length,m=t.numbers.length?t.numbers.reduce((e,r)=>e+r,0):void 0,h={sum:m,average:typeof m=="number"?m/t.numbers.length:void 0,min:t.numbers.length?Math.min(...t.numbers):void 0,max:t.numbers.length?Math.max(...t.numbers):void 0,count:t.numbers.length+t.booleans.length+t.dates.length+t.others.length,isTrue:d>0?d:void 0,isFalse:f>0?f:void 0,earliest:t.dates.length?new Date(Math.min(...g)):void 0,latest:t.dates.length?new Date(Math.max(...g)):void 0},v=(e,r)=>(r==="sum"||r==="average")&&typeof e=="number"?e.toFixed(2):(r==="earliest"||r==="latest")&&e instanceof Date?e.toLocaleDateString():String(e),p=[];return Object.keys(h).forEach(e=>{const r=e,c=h[r];c!==void 0&&p.push({type:r,value:c,formattedValue:v(c,r)})}),p};exports.StatusBar=b;exports.getStatusData=O;exports.leafColumns=y;