UNPKG

@progress/kendo-vue-grid

Version:
9 lines (8 loc) 7.55 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("@progress/kendo-vue-data-tools"),I=require("@progress/kendo-vue-common"),D=require("../GridColumn.js"),y="string";function v(e,t){const n=e.split(".");let i=t;return n.forEach(a=>{i=i?i[a]:void 0}),i}function R(e,t,n,i,a,s,r,o,d,h,p=0,f){let c=p;for(let g=0;g<t.length;g++){let l;if(!a||t[g].value===void 0||t[g].items===void 0){const C=d?!!(s!=null&&s[I.getter(d)(t[g])]):!1;e[e.length]={dataIndex:i.index,dataItem:t[g],rowType:"data",level:p,group:f,expanded:h!==void 0?v(h,t[g]):C!=null?C:!1},i.index++;continue}else{let C;f!=null&&f.parents?C=[{field:f.field,value:f.value},...f.parents]:f?C=[f]:C=[],l={field:t[g].field,value:t[g].value,parents:C}}c=Math.max(c,p+1);let x=!1;const u=w.findGroupExpand(r||[],l);h?x=h===void 0||v(h,t[g])===void 0||v(h,t[g]):x=u?u.expanded!==!1:o!==!1,e[e.length]={dataIndex:-1,dataItem:t[g],level:p,group:l,rowType:"groupHeader",expanded:x},x&&(l.expanded=x,c=Math.max(R(e,t[g].items,n,i,a,s,r,o,d,h,p+1,l),c)),(n==="always"||x&&n==="visible")&&(e[e.length]={dataIndex:-1,dataItem:t[g],rowType:"groupFooter",level:p,expanded:x})}return c}function O(e){return e&&getComputedStyle(e).direction==="rtl"||!1}function N(e,t){if(!t||!e||!e.originalEvent||!I.canUseDOM)return-1;let n=document.elementFromPoint(e.clientX,e.originalEvent.clientY);for(;n&&n.parentElement!==t;)n=n.parentElement;const i=t.children;for(let a=0;a<i.length;a++)if(i[a]===n)return a;return-1}const A=["sortChange","filterChange","groupChange","pageChange","expandChange","selectionChange","headerSelectionChange","rowClick","itemChange","dataStateChange","columnResize","columnReorder"],H=(e,t)=>`The ${e} event handler property is deprecated, use https://www.telerik.com/kendo-vue-ui/components/grid/api/GridProps/#toc-${t} instead`;function L(e){for(let t=0;t<A.length;t++){const n=A[t];if(e[n]!==void 0){const i="on"+n.charAt(0).toUpperCase()+n.slice(1);console.warn(H(n,i))}}}function V(e,t){const n=[[]];let i=0;for(let r=e.length-1;r>=0;r--)i=Math.max(i,e[r].depth),e[r].headerColSpan=e[r].headerColSpan||1,e[r].children.length>0&&(e[r].headerColSpan=e[r].children.reduce((o,d)=>d.hidden?o:o+d.headerColSpan,0));const a=[];let s=1;return e.forEach((r,o)=>{n[r.depth]=n[r.depth]||[];let d=!1;n[r.depth].length===0&&(s<=1?s=1+(r.children.length>0?0:i-r.depth):(s--,d=!0)),r.rowSpan=1+(r.children.length>0?0:i-r.depth),r.kFirst=d,r.index=n[r.depth].length,r.ariaColumnIndex=a[r.depth]?a[r.depth]+1:1;let h=0;const p=[],f=new Set;let c=r.parentIndex;for(;c>=0&&!f.has(c);)f.add(c),p.unshift(c),c=e[c].parentIndex;for(let l=0;l<p.length;l++){const x=p[l],u=e[x],C=n[u.depth],E=C.indexOf(x);for(let S=0;S<E;S++){const m=C[S];h+=e[m].headerColSpan}}for(let l=0;l<r.depth;l++){const x=n[l]||[];for(const u of x){const C=e[u];C.depth+C.rowSpan-1>=r.depth&&(p.includes(u)||(h+=C.headerColSpan))}}const g=n[r.depth];for(const l of g){const x=e[l];x.parentIndex===r.parentIndex&&(h+=x.headerColSpan)}r.virtualColumnOffset=h,n[r.depth].push(o);for(let l=r.depth;l<r.depth+r.rowSpan;l++)a[l]=(a[l]||0)+r.headerColSpan}),w.updateLeft(n,e,t),w.updateRight(n,e,t),n}function M(e,t,n,i=0,a=!1){const s=[];if(!e)return[];e&&e.length===void 0&&(e=[e]),e.forEach((o,d)=>{o=o;const h=o.id?o.id:w.tableKeyboardNavigationTools.generateNavigatableId(`${n.prevId++}`,n.idPrefix,"column"),p=I.canUseDOM&&o.media&&window.matchMedia?!window.matchMedia(o.media).matches:!1,f=a||p||o.hidden,c=t==null?void 0:t.find(l=>l.id===h),g=M(o.children,(c==null?void 0:c.children)||[],n,i+1,f);s.push({depth:i,...D.gridDefaultProps,...g.length?{cell:()=>null,filterCell:()=>null}:{},...o,id:h,declarationIndex:s.length,children:g,headerColSpan:0,rowSpan:0,columnType:o.columnType||"data",colSpan:o.colSpan||1,isAccessible:!0,hidden:f,left:null,right:null,rowSpannable:o.rowSpannable,...c?{width:c.width,orderIndex:c.orderIndex}:{}})});const r=(o,d)=>o.orderIndex===d.orderIndex?o.declarationIndex-d.declarationIndex:(o.orderIndex||0)-(d.orderIndex||0);if(s.sort(r),i===0){const o=[],d=(h,p)=>h.forEach(f=>{f.parentIndex=p,d(f.children,o.push(f)-1)});return d(s,-1),o}return s}const T=e=>Array.isArray(e)?e:e?e.data:[];function j(e,t,n,i){const a=T(e),s=[];if(a.length>0){let r=a[0];if(t)for(let d=0;d<t.length;d++)r=r.items&&r.items[0];Object.getOwnPropertyNames(r).forEach(d=>{d!==n.column&&s.push({id:w.tableKeyboardNavigationTools.generateNavigatableId(`${i.prevId++}`,i.idPrefix,"column"),declarationIndex:-1,parentIndex:-1,depth:0,colSpan:0,headerColSpan:0,rowSpan:0,index:0,columnType:"data",left:0,right:0,rightBorder:!1,children:[],ariaColumnIndex:0,isAccessible:!0,...D.gridDefaultProps,field:d})})}return s}const K=(e,t)=>{let n=e[t.parentIndex];for(;n;){if(n.footerCell)return!0;n=e[n.parentIndex]}return!1},P=e=>e.filter(t=>K(e,t)?!1:!!t.footerCell||!(t.children&&t.children.length>0)),$={number:function(e,t,n){return typeof e===y&&e.toLowerCase()==="null"?null:t.parseNumber(e,n)},date:function(e,t,n){return typeof e===y&&e.toLowerCase()==="null"?null:t.parseDate(e,n)},boolean:function(e){return typeof e===y?e.toLowerCase()==="null"?null:e.toLowerCase()==="true":e!=null?!!e:e},string:function(e){return typeof e===y&&e.toLowerCase()==="null"?null:e!=null?e+"":e},default:function(e){return e}};function F(e,t,n,i){return e.forEach(a=>{a.expanded=t[i]&&!t[i].includes(b(a,n)),a.items&&a.items.length&&(a.items=F(a.items,t,n,i+1))}),e}function z(e,t,n){return t&&t.length&&e.data.forEach(i=>{i.expanded=i.expanded!==void 0?i.expanded:t[0]&&!t[0].includes(b(i,n)),i.items&&i.items.length&&(i.items=F(i.items,t,n,1))}),e}function b(e,t){let n=e;for(;n.items&&n.items.length;)n=n.items[0];return t?n[t]:e.value}const B=e=>{const t=[],n=i=>i==null?void 0:i.forEach(a=>{t.push(a),n(a.children)});return n(e),t},U=typeof window!="undefined"&&/Firefox/.test(window.navigator.userAgent),q=17895697,W=e=>e.width!==void 0?Math.floor(parseFloat(e.width.toString()))+"px":void 0,X=(e,t)=>t&&t.filter(n=>n.field===e).length>0,k=e=>(e.sort((t,n)=>t.declarationIndex-n.declarationIndex),e.map(t=>{const{declarationIndex:n,parentIndex:i,depth:a,headerColSpan:s,rowSpan:r,index:o,kFirst:d,children:h,...p}=t;return h.length?{children:k(h),...p}:p})),Y=(e,t)=>typeof e.colSpan=="function"?e.colSpan({dataItem:t,column:e}):e.colSpan||1,J=e=>{var i,a;const t=typeof e=="object"?(i=e.enabled)!=null?i:!0:e!=null?e:!1,n=typeof e=="object"?(a=e.valueGetter)!=null?a:(s,r)=>I.getter(r)(s):(s,r)=>I.getter(r)(s);return{enabled:t,valueGetter:n}},Q=e=>{let t=0;if(e){const n=e.insertRow(0),i=n.insertCell(0);i.textContent="&nbsp;",t=n.getBoundingClientRect().height,e.deleteRow(0)}return t};exports.applyExpandedState=z;exports.autoGenerateColumns=j;exports.calcRowHeight=Q;exports.checkPropCompatibility=L;exports.firefox=U;exports.firefoxMaxHeight=q;exports.flatData=R;exports.footerColumns=P;exports.getColSpan=Y;exports.getColumnWidth=W;exports.getDataAsArray=T;exports.getFlatColumnsState=B;exports.getIndex=N;exports.getNestedValue=v;exports.getRowSpanOptions=J;exports.groupedFirstItemValue=b;exports.isRtl=O;exports.isSorted=X;exports.mapColumns=V;exports.parsers=$;exports.readColumns=M;exports.sanitizeColumns=k;