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