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