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) 7.95 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 j=require("react"),w=require("../GridColumn.js"),S=require("@progress/kendo-data-query"),y=require("@progress/kendo-react-data-tools"),q=require("./_serverModule.js"),G=require("./_clientModule.js"),g=require("../contextMenu/enums.js"),k=require("@progress/kendo-react-common");function p(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const M=p(j);function v(e,t){const n=(e!=null?e:"").split(".");let i=t;return n.forEach(l=>{i=i?i[l]:void 0}),i}function b(e,t,n,i,l,d,r,a,o,s,h=0,c){var I;let u=h;for(let f=0;f<t.length;f++){let m;if(!l||t[f].value===void 0||t[f].items===void 0){e[e.length]={dataIndex:i.index,dataItem:t[f],rowType:"data",level:h,group:c,expanded:(I=d?v(d,t[f]):s&&!!(r!=null&&r[S.getter(s)(t[f])]))!=null?I:!1},i.index++;continue}else{let C;c!=null&&c.parents?C=[{field:c.field,value:c.value},...c.parents]:c?C=[c]:C=[],m={field:t[f].field,value:t[f].value,parents:C}}u=Math.max(u,h+1);let x=!1;if(d)x=v(d,t[f])!==!1;else{const C=y.findGroupExpand(a||[],m);C?x=C.expanded!==!1:x=o!==!1}e[e.length]={dataIndex:-1,dataItem:t[f],level:h,group:m,rowType:"groupHeader",expanded:x},x&&(m.expanded=x,u=Math.max(b(e,t[f].items,n,i,l,d,r,a,o,s,h+1,m),u)),(n==="always"||x&&n==="visible")&&(e[e.length]={dataIndex:-1,dataItem:t[f],rowType:"groupFooter",level:h,expanded:x})}return u}const B=(e,t)=>typeof e.colSpan=="function"?e.colSpan({dataItem:t,column:e}):e.colSpan||1;function F(e,t){const n=[[]];let i=0;for(let r=e.length-1;r>=0;r--)i=Math.max(i,e[r].depth),e[r].headerColSpan=e[r].headerColSpan||1,e[r].children.length>0&&(e[r].headerColSpan=e[r].children.reduce((a,o)=>o.hidden?a:a+o.headerColSpan,0));const l=[];let d=1;return e.forEach((r,a)=>{n[r.depth]=n[r.depth]||[];let o=!1;n[r.depth].length===0&&(d<=1?d=1+(r.children.length>0?0:i-r.depth):(d--,o=!0)),r.rowSpan=1+(r.children.length>0?0:i-r.depth),r.kFirst=o,r.index=n[r.depth].length,n[r.depth].push(a),r.ariaColumnIndex=l[r.depth]?l[r.depth]+1:1;for(let s=r.depth;s<r.depth+r.rowSpan;s++)l[s]=(l[s]||0)+r.headerColSpan}),y.updateLeft(n,e,t),y.updateRight(n,e,t),n}function N(e,t,n,i=0,l=!1){const d=[];if(!e)return[];e&&e.length===void 0&&(e=[e]),e.forEach((a,o)=>{a=a.props?a.props:a;const s=a.id?a.id:y.tableKeyboardNavigationTools.generateNavigatableId(`${n.prevId++}`,n.idPrefix,"column"),h=k.canUseDOM&&a.media&&window.matchMedia?!window.matchMedia(a.media).matches:!1,c=l||h||a.hidden,u=t==null?void 0:t.find(f=>f.id===s),I=N(a.children,(u==null?void 0:u.children)||[],n,i+1,c);d.push(Object.assign({depth:i},w.gridDefaultProps,I.length?{cell:()=>null,filterCell:()=>null}:{},a,{id:s,declarationIndex:d.length,children:I,headerColSpan:0,rowSpan:0,columnType:a.columnType||"data",colSpan:a.colSpan||1,isAccessible:!0,hidden:c,left:null,right:null,rowSpannable:a.rowSpannable},u?{width:u.width,orderIndex:u.orderIndex}:{}))});const r=(a,o)=>a.orderIndex===o.orderIndex?a.declarationIndex-o.declarationIndex:(a.orderIndex||0)-(o.orderIndex||0);if(d.sort(r),i===0){const a=[],o=(s,h)=>s.forEach(c=>{c.parentIndex=h,o(c.children,a.push(c)-1)});return o(d,-1),a}return d}const D=e=>Array.isArray(e)?e:e?e.data:[];function H(e,t,n,i){const l=D(e),d=[];if(l.length>0){let r=l[0];if(t)for(let o=0;o<t.length;o++)r=r.items&&r.items[0];Object.getOwnPropertyNames(r).forEach(o=>{o!==n.column&&d.push(Object.assign({id:y.tableKeyboardNavigationTools.generateNavigatableId(`${i.prevId++}`,i.idPrefix,"column"),declarationIndex:-1,parentIndex:-1,depth:0,colSpan:0,headerColSpan:0,rowSpan:0,index:0,columnType:"data",left:0,right:0,rightBorder:!1,children:[],ariaColumnIndex:0,isAccessible:!0},w.gridDefaultProps,{field:o}))})}return d}const _=(e,t)=>{let n=e[t.parentIndex];for(;n;){if(n.footerCell)return!0;n=e[n.parentIndex]}return!1},$=e=>e.filter(t=>_(e,t)?!1:!!t.footerCell||!(t.children&&t.children.length>0)),z=e=>e.width!==void 0?Math.floor(parseFloat(e.width.toString()))+"px":void 0,V=(e,t)=>t&&t.filter(n=>n.field===e).length>0,E=e=>(e.sort((t,n)=>t.declarationIndex-n.declarationIndex),e.map(t=>{const{declarationIndex:n,parentIndex:i,depth:l,headerColSpan:d,rowSpan:r,index:a,kFirst:o,children:s,...h}=t;return s.length?{children:E(s),...h}:h})),R=e=>{const{filterCell:t,headerCell:n,footerCell:i,cells:l,cell:d,rowSpannable:r,...a}=e;return e.children.length?{...a,children:e.children.map(R)}:a},A=e=>({id:e.id,field:e.field,title:e.title,width:e.width,hidden:!1,children:e.children?O(e.children):null}),O=e=>e.map(A),L=e=>{const t=[],n=i=>i==null?void 0:i.forEach(l=>{t.push(l),n(l.children)});return n(e),t},W=typeof window!="undefined"&&/Firefox/.test(window.navigator.userAgent),K=17895697,Q=e=>{let t=[];return e.sortable&&(t=t.concat([g.GridContextMenuItemNames.sortAsc,g.GridContextMenuItemNames.sortDesc])),t},U=e=>{let t=[];return e.clipboard&&(t=t.concat([g.GridContextMenuItemNames.copySelection,g.GridContextMenuItemNames.copySelectionNoHeaders,g.GridContextMenuItemNames.paste])),e.editable&&(t.length&&(t=t.concat([g.GridContextMenuItemNames.separator])),t=t.concat([g.GridContextMenuItemNames.create,g.GridContextMenuItemNames.edit,g.GridContextMenuItemNames.delete])),e.selectable&&(t.length&&(t=t.concat([g.GridContextMenuItemNames.separator])),t=t.concat([g.GridContextMenuItemNames.select])),e.rowReorderable&&(t.length&&(t=t.concat([g.GridContextMenuItemNames.separator])),t=t.concat([g.GridContextMenuItemNames.reorderRow])),t},J=(e,t)=>{if(!(!e&&!t))return t?e?{...e,...t,select:{...e.select||{},...t.select||{}},hierarchy:{...e.hierarchy||{},...t.hierarchy||{}},group:{...e.group||{},...t.group||{}},edit:{...e.edit||{},...t.edit||{}}}:t:e},P=e=>{var n;return typeof e=="object"?(n=e.enabled)!=null?n:!0:e!=null?e:!1},X=()=>q.ServerFragment===G.ClientFragment,Y=e=>!!(e&&e.$$typeof===Symbol.for("react.client.reference")),Z=e=>({id:e.id,ariaColumnIndex:e.ariaColumnIndex,isSelected:e.isSelected,isInEdit:e.isInEdit,isSorted:e.isSorted,isAlt:e.isAlt,expanded:e.expanded,className:e.className,style:e.style,field:e.field,dataItem:e.dataItem,format:e.format,colSpan:e.colSpan,dataIndex:e.dataIndex,columnIndex:e.columnIndex,columnsCount:e.columnsCount,rowType:e.rowType,level:e.level,editor:e.editor,render:e.render,locked:e.locked,isRtl:e.isRtl,rowDataIndex:e.rowDataIndex,columnPosition:e.columnPosition,group:e.group}),ee=e=>{var i,l;const t=typeof e=="object"?(i=e.enabled)!=null?i:!0:e!=null?e:!1,n=typeof e=="object"?(l=e.valueGetter)!=null?l:(d,r)=>S.getter(r)(d):(d,r)=>S.getter(r)(d);return{enabled:t,valueGetter:n}},T=e=>{var t;return M.isValidElement(e)?e:(t=M.Children.toArray(e))==null?void 0:t[0]},te=(e,t)=>{const n=T(e);return n?M.cloneElement(n,t):null};exports.autoGenerateColumns=H;exports.clientColumn=R;exports.cloneReactElement=te;exports.firefox=W;exports.firefoxMaxHeight=K;exports.flatData=b;exports.footerColumns=$;exports.getClientCellProps=Z;exports.getColSpan=B;exports.getColumnState=A;exports.getColumnWidth=z;exports.getColumnsState=O;exports.getDataAsArray=D;exports.getDefaultBodyContextMenuItems=U;exports.getDefaultHeadContextMenuItems=Q;exports.getFlatColumnsState=L;exports.getNestedValue=v;exports.getReactElement=T;exports.getRowSpanOptions=ee;exports.isClient=X;exports.isClientReference=Y;exports.isRowReorderEnabled=P;exports.isSorted=V;exports.mapColumns=F;exports.readColumns=N;exports.resolveCells=J;exports.sanitizeColumns=E;