UNPKG

@progress/kendo-react-grid

Version:

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

10 lines (9 loc) 2.2 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 client"; "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react"),g=require("./GridColumnMenuItem.js"),j=require("./GridColumnMenuItemGroup.js"),C=require("../sortCommon.js"),y=require("@progress/kendo-react-intl"),c=require("../messages/index.js"),S=require("@progress/kendo-svg-icons");function R(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const l=R(O),M="asc",I="desc",D=(e,n)=>n?n.findIndex(t=>t.field===e):-1,b=(e,n)=>!!(n&&e>-1&&n[e].dir===M),k=(e,n)=>!!(n&&e>-1&&n[e].dir===I),_=(e,n)=>{const t=D(e,n);return k(t,n)||b(t,n)},z=e=>{const n=o=>{r(o,M),e.onCloseMenu&&e.onCloseMenu()},t=o=>{r(o,I),e.onCloseMenu&&e.onCloseMenu()},r=(o,q)=>{if(o.preventDefault(),!e.onSortChange)return;const{allowUnsort:A,mode:v}=C.normalizeSortable(e.sortable||!1,!1),d=(e.sort||[]).filter(i=>i.field===e.column.field)[0],m=C.sortSeqMap[A][d&&d.dir||""][q],f=v==="single"?[]:(e.sort||[]).filter(i=>i.field!==e.column.field);m!==""&&e.column.field&&f.push({field:e.column.field,dir:m}),e.onSortChange(f,o)},{sort:s,column:G}=e,u=D(G.field,s),a=y.useLocalization();return l.createElement(j.GridColumnMenuItemGroup,null,l.createElement(g.GridColumnMenuItem,{title:a.toLanguageString(c.sortAscending,c.messages[c.sortAscending]),iconClass:"k-i-sort-asc-sm",svgIcon:S.sortAscSmallIcon,selected:b(u,s),onClick:n}),l.createElement(g.GridColumnMenuItem,{title:a.toLanguageString(c.sortDescending,c.messages[c.sortDescending]),iconClass:"k-i-sort-desc-sm",svgIcon:S.sortDescSmallIcon,selected:k(u,s),onClick:t}))};exports.GridColumnMenuSort=z;exports.isColumnMenuSortActive=_;