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