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.14 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 V=require("react"),_=require("./GridHeaderCell.js"),s=require("@progress/kendo-react-common"),$=require("@progress/kendo-react-data-tools"),h=require("../messages/index.js"),G=require("@progress/kendo-svg-icons"),d=require("../utils/index.js"),N=require("./client/GridHeaderCellContainer.js"),B=require("./client/HeaderRowDraggable.js"),F=require("./client/GridHeaderRowContainer.js"),J=require("./client/GridHeaderCellElementContainer.js"),K=require("./client/HeaderCellResizer.js");function Q(e){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const o=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(i,a,o.get?o:{enumerable:!0,get:()=>e[a]})}}return i.default=e,Object.freeze(i)}const t=Q(V),U={none:"none",asc:"ascending",desc:"descending"},X=e=>{const i=e.columnsState||[],a=e.unstyled,o=a&&a.uGrid?a.uGrid:s.uGrid;let P=0,w=-1;const O=r=>{if(!e.sort)return null;const n=s.classNames(o.sortIcon({}));return r>=0&&[t.createElement("span",{key:1,className:n},t.createElement(s.IconWrap,{name:"sort-"+e.sort[r].dir+"-small",icon:e.sort[r].dir==="asc"?G.sortAscSmallIcon:G.sortDescSmallIcon})),e.sort.length>1&&t.createElement("span",{key:2,className:n},t.createElement("span",{className:s.classNames(o.sortOrder({}))},r+1))]},D=r=>r.map(n=>{var M,q,v;const l=e.columns[n],u=i[n],m=(q=(M=l.locked)!=null?M:u==null?void 0:u.locked)!=null?q:!1,k=e.sortable&&l.sortable,C=e.sort?e.sort.findIndex(c=>c.field===l.field):-1,T=C>=0&&e.sort[C].dir||"none",f=l.columnMenu===null?null:l.columnMenu||e.columnMenu,j=l.menuIcon||e.columnMenuIcon,A=s.classNames(s.classNames(o.headerTh({first:l.kFirst,filterable:!!f,locked:m,sorted:e.sort&&e.sort.some(c=>c.field===l.field)})),l.headerClassName);m===!1&&(l.left=0);const L=e.localization.toLanguageString(h.sortAriaLabel,h.messages[h.sortAriaLabel]),z=l.isAccessible?{ariaSort:U[T],role:"columnheader",ariaColumnIndex:l.ariaColumnIndex,ariaSelected:!1,ariaDescription:k?L:"",ariaHasPopup:f?"dialog":void 0}:{role:"presentation"},E=l.declarationIndex>=0?++w:--P,b={field:l.field,title:l.title,selectionValue:(v=l.headerSelectionValue)!=null?v:e.headerSelectionValue,children:O(C),selectionChange:null,columnMenuWrapperProps:{column:{field:l.field,title:l.title,locked:m,filter:l.filter,id:l.id},sortable:k&&e.sortable,sort:e.sort,filter:e.filter,filterable:e.filterable&&l.filterable,filterOperators:e.filterOperators,navigatable:e.navigatable,group:e.group,groupable:e.groupable,columnMenu:f,columnMenuIcon:j}},g={...z,colSpan:l.headerColSpan,rowSpan:l.rowSpan,className:A,columnId:l.id,navigatable:l.navigatable,role:"columnheader"},H=d.clientColumn(l),R={column:H,sortable:e.sortable,sort:e.sort,columnMenuWrapperProps:b.columnMenuWrapperProps},y=l.defaultHeaderCell?l.defaultHeaderCell:_.GridHeaderCell,I=[t.createElement(N.GridHeaderCellContainer,{key:1,...R,isClient:d.isClientReference(y)},t.createElement(y,{...b})),t.createElement(K.HeaderCellResizer,{key:2,column:H})],S=d.resolveCells(e.cells,l.cells);if(S&&S.headerCell){const c=S.headerCell,W=d.isClientReference(c);return t.createElement(N.GridHeaderCellContainer,{key:E,...R,thProps:g,isCustom:!0,isClient:W},t.createElement(c,{...b,thProps:g,index:n},I))}return t.createElement(J.GridHeaderCellElementContainer,{key:E,column:H},t.createElement($.HeaderThElement,{...g},I))}),x=e.columns.map(d.clientColumn);return t.createElement(F.GridHeaderRowContainer,{sortable:e.sortable,sort:e.sort,navigatable:e.navigatable,groupable:e.groupable,columns:x},e.columnsMap.map((r,n)=>t.createElement(B.HeaderRowDraggable,{key:n,className:s.classNames(o.simpleTr({})),ariaRowIndex:n+1},D(r))))};exports.HeaderRow=X;