UNPKG

@progress/kendo-vue-grid

Version:
59 lines (58 loc) 2 kB
/** * @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 };