UNPKG

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