@progress/kendo-react-grid
Version:
React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package
39 lines (38 loc) • 1.34 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
*-------------------------------------------------------------------------------------------
*/
function k(s) {
const { cellModels: l, columns: o = [], tableViewPortWidth: u, scrollLeft: c } = s;
let n = 0, t = l.length - 1, i = 0, d = 0;
for (let e = 0; e < l.length; e++)
if (!o[l[e].columnIndex].locked && (i = d, d += l[e].width || 10, d >= c)) {
n = e;
break;
}
for (let e = n; e < l.length; e++)
if (!o[l[e].columnIndex].locked)
if (i < u + c)
i += l[e].width || 10, t = e;
else
break;
n > 0 && n--, t < l.length - 1 && t++;
let r = 0, f = 0;
for (let e = 0; e < n; e++)
o[l[e].columnIndex].locked || (r += l[e].colSpan);
for (let e = t + 1; e < l.length; e++)
o[l[e].columnIndex].locked || (f += l[e].colSpan);
l[n].colSpan += r, l[t].colSpan += f;
const a = l.slice(0, n).filter((e) => o[e.columnIndex].locked), h = l.slice(t + 1).filter((e) => o[e.columnIndex].locked);
return [
...a,
...l.slice(n, t + 1),
...h
];
}
export {
k as getVirtualCellsToRender
};