@progress/kendo-react-data-tools
Version:
Includes React Pager & React Filter component, an intuitive interface to create complex filter descriptions. KendoReact Data Tools package
9 lines (8 loc) • 1.38 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"});function k(b){const{enabled:S,columns:l=[],tableViewPortWidth:w,scrollLeft:g,getColSpan:m,dataItem:C}=b,h=l.map(()=>1),i=l.map(()=>!1);if(!S)return{colSpans:h,hiddenColumns:i};const n=l.map(e=>parseFloat((e.width||"").toString())||10);let o=0;for(let e=0;e<l.length;e++){if(l[e].locked)continue;let f=1;if(m!==void 0){let c=m(l[e],C);c>2?f=c-1:c===2&&(f=c)}const O=e<n.length-1?n[e+1]*f:0;if(o+n[e]+O<g)i[e]=!0,o+=n[e];else break}const y=n.reduce((e,f)=>e+f,0);o=0;for(let e=l.length-1;e>=0;e--)if(!l[e].locked)if(o+2*n[e]<y-w-g)i[e]=!0,o+=n[e];else break;const t=[...i],r=e=>e;let s=t.lastIndexOf(!1),p=t.some(r),u=t.every(r),a,d;for(;p&&t.length&&(s!==-1||u);){for(s<t.length-1&&(a=u?t.length:t.length-s-1,d=t.length-a,d===0&&(d=a-1),i[d]=!1,h[d]=a,t.splice(s+1,a));t.length&&!t[t.length-1];)t.pop();s=t.lastIndexOf(!1),p=t.some(r),u=t.every(r)}return{colSpans:h,hiddenColumns:i}}exports.tableColumnsVirtualization=k;