@progress/kendo-vue-grid
Version:
59 lines (58 loc) • 2 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
function m(u) {
const { cellsToRender: n, columns: c, rowIndex: f, enableVirtualization: s } = u;
if (!s || f !== 0 || !n || n.length === 0)
return { columnsToRender: [], colSpans: [] };
const t = [], o = [];
let i = -1, d = -1;
for (let l = 0; l < n.length; l++)
c[n[l].columnIndex].locked || (i === -1 && (i = l), d = l);
return n.forEach((l, r) => {
if (t.push(l.columnIndex), r === i)
o.push(l.colSpan);
else if (r === d)
o.push(l.colSpan);
else {
const a = c[l.columnIndex];
o.push(a.headerColSpan || 1);
}
}), { columnsToRender: t, colSpans: o };
}
function p(u) {
const { cellModels: n, columns: c = [], tableViewPortWidth: f, scrollLeft: s } = u;
let t = 0, o = n.length - 1, i = 0, d = 0;
for (let e = 0; e < n.length; e++)
if (!c[n[e].columnIndex].locked && (i = d, d += n[e].width || 10, d >= s)) {
t = e;
break;
}
for (let e = t; e < n.length; e++)
if (!c[n[e].columnIndex].locked)
if (i < f + s)
i += n[e].width || 10, o = e;
else
break;
t > 0 && t--, o < n.length - 1 && o++;
let l = 0, r = 0;
for (let e = 0; e < t; e++)
c[n[e].columnIndex].locked || (l += n[e].colSpan);
for (let e = o + 1; e < n.length; e++)
c[n[e].columnIndex].locked || (r += n[e].colSpan);
n[t].colSpan += l, n[o].colSpan += r;
const a = n.slice(0, t).filter((e) => c[e.columnIndex].locked), h = n.slice(o + 1).filter((e) => c[e.columnIndex].locked);
return [
...a,
...n.slice(t, o + 1),
...h
];
}
export {
p as getVirtualCellsToRender,
m as getVirtualHeaderCellsToRender
};