UNPKG

@progress/kendo-react-grid

Version:

React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package

9 lines (8 loc) 4.47 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 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 P=require("../filterCommon.js"),g=require("../interfaces/GridAICommands.js");function S(a,e,t){var h,o,r,p;const i={...e},l=[];let f=!1;return(h=a==null?void 0:a.data)!=null&&h.commands&&a.data.commands.forEach(s=>{switch(s.type){case g.GridAICommands.GridSort:s.sort&&(i.sort=n(s.sort,e.sort)),s.message&&l.push(s.message);break;case g.GridAICommands.GridClearSort:i.sort=[],s.message&&l.push(s.message);break;case g.GridAICommands.GridFilter:s.filter&&(i.filter=G(s.filter,e.filter)),s.message&&l.push(s.message);break;case g.GridAICommands.GridClearFilter:i.filter=void 0,s.message&&l.push(s.message);break;case g.GridAICommands.GridGroup:s.group&&(i.group=k(s.group,e.group)),s.message&&l.push(s.message);break;case g.GridAICommands.GridClearGroup:i.group=[],s.message&&l.push(s.message);break;case g.GridAICommands.GridHighlight:s.highlight&&t&&(i.highlight=[s.highlight]),s.message&&l.push(s.message);break;case g.GridAICommands.GridClearHighlight:i.highlight=[],s.message&&l.push(s.message);break;case g.GridAICommands.GridSelect:s.select&&t&&(i.select=[s.select]),s.message&&l.push(s.message);break;case g.GridAICommands.GridClearSelect:i.select=[],s.message&&l.push(s.message);break;case g.GridAICommands.GridColumnHide:s.id&&e.columnsState&&(i.columnsState=C(s.id,!0,e.columnsState)),s.message&&l.push(s.message);break;case g.GridAICommands.GridColumnShow:s.id&&e.columnsState&&(i.columnsState=C(s.id,!1,e.columnsState)),s.message&&l.push(s.message);break;case g.GridAICommands.GridColumnResize:s.id&&s.size&&e.columnsState&&(i.columnsState=A(s.id,s.size,e.columnsState)),s.message&&l.push(s.message);break;case g.GridAICommands.GridColumnReorder:s.id&&s.position!==void 0&&e.columnsState&&(i.columnsState=I(s.id,s.position,e.columnsState)),s.message&&l.push(s.message);break;case g.GridAICommands.GridColumnLock:s.id&&e.columnsState&&(i.columnsState=u(s.id,!0,e.columnsState)),s.message&&l.push(s.message);break;case g.GridAICommands.GridColumnUnlock:s.id&&e.columnsState&&(i.columnsState=u(s.id,!1,e.columnsState)),s.message&&l.push(s.message);break;case g.GridAICommands.GridPage:if(s.page!==void 0&&t){const d=b(t,s.page,e.skip,e.take);i.skip=d.skip,i.take=d.take}s.message&&l.push(s.message);break;case g.GridAICommands.GridPageSize:if(s.pageSize!==void 0&&t){const d=v(s.pageSize,e.skip,e.take);i.skip=d.skip,i.take=d.take}s.message&&l.push(s.message);break;case g.GridAICommands.GridExportPDF:f=!0,s.message&&l.push(s.message);break}}),!((r=(o=a==null?void 0:a.data)==null?void 0:o.commands)!=null&&r.length)&&((p=a==null?void 0:a.data)!=null&&p.message)&&l.push(a.data.message),{state:i,messages:l,shouldExportPdf:f}}const n=(a,e)=>{const t=Array.isArray(a)?a:[a];if(t.length===0)return[];const l=(e!=null?e:[]).filter(f=>!t.some(h=>h.field===f.field));return l.push(...t),l},G=(a,e)=>a?P.combineSmartFilters({logic:a.logic?a.logic:"and",filters:a.filters},e)||void 0:e,k=(a,e)=>{if(!a)return e!=null?e:[];const t=Array.isArray(a)?a:[a];if(t.length===0)return[];const l=(e!=null?e:[]).filter(f=>!t.some(h=>h.field===f.field));return l.push(...t),l},C=(a,e,t)=>t.map(i=>i.id===a?{...i,hidden:e}:i),A=(a,e,t)=>t.map(i=>i.id===a?{...i,width:parseFloat(e)}:i),I=(a,e,t)=>{if(!t.find(o=>o.id===a))return t;const l=[...t],f=l.findIndex(o=>o.id===a),[h]=l.splice(f,1);return l.splice(e,0,h),l.map((o,r)=>({...o,orderIndex:r}))},u=(a,e,t)=>t.map(i=>i.id===a?{...i,locked:e}:i),b=(a,e,t=0,i=10)=>{const l=a.getLeafDataItems().length,f=Math.max(1,Math.floor(e)),h=a.getTotal(),o=Math.floor(i!=null?i:l),r=Math.floor((f-1)*o);return r<h?{skip:r,take:o}:{skip:t,take:o}},v=(a,e=0,t=10)=>{const i=Math.max(1,Math.floor(a)),l=t!=null?t:0,f=Math.floor(e/l);let h=0;return l>0&&(h=Math.max(0,f*i)),{skip:h,take:i}};exports.handleAIResponse=S;exports.handleColumnLock=u;exports.handleColumnReorder=I;exports.handleColumnResize=A;exports.handleColumnVisibility=C;exports.handleFilterCommand=G;exports.handleGroupCommand=k;exports.handlePageChange=b;exports.handlePageSizeChange=v;exports.handleSortCommand=n;