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) 3.12 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("@progress/kendo-react-inputs"),j=require("@progress/kendo-react-common"),q=require("@progress/kendo-svg-icons"),b=require("@progress/kendo-react-buttons"),M=require("@progress/kendo-react-intl"),r=require("../messages/index.js");function w(s){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const c in s)if(c!=="default"){const u=Object.getOwnPropertyDescriptor(s,c);Object.defineProperty(n,c,u.get?u:{enumerable:!0,get:()=>s[c]})}}return n.default=s,Object.freeze(n)}const t=w(O),S=s=>{const{columnsState:n,onCloseMenu:c,onColumnsStateChange:u}=s,f=M.useLocalization(),[m,E]=t.useState(""),h=n.reduce((e,l)=>({...e,[l.id||""]:!l.hidden}),{}),[o,C]=t.useState(h),y=t.useMemo(()=>(n==null?void 0:n.filter(e=>{var l;return(l=e.title||e.field)==null?void 0:l.toLowerCase().includes(m.toLowerCase())}))||[],[n,m]),d=t.useMemo(()=>Object.values(o).filter(e=>e).length,[o]),k=t.useMemo(()=>d===(n==null?void 0:n.length),[n,d]),N=t.useCallback(e=>{const a=(i=>(i==null?void 0:i.map(p=>({...p,hidden:!o[p.id||""]})))||[])(n);u&&u(a),c==null||c.call(void 0)},[o,n,c]),v=()=>{C(h)},B=t.useCallback(()=>{const e={...o};Object.keys(e).forEach((l,a)=>e[l]=k&&a===0?!0:!k),C(e)},[o,k]),R=t.useCallback((e,l)=>{const a={...o};a[l||""]=e,C(a)},[o]),x=e=>{E(String(e.target.value))};return t.createElement("form",{className:"k-filter-menu"},t.createElement("div",{className:"k-filter-menu-container"},t.createElement(g.TextBox,{className:"k-searchbox",value:m,onChange:x,prefix:()=>t.createElement(g.InputPrefix,null,t.createElement(j.IconWrap,{name:"search",icon:q.searchIcon}))}),t.createElement("ul",{className:"k-reset k-multicheck-wrap"},!m&&t.createElement("li",{className:"k-item k-check-all-wrap"},t.createElement(g.Checkbox,{checked:k,onChange:B,label:f.toLanguageString(r.filterSelectAll,r.messages[r.filterSelectAll])})),y.map((e,l)=>t.createElement("li",{key:e.id,className:"k-item"},t.createElement(g.Checkbox,{disabled:o[e.id||""]&&d===1,checked:o[e.id||""],onChange:a=>{var i;return R(!!((i=a.target.element)!=null&&i.checked),e.id)},label:e.title||e.field})))),t.createElement("div",{className:"k-filter-selected-items"},d," selected items"),t.createElement("div",{className:"k-actions k-actions-start k-actions-horizontal"},t.createElement(b.Button,{type:"button",themeColor:"primary",onClick:N},f.toLanguageString(r.filterApplyButton,r.messages[r.filterApplyButton])),t.createElement(b.Button,{type:"button",onClick:v},f.toLanguageString(r.filterResetButton,r.messages[r.filterResetButton])))))};S.displayName="GridColumnMenuColumnsChooser";exports.GridColumnMenuColumnsChooser=S;