@progress/kendo-vue-data-tools
Version:
9 lines (8 loc) • 1.29 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 y(m){const{enabled:p,columns:l=[],tableViewPortWidth:b,scrollLeft:u}=m,h=l.map(()=>1),i=l.map(()=>!1);if(!p)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;const f=e<n.length-1?n[e+1]:0;if(o+n[e]+f<u)i[e]=!0,o+=n[e];else break}const w=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]<w-b-u)i[e]=!0,o+=n[e];else break;const t=[...i],r=e=>e;let s=t.lastIndexOf(!1),g=t.some(r),c=t.every(r),d,a;for(;g&&t.length&&(s!==-1||c);){for(s<t.length-1&&(d=c?t.length:t.length-s-1,a=t.length-d,a===0&&(a=d-1),i[a]=!1,h[a]=d,t.splice(s+1,d));t.length&&!t[t.length-1];)t.pop();s=t.lastIndexOf(!1),g=t.some(r),c=t.every(r)}return{colSpans:h,hiddenColumns:i}}exports.tableColumnsVirtualization=y;