react-open-source-grid 1.7.15 → 1.7.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -37,7 +37,7 @@ use chrome, FireFox or Internet Explorer 11`)}var a=e(`safe-buffer`),o=e(`random
|
|
|
37
37
|
`,n.NAME_START_CHAR=`:A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-`,n.NAME_CHAR=`-`+n.NAME_START_CHAR+`.0-9·̀-ͯ‿-⁀`,n.CHAR_RE=RegExp(`^[`+n.CHAR+`]$`,`u`),n.S_RE=RegExp(`^[`+n.S+`]+$`,`u`),n.NAME_START_CHAR_RE=RegExp(`^[`+n.NAME_START_CHAR+`]$`,`u`),n.NAME_CHAR_RE=RegExp(`^[`+n.NAME_CHAR+`]$`,`u`),n.NAME_RE=RegExp(`^[`+n.NAME_START_CHAR+`][`+n.NAME_CHAR+`]*$`,`u`),n.NMTOKEN_RE=RegExp(`^[`+n.NAME_CHAR+`]+$`,`u`);function r(e){return e>=65&&e<=90||e>=97&&e<=122||e===58||e===95||e===8204||e===8205||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}n.S_LIST=[32,10,13,9],n.isChar=function(e){return e>=32&&e<=55295||e===10||e===13||e===9||e>=57344&&e<=65533||e>=65536&&e<=1114111},n.isS=function(e){return e===32||e===10||e===13||e===9},n.isNameStartChar=r,n.isNameChar=function(e){return r(e)||e>=48&&e<=57||e===45||e===46||e===183||e>=768&&e<=879||e>=8255&&e<=8256}},{}],544:[function(e,t,n){Object.defineProperty(n,`__esModule`,{value:!0}),n.CHAR=`--�𐀀-`,n.RESTRICTED_CHAR=`-\b\v\f---`,n.S=` \r
|
|
38
38
|
`,n.NAME_START_CHAR=`:A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-`,n.NAME_CHAR=`-`+n.NAME_START_CHAR+`.0-9·̀-ͯ‿-⁀`,n.CHAR_RE=RegExp(`^[`+n.CHAR+`]$`,`u`),n.RESTRICTED_CHAR_RE=RegExp(`^[`+n.RESTRICTED_CHAR+`]$`,`u`),n.S_RE=RegExp(`^[`+n.S+`]+$`,`u`),n.NAME_START_CHAR_RE=RegExp(`^[`+n.NAME_START_CHAR+`]$`,`u`),n.NAME_CHAR_RE=RegExp(`^[`+n.NAME_CHAR+`]$`,`u`),n.NAME_RE=RegExp(`^[`+n.NAME_START_CHAR+`][`+n.NAME_CHAR+`]*$`,`u`),n.NMTOKEN_RE=RegExp(`^[`+n.NAME_CHAR+`]+$`,`u`);function r(e){return e>=65&&e<=90||e>=97&&e<=122||e===58||e===95||e===8204||e===8205||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}n.S_LIST=[32,10,13,9],n.isChar=function(e){return e>=1&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111},n.isRestrictedChar=function(e){return e>=1&&e<=8||e===11||e===12||e>=14&&e<=31||e>=127&&e<=132||e>=134&&e<=159},n.isCharAndNotRestricted=function(e){return e===9||e===10||e===13||e>31&&e<127||e===133||e>159&&e<=55295||e>=57344&&e<=65533||e>=65536&&e<=1114111},n.isS=function(e){return e===32||e===10||e===13||e===9},n.isNameStartChar=r,n.isNameChar=function(e){return r(e)||e>=48&&e<=57||e===45||e===46||e===183||e>=768&&e<=879||e>=8255&&e<=8256}},{}],545:[function(e,t,n){function r(e){return e>=65&&e<=90||e===95||e>=97&&e<=122||e>=192&&e<=214||e>=216&&e<=246||e>=248&&e<=767||e>=880&&e<=893||e>=895&&e<=8191||e>=8204&&e<=8205||e>=8304&&e<=8591||e>=11264&&e<=12271||e>=12289&&e<=55295||e>=63744&&e<=64975||e>=65008&&e<=65533||e>=65536&&e<=983039}Object.defineProperty(n,`__esModule`,{value:!0}),n.NC_NAME_START_CHAR=`A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-`,n.NC_NAME_CHAR=`-`+n.NC_NAME_START_CHAR+`.0-9·̀-ͯ‿-⁀`,n.NC_NAME_START_CHAR_RE=RegExp(`^[`+n.NC_NAME_START_CHAR+`]$`,`u`),n.NC_NAME_CHAR_RE=RegExp(`^[`+n.NC_NAME_CHAR+`]$`,`u`),n.NC_NAME_RE=RegExp(`^[`+n.NC_NAME_START_CHAR+`][`+n.NC_NAME_CHAR+`]*$`,`u`),n.isNCNameStartChar=r,n.isNCNameChar=function(e){return r(e)||e===45||e===46||e>=48&&e<=57||e===183||e>=768&&e<=879||e>=8255&&e<=8256}},{}]},{},[15])(15)}))}))(),1);const Un=(e,t,n=`export.csv`)=>{let r=t.map(e=>e.headerName),i=e.map(e=>t.map(t=>{let n=e[t.field];if(n==null)return``;let r=String(n);return r.includes(`,`)||r.includes(`
|
|
39
39
|
`)||r.includes(`"`)?`"${r.replace(/"/g,`""`)}"`:r}).join(`,`)),a=[r.join(`,`),...i].join(`
|
|
40
|
-
`);Kn(new Blob([a],{type:`text/csv;charset=utf-8;`}),n)},Wn=async(e,t,n={})=>{let{filename:r=`export.xlsx`,styling:i=`basic`}=n,a=new Hn.default.Workbook,o=a.addWorksheet(`Sheet1`),s=t.map(e=>e.headerName);o.addRow(s),e.forEach(e=>{let n=t.map(t=>e[t.field]??``);o.addRow(n)}),o.columns=t.map(t=>{let n=t.headerName.length,r=Math.max(...e.map(e=>String(e[t.field]??``).length)),i=Math.max(n,r)+2;return{width:Math.min(i,50)}}),i===`professional`&&Gn(o,t);let c=await a.xlsx.writeBuffer();Kn(new Blob([c],{type:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`}),r)};var Gn=(e,t)=>{let n=e.getRow(1);n.font={bold:!0,color:{argb:`FFFFFFFF`},size:11},n.fill={type:`pattern`,pattern:`solid`,fgColor:{argb:`FF2F5496`}},n.alignment={horizontal:`center`,vertical:`middle`,wrapText:!0},n.height=20,e.eachRow((e,t)=>{e.eachCell(e=>{e.border={top:{style:`thin`,color:{argb:`FFD3D3D3`}},left:{style:`thin`,color:{argb:`FFD3D3D3`}},bottom:{style:`thin`,color:{argb:`FFD3D3D3`}},right:{style:`thin`,color:{argb:`FFD3D3D3`}}},t>1&&t%2==0&&(e.fill={type:`pattern`,pattern:`solid`,fgColor:{argb:`FFF2F2F2`}}),t>1&&(e.alignment={horizontal:`left`,vertical:`middle`})})}),e.views=[{state:`frozen`,ySplit:1}]},Kn=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)};const qn=(e,t)=>{let n=new Date().toISOString().replace(/[:.]/g,`-`).slice(0,-5);return`data_export_${t===`all`?`full`:t}_${n}.${e}`},Jn=async(e,t,n)=>{if(e.length===0){alert(`No data to export`);return}let r=n.filename||qn(n.format,n.scope);n.format===`csv`?Un(e,t,r):n.format===`xlsx`&&await Wn(e,t,{filename:r,styling:n.styling})},Yn=({columns:e,fullDataset:t,filteredData:n,selectedRows:r,currentPageData:i,onExport:a})=>{let[o,s]=(0,b.useState)(!1),[c,l]=(0,b.useState)(`csv`),[u,d]=(0,b.useState)(`filtered`),[f,p]=(0,b.useState)(`basic`),[m,h]=(0,b.useState)(null),g=b.useRef(null),_=()=>{switch(u){case`all`:return t;case`filtered`:return n;case`selected`:return r.size>0?n.filter(e=>r.has(e.id)):[];case`page`:return i;default:return n}},v=()=>{let t=_();if(t.length===0){alert(`No ${u===`selected`?`selected`:u} data to export`);return}Jn(t,e,{format:c,scope:u,styling:c===`xlsx`?f:void 0}),a?.(!0),s(!1)},y=[{value:`all`,label:`Full Dataset`,disabled:!1},{value:`filtered`,label:`Filtered Data`,disabled:n.length===0},{value:`selected`,label:`Selected Rows (${r.size})`,disabled:r.size===0},{value:`page`,label:`Current Page`,disabled:i.length===0}];return(0,Y.jsxs)(`div`,{style:{position:`relative`},children:[(0,Y.jsxs)(`button`,{ref:g,onClick:()=>{if(!o){let e=g.current?.getBoundingClientRect();e&&h(e)}s(!o)},style:{padding:`8px 12px`,backgroundColor:`#2563eb`,color:`white`,borderRadius:`6px`,border:`none`,fontSize:`14px`,fontWeight:`500`,display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,transition:`background-color 0.2s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#1d4ed8`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`#2563eb`},title:`Export data to CSV or XLSX format`,children:[(0,Y.jsx)(`svg`,{style:{width:`16px`,height:`16px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M12 19l9 2-9-18-9 18 9-2m0 0v-8m0 8l-6-4m6 4l6-4`})}),`Export`]}),o&&m&&(0,Y.jsxs)(`div`,{style:{position:`fixed`,left:`${m.left}px`,top:`${m.bottom+8}px`,backgroundColor:`#ffffff`,border:`1px solid #e5e7eb`,borderRadius:`8px`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.05)`,zIndex:50,padding:`20px`,width:`420px`,minWidth:`420px`,maxWidth:`420px`,maxHeight:`90vh`,overflowY:`auto`},children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Format`}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`16px`},children:[(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`radio`,name:`format`,value:`csv`,checked:c===`csv`,onChange:e=>l(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`CSV`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`radio`,name:`format`,value:`xlsx`,checked:c===`xlsx`,onChange:e=>l(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`XLSX (Excel)`})]})]})]}),(0,Y.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Data Scope`}),(0,Y.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`10px`},children:y.map(e=>(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`10px`,padding:`10px 12px`,borderRadius:`6px`,cursor:e.disabled?`not-allowed`:`pointer`,opacity:e.disabled?.5:1,backgroundColor:`transparent`,transition:`background-color 0.15s`,userSelect:`none`},onMouseEnter:t=>{e.disabled||(t.currentTarget.style.backgroundColor=`#f3f4f6`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},children:[(0,Y.jsx)(`input`,{type:`radio`,name:`scope`,value:e.value,checked:u===e.value,onChange:e=>d(e.target.value),disabled:e.disabled,style:{width:`16px`,height:`16px`,cursor:e.disabled?`not-allowed`:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:e.label})]},e.value))})]}),c===`xlsx`&&(0,Y.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Styling`}),(0,Y.jsx)(`div`,{style:{marginBottom:`10px`},children:(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`16px`},children:[(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`radio`,name:`styling`,value:`basic`,checked:f===`basic`,onChange:e=>p(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`Basic`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`radio`,name:`styling`,value:`professional`,checked:f===`professional`,onChange:e=>p(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`Professional`})]})]})}),(0,Y.jsx)(`p`,{style:{fontSize:`12px`,color:`#6b7280`,margin:`0`},children:`Professional adds colors, borders, and frozen header row`})]}),(0,Y.jsxs)(`div`,{style:{backgroundColor:`#f3f4f6`,borderRadius:`6px`,padding:`12px`,marginBottom:`20px`,fontSize:`13px`,color:`#4b5563`},children:[(0,Y.jsxs)(`p`,{style:{margin:`6px 0`},children:[(0,Y.jsx)(`strong`,{children:`Data to export:`}),` `,_().length,` row(s)`]}),(0,Y.jsxs)(`p`,{style:{margin:`6px 0`},children:[(0,Y.jsx)(`strong`,{children:`Columns:`}),` `,e.length]})]}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`10px`,justifyContent:`flex-end`},children:[(0,Y.jsx)(`button`,{onClick:()=>s(!1),style:{padding:`10px 16px`,border:`1px solid #d1d5db`,color:`#374151`,backgroundColor:`#ffffff`,borderRadius:`6px`,fontSize:`14px`,fontWeight:`500`,cursor:`pointer`,transition:`background-color 0.2s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#f9fafb`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`#ffffff`},children:`Cancel`}),(0,Y.jsx)(`button`,{onClick:v,disabled:_().length===0,style:{padding:`10px 16px`,backgroundColor:_().length===0?`#9ca3af`:`#2563eb`,color:`#ffffff`,borderRadius:`6px`,border:`none`,fontSize:`14px`,fontWeight:`500`,cursor:_().length===0?`not-allowed`:`pointer`,opacity:_().length===0?.6:1,transition:`background-color 0.2s`},onMouseEnter:e=>{_().length>0&&(e.currentTarget.style.backgroundColor=`#1d4ed8`)},onMouseLeave:e=>{_().length>0&&(e.currentTarget.style.backgroundColor=`#2563eb`)},children:`Export Now`})]})]}),o&&(0,Y.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:40},onClick:()=>s(!1)})]})};var Xn=e=>{if(e.filterType)return e.filterType===`multi`?`set`:e.filterType;let t=e.field.toLowerCase();return t.includes(`date`)||t.includes(`time`)?`date`:t.includes(`salary`)||t.includes(`price`)||t.includes(`amount`)||t.includes(`count`)?`number`:t.includes(`status`)||t.includes(`department`)||t.includes(`category`)?`set`:`text`},Zn=e=>{switch(e){case`text`:return[{value:`contains`,label:`Contains`},{value:`notContains`,label:`Not Contains`},{value:`equals`,label:`Equals`},{value:`notEquals`,label:`Not Equals`},{value:`startsWith`,label:`Starts With`},{value:`endsWith`,label:`Ends With`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`number`:return[{value:`equals`,label:`Equals`},{value:`notEquals`,label:`Not Equals`},{value:`greaterThan`,label:`Greater Than`},{value:`greaterThanOrEqual`,label:`Greater Than or Equal`},{value:`lessThan`,label:`Less Than`},{value:`lessThanOrEqual`,label:`Less Than or Equal`},{value:`inRange`,label:`In Range`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`date`:return[{value:`equals`,label:`Equals`},{value:`before`,label:`Before`},{value:`after`,label:`After`},{value:`inRange`,label:`In Range`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`set`:return[{value:`in`,label:`In`},{value:`notIn`,label:`Not In`}];default:return[]}},Qn=e=>![`isEmpty`,`isNotEmpty`].includes(e),$n=e=>e===`inRange`,er=e=>[`in`,`notIn`].includes(e);const tr=({column:e,filterValue:t,onApply:n,onClose:r,rows:i,anchorEl:a})=>{let o=Xn(e),s=Zn(o),c=t?.conditions||[{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}],[l,u]=(0,b.useState)(t?.operator||`AND`),[d,f]=(0,b.useState)(c),[p,m]=(0,b.useState)({}),h=o===`set`?Array.from(new Set(i.map(t=>t[e.field]).filter(e=>e!=null))):[],g=()=>{f([...d,{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}])},_=e=>{if(d.length>1){f(d.filter((t,n)=>n!==e));let t={...p};delete t[e],m(t)}},v=(e,t)=>{f(d.map((n,r)=>r===e?{...n,...t}:n))},y=(e,t)=>{m({...p,[e]:t})},x=()=>{let e=d.filter(e=>Qn(e.type)?er(e.type)?e.values&&e.values.length>0:$n(e.type)?e.value!=null&&e.value!==``&&e.value2!=null&&e.value2!==``:e.value!=null&&e.value!==``:!0);e.length===0?n(null):n({operator:l,conditions:e}),r()},S=()=>{f([{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}]),m({}),n(null)},C=()=>{f([{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}]),u(`AND`),m({})},w=(e,t)=>{if(er(e.type)){let n=new Set(e.values||[]),r=p[t]?.searchTerm||``,i=h.filter(e=>String(e).toLowerCase().includes(r.toLowerCase())),a=e=>{let r=new Set(n);r.has(e)?r.delete(e):r.add(e),v(t,{values:Array.from(r)})};return(0,Y.jsxs)(`div`,{style:{marginTop:`8px`},children:[(0,Y.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`,marginBottom:`8px`},value:r,onChange:e=>y(t,{searchTerm:e.target.value}),placeholder:`Search values...`}),(0,Y.jsxs)(`div`,{style:{maxHeight:`150px`,overflowY:`auto`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,padding:`4px`},children:[(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,cursor:`pointer`,padding:`4px 6px`,fontSize:`var(--grid-font-size-sm, 12px)`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:n.size===i.length&&i.length>0,onChange:()=>{n.size===i.length?v(t,{values:[]}):v(t,{values:i})},style:{width:`14px`,height:`14px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontWeight:500,color:`var(--grid-text)`},children:`(Select All)`})]}),i.map((e,t)=>(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,cursor:`pointer`,padding:`4px 6px`,fontSize:`var(--grid-font-size-sm, 12px)`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:n.has(e),onChange:()=>a(e),style:{width:`14px`,height:`14px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{color:`var(--grid-text)`},children:String(e)})]},t))]}),n.size>0&&(0,Y.jsxs)(`div`,{style:{marginTop:`6px`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-primary)`,fontWeight:500},children:[n.size,` selected`]})]})}return Qn(e.type)?$n(e.type)?(0,Y.jsxs)(`div`,{style:{marginTop:`8px`,display:`flex`,gap:`8px`,alignItems:`center`},children:[(0,Y.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{flex:1,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value||``,onChange:e=>v(t,{value:e.target.value}),placeholder:`From`}),(0,Y.jsx)(`span`,{style:{color:`var(--grid-text-secondary)`,fontSize:`var(--grid-font-size-sm, 12px)`},children:`to`}),(0,Y.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{flex:1,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value2||``,onChange:e=>v(t,{value2:e.target.value}),placeholder:`To`})]}):(0,Y.jsx)(`div`,{style:{marginTop:`8px`},children:(0,Y.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value||``,onChange:e=>v(t,{value:e.target.value}),placeholder:`Enter ${o}...`})}):null};return(0,Y.jsxs)(`div`,{style:{position:`fixed`,top:a?a.getBoundingClientRect().bottom+5:0,left:a?a.getBoundingClientRect().left:0,minWidth:`380px`,maxWidth:`450px`,maxHeight:`600px`,backgroundColor:`var(--grid-bg)`,boxShadow:`0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 10px 10px -5px rgba(0, 0, 0, 0.1)`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1001,display:`flex`,flexDirection:`column`,overflowY:`auto`},onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`16px`,paddingBottom:`12px`,borderBottom:`1px solid var(--grid-border)`},children:[(0,Y.jsxs)(`h4`,{style:{margin:0,fontSize:`var(--grid-font-size, 14px)`,fontWeight:600,color:`var(--grid-text)`},children:[`Advanced Filter: `,e.headerName]}),(0,Y.jsx)(`p`,{style:{margin:`4px 0 0 0`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-text-secondary)`},children:`Add multiple conditions with AND/OR logic`})]}),d.length>1&&(0,Y.jsxs)(`div`,{style:{marginBottom:`16px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`6px`},children:`Combine Conditions`}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[(0,Y.jsx)(`button`,{style:{flex:1,padding:`6px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:l===`AND`?`var(--grid-text-inverse)`:`var(--grid-text)`,backgroundColor:l===`AND`?`var(--grid-primary)`:`var(--grid-bg-alt)`,border:l===`AND`?`none`:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:()=>u(`AND`),children:`AND`}),(0,Y.jsx)(`button`,{style:{flex:1,padding:`6px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:l===`OR`?`var(--grid-text-inverse)`:`var(--grid-text)`,backgroundColor:l===`OR`?`var(--grid-primary)`:`var(--grid-bg-alt)`,border:l===`OR`?`none`:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:()=>u(`OR`),children:`OR`})]})]}),(0,Y.jsx)(`div`,{style:{flex:1,overflowY:`auto`,marginBottom:`12px`},children:d.map((e,t)=>(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`,padding:`12px`,backgroundColor:`var(--grid-bg-alt)`,borderRadius:`var(--grid-border-radius, 6px)`,border:`1px solid var(--grid-border)`},children:[(0,Y.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:`8px`},children:[(0,Y.jsxs)(`label`,{style:{fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`},children:[`Condition `,t+1]}),d.length>1&&(0,Y.jsx)(`button`,{style:{padding:`2px 8px`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-danger, #dc2626)`,backgroundColor:`transparent`,border:`none`,cursor:`pointer`,borderRadius:`var(--grid-border-radius, 4px)`},onClick:()=>_(t),onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-danger-bg, rgba(220, 38, 38, 0.1))`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Remove condition`,children:`✕`})]}),(0,Y.jsx)(`select`,{style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.type,onChange:e=>v(t,{type:e.target.value,value:``,value2:``,values:[]}),children:s.map(e=>(0,Y.jsx)(`option`,{value:e.value,children:e.label},e.value))}),w(e,t),t<d.length-1&&d.length>1&&(0,Y.jsx)(`div`,{style:{marginTop:`12px`,padding:`4px 8px`,textAlign:`center`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:600,color:`var(--grid-primary)`,backgroundColor:`var(--grid-primary-bg)`,borderRadius:`var(--grid-border-radius, 4px)`},children:l})]},t))}),(0,Y.jsx)(`button`,{style:{width:`100%`,padding:`8px 12px`,marginBottom:`12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-primary)`,backgroundColor:`var(--grid-primary-bg)`,border:`1px dashed var(--grid-primary)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:g,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover-bg)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-bg)`,children:`+ Add Condition`}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,paddingTop:`12px`,borderTop:`1px solid var(--grid-border)`},children:[(0,Y.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:C,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Reset`}),(0,Y.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:S,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Y.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:x,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})};var nr=e=>e!=null&&`operator`in e&&`conditions`in e,rr=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=nr(e)?null:e,s=o?.type||`contains`,c=o?.value||``,[l,u]=(0,b.useState)(s),[d,f]=(0,b.useState)(c);return(0,Y.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow-medium, 0 10px 15px -3px rgba(0, 0, 0, 0.1))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Y.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:l,onChange:e=>u(e.target.value),children:[(0,Y.jsx)(`option`,{value:`contains`,children:`Contains`}),(0,Y.jsx)(`option`,{value:`notContains`,children:`Not Contains`}),(0,Y.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Y.jsx)(`option`,{value:`startsWith`,children:`Starts With`}),(0,Y.jsx)(`option`,{value:`endsWith`,children:`Ends With`})]})]}),(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Value`}),(0,Y.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`8px 12px`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:d,onChange:e=>f(e.target.value),placeholder:`Enter text...`,autoFocus:!0})]}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{f(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{t(d?{type:l,value:d}:null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},ir=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=nr(e)?null:e,s=o?.type||`equals`,c=o?.value||``,l=o?.value2||``,[u,d]=(0,b.useState)(s),[f,p]=(0,b.useState)(c),[m,h]=(0,b.useState)(l);return(0,Y.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Y.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:u,onChange:e=>d(e.target.value),children:[(0,Y.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Y.jsx)(`option`,{value:`notEquals`,children:`Not Equals`}),(0,Y.jsx)(`option`,{value:`greaterThan`,children:`Greater Than`}),(0,Y.jsx)(`option`,{value:`greaterThanOrEqual`,children:`Greater Than or Equal`}),(0,Y.jsx)(`option`,{value:`lessThan`,children:`Less Than`}),(0,Y.jsx)(`option`,{value:`lessThanOrEqual`,children:`Less Than or Equal`}),(0,Y.jsx)(`option`,{value:`inRange`,children:`In Range`})]})]}),(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Value`}),(0,Y.jsx)(`input`,{type:`number`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),placeholder:`Enter number...`,autoFocus:!0})]}),u===`inRange`&&(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`To`}),(0,Y.jsx)(`input`,{type:`number`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:m,onChange:e=>h(e.target.value),placeholder:`Enter max value...`})]}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{p(``),h(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{if(f){let e={type:u,value:parseFloat(f)};u===`inRange`&&m&&(e.value2=parseFloat(m)),t(e)}else t(null);n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},ar=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=nr(e)?null:e,s=o?.type||`equals`,c=o?.value||``,l=o?.value2||``,[u,d]=(0,b.useState)(s),[f,p]=(0,b.useState)(c),[m,h]=(0,b.useState)(l);return(0,Y.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Y.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:u,onChange:e=>d(e.target.value),children:[(0,Y.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Y.jsx)(`option`,{value:`before`,children:`Before`}),(0,Y.jsx)(`option`,{value:`after`,children:`After`}),(0,Y.jsx)(`option`,{value:`inRange`,children:`In Range`})]})]}),(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Date`}),(0,Y.jsx)(`input`,{type:`date`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),autoFocus:!0})]}),u===`inRange`&&(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`To`}),(0,Y.jsx)(`input`,{type:`date`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:m,onChange:e=>h(e.target.value)})]}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{p(``),h(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{if(f){let e={type:u,value:f};u===`inRange`&&m&&(e.value2=m),t(e)}else t(null);n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},or=({column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a,showAdvancedButton:o,onSwitchToAdvanced:s})=>{let c=Array.from(new Set(i.map(t=>t[e.field]).filter(e=>e!=null))),l=nr(t)?null:t,[u,d]=(0,b.useState)(l&&l.values?new Set(l.values):new Set),[f,p]=(0,b.useState)(``),m=c.filter(e=>String(e).toLowerCase().includes(f.toLowerCase())),h=e=>{let t=new Set(u);t.has(e)?t.delete(e):t.add(e),d(t)};return(0,Y.jsxs)(`div`,{style:{position:`fixed`,top:a?a.getBoundingClientRect().bottom+5:0,left:a?a.getBoundingClientRect().left:0,minWidth:`280px`,maxHeight:`400px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3,display:`flex`,flexDirection:`column`},onClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(`div`,{style:{marginBottom:`12px`},children:(0,Y.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),placeholder:`Search values...`,autoFocus:!0})}),(0,Y.jsx)(`div`,{style:{marginBottom:`8px`},children:(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,padding:`8px`,borderRadius:`4px`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:u.size===m.length&&m.length>0,onChange:()=>{u.size===m.length?d(new Set):d(new Set(m))},style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`},children:`(Select All)`})]})}),(0,Y.jsx)(`div`,{style:{flex:1,overflowY:`auto`,marginBottom:`12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,maxHeight:`200px`},children:m.map((e,t)=>(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,padding:`8px`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:u.has(e),onChange:()=>h(e),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`},children:String(e)})]},t))}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`,paddingTop:`8px`,borderTop:`1px solid var(--grid-border)`},children:[(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{d(new Set),n(null),r()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Y.jsxs)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{u.size>0?n({type:`set`,values:Array.from(u)}):n(null),r()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:[`Apply (`,u.size,`)`]})]})]})},sr=({column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a})=>(0,Y.jsx)(or,{column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a});const cr=({columns:e,displayColumnOrder:t,columnWidths:n,filterConfig:r,dispatch:i,pinnedLeft:a,pinnedRight:o,rows:s})=>{let[c,l]=(0,b.useState)(null),[u,d]=(0,b.useState)({}),[f,p]=(0,b.useState)(null),m=new Set(a),h=new Set(o),g={},_=0;a.forEach(e=>{g[e]=_,_+=n[e]||150});let v={},y=0;[...o].reverse().forEach(e=>{v[e]=y,y+=n[e]||150});let x=new Map(e.map(e=>[e.field,e])),S=e=>{let t={width:`${n[e]||150}px`};return m.has(e)?(t.position=`sticky`,t.left=`${g[e]}px`,t.zIndex=20,t.backgroundColor=`var(--grid-header-bg)`):h.has(e)&&(t.position=`sticky`,t.right=`${v[e]}px`,t.zIndex=20,t.backgroundColor=`var(--grid-header-bg)`),t},C=e=>{if(e.filterType)return e.filterType;let t=e.field.toLowerCase();return t.includes(`date`)||t.includes(`time`)?`date`:t.includes(`salary`)||t.includes(`price`)||t.includes(`amount`)||t.includes(`count`)?`number`:t.includes(`status`)||t.includes(`department`)||t.includes(`category`)?`set`:`text`},w=(e,t)=>{t.stopPropagation();let n=r[e];nr(n)||t.shiftKey?(d({...u,[e]:t.currentTarget}),p(e),l(null)):(d({...u,[e]:t.currentTarget}),l(e),p(null))},T=()=>{l(null),p(null)},E=(e,t)=>{i({type:`SET_FILTER`,payload:{field:e,value:t}})},D=e=>{l(null),p(e)};(0,b.useEffect)(()=>{let e=()=>{c&&l(null)};if(c)return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[c]);let O=e=>{let t=C(e),n={column:e,filterValue:r[e.field],onApplyFilter:t=>E(e.field,t),onClose:T,rows:s,anchorEl:u[e.field],showAdvancedButton:!0,onSwitchToAdvanced:()=>D(e.field)};switch(t){case`number`:return(0,Y.jsx)(ir,{...n});case`date`:return(0,Y.jsx)(ar,{...n});case`set`:return(0,Y.jsx)(or,{...n});case`multi`:return(0,Y.jsx)(sr,{...n});default:return(0,Y.jsx)(rr,{...n})}},k=e=>{let t=r[e.field],n=u[e.field];return(0,Y.jsx)(tr,{column:e,filterValue:nr(t)?t:null,onApply:t=>E(e.field,t),onClose:T,rows:s,anchorEl:n})},A=e=>{let t=r[e];if(!t)return``;if(nr(t)){let e=t.conditions.length;return`${e} condition${e>1?`s`:``} (${t.operator})`}return t.type===`set`&&t.values?`${t.values.length} selected`:t.type===`inRange`?`${t.value} - ${t.value2}`:String(t.value||``)},j=e=>!!r[e];return(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(`div`,{style:{display:`flex`,minWidth:`100%`,borderBottom:`1px solid var(--grid-border)`,backgroundColor:`var(--grid-header-bg)`},children:t.map(e=>{let t=x.get(e);if(!t||t.filterable===!1)return(0,Y.jsx)(`div`,{style:{...S(e),borderRight:`1px solid var(--grid-border)`,flexShrink:0,minHeight:`38px`}},e);let n=j(e);return(0,Y.jsxs)(`div`,{style:{...S(e),borderRight:`1px solid var(--grid-border)`,flexShrink:0,padding:`6px 8px`,position:`relative`,display:`flex`,alignItems:`center`},children:[(0,Y.jsx)(`div`,{style:{width:`100%`,cursor:`pointer`},onClick:t=>w(e,t),title:`Click to filter, Shift+Click for advanced filter`,children:(0,Y.jsxs)(`div`,{style:{width:`100%`,padding:`4px 8px`,fontSize:`var(--grid-font-size-sm, 12px)`,border:`1px solid`,borderColor:n?`var(--grid-primary)`:`var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,backgroundColor:n?`var(--grid-primary-bg)`:`var(--grid-bg)`,color:n?`var(--grid-primary)`:`var(--grid-text-secondary)`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`6px`,transition:`border-color 0.15s`},onMouseEnter:e=>{n||(e.currentTarget.style.borderColor=`var(--grid-border-hover)`)},onMouseLeave:e=>{n||(e.currentTarget.style.borderColor=`var(--grid-border)`)},children:[(0,Y.jsx)(`span`,{style:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:n?A(e):`Filter...`}),(0,Y.jsx)(`svg`,{style:{flexShrink:0,color:n?`var(--grid-primary)`:`var(--grid-text-muted)`},width:`12`,height:`12`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,strokeWidth:`2.5`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 4h18v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V20l-4-2v-3.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z`})})]})}),c===e&&O(t),f===e&&k(t)]},e)})})})},lr=({manager:e,currentLayout:t,onLoadPreset:n,onResetLayout:r})=>{let[i,a]=(0,b.useState)([]),[o,s]=(0,b.useState)(!1),[c,l]=(0,b.useState)(!1),[u,d]=(0,b.useState)(``),[f,p]=(0,b.useState)(``),[m,h]=(0,b.useState)(!1),[g,_]=(0,b.useState)(null),v=(0,b.useCallback)(async()=>{try{h(!0),a((await e.listPresets()).filter(e=>e.id!==`__autosave__`)),_(null)}catch(e){_(`Failed to load presets`),console.error(e)}finally{h(!1)}},[e]);(0,b.useEffect)(()=>{v()},[v]);let y=async()=>{if(!u.trim()){_(`Please enter a preset name`);return}try{h(!0);let{createPreset:n}=await w(async()=>{let{createPreset:e}=await import(`./layoutPersistence-DVnlRvDW.js`);return{createPreset:e}},[]),r=n(u.trim(),t,f.trim());await e.savePreset(r),await v(),l(!1),d(``),p(``),_(null)}catch(e){_(`Failed to save preset`),console.error(e)}finally{h(!1)}},x=async t=>{try{h(!0);let r=await e.loadPreset(t);r&&(n(r.layout),s(!1),_(null))}catch(e){_(`Failed to load preset`),console.error(e)}finally{h(!1)}},S=async(t,n)=>{if(n.stopPropagation(),confirm(`Are you sure you want to delete this preset?`))try{h(!0),await e.deletePreset(t),await v(),_(null)}catch(e){_(`Failed to delete preset`),console.error(e)}finally{h(!1)}},C=async(n,r)=>{if(r.stopPropagation(),confirm(`Update this preset with current layout?`))try{h(!0);let r={...n,layout:t};await e.savePreset(r),await v(),_(null)}catch(e){_(`Failed to update preset`),console.error(e)}finally{h(!1)}},T=e=>new Date(e).toLocaleString();return(0,Y.jsxs)(`div`,{className:`relative inline-block`,children:[(0,Y.jsxs)(`button`,{onClick:()=>s(!o),style:{padding:`6px 12px`,fontSize:`14px`,backgroundColor:`white`,border:`1px solid #d1d5db`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,gap:`8px`},disabled:m,children:[(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 7h16M4 12h16M4 17h16`})}),`Layout Presets`,(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0,transform:o?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 0.2s`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 9l-7 7-7-7`})})]}),o&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:10},onClick:()=>s(!1)}),(0,Y.jsxs)(`div`,{style:{position:`absolute`,right:0,marginTop:`8px`,width:`320px`,backgroundColor:`white`,border:`1px solid #d1d5db`,borderRadius:`8px`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1)`,zIndex:20,maxHeight:`384px`,overflowY:`auto`},children:[(0,Y.jsx)(`div`,{style:{padding:`12px`,borderBottom:`1px solid #e5e7eb`,backgroundColor:`#f9fafb`},children:(0,Y.jsx)(`h3`,{style:{fontWeight:`600`,fontSize:`14px`,color:`#111827`},children:`Layout Presets`})}),g&&(0,Y.jsx)(`div`,{style:{padding:`12px`,backgroundColor:`#fef2f2`,borderBottom:`1px solid #fecaca`},children:(0,Y.jsx)(`p`,{style:{fontSize:`14px`,color:`#dc2626`},children:g})}),(0,Y.jsxs)(`div`,{style:{padding:`8px`,borderBottom:`1px solid #e5e7eb`,display:`flex`,gap:`8px`},children:[(0,Y.jsxs)(`button`,{onClick:()=>{l(!0),s(!1)},style:{flex:1,padding:`8px 12px`,fontSize:`14px`,backgroundColor:`#2563eb`,color:`white`,border:`none`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`8px`},children:[(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4`})}),`Save Current`]}),(0,Y.jsxs)(`button`,{onClick:()=>{r(),s(!1)},style:{flex:1,padding:`8px 12px`,fontSize:`14px`,backgroundColor:`#4b5563`,color:`white`,border:`none`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`8px`},children:[(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15`})}),`Reset`]})]}),(0,Y.jsx)(`div`,{style:{maxHeight:`256px`,overflowY:`auto`},children:m&&i.length===0?(0,Y.jsx)(`div`,{style:{padding:`16px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`Loading presets...`}):i.length===0?(0,Y.jsx)(`div`,{style:{padding:`16px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`No saved presets. Save your current layout to get started.`}):(0,Y.jsx)(`div`,{children:i.map(e=>(0,Y.jsx)(`div`,{style:{padding:`12px`,cursor:`pointer`,borderBottom:`1px solid #e5e7eb`},onClick:()=>x(e.id),onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#f9fafb`;let t=e.currentTarget.querySelector(`.preset-actions`);t&&(t.style.opacity=`1`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`;let t=e.currentTarget.querySelector(`.preset-actions`);t&&(t.style.opacity=`0`)},children:(0,Y.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,justifyContent:`space-between`},children:[(0,Y.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,Y.jsx)(`h4`,{style:{fontSize:`14px`,fontWeight:`500`,color:`#111827`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name}),e.description&&(0,Y.jsx)(`p`,{style:{fontSize:`12px`,color:`#6b7280`,marginTop:`4px`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.description}),(0,Y.jsxs)(`p`,{style:{fontSize:`12px`,color:`#9ca3af`,marginTop:`4px`},children:[`Updated: `,T(e.updatedAt)]})]}),(0,Y.jsxs)(`div`,{className:`preset-actions`,style:{display:`flex`,gap:`4px`,marginLeft:`8px`,opacity:0,transition:`opacity 0.2s`},children:[(0,Y.jsx)(`button`,{onClick:t=>C(e,t),style:{padding:`4px`,color:`#2563eb`,backgroundColor:`transparent`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#eff6ff`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Update with current layout`,children:(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15`})})}),(0,Y.jsx)(`button`,{onClick:t=>S(e.id,t),style:{padding:`4px`,color:`#dc2626`,backgroundColor:`transparent`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#fef2f2`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Delete preset`,children:(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16`})})})]})]})},e.id))})})]})]}),c&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{style:{position:`fixed`,inset:0,backgroundColor:`rgba(0, 0, 0, 0.5)`,zIndex:30,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>l(!1)}),(0,Y.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:40,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`16px`},children:(0,Y.jsxs)(`div`,{style:{backgroundColor:`white`,borderRadius:`8px`,boxShadow:`0 25px 50px -12px rgba(0, 0, 0, 0.25)`,maxWidth:`448px`,width:`100%`,padding:`24px`},onClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(`h2`,{style:{fontSize:`20px`,fontWeight:`600`,marginBottom:`16px`},children:`Save Layout Preset`}),g&&(0,Y.jsx)(`div`,{style:{marginBottom:`16px`,padding:`12px`,backgroundColor:`#fef2f2`,border:`1px solid #fecaca`,borderRadius:`4px`},children:(0,Y.jsx)(`p`,{style:{fontSize:`14px`,color:`#dc2626`},children:g})}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`16px`},children:[(0,Y.jsx)(`label`,{htmlFor:`preset-name`,style:{display:`block`,fontSize:`14px`,fontWeight:`500`,color:`#374151`,marginBottom:`4px`},children:`Preset Name *`}),(0,Y.jsx)(`input`,{id:`preset-name`,type:`text`,value:u,onChange:e=>d(e.target.value),style:{width:`100%`,padding:`8px 12px`,border:`1px solid #d1d5db`,borderRadius:`4px`,fontSize:`14px`},placeholder:`e.g., Sales Dashboard Layout`,autoFocus:!0})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`label`,{htmlFor:`preset-description`,style:{display:`block`,fontSize:`14px`,fontWeight:`500`,color:`#374151`,marginBottom:`4px`},children:`Description (optional)`}),(0,Y.jsx)(`textarea`,{id:`preset-description`,value:f,onChange:e=>p(e.target.value),style:{width:`100%`,padding:`8px 12px`,border:`1px solid #d1d5db`,borderRadius:`4px`,fontSize:`14px`},placeholder:`Add a description...`,rows:3})]})]}),(0,Y.jsxs)(`div`,{style:{marginTop:`24px`,display:`flex`,gap:`12px`,justifyContent:`flex-end`},children:[(0,Y.jsx)(`button`,{onClick:()=>{l(!1),d(``),p(``),_(null)},style:{padding:`8px 16px`,fontSize:`14px`,color:`#374151`,backgroundColor:`#f3f4f6`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#e5e7eb`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`#f3f4f6`,disabled:m,children:`Cancel`}),(0,Y.jsx)(`button`,{onClick:y,style:{padding:`8px 16px`,fontSize:`14px`,color:`white`,backgroundColor:`#2563eb`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#1d4ed8`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`#2563eb`,disabled:m,children:m?`Saving...`:`Save Preset`})]})]})})]})]})},ur=({x:e,y:t,items:n,onClose:r})=>{let i=(0,b.useRef)(null),[a,o]=b.useState(null);(0,b.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&r()},t=e=>{i.current&&!i.current.contains(e.target)&&(e.preventDefault(),r())},n=setTimeout(()=>{document.addEventListener(`mousedown`,e),document.addEventListener(`contextmenu`,t)},100);return()=>{clearTimeout(n),document.removeEventListener(`mousedown`,e),document.removeEventListener(`contextmenu`,t)}},[r]),(0,b.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[r]),(0,b.useEffect)(()=>{if(i.current){let n=i.current,r=n.getBoundingClientRect(),a=window.innerWidth,o=window.innerHeight,s=e,c=t;r.right>a&&(s=a-r.width-10),r.bottom>o&&(c=o-r.height-10),(s!==e||c!==t)&&(n.style.left=`${s}px`,n.style.top=`${c}px`)}},[e,t]);let s=(0,b.useCallback)(e=>{if(!e.disabled){if(e.submenu){o(a===e.id?null:e.id||null);return}e.onClick&&e.onClick(),r()}},[r,a]),c=(e,t)=>e.type===`separator`?(0,Y.jsx)(`div`,{className:`context-menu-separator`,role:`separator`},`separator-${t}`):(0,Y.jsxs)(`div`,{className:`context-menu-item-wrapper`,children:[(0,Y.jsxs)(`div`,{className:`context-menu-item ${e.disabled?`disabled`:``} ${e.danger?`danger`:``} ${e.submenu?`has-submenu`:``}`,onClick:()=>s(e),role:`menuitem`,"aria-disabled":e.disabled,tabIndex:e.disabled?-1:0,children:[e.icon&&(0,Y.jsx)(`span`,{className:`context-menu-icon`,children:e.icon}),(0,Y.jsx)(`span`,{className:`context-menu-label`,children:e.label}),e.shortcut&&(0,Y.jsx)(`span`,{className:`context-menu-shortcut`,children:e.shortcut}),e.submenu&&(0,Y.jsx)(`span`,{className:`context-menu-arrow`,children:`▶`})]}),e.submenu&&a===e.id&&(0,Y.jsx)(`div`,{className:`context-menu-submenu`,children:e.submenu.map((e,t)=>c(e,t))})]},e.id||t);return(0,Y.jsx)(`div`,{ref:i,className:`context-menu`,style:{left:e,top:t},role:`menu`,"aria-label":`Context menu`,children:n.map((e,t)=>c(e,t))})},dr=async(e,t,n,r=!1)=>{let i=Array.from(e),a=n.filter(e=>i.includes(e.id));if(a.length===0)return;let o=``;r&&(o+=t.map(e=>e.headerName).join(` `)+`
|
|
40
|
+
`);Kn(new Blob([a],{type:`text/csv;charset=utf-8;`}),n)},Wn=async(e,t,n={})=>{let{filename:r=`export.xlsx`,styling:i=`basic`}=n,a=new Hn.default.Workbook,o=a.addWorksheet(`Sheet1`),s=t.map(e=>e.headerName);o.addRow(s),e.forEach(e=>{let n=t.map(t=>e[t.field]??``);o.addRow(n)}),o.columns=t.map(t=>{let n=t.headerName.length,r=Math.max(...e.map(e=>String(e[t.field]??``).length)),i=Math.max(n,r)+2;return{width:Math.min(i,50)}}),i===`professional`&&Gn(o,t);let c=await a.xlsx.writeBuffer();Kn(new Blob([c],{type:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`}),r)};var Gn=(e,t)=>{let n=e.getRow(1);n.font={bold:!0,color:{argb:`FFFFFFFF`},size:11},n.fill={type:`pattern`,pattern:`solid`,fgColor:{argb:`FF2F5496`}},n.alignment={horizontal:`center`,vertical:`middle`,wrapText:!0},n.height=20,e.eachRow((e,t)=>{e.eachCell(e=>{e.border={top:{style:`thin`,color:{argb:`FFD3D3D3`}},left:{style:`thin`,color:{argb:`FFD3D3D3`}},bottom:{style:`thin`,color:{argb:`FFD3D3D3`}},right:{style:`thin`,color:{argb:`FFD3D3D3`}}},t>1&&t%2==0&&(e.fill={type:`pattern`,pattern:`solid`,fgColor:{argb:`FFF2F2F2`}}),t>1&&(e.alignment={horizontal:`left`,vertical:`middle`})})}),e.views=[{state:`frozen`,ySplit:1}]},Kn=(e,t)=>{let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)};const qn=(e,t)=>{let n=new Date().toISOString().replace(/[:.]/g,`-`).slice(0,-5);return`data_export_${t===`all`?`full`:t}_${n}.${e}`},Jn=async(e,t,n)=>{if(e.length===0){alert(`No data to export`);return}let r=n.filename||qn(n.format,n.scope);n.format===`csv`?Un(e,t,r):n.format===`xlsx`&&await Wn(e,t,{filename:r,styling:n.styling})},Yn=({columns:e,fullDataset:t,filteredData:n,selectedRows:r,currentPageData:i,onExport:a})=>{let[o,s]=(0,b.useState)(!1),[c,l]=(0,b.useState)(`csv`),[u,d]=(0,b.useState)(`filtered`),[f,p]=(0,b.useState)(`basic`),[m,h]=(0,b.useState)(null),g=b.useRef(null),_=()=>{switch(u){case`all`:return t;case`filtered`:return n;case`selected`:return r.size>0?n.filter(e=>r.has(e.id)):[];case`page`:return i;default:return n}},v=()=>{let t=_();if(t.length===0){alert(`No ${u===`selected`?`selected`:u} data to export`);return}Jn(t,e,{format:c,scope:u,styling:c===`xlsx`?f:void 0}),a?.(!0),s(!1)},y=[{value:`all`,label:`Full Dataset`,disabled:!1},{value:`filtered`,label:`Filtered Data`,disabled:n.length===0},{value:`selected`,label:`Selected Rows (${r.size})`,disabled:r.size===0},{value:`page`,label:`Current Page`,disabled:i.length===0}];return(0,Y.jsxs)(`div`,{style:{position:`relative`},children:[(0,Y.jsxs)(`button`,{ref:g,onClick:()=>{if(!o){let e=g.current?.getBoundingClientRect();e&&h(e)}s(!o)},style:{padding:`8px 12px`,backgroundColor:`#2563eb`,color:`white`,borderRadius:`6px`,border:`none`,fontSize:`14px`,fontWeight:`500`,display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,transition:`background-color 0.2s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#1d4ed8`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`#2563eb`},title:`Export data to CSV or XLSX format`,children:[(0,Y.jsx)(`svg`,{style:{width:`16px`,height:`16px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M12 19l9 2-9-18-9 18 9-2m0 0v-8m0 8l-6-4m6 4l6-4`})}),`Export`]}),o&&m&&(0,Y.jsxs)(`div`,{style:{position:`fixed`,left:`${m.left}px`,top:`${m.bottom+8}px`,backgroundColor:`#ffffff`,border:`1px solid #e5e7eb`,borderRadius:`8px`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.05)`,zIndex:50,padding:`20px`,width:`420px`,minWidth:`420px`,maxWidth:`420px`,maxHeight:`90vh`,overflowY:`auto`},children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Format`}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`16px`},children:[(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`radio`,name:`format`,value:`csv`,checked:c===`csv`,onChange:e=>l(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`CSV`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`radio`,name:`format`,value:`xlsx`,checked:c===`xlsx`,onChange:e=>l(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`XLSX (Excel)`})]})]})]}),(0,Y.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Data Scope`}),(0,Y.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`10px`},children:y.map(e=>(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`10px`,padding:`10px 12px`,borderRadius:`6px`,cursor:e.disabled?`not-allowed`:`pointer`,opacity:e.disabled?.5:1,backgroundColor:`transparent`,transition:`background-color 0.15s`,userSelect:`none`},onMouseEnter:t=>{e.disabled||(t.currentTarget.style.backgroundColor=`#f3f4f6`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`},children:[(0,Y.jsx)(`input`,{type:`radio`,name:`scope`,value:e.value,checked:u===e.value,onChange:e=>d(e.target.value),disabled:e.disabled,style:{width:`16px`,height:`16px`,cursor:e.disabled?`not-allowed`:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:e.label})]},e.value))})]}),c===`xlsx`&&(0,Y.jsxs)(`div`,{style:{marginBottom:`20px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`14px`,fontWeight:`600`,color:`#1f2937`,marginBottom:`12px`},children:`Styling`}),(0,Y.jsx)(`div`,{style:{marginBottom:`10px`},children:(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`16px`},children:[(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`radio`,name:`styling`,value:`basic`,checked:f===`basic`,onChange:e=>p(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`Basic`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`radio`,name:`styling`,value:`professional`,checked:f===`professional`,onChange:e=>p(e.target.value),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`14px`,color:`#374151`},children:`Professional`})]})]})}),(0,Y.jsx)(`p`,{style:{fontSize:`12px`,color:`#6b7280`,margin:`0`},children:`Professional adds colors, borders, and frozen header row`})]}),(0,Y.jsxs)(`div`,{style:{backgroundColor:`#f3f4f6`,borderRadius:`6px`,padding:`12px`,marginBottom:`20px`,fontSize:`13px`,color:`#4b5563`},children:[(0,Y.jsxs)(`p`,{style:{margin:`6px 0`},children:[(0,Y.jsx)(`strong`,{children:`Data to export:`}),` `,_().length,` row(s)`]}),(0,Y.jsxs)(`p`,{style:{margin:`6px 0`},children:[(0,Y.jsx)(`strong`,{children:`Columns:`}),` `,e.length]})]}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`10px`,justifyContent:`flex-end`},children:[(0,Y.jsx)(`button`,{onClick:()=>s(!1),style:{padding:`10px 16px`,border:`1px solid #d1d5db`,color:`#374151`,backgroundColor:`#ffffff`,borderRadius:`6px`,fontSize:`14px`,fontWeight:`500`,cursor:`pointer`,transition:`background-color 0.2s`},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#f9fafb`},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`#ffffff`},children:`Cancel`}),(0,Y.jsx)(`button`,{onClick:v,disabled:_().length===0,style:{padding:`10px 16px`,backgroundColor:_().length===0?`#9ca3af`:`#2563eb`,color:`#ffffff`,borderRadius:`6px`,border:`none`,fontSize:`14px`,fontWeight:`500`,cursor:_().length===0?`not-allowed`:`pointer`,opacity:_().length===0?.6:1,transition:`background-color 0.2s`},onMouseEnter:e=>{_().length>0&&(e.currentTarget.style.backgroundColor=`#1d4ed8`)},onMouseLeave:e=>{_().length>0&&(e.currentTarget.style.backgroundColor=`#2563eb`)},children:`Export Now`})]})]}),o&&(0,Y.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:40},onClick:()=>s(!1)})]})};var Xn=e=>{if(e.filterType)return e.filterType===`multi`?`set`:e.filterType;let t=e.field.toLowerCase();return t.includes(`date`)||t.includes(`time`)?`date`:t.includes(`salary`)||t.includes(`price`)||t.includes(`amount`)||t.includes(`count`)?`number`:t.includes(`status`)||t.includes(`department`)||t.includes(`category`)?`set`:`text`},Zn=e=>{switch(e){case`text`:return[{value:`contains`,label:`Contains`},{value:`notContains`,label:`Not Contains`},{value:`equals`,label:`Equals`},{value:`notEquals`,label:`Not Equals`},{value:`startsWith`,label:`Starts With`},{value:`endsWith`,label:`Ends With`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`number`:return[{value:`equals`,label:`Equals`},{value:`notEquals`,label:`Not Equals`},{value:`greaterThan`,label:`Greater Than`},{value:`greaterThanOrEqual`,label:`Greater Than or Equal`},{value:`lessThan`,label:`Less Than`},{value:`lessThanOrEqual`,label:`Less Than or Equal`},{value:`inRange`,label:`In Range`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`date`:return[{value:`equals`,label:`Equals`},{value:`before`,label:`Before`},{value:`after`,label:`After`},{value:`inRange`,label:`In Range`},{value:`isEmpty`,label:`Is Empty`},{value:`isNotEmpty`,label:`Is Not Empty`}];case`set`:return[{value:`in`,label:`In`},{value:`notIn`,label:`Not In`}];default:return[]}},Qn=e=>![`isEmpty`,`isNotEmpty`].includes(e),$n=e=>e===`inRange`,er=e=>[`in`,`notIn`].includes(e);const tr=({column:e,filterValue:t,onApply:n,onClose:r,rows:i,anchorEl:a})=>{let o=Xn(e),s=Zn(o),c=t?.conditions||[{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}],[l,u]=(0,b.useState)(t?.operator||`AND`),[d,f]=(0,b.useState)(c),[p,m]=(0,b.useState)({}),h=o===`set`?Array.from(new Set(i.map(t=>t[e.field]).filter(e=>e!=null))):[],g=()=>{f([...d,{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}])},_=e=>{if(d.length>1){f(d.filter((t,n)=>n!==e));let t={...p};delete t[e],m(t)}},v=(e,t)=>{f(d.map((n,r)=>r===e?{...n,...t}:n))},y=(e,t)=>{m({...p,[e]:t})},x=()=>{let e=d.filter(e=>Qn(e.type)?er(e.type)?e.values&&e.values.length>0:$n(e.type)?e.value!=null&&e.value!==``&&e.value2!=null&&e.value2!==``:e.value!=null&&e.value!==``:!0);e.length===0?n(null):n({operator:l,conditions:e}),r()},S=()=>{f([{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}]),m({}),n(null)},C=()=>{f([{type:s[0]?.value||`contains`,value:``,value2:``,values:[]}]),u(`AND`),m({})},w=(e,t)=>{if(er(e.type)){let n=new Set(e.values||[]),r=p[t]?.searchTerm||``,i=h.filter(e=>String(e).toLowerCase().includes(r.toLowerCase())),a=e=>{let r=new Set(n);r.has(e)?r.delete(e):r.add(e),v(t,{values:Array.from(r)})};return(0,Y.jsxs)(`div`,{style:{marginTop:`8px`},children:[(0,Y.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`,marginBottom:`8px`},value:r,onChange:e=>y(t,{searchTerm:e.target.value}),placeholder:`Search values...`}),(0,Y.jsxs)(`div`,{style:{maxHeight:`150px`,overflowY:`auto`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,padding:`4px`},children:[(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,cursor:`pointer`,padding:`4px 6px`,fontSize:`var(--grid-font-size-sm, 12px)`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:n.size===i.length&&i.length>0,onChange:()=>{n.size===i.length?v(t,{values:[]}):v(t,{values:i})},style:{width:`14px`,height:`14px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontWeight:500,color:`var(--grid-text)`},children:`(Select All)`})]}),i.map((e,t)=>(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,cursor:`pointer`,padding:`4px 6px`,fontSize:`var(--grid-font-size-sm, 12px)`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:n.has(e),onChange:()=>a(e),style:{width:`14px`,height:`14px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{color:`var(--grid-text)`},children:String(e)})]},t))]}),n.size>0&&(0,Y.jsxs)(`div`,{style:{marginTop:`6px`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-primary)`,fontWeight:500},children:[n.size,` selected`]})]})}return Qn(e.type)?$n(e.type)?(0,Y.jsxs)(`div`,{style:{marginTop:`8px`,display:`flex`,gap:`8px`,alignItems:`center`},children:[(0,Y.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{flex:1,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value||``,onChange:e=>v(t,{value:e.target.value}),placeholder:`From`}),(0,Y.jsx)(`span`,{style:{color:`var(--grid-text-secondary)`,fontSize:`var(--grid-font-size-sm, 12px)`},children:`to`}),(0,Y.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{flex:1,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value2||``,onChange:e=>v(t,{value2:e.target.value}),placeholder:`To`})]}):(0,Y.jsx)(`div`,{style:{marginTop:`8px`},children:(0,Y.jsx)(`input`,{type:o===`date`?`date`:o===`number`?`number`:`text`,style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.value||``,onChange:e=>v(t,{value:e.target.value}),placeholder:`Enter ${o}...`})}):null};return(0,Y.jsxs)(`div`,{style:{position:`fixed`,top:a?a.getBoundingClientRect().bottom+5:0,left:a?a.getBoundingClientRect().left:0,minWidth:`380px`,maxWidth:`450px`,maxHeight:`600px`,backgroundColor:`var(--grid-bg)`,boxShadow:`0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 10px 10px -5px rgba(0, 0, 0, 0.1)`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1001,display:`flex`,flexDirection:`column`,overflowY:`auto`},onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`16px`,paddingBottom:`12px`,borderBottom:`1px solid var(--grid-border)`},children:[(0,Y.jsxs)(`h4`,{style:{margin:0,fontSize:`var(--grid-font-size, 14px)`,fontWeight:600,color:`var(--grid-text)`},children:[`Advanced Filter: `,e.headerName]}),(0,Y.jsx)(`p`,{style:{margin:`4px 0 0 0`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-text-secondary)`},children:`Add multiple conditions with AND/OR logic`})]}),d.length>1&&(0,Y.jsxs)(`div`,{style:{marginBottom:`16px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`6px`},children:`Combine Conditions`}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`},children:[(0,Y.jsx)(`button`,{style:{flex:1,padding:`6px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:l===`AND`?`var(--grid-text-inverse)`:`var(--grid-text)`,backgroundColor:l===`AND`?`var(--grid-primary)`:`var(--grid-bg-alt)`,border:l===`AND`?`none`:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:()=>u(`AND`),children:`AND`}),(0,Y.jsx)(`button`,{style:{flex:1,padding:`6px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:l===`OR`?`var(--grid-text-inverse)`:`var(--grid-text)`,backgroundColor:l===`OR`?`var(--grid-primary)`:`var(--grid-bg-alt)`,border:l===`OR`?`none`:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:()=>u(`OR`),children:`OR`})]})]}),(0,Y.jsx)(`div`,{style:{flex:1,overflowY:`auto`,marginBottom:`12px`},children:d.map((e,t)=>(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`,padding:`12px`,backgroundColor:`var(--grid-bg-alt)`,borderRadius:`var(--grid-border-radius, 6px)`,border:`1px solid var(--grid-border)`},children:[(0,Y.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,marginBottom:`8px`},children:[(0,Y.jsxs)(`label`,{style:{fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`},children:[`Condition `,t+1]}),d.length>1&&(0,Y.jsx)(`button`,{style:{padding:`2px 8px`,fontSize:`var(--grid-font-size-sm, 12px)`,color:`var(--grid-danger, #dc2626)`,backgroundColor:`transparent`,border:`none`,cursor:`pointer`,borderRadius:`var(--grid-border-radius, 4px)`},onClick:()=>_(t),onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-danger-bg, rgba(220, 38, 38, 0.1))`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Remove condition`,children:`✕`})]}),(0,Y.jsx)(`select`,{style:{width:`100%`,padding:`6px 10px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,fontSize:`var(--grid-font-size-sm, 12px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:e.type,onChange:e=>v(t,{type:e.target.value,value:``,value2:``,values:[]}),children:s.map(e=>(0,Y.jsx)(`option`,{value:e.value,children:e.label},e.value))}),w(e,t),t<d.length-1&&d.length>1&&(0,Y.jsx)(`div`,{style:{marginTop:`12px`,padding:`4px 8px`,textAlign:`center`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:600,color:`var(--grid-primary)`,backgroundColor:`var(--grid-primary-bg)`,borderRadius:`var(--grid-border-radius, 4px)`},children:l})]},t))}),(0,Y.jsx)(`button`,{style:{width:`100%`,padding:`8px 12px`,marginBottom:`12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-primary)`,backgroundColor:`var(--grid-primary-bg)`,border:`1px dashed var(--grid-primary)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:g,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover-bg)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-bg)`,children:`+ Add Condition`}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,paddingTop:`12px`,borderTop:`1px solid var(--grid-border)`},children:[(0,Y.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:C,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Reset`}),(0,Y.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:S,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Y.jsx)(`button`,{style:{flex:1,padding:`8px 12px`,fontSize:`var(--grid-font-size-sm, 12px)`,fontWeight:500,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`,transition:`all 0.15s`},onClick:x,onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})};var nr=e=>e!=null&&`operator`in e&&`conditions`in e,rr=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=nr(e)?null:e,s=o?.type||`contains`,c=o?.value||``,[l,u]=(0,b.useState)(s),[d,f]=(0,b.useState)(c);return(0,Y.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow-medium, 0 10px 15px -3px rgba(0, 0, 0, 0.1))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Y.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:l,onChange:e=>u(e.target.value),children:[(0,Y.jsx)(`option`,{value:`contains`,children:`Contains`}),(0,Y.jsx)(`option`,{value:`notContains`,children:`Not Contains`}),(0,Y.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Y.jsx)(`option`,{value:`startsWith`,children:`Starts With`}),(0,Y.jsx)(`option`,{value:`endsWith`,children:`Ends With`})]})]}),(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Value`}),(0,Y.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`8px 12px`,border:`var(--grid-border-width, 1px) solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:d,onChange:e=>f(e.target.value),placeholder:`Enter text...`,autoFocus:!0})]}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{f(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{t(d?{type:l,value:d}:null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},ir=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=nr(e)?null:e,s=o?.type||`equals`,c=o?.value||``,l=o?.value2||``,[u,d]=(0,b.useState)(s),[f,p]=(0,b.useState)(c),[m,h]=(0,b.useState)(l);return(0,Y.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Y.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:u,onChange:e=>d(e.target.value),children:[(0,Y.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Y.jsx)(`option`,{value:`notEquals`,children:`Not Equals`}),(0,Y.jsx)(`option`,{value:`greaterThan`,children:`Greater Than`}),(0,Y.jsx)(`option`,{value:`greaterThanOrEqual`,children:`Greater Than or Equal`}),(0,Y.jsx)(`option`,{value:`lessThan`,children:`Less Than`}),(0,Y.jsx)(`option`,{value:`lessThanOrEqual`,children:`Less Than or Equal`}),(0,Y.jsx)(`option`,{value:`inRange`,children:`In Range`})]})]}),(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Value`}),(0,Y.jsx)(`input`,{type:`number`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),placeholder:`Enter number...`,autoFocus:!0})]}),u===`inRange`&&(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`To`}),(0,Y.jsx)(`input`,{type:`number`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:m,onChange:e=>h(e.target.value),placeholder:`Enter max value...`})]}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{p(``),h(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{if(f){let e={type:u,value:parseFloat(f)};u===`inRange`&&m&&(e.value2=parseFloat(m)),t(e)}else t(null);n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},ar=({filterValue:e,onApplyFilter:t,onClose:n,anchorEl:r,showAdvancedButton:i,onSwitchToAdvanced:a})=>{let o=nr(e)?null:e,s=o?.type||`equals`,c=o?.value||``,l=o?.value2||``,[u,d]=(0,b.useState)(s),[f,p]=(0,b.useState)(c),[m,h]=(0,b.useState)(l);return(0,Y.jsxs)(`div`,{style:{position:`fixed`,top:r?r.getBoundingClientRect().bottom+5:0,left:r?r.getBoundingClientRect().left:0,minWidth:`280px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3},onClick:e=>e.stopPropagation(),children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Filter Type`}),(0,Y.jsxs)(`select`,{style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:u,onChange:e=>d(e.target.value),children:[(0,Y.jsx)(`option`,{value:`equals`,children:`Equals`}),(0,Y.jsx)(`option`,{value:`before`,children:`Before`}),(0,Y.jsx)(`option`,{value:`after`,children:`After`}),(0,Y.jsx)(`option`,{value:`inRange`,children:`In Range`})]})]}),(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`Date`}),(0,Y.jsx)(`input`,{type:`date`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),autoFocus:!0})]}),u===`inRange`&&(0,Y.jsxs)(`div`,{style:{marginBottom:`12px`},children:[(0,Y.jsx)(`label`,{style:{display:`block`,fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`,marginBottom:`4px`},children:`To`}),(0,Y.jsx)(`input`,{type:`date`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:m,onChange:e=>h(e.target.value)})]}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`},children:[(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{p(``),h(``),t(null),n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{if(f){let e={type:u,value:f};u===`inRange`&&m&&(e.value2=m),t(e)}else t(null);n()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:`Apply`})]})]})},or=({column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a,showAdvancedButton:o,onSwitchToAdvanced:s})=>{let c=Array.from(new Set(i.map(t=>t[e.field]).filter(e=>e!=null))),l=nr(t)?null:t,[u,d]=(0,b.useState)(l&&l.values?new Set(l.values):new Set),[f,p]=(0,b.useState)(``),m=c.filter(e=>String(e).toLowerCase().includes(f.toLowerCase())),h=e=>{let t=new Set(u);t.has(e)?t.delete(e):t.add(e),d(t)};return(0,Y.jsxs)(`div`,{style:{position:`fixed`,top:a?a.getBoundingClientRect().bottom+5:0,left:a?a.getBoundingClientRect().left:0,minWidth:`280px`,maxHeight:`400px`,backgroundColor:`var(--grid-bg)`,boxShadow:`var(--grid-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05))`,borderRadius:`var(--grid-border-radius, 8px)`,border:`1px solid var(--grid-border)`,padding:`16px`,zIndex:1e3,display:`flex`,flexDirection:`column`},onClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(`div`,{style:{marginBottom:`12px`},children:(0,Y.jsx)(`input`,{type:`text`,style:{width:`100%`,padding:`8px 12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,fontSize:`var(--grid-font-size, 14px)`,outline:`none`,backgroundColor:`var(--grid-bg)`,color:`var(--grid-text)`},value:f,onChange:e=>p(e.target.value),placeholder:`Search values...`,autoFocus:!0})}),(0,Y.jsx)(`div`,{style:{marginBottom:`8px`},children:(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,padding:`8px`,borderRadius:`4px`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:u.size===m.length&&m.length>0,onChange:()=>{u.size===m.length?d(new Set):d(new Set(m))},style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`var(--grid-font-size, 14px)`,fontWeight:500,color:`var(--grid-text)`},children:`(Select All)`})]})}),(0,Y.jsx)(`div`,{style:{flex:1,overflowY:`auto`,marginBottom:`12px`,border:`1px solid var(--grid-border)`,borderRadius:`var(--grid-border-radius, 6px)`,maxHeight:`200px`},children:m.map((e,t)=>(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`,padding:`8px`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:u.has(e),onChange:()=>h(e),style:{width:`16px`,height:`16px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{style:{fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`},children:String(e)})]},t))}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`8px`,justifyContent:`flex-end`,paddingTop:`8px`,borderTop:`1px solid var(--grid-border)`},children:[(0,Y.jsx)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text)`,backgroundColor:`var(--grid-bg-alt)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{d(new Set),n(null),r()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-bg-alt)`,children:`Clear`}),(0,Y.jsxs)(`button`,{style:{padding:`6px 12px`,fontSize:`var(--grid-font-size, 14px)`,color:`var(--grid-text-inverse)`,backgroundColor:`var(--grid-primary)`,border:`none`,borderRadius:`var(--grid-border-radius, 6px)`,cursor:`pointer`},onClick:()=>{u.size>0?n({type:`set`,values:Array.from(u)}):n(null),r()},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary-hover)`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`var(--grid-primary)`,children:[`Apply (`,u.size,`)`]})]})]})},sr=({column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a})=>(0,Y.jsx)(or,{column:e,filterValue:t,onApplyFilter:n,onClose:r,rows:i,anchorEl:a});const cr=({columns:e,displayColumnOrder:t,columnWidths:n,filterConfig:r,dispatch:i,pinnedLeft:a,pinnedRight:o,rows:s})=>{let[c,l]=(0,b.useState)(null),[u,d]=(0,b.useState)({}),[f,p]=(0,b.useState)(null),m=new Set(a),h=new Set(o),g={},_=0;a.forEach(e=>{g[e]=_,_+=n[e]||150});let v={},y=0;[...o].reverse().forEach(e=>{v[e]=y,y+=n[e]||150});let x=new Map(e.map(e=>[e.field,e])),S=e=>{let t={width:`${n[e]||150}px`};return m.has(e)?(t.position=`sticky`,t.left=`${g[e]}px`,t.zIndex=20,t.backgroundColor=`var(--grid-header-bg)`):h.has(e)&&(t.position=`sticky`,t.right=`${v[e]}px`,t.zIndex=20,t.backgroundColor=`var(--grid-header-bg)`),t},C=e=>{if(e.filterType)return e.filterType;let t=e.field.toLowerCase();return t.includes(`date`)||t.includes(`time`)?`date`:t.includes(`salary`)||t.includes(`price`)||t.includes(`amount`)||t.includes(`count`)?`number`:t.includes(`status`)||t.includes(`department`)||t.includes(`category`)?`set`:`text`},w=(e,t)=>{t.stopPropagation();let n=r[e];nr(n)||t.shiftKey?(d({...u,[e]:t.currentTarget}),p(e),l(null)):(d({...u,[e]:t.currentTarget}),l(e),p(null))},T=()=>{l(null),p(null)},E=(e,t)=>{i({type:`SET_FILTER`,payload:{field:e,value:t}})},D=e=>{l(null),p(e)};(0,b.useEffect)(()=>{let e=()=>{c&&l(null)};if(c)return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[c]);let O=e=>{let t=C(e),n={column:e,filterValue:r[e.field],onApplyFilter:t=>E(e.field,t),onClose:T,rows:s,anchorEl:u[e.field],showAdvancedButton:!0,onSwitchToAdvanced:()=>D(e.field)};switch(t){case`number`:return(0,Y.jsx)(ir,{...n});case`date`:return(0,Y.jsx)(ar,{...n});case`set`:return(0,Y.jsx)(or,{...n});case`multi`:return(0,Y.jsx)(sr,{...n});default:return(0,Y.jsx)(rr,{...n})}},k=e=>{let t=r[e.field],n=u[e.field];return(0,Y.jsx)(tr,{column:e,filterValue:nr(t)?t:null,onApply:t=>E(e.field,t),onClose:T,rows:s,anchorEl:n})},A=e=>{let t=r[e];if(!t)return``;if(nr(t)){let e=t.conditions.length;return`${e} condition${e>1?`s`:``} (${t.operator})`}return t.type===`set`&&t.values?`${t.values.length} selected`:t.type===`inRange`?`${t.value} - ${t.value2}`:String(t.value||``)},j=e=>!!r[e];return(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsx)(`div`,{style:{display:`flex`,minWidth:`100%`,borderBottom:`1px solid var(--grid-border)`,backgroundColor:`var(--grid-header-bg)`},children:t.map(e=>{let t=x.get(e);if(!t||t.filterable===!1)return(0,Y.jsx)(`div`,{style:{...S(e),borderRight:`1px solid var(--grid-border)`,flexShrink:0,minHeight:`38px`}},e);let n=j(e);return(0,Y.jsxs)(`div`,{style:{...S(e),borderRight:`1px solid var(--grid-border)`,flexShrink:0,padding:`6px 8px`,position:`relative`,display:`flex`,alignItems:`center`},children:[(0,Y.jsx)(`div`,{style:{width:`100%`,cursor:`pointer`},onClick:t=>w(e,t),title:`Click to filter, Shift+Click for advanced filter`,children:(0,Y.jsxs)(`div`,{style:{width:`100%`,padding:`4px 8px`,fontSize:`var(--grid-font-size-sm, 12px)`,border:`1px solid`,borderColor:n?`var(--grid-primary)`:`var(--grid-border)`,borderRadius:`var(--grid-border-radius, 4px)`,backgroundColor:n?`var(--grid-primary-bg)`:`var(--grid-bg)`,color:n?`var(--grid-primary)`:`var(--grid-text-secondary)`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`6px`,transition:`border-color 0.15s`},onMouseEnter:e=>{n||(e.currentTarget.style.borderColor=`var(--grid-border-hover)`)},onMouseLeave:e=>{n||(e.currentTarget.style.borderColor=`var(--grid-border)`)},children:[(0,Y.jsx)(`span`,{style:{flex:1,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:n?A(e):`Filter...`}),(0,Y.jsx)(`svg`,{style:{flexShrink:0,color:n?`var(--grid-primary)`:`var(--grid-text-muted)`},width:`12`,height:`12`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,strokeWidth:`2.5`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,d:`M3 4h18v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V20l-4-2v-3.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z`})})]})}),c===e&&O(t),f===e&&k(t)]},e)})})})},lr=({manager:e,currentLayout:t,onLoadPreset:n,onResetLayout:r})=>{let[i,a]=(0,b.useState)([]),[o,s]=(0,b.useState)(!1),[c,l]=(0,b.useState)(!1),[u,d]=(0,b.useState)(``),[f,p]=(0,b.useState)(``),[m,h]=(0,b.useState)(!1),[g,_]=(0,b.useState)(null),v=(0,b.useCallback)(async()=>{try{h(!0),a((await e.listPresets()).filter(e=>e.id!==`__autosave__`)),_(null)}catch(e){_(`Failed to load presets`),console.error(e)}finally{h(!1)}},[e]);(0,b.useEffect)(()=>{v()},[v]);let y=async()=>{if(!u.trim()){_(`Please enter a preset name`);return}try{h(!0);let{createPreset:n}=await w(async()=>{let{createPreset:e}=await import(`./layoutPersistence-DKb0Rxme.js`);return{createPreset:e}},[]),r=n(u.trim(),t,f.trim());await e.savePreset(r),await v(),l(!1),d(``),p(``),_(null)}catch(e){_(`Failed to save preset`),console.error(e)}finally{h(!1)}},x=async t=>{try{h(!0);let r=await e.loadPreset(t);r&&(n(r.layout),s(!1),_(null))}catch(e){_(`Failed to load preset`),console.error(e)}finally{h(!1)}},S=async(t,n)=>{if(n.stopPropagation(),confirm(`Are you sure you want to delete this preset?`))try{h(!0),await e.deletePreset(t),await v(),_(null)}catch(e){_(`Failed to delete preset`),console.error(e)}finally{h(!1)}},C=async(n,r)=>{if(r.stopPropagation(),confirm(`Update this preset with current layout?`))try{h(!0);let r={...n,layout:t};await e.savePreset(r),await v(),_(null)}catch(e){_(`Failed to update preset`),console.error(e)}finally{h(!1)}},T=e=>new Date(e).toLocaleString();return(0,Y.jsxs)(`div`,{className:`relative inline-block`,children:[(0,Y.jsxs)(`button`,{onClick:()=>s(!o),style:{padding:`6px 12px`,fontSize:`14px`,backgroundColor:`white`,border:`1px solid #d1d5db`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,gap:`8px`},disabled:m,children:[(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 7h16M4 12h16M4 17h16`})}),`Layout Presets`,(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0,transform:o?`rotate(180deg)`:`rotate(0deg)`,transition:`transform 0.2s`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 9l-7 7-7-7`})})]}),o&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:10},onClick:()=>s(!1)}),(0,Y.jsxs)(`div`,{style:{position:`absolute`,right:0,marginTop:`8px`,width:`320px`,backgroundColor:`white`,border:`1px solid #d1d5db`,borderRadius:`8px`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1)`,zIndex:20,maxHeight:`384px`,overflowY:`auto`},children:[(0,Y.jsx)(`div`,{style:{padding:`12px`,borderBottom:`1px solid #e5e7eb`,backgroundColor:`#f9fafb`},children:(0,Y.jsx)(`h3`,{style:{fontWeight:`600`,fontSize:`14px`,color:`#111827`},children:`Layout Presets`})}),g&&(0,Y.jsx)(`div`,{style:{padding:`12px`,backgroundColor:`#fef2f2`,borderBottom:`1px solid #fecaca`},children:(0,Y.jsx)(`p`,{style:{fontSize:`14px`,color:`#dc2626`},children:g})}),(0,Y.jsxs)(`div`,{style:{padding:`8px`,borderBottom:`1px solid #e5e7eb`,display:`flex`,gap:`8px`},children:[(0,Y.jsxs)(`button`,{onClick:()=>{l(!0),s(!1)},style:{flex:1,padding:`8px 12px`,fontSize:`14px`,backgroundColor:`#2563eb`,color:`white`,border:`none`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`8px`},children:[(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4`})}),`Save Current`]}),(0,Y.jsxs)(`button`,{onClick:()=>{r(),s(!1)},style:{flex:1,padding:`8px 12px`,fontSize:`14px`,backgroundColor:`#4b5563`,color:`white`,border:`none`,borderRadius:`4px`,cursor:`pointer`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`8px`},children:[(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`,flexShrink:0},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15`})}),`Reset`]})]}),(0,Y.jsx)(`div`,{style:{maxHeight:`256px`,overflowY:`auto`},children:m&&i.length===0?(0,Y.jsx)(`div`,{style:{padding:`16px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`Loading presets...`}):i.length===0?(0,Y.jsx)(`div`,{style:{padding:`16px`,textAlign:`center`,color:`#6b7280`,fontSize:`14px`},children:`No saved presets. Save your current layout to get started.`}):(0,Y.jsx)(`div`,{children:i.map(e=>(0,Y.jsx)(`div`,{style:{padding:`12px`,cursor:`pointer`,borderBottom:`1px solid #e5e7eb`},onClick:()=>x(e.id),onMouseEnter:e=>{e.currentTarget.style.backgroundColor=`#f9fafb`;let t=e.currentTarget.querySelector(`.preset-actions`);t&&(t.style.opacity=`1`)},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=`transparent`;let t=e.currentTarget.querySelector(`.preset-actions`);t&&(t.style.opacity=`0`)},children:(0,Y.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,justifyContent:`space-between`},children:[(0,Y.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,Y.jsx)(`h4`,{style:{fontSize:`14px`,fontWeight:`500`,color:`#111827`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.name}),e.description&&(0,Y.jsx)(`p`,{style:{fontSize:`12px`,color:`#6b7280`,marginTop:`4px`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.description}),(0,Y.jsxs)(`p`,{style:{fontSize:`12px`,color:`#9ca3af`,marginTop:`4px`},children:[`Updated: `,T(e.updatedAt)]})]}),(0,Y.jsxs)(`div`,{className:`preset-actions`,style:{display:`flex`,gap:`4px`,marginLeft:`8px`,opacity:0,transition:`opacity 0.2s`},children:[(0,Y.jsx)(`button`,{onClick:t=>C(e,t),style:{padding:`4px`,color:`#2563eb`,backgroundColor:`transparent`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#eff6ff`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Update with current layout`,children:(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15`})})}),(0,Y.jsx)(`button`,{onClick:t=>S(e.id,t),style:{padding:`4px`,color:`#dc2626`,backgroundColor:`transparent`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#fef2f2`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`transparent`,title:`Delete preset`,children:(0,Y.jsx)(`svg`,{style:{width:`14px`,height:`14px`},fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,children:(0,Y.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16`})})})]})]})},e.id))})})]})]}),c&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{style:{position:`fixed`,inset:0,backgroundColor:`rgba(0, 0, 0, 0.5)`,zIndex:30,display:`flex`,alignItems:`center`,justifyContent:`center`},onClick:()=>l(!1)}),(0,Y.jsx)(`div`,{style:{position:`fixed`,inset:0,zIndex:40,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`16px`},children:(0,Y.jsxs)(`div`,{style:{backgroundColor:`white`,borderRadius:`8px`,boxShadow:`0 25px 50px -12px rgba(0, 0, 0, 0.25)`,maxWidth:`448px`,width:`100%`,padding:`24px`},onClick:e=>e.stopPropagation(),children:[(0,Y.jsx)(`h2`,{style:{fontSize:`20px`,fontWeight:`600`,marginBottom:`16px`},children:`Save Layout Preset`}),g&&(0,Y.jsx)(`div`,{style:{marginBottom:`16px`,padding:`12px`,backgroundColor:`#fef2f2`,border:`1px solid #fecaca`,borderRadius:`4px`},children:(0,Y.jsx)(`p`,{style:{fontSize:`14px`,color:`#dc2626`},children:g})}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{style:{marginBottom:`16px`},children:[(0,Y.jsx)(`label`,{htmlFor:`preset-name`,style:{display:`block`,fontSize:`14px`,fontWeight:`500`,color:`#374151`,marginBottom:`4px`},children:`Preset Name *`}),(0,Y.jsx)(`input`,{id:`preset-name`,type:`text`,value:u,onChange:e=>d(e.target.value),style:{width:`100%`,padding:`8px 12px`,border:`1px solid #d1d5db`,borderRadius:`4px`,fontSize:`14px`},placeholder:`e.g., Sales Dashboard Layout`,autoFocus:!0})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`label`,{htmlFor:`preset-description`,style:{display:`block`,fontSize:`14px`,fontWeight:`500`,color:`#374151`,marginBottom:`4px`},children:`Description (optional)`}),(0,Y.jsx)(`textarea`,{id:`preset-description`,value:f,onChange:e=>p(e.target.value),style:{width:`100%`,padding:`8px 12px`,border:`1px solid #d1d5db`,borderRadius:`4px`,fontSize:`14px`},placeholder:`Add a description...`,rows:3})]})]}),(0,Y.jsxs)(`div`,{style:{marginTop:`24px`,display:`flex`,gap:`12px`,justifyContent:`flex-end`},children:[(0,Y.jsx)(`button`,{onClick:()=>{l(!1),d(``),p(``),_(null)},style:{padding:`8px 16px`,fontSize:`14px`,color:`#374151`,backgroundColor:`#f3f4f6`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#e5e7eb`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`#f3f4f6`,disabled:m,children:`Cancel`}),(0,Y.jsx)(`button`,{onClick:y,style:{padding:`8px 16px`,fontSize:`14px`,color:`white`,backgroundColor:`#2563eb`,border:`none`,borderRadius:`4px`,cursor:`pointer`},onMouseEnter:e=>e.currentTarget.style.backgroundColor=`#1d4ed8`,onMouseLeave:e=>e.currentTarget.style.backgroundColor=`#2563eb`,disabled:m,children:m?`Saving...`:`Save Preset`})]})]})})]})]})},ur=({x:e,y:t,items:n,onClose:r})=>{let i=(0,b.useRef)(null),[a,o]=b.useState(null);(0,b.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&r()},t=e=>{i.current&&!i.current.contains(e.target)&&(e.preventDefault(),r())},n=setTimeout(()=>{document.addEventListener(`mousedown`,e),document.addEventListener(`contextmenu`,t)},100);return()=>{clearTimeout(n),document.removeEventListener(`mousedown`,e),document.removeEventListener(`contextmenu`,t)}},[r]),(0,b.useEffect)(()=>{let e=e=>{e.key===`Escape`&&r()};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[r]),(0,b.useEffect)(()=>{if(i.current){let n=i.current,r=n.getBoundingClientRect(),a=window.innerWidth,o=window.innerHeight,s=e,c=t;r.right>a&&(s=a-r.width-10),r.bottom>o&&(c=o-r.height-10),(s!==e||c!==t)&&(n.style.left=`${s}px`,n.style.top=`${c}px`)}},[e,t]);let s=(0,b.useCallback)(e=>{if(!e.disabled){if(e.submenu){o(a===e.id?null:e.id||null);return}e.onClick&&e.onClick(),r()}},[r,a]),c=(e,t)=>e.type===`separator`?(0,Y.jsx)(`div`,{className:`context-menu-separator`,role:`separator`},`separator-${t}`):(0,Y.jsxs)(`div`,{className:`context-menu-item-wrapper`,children:[(0,Y.jsxs)(`div`,{className:`context-menu-item ${e.disabled?`disabled`:``} ${e.danger?`danger`:``} ${e.submenu?`has-submenu`:``}`,onClick:()=>s(e),role:`menuitem`,"aria-disabled":e.disabled,tabIndex:e.disabled?-1:0,children:[e.icon&&(0,Y.jsx)(`span`,{className:`context-menu-icon`,children:e.icon}),(0,Y.jsx)(`span`,{className:`context-menu-label`,children:e.label}),e.shortcut&&(0,Y.jsx)(`span`,{className:`context-menu-shortcut`,children:e.shortcut}),e.submenu&&(0,Y.jsx)(`span`,{className:`context-menu-arrow`,children:`▶`})]}),e.submenu&&a===e.id&&(0,Y.jsx)(`div`,{className:`context-menu-submenu`,children:e.submenu.map((e,t)=>c(e,t))})]},e.id||t);return(0,Y.jsx)(`div`,{ref:i,className:`context-menu`,style:{left:e,top:t},role:`menu`,"aria-label":`Context menu`,children:n.map((e,t)=>c(e,t))})},dr=async(e,t,n,r=!1)=>{let i=Array.from(e),a=n.filter(e=>i.includes(e.id));if(a.length===0)return;let o=``;r&&(o+=t.map(e=>e.headerName).join(` `)+`
|
|
41
41
|
`),o+=a.map(e=>t.map(t=>{let n=e[t.field];return n==null?``:typeof n==`object`?JSON.stringify(n):String(n)}).join(` `)).join(`
|
|
42
42
|
`);try{await navigator.clipboard.writeText(o)}catch(e){console.error(`Failed to copy to clipboard:`,e);let t=document.createElement(`textarea`);t.value=o,t.style.position=`fixed`,t.style.opacity=`0`,document.body.appendChild(t),t.select(),document.execCommand(`copy`),document.body.removeChild(t)}},fr=(e,t,n,r=`export.csv`)=>{let i=Array.from(e),a=n.filter(e=>i.includes(e.id));if(a.length===0)return;let o=``;o+=t.map(e=>`"${e.headerName}"`).join(`,`)+`
|
|
43
43
|
`,o+=a.map(e=>t.map(t=>{let n=e[t.field];return n==null?`""`:typeof n==`object`?`"${JSON.stringify(n).replace(/"/g,`""`)}"`:`"${String(n).replace(/"/g,`""`)}"`}).join(`,`)).join(`
|
|
@@ -1242,7 +1242,7 @@ announceSorting(columnName, direction);
|
|
|
1242
1242
|
|
|
1243
1243
|
// Announce on pagination
|
|
1244
1244
|
announcePagination(currentPage, totalPages, rowCount);
|
|
1245
|
-
// "Page 2 of 5, showing 10 rows"`})]}),(0,Y.jsx)(`div`,{style:{marginTop:`48px`,marginBottom:`32px`,padding:`32px`,backgroundColor:`#fefce8`,border:`2px solid #facc15`,borderRadius:`12px`,boxShadow:`0 4px 6px rgba(0,0,0,0.05)`},children:(0,Y.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:`20px`},children:[(0,Y.jsx)(`div`,{style:{fontSize:`48px`},children:`📄`}),(0,Y.jsxs)(`div`,{style:{flex:1},children:[(0,Y.jsx)(`h3`,{style:{fontSize:`24px`,fontWeight:`700`,marginBottom:`12px`,color:`#854d0e`},children:`Enterprise-Ready Documentation`}),(0,Y.jsxs)(`p`,{style:{fontSize:`16px`,color:`#713f12`,lineHeight:`1.6`,marginBottom:`20px`},children:[`Need to prove compliance to procurement teams? We provide a complete `,(0,Y.jsx)(`strong`,{children:`VPAT 2.4 (Voluntary Product Accessibility Template)`}),` document that details our conformance to WCAG 2.1 Level AA and Section 508 standards.`]}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`12px`,flexWrap:`wrap`},children:[(0,Y.jsx)(`a`,{href:`/docs/ACCESSIBILITY_VPAT.pdf`,download:`ACCESSIBILITY_VPAT.pdf`,style:{display:`inline-flex`,alignItems:`center`,gap:`8px`,padding:`12px 24px`,backgroundColor:`#854d0e`,color:`white`,textDecoration:`none`,borderRadius:`6px`,fontWeight:`600`,fontSize:`15px`,boxShadow:`0 2px 4px rgba(0,0,0,0.1)`,transition:`all 0.2s`},onMouseOver:e=>e.currentTarget.style.backgroundColor=`#713f12`,onMouseOut:e=>e.currentTarget.style.backgroundColor=`#854d0e`,children:`📥 Download VPAT 2.4 (PDF)`}),(0,Y.jsx)(`a`,{href:`https://github.com/bhushanpoojary/react-open-source-datagrid/tree/main/docs`,target:`_blank`,rel:`noopener noreferrer`,style:{display:`inline-flex`,alignItems:`center`,gap:`8px`,padding:`12px 24px`,backgroundColor:`white`,color:`#854d0e`,textDecoration:`none`,border:`2px solid #854d0e`,borderRadius:`6px`,fontWeight:`600`,fontSize:`15px`},children:`📚 View All Accessibility Docs`})]}),(0,Y.jsx)(`p`,{style:{fontSize:`13px`,color:`#92400e`,marginTop:`16px`,fontStyle:`italic`},children:`✓ WCAG 2.1 Level AA checklist \xA0•\xA0 ✓ Section 508 compliance matrix \xA0•\xA0 ✓ Assistive technology test results`})]})]})}),(0,Y.jsxs)(`div`,{style:{marginTop:`48px`,padding:`24px`,backgroundColor:`#eff6ff`,border:`1px solid #bfdbfe`,borderRadius:`8px`},children:[(0,Y.jsx)(`h3`,{style:{fontSize:`18px`,fontWeight:`600`,marginBottom:`12px`,color:`#1e40af`},children:`💡 Testing Accessibility`}),(0,Y.jsxs)(`ul`,{style:{margin:0,paddingLeft:`24px`,color:`#1e3a8a`,lineHeight:`1.8`},children:[(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Keyboard Only:`}),` Try navigating without using a mouse`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Screen Readers:`}),` Test with NVDA (Windows), JAWS (Windows), or VoiceOver (Mac)`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Windows High Contrast Mode:`}),` Test with Windows High Contrast themes (focus indicators use outline, not box-shadow)`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Browser DevTools:`}),` Check the Accessibility tree in Chrome/Firefox DevTools`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`WAVE Tool:`}),` Use the WAVE browser extension to audit accessibility`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`axe DevTools:`}),` Install axe DevTools extension for detailed ARIA validation`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Tab Order:`}),` Verify logical tab order through all interactive elements`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Focus Visible:`}),` Ensure focus indicators are visible and clear`]})]})]})]})};var Ip=({icon:e,title:t,items:n})=>(0,Y.jsxs)(`div`,{style:{backgroundColor:`white`,padding:`20px`,borderRadius:`8px`,boxShadow:`0 1px 3px rgba(0,0,0,0.1)`},children:[(0,Y.jsx)(`div`,{style:{fontSize:`32px`,marginBottom:`12px`},children:e}),(0,Y.jsx)(`h3`,{style:{fontSize:`18px`,fontWeight:`600`,marginBottom:`12px`,color:`#111827`},children:t}),(0,Y.jsx)(`ul`,{style:{margin:0,paddingLeft:`20px`,fontSize:`14px`,color:`#4b5563`,lineHeight:`1.8`},children:n.map((e,t)=>(0,Y.jsx)(`li`,{children:e},t))})]}),Lp=({category:e,shortcuts:t})=>(0,Y.jsxs)(`div`,{style:{backgroundColor:`white`,padding:`20px`,borderRadius:`8px`,boxShadow:`0 1px 3px rgba(0,0,0,0.1)`},children:[(0,Y.jsx)(`h3`,{style:{fontSize:`16px`,fontWeight:`600`,marginBottom:`16px`,color:`#111827`},children:e}),(0,Y.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`8px`},children:t.map((e,t)=>(0,Y.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,Y.jsx)(`kbd`,{style:{padding:`4px 8px`,backgroundColor:`#f3f4f6`,border:`1px solid #d1d5db`,borderRadius:`4px`,fontSize:`12px`,fontFamily:`monospace`,color:`#374151`,fontWeight:`600`},children:e.keys}),(0,Y.jsx)(`span`,{style:{fontSize:`13px`,color:`#6b7280`,marginLeft:`12px`,flex:1,textAlign:`right`},children:e.description})]},t))})]});const Rp=()=>{let[e,t]=(0,b.useState)(!0),[n,r]=(0,b.useState)(!0),[i,a]=(0,b.useState)(!0),[o,s]=(0,b.useState)(!0),[c,l]=(0,b.useState)(!0),[u,d]=(0,b.useState)(!1),f=[{field:`id`,headerName:`ID`,width:80,sortable:!0},{field:`name`,headerName:`Name`,width:150,sortable:!0,editable:!0},{field:`email`,headerName:`Email`,width:200,sortable:!0},{field:`department`,headerName:`Department`,width:150,sortable:!0,filterType:`text`},{field:`salary`,headerName:`Salary`,width:120,sortable:!0,filterType:`number`},{field:`country`,headerName:`Country`,width:130,sortable:!0},{field:`status`,headerName:`Status`,width:120,sortable:!0}],p=[{id:1,name:`Alice Johnson`,email:`alice@company.com`,department:`Engineering`,salary:95e3,country:`USA`,status:`Active`},{id:2,name:`Bob Smith`,email:`bob@company.com`,department:`Marketing`,salary:75e3,country:`UK`,status:`Active`},{id:3,name:`Charlie Brown`,email:`charlie@company.com`,department:`Sales`,salary:82e3,country:`Canada`,status:`Active`},{id:4,name:`Diana Prince`,email:`diana@company.com`,department:`Engineering`,salary:105e3,country:`USA`,status:`Active`},{id:5,name:`Eve Wilson`,email:`eve@company.com`,department:`HR`,salary:68e3,country:`Australia`,status:`On Leave`},{id:6,name:`Frank Miller`,email:`frank@company.com`,department:`Engineering`,salary:98e3,country:`Germany`,status:`Active`},{id:7,name:`Grace Lee`,email:`grace@company.com`,department:`Marketing`,salary:79e3,country:`Singapore`,status:`Active`},{id:8,name:`Henry Taylor`,email:`henry@company.com`,department:`Sales`,salary:85e3,country:`USA`,status:`Active`},{id:9,name:`Iris Chen`,email:`iris@company.com`,department:`Engineering`,salary:102e3,country:`USA`,status:`Active`},{id:10,name:`Jack Davis`,email:`jack@company.com`,department:`Finance`,salary:91e3,country:`UK`,status:`Active`},{id:11,name:`Kate Martinez`,email:`kate@company.com`,department:`HR`,salary:72e3,country:`Spain`,status:`Active`},{id:12,name:`Leo Anderson`,email:`leo@company.com`,department:`Sales`,salary:88e3,country:`Canada`,status:`Active`}],m=(0,b.useMemo)(()=>[{id:`custom-action-1`,label:`Custom Action 1`,icon:`⭐`,onClick:()=>alert(`Custom Action 1 clicked!`)},{id:`custom-action-2`,label:`Custom Action 2`,icon:`🎯`,onClick:()=>alert(`Custom Action 2 clicked!`)},{type:`separator`},{id:`custom-danger`,label:`Danger Action`,icon:`⚠️`,danger:!0,onClick:()=>alert(`Danger action clicked!`)}],[]),h=(0,b.useMemo)(()=>({enabled:c,showCopy:e,showExport:n,showColumnOptions:i,showFilterByValue:o,customItems:u?m:[]}),[c,e,n,i,o,u,m]);return(0,Y.jsxs)(`div`,{style:{padding:`20px`,fontFamily:`system-ui, -apple-system, sans-serif`},children:[(0,Y.jsx)(`h1`,{style:{marginBottom:`10px`},children:`Context Menu Demo`}),(0,Y.jsx)(`p`,{style:{color:`#666`,marginBottom:`30px`},children:`Right-click on cells or column headers to see the context menu. Select multiple rows to test copy/export features.`}),(0,Y.jsxs)(`div`,{style:{backgroundColor:`#f8f9fa`,padding:`20px`,borderRadius:`8px`,marginBottom:`30px`,border:`1px solid #e0e0e0`},children:[(0,Y.jsx)(`h3`,{style:{marginTop:0,marginBottom:`15px`},children:`Context Menu Configuration`}),(0,Y.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`20px`,marginBottom:`15px`},children:[(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>l(e.target.checked),style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Enable Context Menu`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:e,onChange:e=>t(e.target.checked),disabled:!c,style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Show Copy Options`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:n,onChange:e=>r(e.target.checked),disabled:!c,style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Show Export Options`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:i,onChange:e=>a(e.target.checked),disabled:!c,style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Show Column Options`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>s(e.target.checked),disabled:!c,style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Show Filter by Value`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked),disabled:!c,style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Show Custom Items`})]})]}),(0,Y.jsxs)(`div`,{style:{padding:`12px`,backgroundColor:`#fff`,borderRadius:`6px`,fontSize:`14px`,border:`1px solid #e0e0e0`},children:[(0,Y.jsx)(`strong`,{children:`💡 Try these actions:`}),(0,Y.jsxs)(`ul`,{style:{marginTop:`8px`,marginBottom:0,paddingLeft:`20px`},children:[(0,Y.jsx)(`li`,{children:`Right-click on any cell to copy, export, or filter`}),(0,Y.jsx)(`li`,{children:`Right-click on column headers to pin, auto-size, hide, or filter`}),(0,Y.jsx)(`li`,{children:`Select multiple rows (Ctrl/Cmd+Click) and right-click to copy/export selection`}),(0,Y.jsx)(`li`,{children:`Use "Auto-size All Columns" from header context menu to optimize all column widths`}),(0,Y.jsx)(`li`,{children:`Use "Resize to Fit" to auto-size a single column based on content`})]})]})]}),(0,Y.jsx)(`div`,{style:{height:`600px`,border:`1px solid #e0e0e0`,borderRadius:`8px`,overflow:`hidden`},children:(0,Y.jsx)(vi,{columns:f,rows:p,pageSize:20,contextMenuConfig:h,theme:`quartz`})}),(0,Y.jsxs)(`div`,{style:{marginTop:`40px`},children:[(0,Y.jsx)(`h2`,{children:`Context Menu Features`}),(0,Y.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(300px, 1fr))`,gap:`20px`,marginTop:`20px`},children:[(0,Y.jsxs)(`div`,{style:{padding:`20px`,backgroundColor:`#f8f9fa`,borderRadius:`8px`,border:`1px solid #e0e0e0`},children:[(0,Y.jsx)(`h3`,{style:{marginTop:0,fontSize:`16px`},children:`📋 Cell Context Menu`}),(0,Y.jsxs)(`ul`,{style:{paddingLeft:`20px`,fontSize:`14px`,lineHeight:`1.8`},children:[(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Copy`}),` - Copy selected cells to clipboard`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Copy with Headers`}),` - Include column headers`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Export Selected Range`}),` - Export to CSV`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Filter by Value`}),` - Quick filter shortcut`]})]})]}),(0,Y.jsxs)(`div`,{style:{padding:`20px`,backgroundColor:`#f8f9fa`,borderRadius:`8px`,border:`1px solid #e0e0e0`},children:[(0,Y.jsx)(`h3`,{style:{marginTop:0,fontSize:`16px`},children:`📌 Header Context Menu`}),(0,Y.jsxs)(`ul`,{style:{paddingLeft:`20px`,fontSize:`14px`,lineHeight:`1.8`},children:[(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Pin Left/Right`}),` - Pin column to side`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Unpin Column`}),` - Remove pin`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Auto-size This Column`}),` - Fit content`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Resize to Fit`}),` - Optimal width`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Auto-size All Columns`}),` - Fit all columns`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Hide Column`}),` - Hide from view`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Filter by Value`}),` - Show unique values`]})]})]}),(0,Y.jsxs)(`div`,{style:{padding:`20px`,backgroundColor:`#f8f9fa`,borderRadius:`8px`,border:`1px solid #e0e0e0`},children:[(0,Y.jsx)(`h3`,{style:{marginTop:0,fontSize:`16px`},children:`⚙️ Configuration`}),(0,Y.jsxs)(`ul`,{style:{paddingLeft:`20px`,fontSize:`14px`,lineHeight:`1.8`},children:[(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`enabled`}),` - Enable/disable menu`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`showCopy`}),` - Toggle copy options`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`showExport`}),` - Toggle export options`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`showColumnOptions`}),` - Toggle column ops`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`showFilterByValue`}),` - Toggle filter`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`customItems`}),` - Add custom actions`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`onBeforeShow`}),` - Customize menu dynamically`]})]})]})]})]}),(0,Y.jsxs)(`div`,{style:{marginTop:`40px`},children:[(0,Y.jsx)(`h2`,{children:`Code Example`}),(0,Y.jsx)(ip,{code:`import { DataGrid } from 'react-open-source-grid';
|
|
1245
|
+
// "Page 2 of 5, showing 10 rows"`})]}),(0,Y.jsx)(`div`,{style:{marginTop:`48px`,marginBottom:`32px`,padding:`32px`,backgroundColor:`#fefce8`,border:`2px solid #facc15`,borderRadius:`12px`,boxShadow:`0 4px 6px rgba(0,0,0,0.05)`},children:(0,Y.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:`20px`},children:[(0,Y.jsx)(`div`,{style:{fontSize:`48px`},children:`📄`}),(0,Y.jsxs)(`div`,{style:{flex:1},children:[(0,Y.jsx)(`h3`,{style:{fontSize:`24px`,fontWeight:`700`,marginBottom:`12px`,color:`#854d0e`},children:`Enterprise-Ready Documentation`}),(0,Y.jsxs)(`p`,{style:{fontSize:`16px`,color:`#713f12`,lineHeight:`1.6`,marginBottom:`20px`},children:[`Need to prove compliance to procurement teams? We provide a complete `,(0,Y.jsx)(`strong`,{children:`VPAT 2.4 (Voluntary Product Accessibility Template)`}),` document that details our conformance to WCAG 2.1 Level AA and Section 508 standards.`]}),(0,Y.jsxs)(`div`,{style:{display:`flex`,gap:`12px`,flexWrap:`wrap`},children:[(0,Y.jsx)(`a`,{href:`/ACCESSIBILITY_VPAT.pdf`,download:`ACCESSIBILITY_VPAT.pdf`,style:{display:`inline-flex`,alignItems:`center`,gap:`8px`,padding:`12px 24px`,backgroundColor:`#854d0e`,color:`white`,textDecoration:`none`,borderRadius:`6px`,fontWeight:`600`,fontSize:`15px`,boxShadow:`0 2px 4px rgba(0,0,0,0.1)`,transition:`all 0.2s`},onMouseOver:e=>e.currentTarget.style.backgroundColor=`#713f12`,onMouseOut:e=>e.currentTarget.style.backgroundColor=`#854d0e`,children:`📥 Download VPAT 2.4 (PDF)`}),(0,Y.jsx)(`a`,{href:`https://github.com/bhushanpoojary/react-open-source-datagrid/tree/main/docs`,target:`_blank`,rel:`noopener noreferrer`,style:{display:`inline-flex`,alignItems:`center`,gap:`8px`,padding:`12px 24px`,backgroundColor:`white`,color:`#854d0e`,textDecoration:`none`,border:`2px solid #854d0e`,borderRadius:`6px`,fontWeight:`600`,fontSize:`15px`},children:`📚 View All Accessibility Docs`})]}),(0,Y.jsx)(`p`,{style:{fontSize:`13px`,color:`#92400e`,marginTop:`16px`,fontStyle:`italic`},children:`✓ WCAG 2.1 Level AA checklist \xA0•\xA0 ✓ Section 508 compliance matrix \xA0•\xA0 ✓ Assistive technology test results`})]})]})}),(0,Y.jsxs)(`div`,{style:{marginTop:`48px`,padding:`24px`,backgroundColor:`#eff6ff`,border:`1px solid #bfdbfe`,borderRadius:`8px`},children:[(0,Y.jsx)(`h3`,{style:{fontSize:`18px`,fontWeight:`600`,marginBottom:`12px`,color:`#1e40af`},children:`💡 Testing Accessibility`}),(0,Y.jsxs)(`ul`,{style:{margin:0,paddingLeft:`24px`,color:`#1e3a8a`,lineHeight:`1.8`},children:[(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Keyboard Only:`}),` Try navigating without using a mouse`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Screen Readers:`}),` Test with NVDA (Windows), JAWS (Windows), or VoiceOver (Mac)`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Windows High Contrast Mode:`}),` Test with Windows High Contrast themes (focus indicators use outline, not box-shadow)`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Browser DevTools:`}),` Check the Accessibility tree in Chrome/Firefox DevTools`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`WAVE Tool:`}),` Use the WAVE browser extension to audit accessibility`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`axe DevTools:`}),` Install axe DevTools extension for detailed ARIA validation`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Tab Order:`}),` Verify logical tab order through all interactive elements`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Focus Visible:`}),` Ensure focus indicators are visible and clear`]})]})]})]})};var Ip=({icon:e,title:t,items:n})=>(0,Y.jsxs)(`div`,{style:{backgroundColor:`white`,padding:`20px`,borderRadius:`8px`,boxShadow:`0 1px 3px rgba(0,0,0,0.1)`},children:[(0,Y.jsx)(`div`,{style:{fontSize:`32px`,marginBottom:`12px`},children:e}),(0,Y.jsx)(`h3`,{style:{fontSize:`18px`,fontWeight:`600`,marginBottom:`12px`,color:`#111827`},children:t}),(0,Y.jsx)(`ul`,{style:{margin:0,paddingLeft:`20px`,fontSize:`14px`,color:`#4b5563`,lineHeight:`1.8`},children:n.map((e,t)=>(0,Y.jsx)(`li`,{children:e},t))})]}),Lp=({category:e,shortcuts:t})=>(0,Y.jsxs)(`div`,{style:{backgroundColor:`white`,padding:`20px`,borderRadius:`8px`,boxShadow:`0 1px 3px rgba(0,0,0,0.1)`},children:[(0,Y.jsx)(`h3`,{style:{fontSize:`16px`,fontWeight:`600`,marginBottom:`16px`,color:`#111827`},children:e}),(0,Y.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`8px`},children:t.map((e,t)=>(0,Y.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,Y.jsx)(`kbd`,{style:{padding:`4px 8px`,backgroundColor:`#f3f4f6`,border:`1px solid #d1d5db`,borderRadius:`4px`,fontSize:`12px`,fontFamily:`monospace`,color:`#374151`,fontWeight:`600`},children:e.keys}),(0,Y.jsx)(`span`,{style:{fontSize:`13px`,color:`#6b7280`,marginLeft:`12px`,flex:1,textAlign:`right`},children:e.description})]},t))})]});const Rp=()=>{let[e,t]=(0,b.useState)(!0),[n,r]=(0,b.useState)(!0),[i,a]=(0,b.useState)(!0),[o,s]=(0,b.useState)(!0),[c,l]=(0,b.useState)(!0),[u,d]=(0,b.useState)(!1),f=[{field:`id`,headerName:`ID`,width:80,sortable:!0},{field:`name`,headerName:`Name`,width:150,sortable:!0,editable:!0},{field:`email`,headerName:`Email`,width:200,sortable:!0},{field:`department`,headerName:`Department`,width:150,sortable:!0,filterType:`text`},{field:`salary`,headerName:`Salary`,width:120,sortable:!0,filterType:`number`},{field:`country`,headerName:`Country`,width:130,sortable:!0},{field:`status`,headerName:`Status`,width:120,sortable:!0}],p=[{id:1,name:`Alice Johnson`,email:`alice@company.com`,department:`Engineering`,salary:95e3,country:`USA`,status:`Active`},{id:2,name:`Bob Smith`,email:`bob@company.com`,department:`Marketing`,salary:75e3,country:`UK`,status:`Active`},{id:3,name:`Charlie Brown`,email:`charlie@company.com`,department:`Sales`,salary:82e3,country:`Canada`,status:`Active`},{id:4,name:`Diana Prince`,email:`diana@company.com`,department:`Engineering`,salary:105e3,country:`USA`,status:`Active`},{id:5,name:`Eve Wilson`,email:`eve@company.com`,department:`HR`,salary:68e3,country:`Australia`,status:`On Leave`},{id:6,name:`Frank Miller`,email:`frank@company.com`,department:`Engineering`,salary:98e3,country:`Germany`,status:`Active`},{id:7,name:`Grace Lee`,email:`grace@company.com`,department:`Marketing`,salary:79e3,country:`Singapore`,status:`Active`},{id:8,name:`Henry Taylor`,email:`henry@company.com`,department:`Sales`,salary:85e3,country:`USA`,status:`Active`},{id:9,name:`Iris Chen`,email:`iris@company.com`,department:`Engineering`,salary:102e3,country:`USA`,status:`Active`},{id:10,name:`Jack Davis`,email:`jack@company.com`,department:`Finance`,salary:91e3,country:`UK`,status:`Active`},{id:11,name:`Kate Martinez`,email:`kate@company.com`,department:`HR`,salary:72e3,country:`Spain`,status:`Active`},{id:12,name:`Leo Anderson`,email:`leo@company.com`,department:`Sales`,salary:88e3,country:`Canada`,status:`Active`}],m=(0,b.useMemo)(()=>[{id:`custom-action-1`,label:`Custom Action 1`,icon:`⭐`,onClick:()=>alert(`Custom Action 1 clicked!`)},{id:`custom-action-2`,label:`Custom Action 2`,icon:`🎯`,onClick:()=>alert(`Custom Action 2 clicked!`)},{type:`separator`},{id:`custom-danger`,label:`Danger Action`,icon:`⚠️`,danger:!0,onClick:()=>alert(`Danger action clicked!`)}],[]),h=(0,b.useMemo)(()=>({enabled:c,showCopy:e,showExport:n,showColumnOptions:i,showFilterByValue:o,customItems:u?m:[]}),[c,e,n,i,o,u,m]);return(0,Y.jsxs)(`div`,{style:{padding:`20px`,fontFamily:`system-ui, -apple-system, sans-serif`},children:[(0,Y.jsx)(`h1`,{style:{marginBottom:`10px`},children:`Context Menu Demo`}),(0,Y.jsx)(`p`,{style:{color:`#666`,marginBottom:`30px`},children:`Right-click on cells or column headers to see the context menu. Select multiple rows to test copy/export features.`}),(0,Y.jsxs)(`div`,{style:{backgroundColor:`#f8f9fa`,padding:`20px`,borderRadius:`8px`,marginBottom:`30px`,border:`1px solid #e0e0e0`},children:[(0,Y.jsx)(`h3`,{style:{marginTop:0,marginBottom:`15px`},children:`Context Menu Configuration`}),(0,Y.jsxs)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`20px`,marginBottom:`15px`},children:[(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>l(e.target.checked),style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Enable Context Menu`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:e,onChange:e=>t(e.target.checked),disabled:!c,style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Show Copy Options`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:n,onChange:e=>r(e.target.checked),disabled:!c,style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Show Export Options`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:i,onChange:e=>a(e.target.checked),disabled:!c,style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Show Column Options`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>s(e.target.checked),disabled:!c,style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Show Filter by Value`})]}),(0,Y.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:`8px`,cursor:`pointer`},children:[(0,Y.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked),disabled:!c,style:{width:`18px`,height:`18px`,cursor:`pointer`}}),(0,Y.jsx)(`span`,{children:`Show Custom Items`})]})]}),(0,Y.jsxs)(`div`,{style:{padding:`12px`,backgroundColor:`#fff`,borderRadius:`6px`,fontSize:`14px`,border:`1px solid #e0e0e0`},children:[(0,Y.jsx)(`strong`,{children:`💡 Try these actions:`}),(0,Y.jsxs)(`ul`,{style:{marginTop:`8px`,marginBottom:0,paddingLeft:`20px`},children:[(0,Y.jsx)(`li`,{children:`Right-click on any cell to copy, export, or filter`}),(0,Y.jsx)(`li`,{children:`Right-click on column headers to pin, auto-size, hide, or filter`}),(0,Y.jsx)(`li`,{children:`Select multiple rows (Ctrl/Cmd+Click) and right-click to copy/export selection`}),(0,Y.jsx)(`li`,{children:`Use "Auto-size All Columns" from header context menu to optimize all column widths`}),(0,Y.jsx)(`li`,{children:`Use "Resize to Fit" to auto-size a single column based on content`})]})]})]}),(0,Y.jsx)(`div`,{style:{height:`600px`,border:`1px solid #e0e0e0`,borderRadius:`8px`,overflow:`hidden`},children:(0,Y.jsx)(vi,{columns:f,rows:p,pageSize:20,contextMenuConfig:h,theme:`quartz`})}),(0,Y.jsxs)(`div`,{style:{marginTop:`40px`},children:[(0,Y.jsx)(`h2`,{children:`Context Menu Features`}),(0,Y.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(300px, 1fr))`,gap:`20px`,marginTop:`20px`},children:[(0,Y.jsxs)(`div`,{style:{padding:`20px`,backgroundColor:`#f8f9fa`,borderRadius:`8px`,border:`1px solid #e0e0e0`},children:[(0,Y.jsx)(`h3`,{style:{marginTop:0,fontSize:`16px`},children:`📋 Cell Context Menu`}),(0,Y.jsxs)(`ul`,{style:{paddingLeft:`20px`,fontSize:`14px`,lineHeight:`1.8`},children:[(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Copy`}),` - Copy selected cells to clipboard`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Copy with Headers`}),` - Include column headers`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Export Selected Range`}),` - Export to CSV`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Filter by Value`}),` - Quick filter shortcut`]})]})]}),(0,Y.jsxs)(`div`,{style:{padding:`20px`,backgroundColor:`#f8f9fa`,borderRadius:`8px`,border:`1px solid #e0e0e0`},children:[(0,Y.jsx)(`h3`,{style:{marginTop:0,fontSize:`16px`},children:`📌 Header Context Menu`}),(0,Y.jsxs)(`ul`,{style:{paddingLeft:`20px`,fontSize:`14px`,lineHeight:`1.8`},children:[(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Pin Left/Right`}),` - Pin column to side`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Unpin Column`}),` - Remove pin`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Auto-size This Column`}),` - Fit content`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Resize to Fit`}),` - Optimal width`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Auto-size All Columns`}),` - Fit all columns`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Hide Column`}),` - Hide from view`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`Filter by Value`}),` - Show unique values`]})]})]}),(0,Y.jsxs)(`div`,{style:{padding:`20px`,backgroundColor:`#f8f9fa`,borderRadius:`8px`,border:`1px solid #e0e0e0`},children:[(0,Y.jsx)(`h3`,{style:{marginTop:0,fontSize:`16px`},children:`⚙️ Configuration`}),(0,Y.jsxs)(`ul`,{style:{paddingLeft:`20px`,fontSize:`14px`,lineHeight:`1.8`},children:[(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`enabled`}),` - Enable/disable menu`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`showCopy`}),` - Toggle copy options`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`showExport`}),` - Toggle export options`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`showColumnOptions`}),` - Toggle column ops`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`showFilterByValue`}),` - Toggle filter`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`customItems`}),` - Add custom actions`]}),(0,Y.jsxs)(`li`,{children:[(0,Y.jsx)(`strong`,{children:`onBeforeShow`}),` - Customize menu dynamically`]})]})]})]})]}),(0,Y.jsxs)(`div`,{style:{marginTop:`40px`},children:[(0,Y.jsx)(`h2`,{children:`Code Example`}),(0,Y.jsx)(ip,{code:`import { DataGrid } from 'react-open-source-grid';
|
|
1246
1246
|
import type { Column, Row, ContextMenuConfig } from 'react-open-source-grid';
|
|
1247
1247
|
|
|
1248
1248
|
const columns: Column[] = [
|
package/dist/assets/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './index-
|
|
1
|
+
export * from './index-yNQpV202.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./index-
|
|
1
|
+
import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./index-yNQpV202.js";export{e as createPreset};
|
package/dist/index.html
CHANGED
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
}
|
|
71
71
|
})();
|
|
72
72
|
</script>
|
|
73
|
-
<script type="module" crossorigin src="/assets/index-
|
|
73
|
+
<script type="module" crossorigin src="/assets/index-yNQpV202.js"></script>
|
|
74
74
|
<link rel="stylesheet" crossorigin href="/assets/index-B400HUc-.css">
|
|
75
75
|
</head>
|
|
76
76
|
<body>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-open-source-grid",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.7.
|
|
4
|
+
"version": "1.7.16",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "A high-performance React DataGrid component with advanced features like virtual scrolling, infinite scrolling, tree data, market data mode, integrated charts with context menu, and more",
|
|
7
7
|
"main": "./dist/lib/index.cjs",
|