@kanunilabs/datagrid-react 1.6.0 → 1.8.0
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.
- package/dist/index.cjs +3 -2
- package/dist/index.d.cts +438 -5
- package/dist/index.d.ts +438 -5
- package/dist/index.js +3 -2
- package/dist/styles.css +633 -10
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import {createContext,memo,useState,useId,useRef,useEffect,useContext,useMemo,useCallback,useSyncExternalStore,useLayoutEffect,useReducer}from'react';import {getGridDictionary,isDetailRow,isEditFormRow,isFillerRow,isGroupRow,lookupLabel,fillText,summaryLabel,formatSummaryValue,summaryKey,GROUP_COLUMN_ID,summaryTypeLabels,pageButtonItems,describeFilter,filterLabels,computeHeaderBands,isChromeColumn,downloadBlob,ExportAbortedError,formatDateValue,foldText,DataGridController,themeClassName,attachStateStoring,isDataRow,inferColumns,isPackagedTheme,THEME_ROW_HEIGHT,DENSITY_ROW_HEIGHT,DEFAULT_ROW_HEIGHT,DEFAULT_MAX_SCROLL_OFFSET,calibrateMaxScrollOffset,RowMotion,datePeriodLabels,periodSuggestionList,parseFilterInput,FILTER_PART_ROW,createDebouncedCommit,FILTER_PART_SET,FILTER_PART_DEFAULT,selectedLabelsFromFilter,resolveGridCommand,bandDepth,allowedSummaryTypes,hasColSpans,spanRoleAt,normalizeSearch,isRtlLocale,chartNeedsOrder,filterInputFromNode,bandPath}from'@kanunilabs/datagrid-core';export{ClientRowModel,ColumnModel,DEFAULT_ROW_HEIGHT,DENSITY_ROW_HEIGHT,DataGridController,GRID_COLOR_SCHEMES,GRID_PALETTES,GRID_THEMES,GridStateStore,SUMMARY_TYPE_LABEL,THEME_ROW_HEIGHT,VirtualWindowEngine,allowedSummaryTypes,andFilters,attachStateStoring,bandDepth,bandPath,computeColumnLayout,computeHeaderBands,createRestDataSource,describeFilter,downloadBlob,fillText,filterInputFromNode,formatSummaryValue,humanizeField,importCsv,inferColumns,isDataRow,isDataSource,isFilterGroup,isGroupRow,isPackagedTheme,lookupLabel,moveRowInArray,parseCsv,parseFilterInput,sniffDelimiter,summaryKey,summaryLabel,summaryTypeLabels,themeClassName}from'@kanunilabs/datagrid-core';import {createPortal,flushSync}from'react-dom';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var Ki=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"];function fo(t){let e=t.sorting?.postSort,n=useRef(e);useEffect(()=>{n.current=e;},[e]);let[a]=useState(()=>((I,c)=>n.current?.(I,c))),l=()=>new DataGridController(e?{...t,sorting:{...t.sorting,postSort:a}}:t),[i,s]=useState(l);useEffect(()=>{if(i.isDisposed()){s(l());return}return ()=>i.dispose()},[i]);let p=useRef(0),R=useCallback(I=>{let c=()=>{p.current++,I();},y=Ki.map(L=>i.events.on(L,c));return ()=>y.forEach(L=>L())},[i]),f=useCallback(()=>p.current,[]);useSyncExternalStore(R,f,f);let{dataSource:m,columns:v}=t,C=useRef(true);useEffect(()=>{if(C.current){C.current=false;return}Array.isArray(m)&&i.setData(m);},[i,m]);let k=useRef(true);useEffect(()=>{if(k.current){k.current=false;return}i.setColumns(v);},[i,v]);let G=t.pagination?t.pagination.enabled!==false:false;useEffect(()=>{i.setPaginationEnabled(G);},[i,G]);let P=t.rowHeight,S=useRef(true);useEffect(()=>{if(S.current){S.current=false;return}P!==void 0&&i.setRowHeight(P);},[i,P]);let h=t.selection?.mode??"none";useEffect(()=>{i.setSelectionMode(h);},[i,h]);let E=t.rowPinning;useEffect(()=>{i.setRowPinning(E);},[i,E]);let u=t.selection?.isRowSelectable,N=useRef(true);useEffect(()=>{if(N.current){N.current=false;return}i.setRowSelectable(u??null);},[i,u]);let B=e!==void 0,F=useRef(true);useEffect(()=>{if(F.current){F.current=false;return}i.setPostSort(B?a:null);},[i,B,a]);let W=t.grouping?.groupBy??null,g=JSON.stringify(W==null?[]:typeof W=="string"?[W]:W),M=useRef(true);return useEffect(()=>{if(M.current){M.current=false;return}i.groupBy(JSON.parse(g));},[i,g]),{controller:i,rows:i.getRows(),window:i.getVirtualWindow(),layout:i.getColumnLayout(),sort:i.getSort(),rowHeight:i.getRowHeight(),visibleCount:i.getVisibleCount(),totalCount:i.getTotalCount()}}var xn=0,wo=5e3;function $i(t){if(t===void 0||t===false)return null;let e=t===true?{}:t;return {always:e.always??false,maxRows:e.maxRows??wo}}function Wi(t,e){return t<=e}function ho(t,e){let n=$i(e),a=n!==null,l=n?.always??false,i=n?.maxRows??wo,[s,p]=useState(false),R=useCallback(()=>p(true),[]),f=useCallback(()=>p(false),[]);useEffect(()=>{if(!a||l||typeof window>"u"||typeof window.addEventListener!="function")return;let v=()=>{let k=t.getRows().length;if(!Wi(k,i)){t.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${k} rows exceeds maxRows (${i}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}flushSync(()=>p(true));},C=()=>flushSync(()=>p(false));return window.addEventListener("beforeprint",v),window.addEventListener("afterprint",C),()=>{window.removeEventListener("beforeprint",v),window.removeEventListener("afterprint",C);}},[a,l,i,t]);let m=l||s;return useEffect(()=>{if(!m||typeof document>"u")return;let v=document.documentElement;return xn++,v.classList.add("kanuni-datagrid-printing"),()=>{xn--,xn<=0&&(xn=0,v.classList.remove("kanuni-datagrid-printing"));}},[m]),{active:m,begin:R,end:f}}var Dn=new Map,bo=new Set;function jr(t,e){let n=Dn.get(t);return n?[...n].filter(a=>a!==e):[]}function Ro(t,e,n){let a=useRef(null);return useEffect(()=>{if(!e)return;let i={controller:t,scroller:()=>n.current};a.current=i;let s=Dn.get(e)??new Set;s.add(i),Dn.set(e,s);let p=t.events.on("columnStateChanged",()=>{if(bo.has(e))return;let R=jr(e,i);if(R.length===0)return;let f=t.getColumnStates();bo.add(e);try{for(let m of R)m.controller.applyColumnStates(f);}finally{bo.delete(e);}});return ()=>{p(),s.delete(i),s.size===0&&Dn.delete(e),a.current=null;}},[t,e,n]),{syncScroll:useCallback(i=>{let s=a.current;if(!e||!s)return;let p=jr(e,s);if(p.length!==0)for(let R of p){let f=R.scroller();f&&f.scrollLeft!==i&&(f.scrollLeft=i);}},[e])}}function Gn(t,e,n){return t==="left"?e:t==="center"?n.left+e:n.left+n.center+e}function Qr(t,e){let{start:n,end:a}=e.columns,l=t.centerOffsets,i=l[n]??0,s=(l[a]??0)-i,p=Math.max(0,t.centerWidth-i-s),R=i,f=t.center.slice(n,a),m=Array.from({length:f.length},(k,G)=>n+G),v=t.stickyIndices.filter(k=>k<n);if(v.length>0){let k=v.map(G=>t.center[G]);R-=k.reduce((G,P)=>G+P.state.width,0),f=[...k,...f],m=[...v,...m];}let C=new Map;for(let k of t.stickyIndices){let G=t.centerStickyOffsets[k];G!==null&&C.set(t.center[k].state.id,G);}return {centerColumns:f,centerIndices:m,leadingSpacer:Math.max(0,R),trailingSpacer:p,rowStart:e.rows.start,rowEnd:e.rows.end,stickyInsets:C}}function ea(t){let e=[];for(let n=0;n<t.length;n++){let a=t[n];a&&a.kind!=="data"&&e.push(n);}return e.length>0?e:null}function ta(t,e,n=0){if(!e)return n+t+1;let a=0,l=e.length;for(;a<l;){let i=a+l>>1;e[i]<t?a=i+1:l=i;}return n+t-a+1}var oa=createContext(getGridDictionary("en"));function yo({locale:t,messages:e,children:n}){let a=useMemo(()=>getGridDictionary(t,e),[t,e]);return jsx(oa.Provider,{value:a,children:n})}function le(){return useContext(oa)}var En=36,Nn=28,Kt=60,al=[["rowNumberColumn",Kt],["detailColumn",Nn],["checkboxColumn",En]];function Go(t,e,n=false){return lt({checkboxColumn:t,detailColumn:e,rowNumberColumn:n}).total}function lt(t){let e=new Map,n=new Map,a=0,l=0;for(let[i,s]of al)t[i]&&(e.set(i,a),n.set(i,++l),a+=s);return {total:a,count:l,inset:i=>e.get(i)??0,colIndex:i=>n.get(i)??1}}function vo(t){return t?t.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function To(t,e,n){return t?t.kind==="covered"?e?n():null:jsx("div",{className:"kanuni-datagrid-span-box",style:{height:t.height},children:n()}):n()}function xo(t,e){let n=t??(e==="number"||e==="bigint"?"right":"left");return n==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":n==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function Sn(t,e){if(e===""||t==="")return t;let n=foldText(t),a=n.indexOf(e);if(a===-1)return t;let l=[],i=0,s=0;for(;a!==-1;)a>i&&l.push(t.slice(i,a)),l.push(jsx("mark",{className:"kanuni-datagrid-highlight",children:t.slice(a,a+e.length)},s++)),i=a+e.length,a=n.indexOf(e,i);return i<t.length&&l.push(t.slice(i)),l}function il(t,e,n,a=""){if(t.renderCell)return t.renderCell({value:e,row:n.data,node:n,column:t});let l=lookupLabel(t,e);if(l!==null)return Sn(l,a);if(t.valueFormatter){let i=t.valueFormatter(e,n.data);return typeof i=="string"?Sn(i,a):i}return t.dateFormat&&t.dataType==="date"?Sn(formatDateValue(e,t.dateFormat),a):e==null?"":Sn(String(e),a)}function ll({gridId:t,node:e,index:n,layout:a,columnModel:l,centerColumns:i,centerIndices:s,stickyInsets:p,leadingSpacer:R,trailingSpacer:f,striped:m,selected:v,ariaSelectable:C=true,selectable:k=true,groupSelection:G,onToggleGroupSelect:P,groupDisplay:S="fullWidth",focusedColumnId:h,rowFocused:E=false,renderRow:u,checkboxColumn:N,rowNumberColumn:B=false,rowNumber:F=null,getNote:W,getSpan:g,resolveColSpans:M,findKind:I,headerRowCount:c,onRowClick:y,onRowMouseDown:L,onRowDoubleClick:Z,onToggleSelect:de,onCellMouseDown:ce,onRowContextMenu:Ze,searchNeedle:Le="",onToggleGroup:ue,summaryDefs:Ge,detailColumn:Ne=false,detailExpanded:Ce=false,onToggleDetail:Fe,onToggleTreeRow:te,renderDetail:ae,renderEditForm:re,renderCellContent:ge,getCellClassName:pe,onCellPointerDown:ye,onCellPointerEnter:he,onCellDoubleClick:se,rowDrag:ie,dropSide:T=null,height:Y}){let O=le();if(isDetailRow(e))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+c,"data-row-key":String(e.key),"data-detail-for":String(e.parentKey),style:{height:e.height},children:jsx("div",{className:"kanuni-datagrid-detail-cell",role:"gridcell","aria-colindex":1,children:ae?.(e.data)})});if(isEditFormRow(e))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+c,"data-row-key":String(e.key),"data-editform-for":e.parentKey===null?"":String(e.parentKey),style:{height:e.height},children:jsx("div",{className:"kanuni-datagrid-editform-cell",role:"gridcell","aria-colindex":1,children:e.parentKey===null?null:re?.(e.parentKey,e.data)})});if(isFillerRow(e))return null;if(isGroupRow(e)&&S==="fullWidth"){let b=l.getDef(e.columnId),K=b?.headerName??e.columnId,U=lookupLabel(b,e.value)??e.display??(e.label===""?O.filterBlank:e.label),ee=e.aggregates??null;return jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${e.level}${h?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+c,"aria-expanded":e.expanded,"aria-level":e.level+1,"data-row-key":String(e.key),"data-group-key":String(e.key),"data-group-level":e.level,onClick:()=>ue?.(String(e.key)),children:jsxs("div",{className:"kanuni-datagrid-group-cell",role:"gridcell","aria-colindex":1,id:`${t}-cell-${String(e.key)}-__group`,style:e.level>0?{paddingLeft:8+e.level*18}:void 0,children:[G&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:G==="all",ref:D=>{D&&(D.indeterminate=G==="some");},"aria-label":fillText(O.selectGroupAria,{count:String(e.count),group:U}),onChange:()=>P?.(String(e.key)),onClick:D=>D.stopPropagation(),onMouseDown:D=>D.stopPropagation()}),jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:e.expanded?"\u25BE":"\u25B8"}),jsxs("span",{className:"kanuni-datagrid-group-caption",children:[K,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:U}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",e.count,")"]}),ee&&Ge?.map(D=>jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[summaryLabel(D)," ",l.getDef(D.columnId)?.headerName??D.columnId,":"]})," ",formatSummaryValue(D,ee[summaryKey(D.columnId,D.type)],l.getDef(D.columnId))]},summaryKey(D.columnId,D.type)))]})})}let j=[],J=lt({rowNumberColumn:B,detailColumn:Ne,checkboxColumn:N}),Se=J.count,A=(b,K)=>({node:e,columnId:b,rowIndex:n,columnIndex:K,value:x?void 0:l.getCellValue(e.data,b)}),_=(b,K)=>{let U=()=>A(b,K);return {role:"gridcell",id:`${t}-cell-${String(e.key)}-${b}`,"aria-colindex":Se+K+1,"data-column-id":b,onMouseDown:ee=>{ce?.(e,b),ye?.(U(),ee);},onMouseEnter:he?ee=>he(U(),ee):void 0,onDoubleClick:se?()=>se(U()):void 0}},X=e.kind==="data"||e.kind==="treePath"?e.tree:void 0,fe=e.kind==="treePath",x=isGroupRow(e)?e:null,Be=fe||x!==null,me=x?S==="column"?GROUP_COLUMN_ID:(a.left[0]??a.center[0]??a.right[0])?.state.id??null:null,ve=()=>{let b=x,K=l.getDef(b.columnId),U=lookupLabel(K,b.value)??b.display??(b.label===""?O.filterBlank:b.label);return jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:b.level*16},children:[jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:b.expanded?"\u25BE":"\u25B8"}),S!=="column"&&jsxs("span",{className:"kanuni-datagrid-group-caption",children:[K?.headerName??b.columnId,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:U}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",b.count,")"]})]})},ke=(b,K)=>{let U=x.aggregates?Ge?.find(ee=>ee.columnId===K):void 0;return U?jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:formatSummaryValue(U,x.aggregates[summaryKey(K,U.type)],b)}):null},Ve=X?(a.left[0]??a.center[0]??a.right[0])?.state.id??null:null,Ke=(b,K,U)=>{if(x){if(K===me)return ve();if(ge){let D=ge(A(K,U));if(D!==void 0)return D}return ke(b,K)}if(ge&&!fe){let D=ge(A(K,U));if(D!==void 0)return D}let ee=fe?K===Ve?jsx("span",{className:"kanuni-datagrid-tree-path-label",children:e.label}):null:il(b,l.getCellValue(e.data,K),e,Le);return X&&K===Ve?jsxs("span",{className:X.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:X.depth*16},children:[X.hasChildren?jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":X.expanded,"aria-label":X.expanded?O.collapseTreeRow:O.expandTreeRow,onClick:D=>{D.stopPropagation(),te?.(e.key);},children:X.expanded?"\u25BE":"\u25B8"}):jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),ee]}):ee},Ie=(b,K)=>{if(!pe||x)return "";let U=pe(A(b,K));return U?` ${U}`:""},$=b=>!W||e.kind!=="data"?"":W(e.key,b,e.data)?" kanuni-datagrid-cell--noted":"",r=b=>g&&e.kind==="data"?g(n,b):null,ze=(b,K)=>{let U=b.autoHeight?" kanuni-datagrid-cell--wrap":"";return !b.cellClassName||Be?U:U+Xt(b,K)},Xt=(b,K)=>{let U=b.cellClassName;if(!U)return "";if(typeof U=="string")return ` ${U}`;let ee=e.data,D=U({value:l.getCellValue(ee,K),row:ee,node:e,column:b});return D?` ${D}`:""};if(B){let b=e.kind==="data"&&F!==null;j.push(jsx("div",{role:"gridcell","aria-colindex":J.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:Kt,insetInlineStart:J.inset("rowNumberColumn")},children:b?F:""},"__rownum"));}Ne&&j.push(jsx("div",{role:"gridcell","aria-colindex":J.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:Nn,insetInlineStart:J.inset("detailColumn")},children:Be?null:jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Ce,"aria-label":Ce?O.collapseDetails:O.expandDetails,onClick:b=>{b.stopPropagation(),Fe?.(e.key);},children:Ce?"\u25BE":"\u25B8"})},"__detail")),N&&j.push(jsx("div",{role:"gridcell","aria-colindex":J.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:En,insetInlineStart:J.inset("checkboxColumn")},onMouseDown:b=>b.stopPropagation(),onClick:b=>{b.target.tagName!=="INPUT"&&(b.stopPropagation(),de?.(e));},children:x?G&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:G==="all",ref:b=>{b&&(b.indeterminate=G==="some");},"aria-label":fillText(O.selectGroupAria,{count:String(x.count),group:x.display??x.label}),onChange:()=>P?.(String(x.key)),onClick:b=>b.stopPropagation(),onMouseDown:b=>b.stopPropagation()}):fe?null:jsx("input",{type:"checkbox",checked:v,disabled:!k,tabIndex:-1,"aria-label":fillText(O.selectRowAria,{row:String(e.key)}),onChange:()=>de?.(e),onClick:b=>b.stopPropagation(),onMouseDown:b=>b.stopPropagation()})},"__select"));let be=J.total,mt=b=>h===b?" kanuni-datagrid-cell--focused":"",dt=b=>{let K=I&&e.kind==="data"?I(e.key,b):null;return K==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":K==="match"?" kanuni-datagrid-cell--find-match":""},je={left:a.left.length,center:a.center.length},Qe=e.kind==="data"&&M?M(e):null,ut=b=>Qe?.widths.get(b.state.id)??b.state.width,ct=b=>{let K=Qe?.spans.get(b);return K?{"aria-colspan":K}:null};a.left.forEach((b,K)=>{let U=b.def,ee=K===a.left.length-1,D=b.state.id;if(Qe?.covered.has(D))return;let Ee=Gn("left",K,je);j.push(jsx("div",{..._(D,Ee),className:`${xo(U.align,U.dataType)} kanuni-datagrid-cell--pinned${ee?" kanuni-datagrid-pin-edge-left":""}${mt(D)}${dt(D)}${ze(U,D)}${Ie(D,Ee)}${$(D)}${vo(r(D))}`,...ct(D),style:{width:ut(b),insetInlineStart:a.leftOffsets[K]+be},children:To(r(D),h===D,()=>Ke(U,D,Ee))},D));});let et=Qe?.lead??null,Ye=R-(Qe?.leadingDelta??0),qt=f-(Qe?.trailingDelta??0);Ye>0&&j.push(jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Ye}},"__lead"));let Jt=(b,K)=>{let U=b.def,ee=b.state.id,D=Gn("center",K,je),Ee=p?.get(ee),Nt=Ee===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",jt=et&&et.column.state.id===ee?et.width:ut(b);return jsx("div",{..._(ee,D),...ct(ee),className:`${xo(U.align,U.dataType)}${Nt}${mt(ee)}${dt(ee)}${ze(U,ee)}${Ie(ee,D)}${$(ee)}${vo(r(ee))}`,style:Ee===void 0?{width:jt}:{width:jt,insetInlineStart:Ee+be},children:To(r(ee),h===ee,()=>Ke(U,ee,D))},ee)},Zt=et?a.center.indexOf(et.column):-1,at=et===null;return i.forEach((b,K)=>{let U=s?.[K]??K;!at&&U>Zt&&(j.push(Jt(et.column,Zt)),at=true),!Qe?.covered.has(b.state.id)&&j.push(Jt(b,U));}),at||j.push(Jt(et.column,Zt)),qt>0&&j.push(jsx("div",{className:"kanuni-datagrid-spacer",style:{width:qt}},"__trail")),a.right.forEach((b,K)=>{let U=b.def,ee=K===0,D=b.state.id;if(Qe?.covered.has(D))return;let Ee=Gn("right",K,je);j.push(jsx("div",{..._(D,Ee),className:`${xo(U.align,U.dataType)} kanuni-datagrid-cell--pinned${ee?" kanuni-datagrid-pin-edge-right":""}${mt(D)}${dt(D)}${ze(U,D)}${Ie(D,Ee)}${$(D)}${vo(r(D))}`,...ct(D),style:{width:ut(b),insetInlineEnd:a.rightOffsets[K]},children:To(r(D),h===D,()=>Ke(U,D,Ee))},D));}),jsxs("div",{className:`kanuni-datagrid-row${m&&n%2===1?" kanuni-datagrid-row--odd":""}${v?" kanuni-datagrid-row--selected":""}${E?" kanuni-datagrid-row--focused":""}${fe?" kanuni-datagrid-row--tree-path":""}${x?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${x.level}`:""}${T?` kanuni-datagrid-row--drop-${T}`:""}`,role:"row","aria-rowindex":n+1+c,"aria-selected":x||!C?void 0:v,"aria-expanded":x?x.expanded:void 0,"aria-level":x?x.level+1:void 0,"data-row-key":String(e.key),"data-group-key":x?String(x.key):void 0,"data-group-level":x?x.level:void 0,style:Y===void 0?void 0:{height:Y},draggable:ie?.draggable&&!x?true:void 0,onDragStart:ie&&!x?b=>ie.onDragStart(e,b):void 0,onDragEnd:ie&&!x?()=>ie.onDragEnd():void 0,onDragOver:ie&&!x?b=>ie.onDragOver(e,b):void 0,onDrop:ie&&!x?b=>ie.onDrop(e,b):void 0,onMouseDown:L&&!x?b=>L(e,b):void 0,onClick:x?()=>ue?.(String(x.key)):y?b=>y(e,n,b):void 0,onDoubleClick:Z?b=>Z(e,n,b):void 0,onContextMenu:Ze?b=>Ze(e,n,b):void 0,children:[ie&&!x&&jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:O.dragToReorder,onMouseEnter:()=>ie.setDraggable(true),onMouseLeave:()=>ie.setDraggable(false),children:jsx("svg",{width:"10",height:"14",viewBox:"0 0 10 14",focusable:"false",children:jsxs("g",{fill:"currentColor",children:[jsx("circle",{cx:"3",cy:"3",r:"1.2"}),jsx("circle",{cx:"7",cy:"3",r:"1.2"}),jsx("circle",{cx:"3",cy:"7",r:"1.2"}),jsx("circle",{cx:"7",cy:"7",r:"1.2"}),jsx("circle",{cx:"3",cy:"11",r:"1.2"}),jsx("circle",{cx:"7",cy:"11",r:"1.2"})]})})}),u&&e.kind==="data"?u({row:e.data,node:e,rowIndex:n,selected:v,focused:E}):j]})}var _t=memo(ll);var $t=26;function So(t,e){return computeHeaderBands(t,e)}function Eo(t,e=""){return `kanuni-datagrid-band-cell${t.spacer?" kanuni-datagrid-band-cell--spacer":""}${e}`}function No(t,e){let n=jsx("span",{className:"kanuni-datagrid-band-label",children:t.label});if(!e||t.spacer||t.columnIds.length===0)return n;let a=e.pathOf(t.columnIds[0]).slice(0,t.level+1);if(a.length!==t.level+1||!e.collapsible(a))return n;let l=e.collapsed(a);return jsxs(Fragment,{children:[jsx("button",{type:"button",className:"kanuni-datagrid-band-toggle","aria-expanded":!l,"aria-label":l?e.labels.expand:e.labels.collapse,title:l?e.labels.expand:e.labels.collapse,onClick:i=>{i.stopPropagation(),e.onToggle(a);},children:jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),jsx("path",{d:"M5 8h6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),l&&jsx("path",{d:"M8 5v6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}),n]})}function ul({layout:t,centerColumns:e,leadingSpacer:n,trailingSpacer:a,depth:l,checkboxColumn:i=false,detailColumn:s=false,rowNumberColumn:p=false,rowHeight:R=$t,bandFold:f}){if(l<=0)return null;let m=lt({rowNumberColumn:p,detailColumn:s,checkboxColumn:i}).total,v=So(t.left,l),C=So(e,l),k=So(t.right,l),G=(P,S,h)=>{let E=h;for(let u=0;u<S;u++)E+=P[u].width;return E};return jsx(Fragment,{children:Array.from({length:l},(P,S)=>jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":S+1,style:{width:t.totalWidth+m,height:R,top:S*R},children:[m>0&&jsx("div",{className:"kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned",style:{width:m,insetInlineStart:0},"aria-hidden":"true"}),(v[S]??[]).map((h,E)=>jsx("div",{className:Eo(h,` kanuni-datagrid-band-cell--pinned${E===(v[S]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:h.spacer?"presentation":"columnheader","aria-colspan":h.spacer?void 0:h.columnIds.length,style:{width:h.width,insetInlineStart:G(v[S]??[],E,m)},title:h.spacer?void 0:h.label,children:No(h,f)},h.columnIds[0])),n>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(C[S]??[]).map(h=>jsx("div",{className:Eo(h),role:h.spacer?"presentation":"columnheader","aria-colspan":h.spacer?void 0:h.columnIds.length,style:{width:h.width},title:h.spacer?void 0:h.label,children:No(h,f)},h.columnIds[0])),a>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),(k[S]??[]).map((h,E)=>{let u=k[S]??[],N=0;for(let B=E+1;B<u.length;B++)N+=u[B].width;return jsx("div",{className:Eo(h,` kanuni-datagrid-band-cell--pinned${E===0?" kanuni-datagrid-pin-edge-right":""}`),role:h.spacer?"presentation":"columnheader","aria-colspan":h.spacer?void 0:h.columnIds.length,style:{width:h.width,insetInlineEnd:N},title:h.spacer?void 0:h.label,children:No(h,f)},h.columnIds[0])})]},S))})}var Po=memo(ul);var fl=()=>jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"0.6",strokeLinejoin:"round"})});function wl(t,e){return t.renderHeader?t.renderHeader({column:t}):t.headerName??t.field??e}function hl({bandOffset:t=0,stickyInsets:e,layout:n,centerColumns:a,leadingSpacer:l,trailingSpacer:i,sort:s,sortable:p,onSort:R,headerFilter:f=false,filteredColumns:m,onOpenFilter:v,filterIconMode:C="hover",checkboxColumn:k=false,detailColumn:G=false,rowNumberColumn:P=false,rowNumberHeader:S="#",selectAllState:h="none",selectAllDisabled:E=false,onToggleSelectAll:u,draggable:N=false,reorderable:B=false,onReorder:F,resizable:W=false,onResize:g,onAutoFit:M,onHeaderContextMenu:I,groupLevels:c,onHeaderClick:y,getHeaderClassName:L,renderHeaderLabel:Z}){let de=le(),ce=lt({rowNumberColumn:P,detailColumn:G,checkboxColumn:k}),Ze=new Map(s.map((A,_)=>[A.columnId,{direction:A.direction,order:_}])),Le=new Set(m??[]),ue=[...n.left.map(A=>A.state.id),...a.map(A=>A.state.id),...n.right.map(A=>A.state.id)],[Ge,Ne]=useState(null),Ce=useId(),Fe=Ge&&ue.includes(Ge)?Ge:ue[0],te=A=>{Ne(A),document.querySelector(`[data-column-id="${A}"].kanuni-datagrid-header-cell`)?.focus();},ae=A=>{let _=ue.indexOf(Fe),X=Math.min(ue.length-1,Math.max(0,_+A));X!==_&&te(ue[X]);},re=useRef(null),ge=useRef(false),[pe,ye]=useState(null),he=ue,se=A=>[...n.left,...n.center,...n.right].find(_=>_.state.id===A)?.state.pinned??null,ie=(A,_)=>(ge.current?A>_.left+_.width/2:A<_.left+_.width/2)?"before":"after",T=(A,_)=>{let X=re.current;if(!B||!X||X===A||se(X)!==se(A))return;_.preventDefault(),_.dataTransfer.dropEffect="move";let fe=ie(_.clientX,_.currentTarget.getBoundingClientRect());ye(x=>x?.id===A&&x.side===fe?x:{id:A,side:fe});},Y=(A,_)=>{let X=re.current;if(ye(null),!B||!X||X===A||se(X)!==se(A))return;if(_.preventDefault(),_.stopPropagation(),ie(_.clientX,_.currentTarget.getBoundingClientRect())==="before")F?.(X,A);else {let x=he[he.indexOf(A)+1];F?.(X,x===X?he[he.indexOf(A)+2]:x);}re.current=null;},[O,j]=useState(null),J=(A,_)=>{if(!W)return;_.preventDefault(),_.stopPropagation();let X=_.currentTarget,fe=_.clientX,x=A.state.width,Be=ge.current?-1:1,me=A.state.id;j(me),X.setPointerCapture(_.pointerId);let ve=x,ke=false,Ve=Ie=>{ke=true,ve=x+(Ie.clientX-fe)*Be,g?.(me,ve,false);},Ke=()=>{X.releasePointerCapture?.(_.pointerId),X.removeEventListener("pointermove",Ve),X.removeEventListener("pointerup",Ke),X.removeEventListener("pointercancel",Ke),ke&&g?.(me,ve,true),j(null);};X.addEventListener("pointermove",Ve),X.addEventListener("pointerup",Ke),X.addEventListener("pointercancel",Ke);},Se=(A,_,X)=>{let fe=A.def,x=A.state.id,Be=p&&fe.sortable!==false,me=f&&fe.filterable!==false,ve=x===GROUP_COLUMN_ID,ke=Ze.get(ve?c?.[0]??x:x),Ve=N&&fe.groupable!==false||B&&fe.reorderable!==false,Ke=pe?.id===x?pe.side:null,Ie=L?.(x);return jsxs("div",{className:`kanuni-datagrid-header-cell${_}${Ie?` ${Ie}`:""}${Be?" kanuni-datagrid-header-cell--sortable":""}${Ke?` kanuni-datagrid-header-cell--drop-${Ke}`:""}${O===x?" kanuni-datagrid-header-cell--resizing":""}`,style:X,role:"columnheader","aria-labelledby":`${Ce}-${encodeURIComponent(x)}`,"aria-sort":ke?ke.direction==="asc"?"ascending":"descending":"none","data-column-id":x,tabIndex:x===Fe?0:-1,onFocus:()=>Ne(x),draggable:Ve&&O===null,onDragStart:$=>{$.dataTransfer.setData("text/x-kanuni-column",x),$.dataTransfer.effectAllowed="move",re.current=x,ge.current=getComputedStyle($.currentTarget).direction==="rtl";},onDragEnd:()=>{re.current=null,ye(null);},onDragOver:B?$=>T(x,$):void 0,onDragLeave:B?()=>ye($=>$?.id===x?null:$):void 0,onDrop:B?$=>Y(x,$):void 0,onContextMenu:I&&!isChromeColumn(x)?$=>I(x,$):void 0,onClick:Be||y?$=>{y?.(x,$)||Be&&R(x,$.shiftKey);}:void 0,onKeyDown:$=>{$.key==="ArrowRight"?($.preventDefault(),ae(1)):$.key==="ArrowLeft"?($.preventDefault(),ae(-1)):$.key==="Home"?($.preventDefault(),te(ue[0])):$.key==="End"?($.preventDefault(),te(ue[ue.length-1])):me&&$.altKey&&$.key==="ArrowDown"?($.preventDefault(),v?.(x,$.currentTarget)):Be&&($.key==="Enter"||$.key===" ")&&($.preventDefault(),R(x,$.shiftKey));},children:[jsx("span",{className:"kanuni-datagrid-header-label",id:`${Ce}-${encodeURIComponent(x)}`,children:Z?.(x)??wl(fe,x)}),ke&&jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:ke.direction==="asc"?"\u25B2":"\u25BC"}),ke&&s.length>1&&!ve&&jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:ke.order+1}),f&&fe.filterable!==false&&jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${Le.has(x)?" kanuni-datagrid-filter-button--active":""}${C==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":fillText(de.filterColumnAria,{column:fe.headerName??x}),"aria-haspopup":"dialog","data-filter-button":x,tabIndex:-1,onClick:$=>{$.stopPropagation(),v?.(x,$.currentTarget);},children:jsx(fl,{})}),W&&fe.resizable!==false&&jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":x,role:"presentation",onPointerDown:$=>J(A,$),onDoubleClick:$=>{$.stopPropagation(),M?.(x);},onClick:$=>$.stopPropagation()})]},x)};return jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(t/$t)+1,style:{width:n.totalWidth+ce.total,top:t||void 0},children:[P&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":ce.colIndex("rowNumberColumn"),"aria-label":de.rowNumberAria,style:{width:Kt,insetInlineStart:ce.inset("rowNumberColumn")},children:S??""}),G&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":ce.colIndex("detailColumn"),"aria-label":de.detailsAria,style:{width:Nn,insetInlineStart:ce.inset("detailColumn")}}),k&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":ce.colIndex("checkboxColumn"),style:{width:En,insetInlineStart:ce.inset("checkboxColumn")},children:jsx("input",{type:"checkbox",checked:h==="all",ref:A=>{A&&(A.indeterminate=h==="some");},"aria-label":de.selectAllRows,disabled:E,onChange:()=>u?.()})}),n.left.map((A,_)=>Se(A,` kanuni-datagrid-header-cell--pinned${_===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:A.state.width,insetInlineStart:n.leftOffsets[_]+ce.total})),l>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),a.map(A=>{let _=e?.get(A.state.id);return _===void 0?Se(A,"",{width:A.state.width}):Se(A," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:A.state.width,insetInlineStart:_+ce.total})}),i>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:i}}),n.right.map((A,_)=>Se(A,` kanuni-datagrid-header-cell--pinned${_===0?" kanuni-datagrid-pin-edge-right":""}`,{width:A.state.width,insetInlineEnd:n.rightOffsets[_]}))]})}var Io=memo(hl);function Ho(t,e,n=[]){let a=null,l=new Set,i=s=>{if(l.has(s)||(l.add(s),e.isPending(s)))return;let p=e.textFor(s);if(p===null)return;let R=t[s]??"";R!==p&&(R===""&&p===""||(a??={...t},a[s]=p));};for(let s of Object.keys(t))i(s);for(let s of n)i(s);return a??t}function Rl({bandOffset:t=0,stickyInsets:e,layout:n,centerColumns:a,leadingSpacer:l,trailingSpacer:i,values:s,checkboxColumn:p=false,detailColumn:R=false,rowNumberColumn:f=false,placeholder:m,onChange:v,onCommit:C,periodSuggestions:k,periodListId:G}){let P=le(),S=lt({rowNumberColumn:f,detailColumn:R,checkboxColumn:p}),h=m??P.filterPlaceholder,E=(u,N,B)=>{let F=u.state.id,W=u.def.filterable!==false;return jsx("div",{className:`kanuni-datagrid-filter-cell${N}`,style:B,"data-column-id":F,children:W&&jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:s[F]??"",placeholder:h,"aria-label":fillText(P.filterColumnAria,{column:u.def.headerName??F}),"data-filter-for":F,list:u.def.dataType==="date"&&G?G:void 0,onChange:g=>v(F,g.target.value),onKeyDown:g=>{g.key==="Enter"&&C?.(F,g.target.value);},onBlur:g=>C?.(F,g.target.value)})},F)};return jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+S.total,"--dg-band-offset":`${t}px`},children:[G&&k&&k.length>0&&jsx("datalist",{id:G,children:k.map(u=>jsx("option",{value:u},u))}),S.total>0&&jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",style:{width:S.total,insetInlineStart:0}}),n.left.map((u,N)=>E(u,` kanuni-datagrid-filter-cell--pinned${N===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:u.state.width,insetInlineStart:n.leftOffsets[N]+S.total})),l>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),a.map(u=>{let N=e?.get(u.state.id);return N===void 0?E(u,"",{width:u.state.width}):E(u," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:u.state.width,insetInlineStart:N+S.total})}),i>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:i}}),n.right.map((u,N)=>E(u,` kanuni-datagrid-filter-cell--pinned${N===0?" kanuni-datagrid-pin-edge-right":""}`,{width:u.state.width,insetInlineEnd:n.rightOffsets[N]}))]})}var Ao=memo(Rl);var sa=createContext("");function $o({theme:t,density:e,palette:n,children:a}){let l=useMemo(()=>themeClassName(t,e,n),[t,e,n]);return jsx(sa.Provider,{value:l,children:a})}function Wo(){return useContext(sa)}function ot({children:t,dark:e=false}){let[n,a]=useState(null),l=Wo();return useEffect(()=>{let i=document.createElement("div");return i.className=`kanuni-datagrid-root kanuni-datagrid-portal${e?" kanuni-datagrid-dark":""}${l}`,document.body.appendChild(i),a(i),()=>{i.remove();}},[e,l]),n?createPortal(t,n):null}function nn({anchor:t,onClose:e,margin:n=8,autoFocus:a=false}){let l=useRef(null),[i,s]=useState(t),p=useCallback(R=>{if(l.current=R,!R)return;let f=R.getBoundingClientRect(),m=t.top+f.height+n>window.innerHeight,v=t.top-f.height-n*2,C=m&&v>n?v:t.top;s({left:Math.max(n,Math.min(t.left,window.innerWidth-f.width-n)),top:Math.max(n,Math.min(C,window.innerHeight-f.height-n))}),a&&R.focus();},[t.left,t.top,n,a]);return useEffect(()=>{let R=v=>{let C=l.current;C&&!C.contains(v.target)&&e();},f=v=>{v.key==="Escape"&&e();},m=v=>{let C=l.current,k=v.target;C&&k instanceof Node&&C.contains(k)||e();};return document.addEventListener("mousedown",R),document.addEventListener("keydown",f),window.addEventListener("scroll",m,true),()=>{document.removeEventListener("mousedown",R),document.removeEventListener("keydown",f),window.removeEventListener("scroll",m,true);}},[e]),{position:i,ref:p,elementRef:l}}var Ln=25,on=new Map,da=200,Al=200,ua=8;function Ol(t){let e=le();return useMemo(()=>({search:e.search,selectAll:e.filterSelectAll,clear:e.clear,apply:e.apply,cancel:e.cancel,blank:e.filterBlank,noMatch:e.filterNoMatch,loading:e.filterLoading,truncated:e.filterTruncated,...t}),[e,t])}var Fl=memo(function({label:e,display:n,index:a,active:l,checked:i,onToggle:s,onFocus:p}){return jsxs("div",{role:"option","aria-selected":i,tabIndex:0,className:`kanuni-datagrid-filter-item${l?" kanuni-datagrid-filter-item--active":""}`,"data-value":e,"data-index":a,onFocus:()=>p(a),onClick:()=>s(e),children:[jsx("input",{type:"checkbox",readOnly:true,checked:i,tabIndex:-1}),jsx("span",{children:n})]})});function Yo({gridId:t,columnId:e,headerLabel:n,entries:a,initialSelected:l,anchor:i,loading:s=false,dark:p,onApply:R,onClose:f,truncated:m=false,onSearch:v,labels:C}){let k=Ol(C),[G,P]=useState(""),[S,h]=useState(0),[E,u]=useState(()=>new Set(l??a.map(T=>T.label))),[N,B]=useState(false),F=useRef(null),W=useRef(null),[g,M]=useState(0),[I,c]=useState(240),y=`${t??""}:${e}`,L=on.get(y),Z=useRef(L?.scrollTop??null),[de,ce]=useState(L&&L.width&&L.height?{width:L.width,height:L.height}:null),Ze=useCallback(T=>{F.current=T,T?.focus();},[]),Le=useRef(null),ue=useMemo(()=>{let T=foldText(G.trim());if(!T||m)return a;let Y=Le.current;(!Y||Y.entries!==a)&&(Y={entries:a,lowered:a.map(j=>foldText(j.label)),needle:"",result:[]},Le.current=Y);let O=Y.needle!==""&&T.includes(Y.needle)?Y.result.filter(j=>foldText(j.label).includes(T)):a.filter((j,J)=>Y.lowered[J].includes(T));return Y.needle=T,Y.result=O,O},[a,G,m]);useEffect(()=>{if(!v)return;let T=setTimeout(()=>v(G),150);return ()=>clearTimeout(T)},[G,v]),useEffect(()=>{N||l||u(new Set(a.map(T=>T.label)));},[a,N,l]);let Ge=useCallback(T=>{W.current=T,T&&c(T.clientHeight||240);},[]);useEffect(()=>{let T=W.current;!T||Z.current===null||s||T.scrollHeight<=T.clientHeight||(T.scrollTop=Z.current,Z.current=null,M(T.scrollTop));});let Ne=useMemo(()=>{let T=ue.length,Y=Math.max(0,Math.floor(g/Ln)-ua),O=Math.ceil(I/Ln)+ua*2,j=Math.min(Y,Math.max(0,T-1)),J=Math.min(T,j+O);return {start:j,end:J,count:T,rows:ue.slice(j,J)}},[ue,g,I]),Ce=nn({anchor:i,onClose:f}),[Fe,te]=useState(null),ae=(Fe??Ce.position.left)+(de?.width??260)+48<window.innerWidth?"right":"left",re=T=>{T.preventDefault(),T.stopPropagation();let Y=Ce.elementRef.current;if(!Y)return;let O=Y.getBoundingClientRect(),j=ae,J={x:T.clientX,y:T.clientY,w:O.width,h:O.height,left:O.left},Se=null,A=X=>{let fe=X.clientX-J.x,x=X.clientY-J.y,Be=window.innerHeight-O.top-12,me=Math.min(Be,Math.max(Al,J.h+x));if(j==="right"){let ve=window.innerWidth-J.left-12;Se={width:Math.min(ve,Math.max(da,J.w+fe)),height:me},ce(Se);}else {let ve=J.left+J.w,ke=ve-12,Ve=Math.min(ke,Math.max(da,J.w-fe));Se={width:Ve,height:me},ce(Se),te(ve-Ve);}W.current&&c(W.current.clientHeight);},_=()=>{if(window.removeEventListener("pointermove",A),window.removeEventListener("pointerup",_),Se){let X=on.get(y);on.set(y,{scrollTop:X?.scrollTop??W.current?.scrollTop??0,width:Math.round(Se.width),height:Math.round(Se.height)});}};window.addEventListener("pointermove",A),window.addEventListener("pointerup",_);},ge=useCallback(T=>{B(true),u(Y=>{let O=new Set(Y);return O.has(T)?O.delete(T):O.add(T),O});},[]),pe=useCallback(T=>h(T),[]),ye=()=>{if(s)return;if(E.size===a.length){R(null);return}let T=a.filter(J=>E.has(J.label)),Y=T.some(J=>J.value===null||J.value===void 0),O=T.filter(J=>J.value!==null&&J.value!==void 0),j;O.length===0?j={columnId:e,operator:"isnull"}:Y?j={logic:"or",nodes:[{columnId:e,operator:"in",value:O.map(J=>J.value)},{columnId:e,operator:"isnull"}]}:j={columnId:e,operator:"in",value:O.map(J=>J.value)},R(j);},he=T=>{let Y=Math.max(0,Math.min(ue.length-1,T));h(Y);let O=Ce.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${Y}"]`);O?.focus(),O?.scrollIntoView({block:"nearest"});},se=T=>T.key.length===1&&!T.ctrlKey&&!T.metaKey&&!T.altKey,ie=T=>{let Y=T.target===F.current;if(T.key==="Backspace"&&!Y){T.preventDefault(),F.current?.focus(),P(O=>O.slice(0,-1)),h(0);return}if(T.key==="ArrowDown"){T.preventDefault(),he(Y?0:S+1);return}if(T.key==="ArrowUp"){T.preventDefault(),he(Y?ue.length-1:S-1);return}if(!Y&&(T.key==="Home"||T.key==="End")){T.preventDefault(),he(T.key==="Home"?0:ue.length-1);return}if(T.key===" "&&!Y){T.preventDefault();let O=ue[S];O&&ge(O.label);return}if(T.key==="Enter"){T.preventDefault(),ye();return}!Y&&se(T)&&T.key!==" "&&(T.preventDefault(),F.current?.focus(),P(O=>O+T.key),h(0));};return jsx(ot,{dark:p,children:jsxs("div",{ref:Ce.ref,className:"kanuni-datagrid-filter-popup",style:{left:Fe??Ce.position.left,top:Ce.position.top,...de?{width:de.width,height:de.height,maxHeight:"none"}:null},role:"dialog","aria-label":`${n} filter`,onKeyDown:ie,children:[jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${ae}`,"data-testid":"dg-filter-resize",onPointerDown:re}),jsx("input",{ref:Ze,className:"kanuni-datagrid-filter-search",type:"search",placeholder:k.search,value:G,onChange:T=>{P(T.target.value),h(0);},"data-testid":"dg-filter-search"}),m&&jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:k.truncated}),jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsx("button",{type:"button",onClick:()=>{B(true),u(new Set(a.map(T=>T.label)));},children:k.selectAll}),jsx("button",{type:"button",onClick:()=>{B(true),u(new Set);},children:k.clear})]}),jsxs("div",{ref:Ge,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true","aria-busy":s||void 0,"aria-setsize":ue.length,onScroll:T=>{let Y=T.target.scrollTop;M(Y),Z.current=null;let O=on.get(y);on.set(y,{...O,scrollTop:Y});},children:[s&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:k.loading}),!s&&ue.length===0&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:k.noMatch}),Ne.count>0&&jsx("div",{style:{height:ue.length*Ln,position:"relative"},children:jsx("div",{style:{transform:`translateY(${Ne.start*Ln}px)`},children:Ne.rows.map((T,Y)=>{let O=Ne.start+Y;return jsx(Fl,{label:T.label,display:T.label===""?k.blank:T.label,index:O,active:O===S,checked:E.has(T.label),onToggle:ge,onFocus:pe},T.label)})})})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",onClick:f,children:k.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:ye,disabled:s,"data-testid":"dg-filter-apply",children:k.apply})]})]})})}var Xo="text/x-kanuni-column";function _l({columns:t,levels:e,onSetLevels:n,maxLevels:a=1,onExpandAll:l,onCollapseAll:i,emptyText:s}){let p=le(),R=s??p.groupPanelHint,[f,m]=useState(false),v=useRef(null),[C,k]=useState(null),G=g=>t.find(I=>I.state.id===g)?.def.headerName??g,P=g=>{if(!g||e.includes(g))return;let M=e.length>=a?e.slice(0,a-1):[...e];n([...M,g]);},S=g=>n(e.filter(M=>M!==g)),h=(g,M)=>{let I=e.filter(y=>y!==g),c=Math.max(0,Math.min(I.length,M));n([...I.slice(0,c),g,...I.slice(c)]);},E=(g,M,I)=>{if(g===M)return;let y=e.filter(L=>L!==g).indexOf(M);y<0||h(g,I==="before"?y:y+1);},u=(g,M)=>{let I=g+M;I<0||I>=e.length||E(e[g],e[I],M<0?"before":"after");},N=(g,M)=>g<M.top+M.height/2?"before":"after",B=(g,M)=>{M.preventDefault(),M.stopPropagation();let I=N(M.clientY,M.currentTarget.getBoundingClientRect());k(null),m(false);let c=v.current;if(v.current=null,c){E(c,e[g],I);return}let y=M.dataTransfer.getData(Xo);if(!y||e.includes(y))return;if(e.length>=a){P(y);return}let L=I==="before"?g:g+1;n([...e.slice(0,L),y,...e.slice(L)]);},F=(g,M,I)=>{let c=I.ctrlKey||I.metaKey;c&&(I.key==="ArrowUp"||I.key==="ArrowLeft")?(I.preventDefault(),u(g,-1)):c&&(I.key==="ArrowDown"||I.key==="ArrowRight")?(I.preventDefault(),u(g,1)):(I.key==="Delete"||I.key==="Backspace")&&(I.preventDefault(),S(M));},W=t.filter(g=>!e.includes(g.state.id));return jsxs("div",{className:`kanuni-datagrid-group-panel${f?" kanuni-datagrid-group-panel--over":""}`,onDragOver:g=>{g.preventDefault(),m(true);},onDragLeave:()=>m(false),onDrop:g=>{if(g.preventDefault(),m(false),k(null),v.current){v.current=null;return}P(g.dataTransfer.getData(Xo));},children:[e.length>0?jsx("div",{className:"kanuni-datagrid-group-levels",children:e.map((g,M)=>jsx("div",{className:`kanuni-datagrid-group-level${C?.index===M?` kanuni-datagrid-group-level--drop-${C.side}`:""}`,style:{"--dg-group-level":M},"data-group-level":M,onDragOver:I=>{I.preventDefault(),I.stopPropagation();let c=N(I.clientY,I.currentTarget.getBoundingClientRect());k(y=>y?.index===M&&y.side===c?y:{index:M,side:c});},onDragLeave:()=>k(I=>I?.index===M?null:I),onDrop:I=>B(M,I),children:jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:a>1&&e.length>1,tabIndex:0,role:"button","aria-label":`${fillText(p.groupLevelAria,{n:M+1})}: ${G(g)}`,onDragStart:I=>{v.current=g,I.dataTransfer.effectAllowed="move",I.dataTransfer.setData(Xo,g);},onDragEnd:()=>{v.current=null,k(null);},onKeyDown:I=>F(M,g,I),children:[a>1&&jsx("span",{className:"kanuni-datagrid-group-chip-level",children:M+1}),G(g),jsx("button",{type:"button","aria-label":fillText(p.groupRemoveAria,{column:G(g)}),onClick:()=>S(g),children:"\xD7"})]})},g))}):jsx("span",{className:"kanuni-datagrid-group-panel-hint",children:R}),jsxs("div",{className:"kanuni-datagrid-group-panel-actions",children:[e.length>0&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:l,children:p.groupExpandAll}),jsx("button",{type:"button",onClick:i,children:p.groupCollapseAll})]}),jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsx("span",{className:"kanuni-datagrid-sr-only",children:a>1?p.groupAddLevel:p.groupByColumn}),a>1?jsxs("select",{value:"",disabled:W.length===0,onChange:g=>P(g.target.value),children:[jsx("option",{value:"",children:p.groupAddLevelButton}),W.map(g=>jsx("option",{value:g.state.id,children:g.def.headerName??g.state.id},g.state.id))]}):jsxs("select",{value:e[0]??"",onChange:g=>n(g.target.value?[g.target.value]:[]),children:[jsx("option",{value:"",children:p.groupNoGrouping}),t.map(g=>jsx("option",{value:g.state.id,children:g.def.headerName??g.state.id},g.state.id))]})]})]})]})}var qo=memo(_l);function zl({layout:t,centerColumns:e,leadingSpacer:n,trailingSpacer:a,defs:l,values:i,checkboxColumn:s=false,detailColumn:p=false,rowNumberColumn:R=false,onPickSummary:f,emptyHint:m="",position:v="bottom",bandOffset:C=0,headerRowsBetween:k=0}){let G=le(),P=summaryTypeLabels(G),S=new Map(l.map(u=>[u.columnId,u])),h=lt({rowNumberColumn:R,detailColumn:p,checkboxColumn:s}).total,E=(u,N,B)=>{let F=u.state.id,W=S.get(F),g=W?i[summaryKey(W.columnId,W.type)]:void 0,M=u.def.dataType==="number"||u.def.dataType==="bigint",I=isChromeColumn(F)?void 0:f;return jsx("div",{className:`kanuni-datagrid-footer-cell${N}${M?" kanuni-datagrid-footer-cell--number":""}${W?" kanuni-datagrid-footer-cell--active":""}`,style:B,role:"gridcell","data-column-id":F,"data-summary-type":W?.type??"",title:W?`${summaryLabel(W,P)} \u2014 ${u.def.headerName??F}`:void 0,onContextMenu:I?c=>I(F,c):void 0,onClick:I?c=>I(F,c):void 0,children:W?jsx("span",{className:"kanuni-datagrid-footer-value",children:formatSummaryValue(W,g,u.def)}):I?jsx("span",{className:"kanuni-datagrid-footer-hint",children:m}):null},F)};return jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${v}`,role:"row","aria-label":G.columnTotalsAria,style:{width:t.totalWidth+h,"--dg-band-offset":`${C}px`,"--dg-pinned-gap":String(k)},children:[h>0&&jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:h,insetInlineStart:0}}),t.left.map((u,N)=>E(u,` kanuni-datagrid-footer-cell--pinned${N===t.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:u.state.width,insetInlineStart:t.leftOffsets[N]+h})),n>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),e.map(u=>E(u,"",{width:u.state.width})),a>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),t.right.map((u,N)=>E(u,` kanuni-datagrid-footer-cell--pinned${N===0?" kanuni-datagrid-pin-edge-right":""}`,{width:u.state.width,insetInlineEnd:t.rightOffsets[N]}))]})}var In=memo(zl);function ql(t,e){return `__dg_pinned_${t}_${e}`}function Jl({gridId:t,side:e,rows:n,rowKeys:a,onUserRowContextMenu:l,layout:i,columnModel:s,centerColumns:p,centerIndices:R,stickyInsets:f,leadingSpacer:m,trailingSpacer:v,checkboxColumn:C=false,detailColumn:k=false,rowNumberColumn:G=false,rowHeight:P,bandOffset:S=0,headerRowsBetween:h,ariaRowBase:E}){return n.length===0?null:jsx("div",{className:`kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--${e}`,role:"rowgroup",style:{width:i.totalWidth||"100%","--dg-band-offset":`${S}px`,"--dg-pinned-gap":String(h)},children:n.map((u,N)=>{let B=a?.[N]??null,F={kind:"data",key:ql(e,N),sourceIndex:-1,data:u};return jsx(_t,{gridId:t,node:F,index:N,layout:i,columnModel:s,centerColumns:p,centerIndices:R,stickyInsets:f,leadingSpacer:m,trailingSpacer:v,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:C,detailColumn:k,rowNumberColumn:G,rowNumber:null,headerRowCount:E,height:P,onRowContextMenu:B!==null&&l?(W,g,M)=>l(B,u,M):void 0},F.key)})})}var Hn=memo(Jl);function ga({controller:t,renderRow:e,width:n,bandOffset:a,headerRowsBetween:l,belowPinned:i}){let[,s]=useReducer(f=>f+1,0);useEffect(()=>{let f=[t.events.on("bodyScroll",s),t.events.on("contentReady",s),t.events.on("viewportChanged",s)];return ()=>f.forEach(m=>m())},[t]);let p=useRef(null);useLayoutEffect(()=>{p.current?.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(f=>f.setAttribute("tabindex","-1"));});let R=t.getStickyGroupRows();return R.length===0?null:jsx("div",{ref:p,className:"kanuni-datagrid-sticky-groups","aria-hidden":"true",style:{width:n||"100%","--dg-band-offset":`${a}px`,"--dg-pinned-gap":String(l),"--dg-sticky-below":`${i}px`},children:R.map((f,m)=>jsx("div",{className:`kanuni-datagrid-sticky-group${m===R.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:f.offset,height:f.height,zIndex:R.length-m},children:e(f.node,f.index,f.height)},String(f.node.key)))})}async function an(t,e){try{let n=e==="csv"?await t.exportToCsv():e==="excel"?await t.exportToExcel():e==="excel-selected"?await t.exportToExcel({selectedOnly:!0}):await t.exportToPdf();return downloadBlob(n.blob,n.fileName),{completed:!0}}catch(n){return n instanceof ExportAbortedError?{completed:false}:{completed:false,error:n instanceof Error?n.message:String(n)}}}function Et({anchor:t,onClose:e,children:n,dark:a,className:l="",label:i,role:s="dialog"}){let p=nn({anchor:t,onClose:e});return jsx(ot,{dark:a,children:jsx("div",{ref:p.ref,className:`kanuni-datagrid-filter-popup ${l}`.trim(),style:{left:p.position.left,top:p.position.top},role:s,"aria-label":i,children:n})})}function as(t){let e=le();return useMemo(()=>({search:e.toolbarSearch,csv:e.exportCsv,excel:e.exportExcel,excelSelected:e.exportExcelSelected,pdf:e.exportPdf,columns:e.columns,exporting:e.exporting,exportMenu:e.exportMenu,...t}),[e,t])}var is=()=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})});function ls({controller:t,search:e=true,exportCsv:n=true,exportExcel:a=false,exportPdf:l=false,columnChooser:i=true,dark:s,onOpenColumnChooser:p,itemsBefore:R,itemsAfter:f,searchDebounce:m=200,labels:v}){let C=as(v),[k,G]=useState(t.getSearchText()),[P,S]=useState(null),[h,E]=useState(null),[u,N]=useState(null);useEffect(()=>{let g=setTimeout(()=>t.setSearchText(k),m);return ()=>clearTimeout(g)},[t,k,m]);let[B,F]=useState(()=>t.getSelectedCount());useEffect(()=>(F(t.getSelectedCount()),t.events.on("selectionChanged",()=>F(t.getSelectedCount()))),[t]);let W=async g=>{S(g),N(null);let M=await an(t,g);M.error?N(M.error):E(null),S(null);};return jsxs("div",{className:"kanuni-datagrid-toolbar",children:[R,e&&jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:C.search,value:k,"aria-label":C.search,"data-testid":"dg-toolbar-search",onChange:g=>G(g.target.value)}),jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),i&&jsx("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:g=>{let M=g.currentTarget.getBoundingClientRect();p?.({left:M.left,top:M.bottom+2});},children:C.columns}),(n&&t.canExportAll()||a||l)&&jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":C.exportMenu,title:C.exportMenu,disabled:P!==null,"data-testid":"dg-export-menu",onClick:g=>{let M=g.currentTarget.getBoundingClientRect();E(h?null:{left:M.right-190,top:M.bottom+2});},children:P?jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsx(is,{})}),h&&jsxs(Et,{anchor:h,onClose:()=>E(null),dark:s,role:"menu",label:C.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&t.canExportAll()&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-csv",onClick:()=>W("csv"),children:P==="csv"?C.exporting:C.csv}),a&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-excel",onClick:()=>W("excel"),children:P==="excel"?C.exporting:C.excel}),a&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null||B===0,"data-testid":"dg-export-excel-selected",onClick:()=>W("excel-selected"),children:P==="excel-selected"?C.exporting:C.excelSelected}),l&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-pdf",onClick:()=>W("pdf"),children:P==="pdf"?C.exporting:C.pdf})]}),f,u&&jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:u})]})}var Jo=memo(ls);function ds(t){let e=le();return useMemo(()=>({title:e.hiddenColumns,empty:e.noHiddenColumns,showAll:e.showAll,ok:e.ok,...t}),[e,t])}function Zo({controller:t,columns:e,anchor:n,onClose:a,dark:l,labels:i}){let s=ds(i),p=e.filter(R=>!R.visible);return jsxs(Et,{anchor:n,onClose:a,dark:l,label:s.title,className:"kanuni-datagrid-column-chooser",children:[jsxs("div",{className:"kanuni-datagrid-filter-list",children:[p.length===0&&jsx("div",{className:"kanuni-datagrid-chooser-empty",children:s.empty}),p.map(R=>{let f=t.getColumnModel().getDef(R.id);return jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsx("input",{type:"checkbox",checked:false,"data-column-toggle":R.id,onChange:()=>t.setColumnVisible(R.id,true)}),jsx("span",{children:f?.headerName??R.id})]},R.id)})]}),p.length>0&&jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",onClick:()=>p.forEach(R=>t.setColumnVisible(R.id,true)),children:s.showAll}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:a,children:s.ok})]})]})}function gs(t){let e=le();return useMemo(()=>({first:e.pagerFirst,previous:e.pagerPrevious,next:e.pagerNext,last:e.pagerLast,page:e.pagerPage,of:e.pagerOf,rowsPerPage:e.pagerRowsPerPage,pageButton:e.pagerPageButton,navigation:e.pagerAria,...t}),[e,t])}function fs({page:t,pageCount:e,pageSize:n,pageSizes:a=[25,50,100,250],totalRows:l,onPage:i,onNext:s,onPrevious:p,onPageSize:R,pageButtons:f=false,maxPageButtons:m,labels:v}){let C=gs(v),k=t<=0,G=t>=e-1,P=l===0?0:t*n+1,S=Math.min(l,(t+1)*n),h=useRef(null),E=useRef(null);return useEffect(()=>{let u=E.current,N=h.current;if(!N||!(u instanceof HTMLButtonElement)||!u.disabled)return;let B=document.activeElement;if(B&&B!==document.body&&B!==u)return;let F=N.querySelector('[aria-current="page"]')??N.querySelector("button:not(:disabled)");F?.focus(),E.current=F;},[t,e]),jsxs("div",{ref:h,className:"kanuni-datagrid-pager",role:"navigation","aria-label":C.navigation,onFocus:u=>{E.current=u.target;},onBlur:u=>{let N=u.relatedTarget;N&&!h.current?.contains(N)&&(E.current=null);},children:[jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsx("span",{children:C.rowsPerPage}),jsx("select",{value:n,"data-testid":"dg-page-size",onChange:u=>R(Number(u.target.value)),children:a.map(u=>jsx("option",{value:u,children:u},u))})]}),jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[P.toLocaleString(),"\u2013",S.toLocaleString()," ",C.of," ",l.toLocaleString()]}),jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsx("button",{type:"button","aria-label":C.first,disabled:k,onClick:()=>i(0),children:"\xAB"}),jsx("button",{type:"button","aria-label":C.previous,disabled:k,"data-testid":"dg-page-prev",onClick:p,children:"\u2039"}),f?pageButtonItems(t,e,m).map(u=>typeof u=="number"?jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":fillText(C.pageButton,{n:String(u+1)}),"aria-current":u===t?"page":void 0,onClick:()=>i(u),children:u+1},u):jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},u)):jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[C.page," ",t+1," ",C.of," ",e]}),jsx("button",{type:"button","aria-label":C.next,disabled:G,"data-testid":"dg-page-next",onClick:s,children:"\u203A"}),jsx("button",{type:"button","aria-label":C.last,disabled:G,onClick:()=>i(e-1),children:"\xBB"})]})]})}var jo=memo(fs);function ks(t){let e=le();return useMemo(()=>({clear:e.filterRemove,toggle:e.filterToggle,builder:e.filterEditBuilder,empty:e.filterNone,...t}),[e,t])}function vs({controller:t,onOpenBuilder:e,alwaysVisible:n=false,describeOptions:a,labels:l}){let i=ks(l),s=le(),[,p]=useState(0);useEffect(()=>t.events.on("filterChanged",()=>p(v=>v+1)),[t]);let R=t.getEffectiveFilter(),f=t.isFilterEnabled(),m=describeFilter(R,t.getColumnModel(),{...a,labels:{...filterLabels(s),...a?.labels}});return !R&&!n?null:jsxs("div",{className:`kanuni-datagrid-filter-panel${f?"":" kanuni-datagrid-filter-panel--suspended"}`,"data-testid":"dg-filter-panel",role:"group","aria-label":i.toggle,children:[jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-clear",title:i.clear,"aria-label":i.clear,disabled:!R,"data-testid":"dg-filter-panel-clear",onClick:()=>{t.setFilter(null),t.clearColumnFilters(),t.setFilterEnabled(true);},children:"\xD7"}),jsx("input",{type:"checkbox",className:"kanuni-datagrid-filter-panel-toggle",checked:f,disabled:!R,title:i.toggle,"aria-label":i.toggle,"data-testid":"dg-filter-panel-toggle",onChange:v=>t.setFilterEnabled(v.target.checked)}),jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:m??void 0,"data-testid":"dg-filter-panel-text",children:m??i.empty}),e&&jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-builder",title:i.builder,"aria-label":i.builder,"data-testid":"dg-filter-panel-builder",onClick:e,children:"\u25BE"})]})}var Qo=memo(vs);var Fn=t=>!t.separator&&!t.disabled;function Bn({x:t,y:e,items:n,context:a,onClose:l,dark:i=false,label:s}){let p=le(),R=useRef(null),[f,m]=useState({left:t,top:e}),[v,C]=useState(()=>n.findIndex(Fn)),[k,G]=useState(null),[P,S]=useState(null),h=useRef(null),[E,u]=useState(null);useEffect(()=>S(null),[k]);let N=useCallback((c,y)=>{if(G(c),c===null||!y)return;let L=y.getBoundingClientRect();u({left:L.left,right:L.right,top:L.top});},[]),B=c=>R.current?.querySelector(`[data-item-index="${c}"]`)??null,F=useCallback(c=>{if(h.current=c,!c||!E)return;let y=8,L=c.getBoundingClientRect(),Z=Math.max(y,Math.min(E.top-4,window.innerHeight-L.height-y)),ce=E.right+L.width+y<=window.innerWidth?E.right:Math.max(y,E.left-L.width);S({left:ce,top:Z});},[E]),W=useCallback(c=>{if(R.current=c,!c)return;let y=c.getBoundingClientRect(),L=8;m({left:Math.max(L,Math.min(t,window.innerWidth-y.width-L)),top:Math.max(L,Math.min(e,window.innerHeight-y.height-L))}),c.focus();},[t,e]);useEffect(()=>{let c=L=>{let Z=L.target;h.current?.contains(Z)||R.current&&!R.current.contains(Z)&&l();},y=()=>l();return document.addEventListener("mousedown",c),window.addEventListener("scroll",y,true),()=>{document.removeEventListener("mousedown",c),window.removeEventListener("scroll",y,true);}},[l]);let g=(c,y)=>{let L=n.length;for(let Z=1;Z<=L;Z++){let de=(c+y*Z+L*L)%L;if(Fn(n[de]))return de}return c},M=c=>{let y=n[c];if(!(!y||!Fn(y))){if(y.items?.length){N(c,B(c));return}y.onSelect?.(a),l();}},I=c=>{switch(c.key){case "ArrowDown":C(y=>g(y,1));break;case "ArrowUp":C(y=>g(y,-1));break;case "Home":C(n.findIndex(Fn));break;case "End":C(g(0,-1));break;case "ArrowRight":if(n[v]?.items?.length)N(v,B(v));else return;break;case "ArrowLeft":if(k!==null)N(null);else return;break;case "Enter":case " ":M(v);break;case "Escape":l();break;case "Tab":l();return;default:return}c.preventDefault(),c.stopPropagation();};return jsxs(ot,{dark:i,children:[jsx("div",{ref:W,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":s??p.rowActions,tabIndex:-1,style:{left:f.left,top:f.top},onKeyDown:I,children:n.map((c,y)=>c.separator?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},c.id??`sep-${y}`):jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${y===v?" kanuni-datagrid-menu-item--active":""}`,disabled:c.disabled,"data-item-index":y,"aria-haspopup":c.items?.length?"menu":void 0,"aria-expanded":c.items?.length?k===y:void 0,onMouseEnter:L=>{C(y),N(c.items?.length?y:null,L.currentTarget);},onClick:()=>M(y),children:[c.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:c.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:c.label}),c.shortcut&&jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:c.shortcut}),c.items?.length?jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},c.id??y))}),k!==null&&n[k]?.items?.length?jsx("div",{ref:F,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:P?{left:P.left,top:P.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[k].items.map((c,y)=>c.separator?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},c.id??`sub-sep-${y}`):jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:c.disabled,onClick:()=>{c.onSelect?.(a),l();},children:[c.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:c.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:c.label})]},c.id??y))}):null]})}var xs=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),nr=xs?"\u2318":"Ctrl+",Ca=`${nr}C`,Ds=`${nr}X`,Gs=`${nr}V`;function Ut(t,e={}){let n=t.getClipboardText(e);t.notifyClipboardGesture("copy",n?n.split(`
|
|
2
|
-
`).length:0,()=>t.writeClipboard(n,"copy"));}function Ss(t){navigator.clipboard?.writeText(t).catch(()=>{});}function Es(t){let e=t.getColumnModel();return t.getVisualColumnIds().some(n=>{let a=e.getDef(n)?.band;return typeof a=="string"?a!=="":Array.isArray(a)&&a.length>0})}function Ns(t){return t===false?[]:Array.isArray(t)?t:["csv","excel","excel-selected","pdf"]}var Ms={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function or(t,e,n,a,l){if(n===false)return [];let i=n===true||n===void 0?{}:n,s=[];i.copy!==false&&s.push({id:"__dg-copy",label:e.menuCopy,shortcut:Ca,onSelect:()=>Ut(t)}),i.copyWithHeaders!==false&&s.push({id:"__dg-copy-headers",label:e.menuCopyWithHeaders,onSelect:()=>Ut(t,{includeHeaders:true})}),i.copyWithGroupHeaders!==false&&Es(t)&&s.push({id:"__dg-copy-group-headers",label:e.menuCopyWithGroupHeaders,onSelect:()=>Ut(t,{includeGroupHeaders:true})});let p=Ns(i.export).filter(R=>R!=="csv"||t.canExportAll());if(p.length>0){let R=t.getSelectedCount()===0;s.push({id:"__dg-export",label:e.menuExport,items:p.map(f=>({id:`__dg-export-${f}`,label:e[Ms[f]],disabled:f==="excel-selected"&&R,onSelect:()=>{an(t,f).then(m=>{m.error&&l?.(m.error);});}}))});}return s.length>0&&a&&s.unshift({id:"__dg-sep-builtin",separator:true}),s}function rr(t,e,n,a){if(!t.isRowPinningEnabled()||!t.canPinRow(n))return [];let l=t.getRowPinSide(n),i=[];return l!=="top"&&i.push({id:"__dg-pin-top",label:e.pinRowTop,onSelect:()=>t.pinRow(n,"top")}),l!=="bottom"&&i.push({id:"__dg-pin-bottom",label:e.pinRowBottom,onSelect:()=>t.pinRow(n,"bottom")}),l&&i.push({id:"__dg-unpin",label:e.unpinRow,onSelect:()=>t.pinRow(n,null)}),a?[{id:"__dg-sep-pin",separator:true},...i]:i}function ir({anchor:t,value:e,dark:n,onCommit:a,onCancel:l}){let i=le(),[s,p]=useState(e),R=useRef(null);useEffect(()=>{let m=R.current;m&&(m.focus(),m.select());},[]);let f=()=>{let m=s.trim();a(m===""?null:m);};return jsxs(Et,{anchor:t,onClose:l,dark:n,label:i.noteEditorAria,className:"kanuni-datagrid-note-editor",children:[jsx("textarea",{ref:R,className:"kanuni-datagrid-note-input",value:s,rows:4,"aria-label":i.noteEditorAria,placeholder:i.notePlaceholder,onChange:m=>p(m.target.value),onKeyDown:m=>{m.key==="Enter"&&(m.ctrlKey||m.metaKey)&&(m.preventDefault(),f()),m.key==="Escape"&&(m.preventDefault(),l());}}),jsxs("div",{className:"kanuni-datagrid-note-actions",children:[jsx("button",{type:"button",className:"kanuni-datagrid-note-cancel",onClick:l,children:i.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-note-save",onClick:f,children:i.save})]})]})}function As(t){let e=le();return useMemo(()=>({busy:e.busy,loading:e.busyLoading,encoding:e.busyEncoding,filtering:e.busyFiltering,sorting:e.busySorting,computing:e.busyComputing,grouping:e.busyGrouping,aggregating:e.busyAggregating,projecting:e.busyProjecting,exporting:e.busyExporting,cancel:e.cancel,...t}),[e,t])}var Os=new Set(["filtering","sorting","computing","encoding","exporting"]);function sr({controller:t,delay:e=300,labels:n,cancellable:a=true,forced:l=false}){let[i,s]=useState(()=>t.getBusy()),[p,R]=useState(false);useEffect(()=>(s(t.getBusy()),t.events.on("busyChanged",G=>s(G))),[t]);let f=i.busy&&i.background!==true;useEffect(()=>{if(!f){R(false);return}let G=setTimeout(()=>R(true),e);return ()=>clearTimeout(G)},[f,e]);let m=As(n);if(!l&&(!p||!f))return null;let v=i.phase?m[i.phase]:m.busy,C=i.progress===null?null:Math.max(0,Math.min(100,i.progress)),k=a&&i.phase!==null&&Os.has(i.phase)&&i.cancellable!==false;return jsx("div",{className:"kanuni-datagrid-loading-overlay",role:"status","aria-live":"polite","data-testid":"dg-loading-overlay","data-phase":i.phase??"busy","data-blocking":i.phase==="exporting"?"true":void 0,"aria-busy":"true",children:jsxs("div",{className:"kanuni-datagrid-loading-card",children:[jsx("span",{className:"kanuni-datagrid-loading-spinner","aria-hidden":"true"}),jsx("span",{className:"kanuni-datagrid-loading-label",children:v}),C!==null&&jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(C),"aria-valuemin":0,"aria-valuemax":100,children:[jsx("div",{className:"kanuni-datagrid-loading-track",children:jsx("div",{className:"kanuni-datagrid-loading-fill",style:{width:`${C}%`}})}),jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(C),"%"]})]}),k&&jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>t.cancel(),"data-testid":"dg-loading-cancel",children:m.cancel})]})})}var Da=null;function Fs(){return typeof document>"u"?null:(Da??=document.createElement("canvas"),Da.getContext("2d"))}function Ga(t){let e=getComputedStyle(t);return `${e.fontStyle} ${e.fontWeight} ${e.fontSize} ${e.fontFamily}`}function Bs(t){for(let e=t.firstElementChild;e;e=e.nextElementSibling)if(e.tagName!=="MARK")return true;return false}function Ks(t){let e=t.map(a=>[a.style.width,a.style.minWidth,a.style.maxWidth]);for(let a of t)a.style.width="max-content",a.style.minWidth="0",a.style.maxWidth="none";let n=0;for(let a of t){let l=Math.ceil(a.getBoundingClientRect().width);l>n&&(n=l);}return t.forEach((a,l)=>{[a.style.width,a.style.minWidth,a.style.maxWidth]=e[l];}),n}function Kn(t,e){let n=Fs();if(!n)return null;let a=typeof CSS<"u"&&CSS.escape?CSS.escape(e):e.replace(/"/g,'\\"'),l=t.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${a}"]`),i=t.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${a}"]`);if(!l&&i.length===0)return null;let s=0;if(l){let p=l.querySelector(".kanuni-datagrid-header-label")??l;n.font=Ga(p),s=n.measureText(p.textContent??"").width+44;}if(i.length>0){n.font=Ga(i[0]);let p=[];for(let R=0;R<i.length;R++){if(Bs(i[R])){p.push(i[R]);continue}let f=i[R].textContent??"";if(f==="")continue;let m=n.measureText(f).width+20;m>s&&(s=m);}p.length>0&&(s=Math.max(s,Ks(p)));}return s===0?null:Math.round(Math.min(640,Math.max(48,s)))}function dr(t,e){let n=useRef(e);n.current=e;let a=!!e?.enabled,l=e?.storageKey,i=e?.type;useEffect(()=>{if(a)return attachStateStoring(t,{...n.current,enabled:true})},[t,a,l,i]);}var _n="application/x-kanuni-row";function cr(t,e){let n=!!e?.enabled,a=e?.group??null,l=e?.allowReordering??true,i=e?.allowDropInsert??a!==null,[s,p]=useState(false),[R,f]=useState(null),m=useRef(null),v=useRef(false),C=useRef(null),k=useRef(null),G=useRef(e);G.current=e;let P=useCallback(c=>t.getRowByKey(c),[t]),S=(c,y)=>{let L=y.getBoundingClientRect();return c.clientY<L.top+L.height/2?"before":"after"},h=useCallback((c,y)=>{if(!isDataRow(c))return;k.current=c.key,C.current=c.key,v.current=false,m.current=null;let L={gridId:t.gridId,group:a,rowKey:c.key,row:c.data};y.dataTransfer.setData(_n,JSON.stringify(L)),y.dataTransfer.setData("text/plain",String(c.key)),y.dataTransfer.effectAllowed="move",t.notifyRowDrag("enter",{rowKey:c.key}),y.stopPropagation();},[t,a]),E=useCallback(()=>{let c=C.current;c!==null&&t.notifyRowDragEnd({rowKey:c,dropped:v.current,overKey:m.current?.key??null,position:m.current?.side??null}),v.current=false,m.current=null,C.current=null,k.current=null,f(null),p(false);},[t]),u=useCallback(c=>c.dataTransfer.types.includes(_n)?k.current!==null?l:i&&a!==null:false,[l,i,a]),N=useCallback((c,y)=>{if(!isDataRow(c)||!u(y))return;if(y.preventDefault(),y.dataTransfer.dropEffect="move",k.current===c.key){m.current=null,f(null);return}let L=S(y,y.currentTarget),Z=m.current?.key!==c.key||m.current.side!==L;m.current={key:c.key,side:L},f(de=>de?.key===c.key&&de.side===L?de:{key:c.key,side:L}),Z&&k.current!==null&&t.notifyRowDrag("move",{rowKey:k.current,overKey:c.key,position:L});},[u,t]),B=useCallback((c,y,L)=>{let Z=null;try{let ce=c.dataTransfer.getData(_n);Z=ce?JSON.parse(ce):null;}catch{Z=null;}if(!Z)return;if(Z.gridId===t.gridId){if(!l)return;let ce=G.current?.onReorder;if(ce){ce({dragKey:Z.rowKey,targetKey:y,position:L,row:P(Z.rowKey)});return}t.moveRow(Z.rowKey,y,L);return}!i||a===null||Z.group!==a||G.current?.onAdd?.({row:Z.row,rowKey:Z.rowKey,otherGridId:Z.gridId,targetKey:y,position:L});},[t,l,i,a,P]),F=useCallback((c,y)=>{if(f(null),!isDataRow(c)||!u(y))return;y.preventDefault(),y.stopPropagation();let L=S(y,y.currentTarget);v.current=true,m.current={key:c.key,side:L},B(y,c.key,L),k.current=null;},[u,B]),W=useCallback(c=>{u(c)&&(c.preventDefault(),c.dataTransfer.dropEffect="move");},[u]),g=useCallback(c=>{f(null),u(c)&&(c.preventDefault(),v.current=true,m.current=null,B(c,null,"after"),k.current=null);},[u,B]),M=useCallback(c=>{let y=c.relatedTarget;y&&c.currentTarget.contains(y)||k.current!==null&&(m.current=null,f(null),t.notifyRowDrag("leave",{rowKey:k.current}));},[t]);return {handlers:n?{draggable:s,setDraggable:p,onDragStart:h,onDragEnd:E,onDragOver:N,onDrop:F}:void 0,dropAt:n?R:null,bodyHandlers:n?{onDragOver:W,onDrop:g,onDragLeave:M}:void 0}}var Ys=400;function Ea(t){return t.scrollWidth>t.clientWidth+1||t.scrollHeight>t.clientHeight+1}function Na(t){return (t.textContent??"").trim()}function Xs(t){let{def:e,node:n,value:a,clipped:l,note:i}=t;if(i)return i;if(e&&n){if(typeof e.tooltip=="function"){let s=e.tooltip({value:a,row:n.data,node:n,column:e});return s||null}if(typeof e.tooltip=="string")return e.tooltip||null;if(e.tooltipField){let s=n.data[e.tooltipField];return s==null||s===""?null:String(s)}}return l&&l.length>0?l:null}function pr({rootRef:t,columnModel:e,getRowNode:n,getNote:a,config:l,controller:i,gridId:s}){let p=l?.enabled!==false,R=l?.delay??Ys,f=l?.showOnTruncation!==false,m=l?.trigger??"hover",v=m!=="focus",C=m!=="hover"&&!!i&&!!s,k=l?.interactive===true,[G,P]=useState(null),S=useRef({columnModel:e,getRowNode:n,getNote:a,showOnTruncation:f,delay:R});return S.current={columnModel:e,getRowNode:n,getNote:a,showOnTruncation:f,delay:R},useEffect(()=>{if(!p){P(null);return}let h=t.current;if(!h)return;let E=null,u=null,N=null,B=null,F=s?`${s}-tooltip`:void 0,W=()=>{B?.removeAttribute("aria-describedby"),B=null;},g=()=>{E!==null&&(clearTimeout(E),E=null),u!==null&&(clearTimeout(u),u=null),N=null,W(),P(null);},M=()=>{u!==null&&(clearTimeout(u),u=null);},I=()=>{u=null,W(),P(null);},c=()=>{M(),E!==null&&(clearTimeout(E),E=null);},y=()=>{if(!k){g();return}u!==null&&clearTimeout(u),u=setTimeout(I,150);},L=(te,ae)=>{let{columnModel:re,getRowNode:ge,getNote:pe}=S.current,ye=re.getDef(ae);if(!ye?.renderTooltip)return;let he=te.closest("[data-row-key]")?.dataset.rowKey,se=he===void 0?void 0:ge(he);if(!se||pe&&pe(se.key,ae,se.data))return;let ie=ye.renderTooltip({value:re.getCellValue(se.data,ae),row:se.data,node:se,column:ye});return ie==null||ie===false?null:{content:ie}},Z=(te,ae,re,ge)=>{let pe=re?void 0:L(te,ae);if(pe===null)return;let ye=pe?"":re?ce(ae,te):de(te,ae);if(!pe&&!ye)return;let he=te.getBoundingClientRect();M(),W(),ge&&F&&(te.setAttribute("aria-describedby",F),B=te),P({text:ye??"",...pe?{content:pe.content}:{},anchor:{top:he.top,left:he.left,width:he.width,height:he.height},...k?{interactive:true,hold:c,release:g}:{},...F?{id:F}:{}});},de=(te,ae)=>{let{columnModel:re,getRowNode:ge,getNote:pe,showOnTruncation:ye}=S.current,he=re.getDef(ae),se=te.closest("[data-row-key]")?.dataset.rowKey,ie=se===void 0?void 0:ge(se);return Xs({def:he,node:ie,value:ie?re.getCellValue(ie.data,ae):void 0,clipped:ye&&Ea(te)?Na(te):null,note:ie&&pe?pe(ie.key,ae,ie.data):null})},ce=(te,ae)=>{let re=S.current.columnModel.getDef(te);if(re?.headerTooltip)return re.headerTooltip;if(!S.current.showOnTruncation)return null;let ge=ae.querySelector(".kanuni-datagrid-header-label")??ae;if(!Ea(ge))return null;let pe=Na(ge);return pe.length>0?pe:null},Ze=te=>{if(!v)return;let re=te.target?.closest("[data-column-id]")??null;if(re===N){M();return}if(k&&u!==null?(E!==null&&(clearTimeout(E),E=null),N=null):g(),!re||!h.contains(re))return;let ge=re.dataset.columnId;if(!ge)return;let pe=re.classList.contains("kanuni-datagrid-header-cell");!pe&&!re.closest("[data-row-key]")||(N=re,E=setTimeout(()=>{E=null,!(N!==re||!re.isConnected)&&Z(re,ge,pe,false);},S.current.delay));},Le=te=>{if(!v)return;let ae=te.relatedTarget;N&&ae&&N.contains(ae)||y();},ue=-1/0,Ge=()=>{ue=Date.now();},Ne=()=>{g();let te=i?.getFocus();!te||!s||(E=setTimeout(()=>{if(E=null,!h.contains(document.activeElement)&&Date.now()-ue>1500)return;let ae=document.getElementById(`${s}-cell-${String(te.rowKey)}-${te.columnId}`);!ae||!h.contains(ae)||(N=ae,Z(ae,te.columnId,false,true));},S.current.delay));},Ce=C?i.events.on("focusChanged",Ne):null,Fe=te=>{(!C||te.key==="Escape")&&g();};return h.addEventListener("mouseover",Ze),h.addEventListener("mouseout",Le),h.addEventListener("mousedown",g),h.addEventListener("pointerdown",Ge),h.addEventListener("keydown",Fe),h.addEventListener("scroll",g,true),window.addEventListener("blur",g),()=>{g(),Ce?.(),h.removeEventListener("mouseover",Ze),h.removeEventListener("mouseout",Le),h.removeEventListener("mousedown",g),h.removeEventListener("pointerdown",Ge),h.removeEventListener("keydown",Fe),h.removeEventListener("scroll",g,true),window.removeEventListener("blur",g);}},[p,t,v,C,k,i,s]),p?G:null}var Pa=6,zt=8;function mr({state:t,dark:e}){let[n,a]=useState(null),[l,i]=useState(null),{text:s,anchor:p,content:R,interactive:f,hold:m,release:v,id:C}=t;return useLayoutEffect(()=>{if(!n)return;let{width:k,height:G}=n.getBoundingClientRect(),P=document.documentElement.clientWidth,S=document.documentElement.clientHeight,h=p.top+p.height+Pa,E=p.top-G-Pa,N=h+G+zt<=S||E<zt?h:E,B=Math.min(Math.max(zt,p.left),Math.max(zt,P-k-zt));i({top:Math.min(N,S-G-zt),left:B});},[n,s,R,p]),jsx(ot,{dark:e,children:jsx("div",{ref:a,id:C,className:f?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:f?m:void 0,onMouseLeave:f?v:void 0,style:l?{top:l.top,left:l.left}:{top:0,left:0,visibility:"hidden"},children:R??s})})}function $n(t){return {sortAsc:t.sortAsc,sortDesc:t.sortDesc,clearSort:t.clearSort,groupBy:t.groupByColumn,ungroup:t.ungroupColumn,showGroupPanel:t.showGroupPanel,hideGroupPanel:t.hideGroupPanel,showFooter:t.showFooter,hideFooter:t.hideFooter,showGroupFooters:t.showGroupFooters,hideGroupFooters:t.hideGroupFooters,hideColumn:t.hideColumn,fieldChooser:t.fieldChooser,bestFit:t.bestFit,bestFitAll:t.bestFitAll,fixedPosition:t.fixedPosition,pinLeft:t.pinLeft,pinRight:t.pinRight,pinSticky:t.pinSticky,unpin:t.unpin,moveLeft:t.moveLeft,moveRight:t.moveRight}}var Ia=$n(getGridDictionary("en"));function gr(t,e){let n={...Ia,...e.labels},{controller:a,maxGroupLevels:l}=e,i=t.columnId,s=a.getColumnModel().getDef(i),p=a.getSort(),R=p.find(u=>u.columnId===i),f=a.getGroupLevels(),m=f.includes(i),v=s?.sortable!==false,C=a.getColumnStates().find(u=>u.id===i)?.pinned??null,k=s?.groupable!==false,G=a.canGroup(),P=[{id:"sort-asc",label:n.sortAsc,disabled:!v||R?.direction==="asc",onSelect:()=>a.setSort([{columnId:i,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!v||R?.direction==="desc",onSelect:()=>a.setSort([{columnId:i,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!R,onSelect:()=>a.setSort(p.filter(u=>u.columnId!==i))},{id:"sep-1",separator:true}];G&&P.push({id:"group",label:m?n.ungroup:n.groupBy,disabled:!k,onSelect:()=>{m?a.groupBy(f.filter(u=>u!==i)):a.groupBy([...f,i].slice(-l));}},{id:"group-panel",label:e.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:e.onToggleGroupPanel}),e.groupFootersAvailable&&P.push({id:"group-footers",label:e.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:e.onToggleGroupFooters}),P.push({id:"footer",label:e.footerVisible?n.hideFooter:n.showFooter,onSelect:e.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:n.hideColumn,disabled:a.getColumnStates().filter(u=>u.visible).length<=1,onSelect:()=>a.setColumnVisible(i,false)},{id:"field-chooser",label:n.fieldChooser,onSelect:e.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:n.bestFit,disabled:s?.resizable===false,onSelect:()=>e.onBestFit(i)},{id:"best-fit-all",label:n.bestFitAll,onSelect:e.onBestFitAll});let S=a.getColumnStates().filter(u=>u.visible&&u.pinned===C).map(u=>u.id),h=S.indexOf(i),E=s?.reorderable!==false&&h>=0;return P.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!E||h<=0,onSelect:()=>a.moveColumn(i,S[h-1])},{id:"move-right",label:n.moveRight,disabled:!E||h<0||h>=S.length-1,onSelect:()=>a.moveColumn(i,S[h+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:C==="left",onSelect:()=>a.setColumnPinned(i,"left")},{id:"pin-right",label:n.pinRight,disabled:C==="right",onSelect:()=>a.setColumnPinned(i,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:C==="sticky",onSelect:()=>a.setColumnPinned(i,"sticky")}]},{id:"unpin",label:n.unpin,disabled:C===null,onSelect:()=>a.setColumnPinned(i,null)}),P}var Yt=typeof window<"u"?useLayoutEffect:useEffect,Fa=1e8,Wn=null;function Ka(){if(Wn!==null)return Wn;if(typeof document>"u"||!document.body)return null;let t=document.createElement("div");t.setAttribute("aria-hidden","true"),t.style.cssText="position:fixed;top:0;left:-9999px;width:80px;height:80px;overflow:auto;visibility:hidden;pointer-events:none;";let e=document.createElement("div");e.style.cssText="width:1px;",e.style.height=`${Fa}px`,t.appendChild(e),document.body.appendChild(t),t.scrollTop=Fa;let n=t.scrollTop;return br=e.offsetHeight>0?e.offsetHeight:null,t.remove(),n>0&&(Wn=n),Wn}var br=null;function md(){return br===null&&Ka(),br}function wr(t){return Math.abs(t)}function Ba(t,e){return getComputedStyle(e).direction==="rtl"?-t:t}function Vn(t,e){if(e)return t;if(t.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");if(t.dataSource!=null&&!Array.isArray(t.dataSource)&&t.grouping){t.debugMode&&console.warn("[datagrid] grouping a server-side DataSource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let s={...t};return delete s.grouping,Vn(s,e)}if(t.columns?.some(s=>s.spanRows)){t.debugMode&&console.warn("[datagrid] cell span/merge (spanRows) is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let s={...t,columns:t.columns.map(p=>p.spanRows?{...p,spanRows:void 0}:p)};return Vn(s,e)}if(t.tree){t.debugMode&&console.warn("[datagrid] tree data is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let s={...t};return delete s.tree,Vn(s,e)}if(!t.grouping)return t.masterDetail?hr(t):t;let{groupBy:n,groupSummaries:a}=t.grouping,l=n==null?[]:typeof n=="string"?[n]:n;if(l.length<=1&&!a)return t.masterDetail?hr(t):t;t.debugMode&&console.warn("[datagrid] multi-level grouping and group summaries are Enterprise features \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use them.");let i={...t,grouping:{...t.grouping,groupBy:l.slice(0,1),groupSummaries:false}};return t.masterDetail?hr(i):i}function hr(t){t.debugMode&&console.warn("[datagrid] master-detail is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let e={...t};return delete e.masterDetail,e}function gd(t){return jsx(yo,{locale:t.locale,messages:t.messages,children:jsx($o,{theme:t.theme,density:t.density,palette:t.palette,children:jsx(fd,{...t})})})}function fd(t){let e=le(),{className:n,style:a,dark:l=false,theme:i,palette:s,striped:p=true,emptyText:R,sortable:f=true,filterRow:m=false,headerFilter:v=false,filterIconMode:C="hover",columnReorder:k=true,columnResize:G=true,loadingOverlay:P=true,announcements:S=true,groupPanel:h=false,showRowCount:E=false,toolbar:u=false,toolbarExcel:N=false,toolbarPdf:B=false,filterPanel:F=false,filterPanelLabels:W,onOpenFilterBuilder:g,toolbarItemsBefore:M,toolbarItemsAfter:I,renderRow:c,stateStoring:y,headerMenu:L=true,focusedRow:Z=false,focusedRowKey:de,onFocusedRowChanged:ce,footer:Ze,footerMenu:Le=true,onRowClick:ue,onRowActivate:Ge,onReady:Ne,renderCellContent:Ce,getCellClassName:Fe,renderOverlay:te,onCellPointerDown:ae,onCellPointerEnter:re,onCellDoubleClick:ge,onHeaderClick:pe,getHeaderClassName:ye,renderHeaderLabel:he,enterpriseEdition:se=false,renderDetail:ie,renderEditForm:T,density:Y,rowMenu:O,cellMenu:j,autoColumns:J,rowDrag:Se,tooltip:A,pinnedTopRows:_,pinnedBottomRows:X,footerPosition:fe="bottom",autoSizeStrategy:x="none",highlightSearch:Be=true,...me}=t,ve=useMemo(()=>{let o=me.columns;if(o&&o.length>0)return o;let d=me.dataSource;if(!Array.isArray(d)||d.length===0)return o??[];let w=typeof J=="object"?J:void 0;return J===false?o??[]:inferColumns(d,w)},[me.columns,me.dataSource,J]),ke={...me,columns:ve},Ve=isPackagedTheme(i)?THEME_ROW_HEIGHT[i][Y??"normal"]:Y?DENSITY_ROW_HEIGHT[Y]:DEFAULT_ROW_HEIGHT,Ke=ke.rowHeight===void 0?{...ke,rowHeight:Ve}:ke,Ie=se?Number.POSITIVE_INFINITY:1,$=Vn(Ke,se),{controller:r,rows:ze,window:Xt,layout:be,sort:mt,rowHeight:dt,visibleCount:je}=fo($),Qe=ho(r,t.printLayout),ut=Qe.active?{...Xt,rows:{...Xt.rows,start:0,end:ze.length,offsetY:0,totalHeight:0}}:Xt,ct=useMemo(()=>ve.some(o=>o.autoHeight===true),[ve]),et=v&&r.canListDistinctValues();v&&!et&&me.debugMode&&console.warn("[datagrid] headerFilter needs a column's distinct values. This grid is remote and its DataSource does not implement `loadDistinctValues` \u2014 implement it, or use `filterRow`.");let Ye=useRef(null);Yt(()=>{r.setEnterpriseEdition(se);},[r,se]),useEffect(()=>{Ne?.(r);},[r,Ne]),Yt(()=>{let o=Ka();o!==null&&o<DEFAULT_MAX_SCROLL_OFFSET&&r.setMaxScrollOffset(o);let d=md();d!==null&&r.setMaxCanvasHeight(d);},[r]),Yt(()=>{let o=Ye.current;if(!o)return;let d=()=>{r.setViewportSize(o.clientWidth,o.clientHeight),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let Q=o.querySelector(".kanuni-datagrid-rows"),V=o.querySelector(".kanuni-datagrid-canvas");if(Q&&V){let z=Q.getBoundingClientRect(),we=V.getBoundingClientRect();r.setChromeOffsets(z.top-we.top,we.bottom-z.bottom);}calibrateMaxScrollOffset(o,r);};if(d(),typeof ResizeObserver>"u")return;let w=new ResizeObserver(d);w.observe(o);let H=o.querySelector(".kanuni-datagrid-canvas");return H&&w.observe(H),()=>w.disconnect()},[r]),Yt(()=>{if(!ct)return;let o=Ye.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let d=r.getVirtualWindow(),w=r.getRows(),H=new Map(r.getMeasuredRowHeights()),Q=false;for(let V=d.rows.start;V<d.rows.end;V++){let z=w[V];if(!z||z.kind!=="data")continue;let we=o.querySelector(`[data-row-key="${CSS.escape(String(z.key))}"]`);if(!we)continue;let Re=we.getBoundingClientRect().height;Re>0&&H.get(z.key)!==Re&&(H.set(z.key,Re),Q=true);}Q&&r.setMeasuredRowHeights(H);}),useEffect(()=>{if(ct)return r.events.on("columnStateChanged",()=>{r.clearMeasuredRowHeights();})},[r,ct]),useEffect(()=>r.events.on("scrollRequested",o=>{let d=Ye.current;if(!d)return;o.scrollTop!==void 0&&(d.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(d.scrollLeft=Ba(o.scrollLeft,d)),r.setScroll(d.scrollTop,wr(d.scrollLeft));let w=o.scrollTop;w===void 0||Math.abs(d.scrollTop-w)<=1||setTimeout(()=>{let H=Ye.current;!H||Math.abs(H.scrollTop-w)<=1||(H.scrollTop=w,r.setScroll(H.scrollTop,wr(H.scrollLeft)));},0);}),[r]);let qt=Ro(r,t.alignedGrids,Ye),Jt=useCallback(o=>{let d=o.currentTarget;r.setScroll(d.scrollTop,wr(d.scrollLeft)),qt.syncScroll(d.scrollLeft);},[r,qt]),Zt=useCallback((o,d)=>r.toggleSort(o,d),[r]);dr(r,y);let at=cr(r,Se);useEffect(()=>{de!=null&&r.getFocusedRowKey()!==de&&r.focusRow(de);},[r,de]),useEffect(()=>{if(ce)return r.events.on("focusedRowChanged",o=>ce({rowKey:o.rowKey,row:o.row}))},[r,ce]);let b=useRef(null),[K,U]=useState(null);useEffect(()=>r.events.on("overlayChanged",o=>{U(o.manual?o.overlay:null);}),[r]);let ee=useCallback(o=>{let d=r.getDataRowNode(o);if(d)return d;if(o==="")return;let w=Number(o);return Number.isNaN(w)?void 0:r.getDataRowNode(w)},[r]),D=se?t.notes:void 0;!se&&t.notes&&t.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use them.");let Ee=!!D?.onChange&&D.menu!==false,Nt=useCallback((o,d,w)=>D?D.get({rowKey:o,columnId:d,row:w})??null:null,[D]),jt=pr({rootRef:b,columnModel:r.getColumnModel(),getRowNode:ee,getNote:D?Nt:void 0,config:A,controller:r,gridId:me.gridId}),[yr,Wa]=useState(0);useEffect(()=>{let o=new Set,d=[r.events.on("cellsFlashed",({rowKeys:w,columnIds:H,duration:Q})=>{let V=b.current;if(!V)return;let z=w.length?w.map(He=>`[data-row-key="${CSS.escape(String(He))}"]`).join(","):".kanuni-datagrid-row",we=H.length?H.map(He=>`[data-column-id="${CSS.escape(He)}"]`).join(","):"[data-column-id]",Re=[];V.querySelectorAll(z).forEach(He=>{He.querySelectorAll(we).forEach(Bt=>Re.push(Bt));});for(let He of Re)He.classList.remove("kanuni-datagrid-cell--flash");V.offsetWidth;for(let He of Re)He.classList.add("kanuni-datagrid-cell--flash");let $e=setTimeout(()=>{for(let He of Re)He.classList.remove("kanuni-datagrid-cell--flash");o.delete($e);},Q);o.add($e);}),r.events.on("cellsRefreshed",({revision:w})=>Wa(w))];return ()=>{d.forEach(w=>w()),o.forEach(clearTimeout);}},[r]);let Ua=useCallback((o,d)=>r.moveColumn(o,d),[r]),Va=useCallback((o,d,w)=>r.setColumnWidth(o,d,w??true),[r]),Yn=useCallback(o=>{if(!b.current)return;let d=Kn(b.current,o);d!==null&&r.setColumnWidth(o,d);},[r]),Xn=useCallback(()=>{let o=b.current;if(o)for(let d of r.getColumnStates()){if(!d.visible||d.flex)continue;let w=Kn(o,d.id);w!==null&&r.setColumnWidth(d.id,w);}},[r]),qn=useRef(null),[pn]=useState(()=>new RowMotion),Cr=t.animateRows===true;useEffect(()=>{r.setAnimateRows(Cr);},[r,Cr]),useEffect(()=>{let o=()=>{r.getAnimateRows()&&pn.capture(qn.current);},d=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(w=>r.events.on(w,o));return ()=>{d.forEach(w=>w()),pn.dispose();}},[r,pn]),Yt(()=>{r.getAnimateRows()&&pn.play(qn.current);}),useEffect(()=>{if(x!=="fitGrid")return;let o=()=>r.sizeColumnsToFit();return o(),r.events.on("gridSizeChanged",o)},[r,x]);let Jn=useRef(null);Yt(()=>{if(x!=="fitCells"){Jn.current=null;return}Jn.current!==r&&b.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(Jn.current=r,Xn());});let[za,kr]=useState({}),vr=t.filterDebounce??(r.isRemote()?200:0),Zn=useRef(false),mn=useMemo(()=>datePeriodLabels(e),[e]),jn=useRef(mn);jn.current=mn;let Ya=useMemo(()=>periodSuggestionList(mn),[mn]),gn=useCallback((o,d)=>{let w=r.getColumnModel().getDataType(o);Zn.current=true;try{r.setColumnFilter(o,parseFilterInput(o,d,w,jn.current),FILTER_PART_ROW);}finally{Zn.current=false;}},[r]),gt=useMemo(()=>createDebouncedCommit(vr),[vr]);useEffect(()=>()=>gt.cancelAll(),[gt]);let Xa=useCallback((o,d)=>{kr(w=>({...w,[o]:d})),gt.schedule(o,()=>gn(o,d));},[gn,gt]),qa=useCallback((o,d)=>{gt.cancel(o),gn(o,d);},[gn,gt]);useEffect(()=>r.events.on("filterChanged",()=>{if(Zn.current)return;let o=r.getColumnModel();kr(d=>Ho(d,{isPending:w=>gt.isPending(w),textFor:w=>{let H=r.getColumnFilter(w,FILTER_PART_ROW);return H?filterInputFromNode(w,H,o.getDataType(w),jn.current):""}},o.getOrder()));}),[r,gt]);let[Te,kt]=useState(null),fn=useRef(0),Qn=useRef(null),it=useCallback(()=>{let o=document.activeElement instanceof HTMLElement?document.activeElement:null;o?.closest(".kanuni-datagrid-portal")||(Qn.current={el:o,columnId:o?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??null});},[]),Ja=useCallback((o,d)=>{it();let w=d.getBoundingClientRect(),H=r.getColumnModel().getDef(o),Q={left:w.left,top:w.bottom+2},V=H?.headerName??o,z=r.getColumnFilter(o,FILTER_PART_SET)??r.getColumnFilter(o,FILTER_PART_DEFAULT);if(!r.isRemote()){let Re=++fn.current;kt({columnId:o,label:V,entries:[],selected:null,anchor:Q,loading:true}),r.getDistinctValueSetAsync(o).then(({entries:$e,truncated:He})=>{fn.current===Re&&kt(Bt=>Bt&&Bt.columnId===o?{...Bt,entries:$e,truncated:He,capped:He,selected:selectedLabelsFromFilter(z,$e),loading:false}:Bt);});return}let we=++fn.current;kt({columnId:o,label:V,entries:[],selected:null,anchor:Q,loading:true}),r.getDistinctValuesAsync(o).then(Re=>{fn.current===we&&kt($e=>$e&&$e.columnId===o?{...$e,entries:Re,selected:selectedLabelsFromFilter(z,Re),loading:false}:$e);});},[r,it]),Za=useCallback(o=>{Te&&(r.setColumnFilter(Te.columnId,o,FILTER_PART_SET),kt(null));},[r,Te]),ja=Object.keys(r.getColumnStates().reduce((o,d)=>(r.getColumnFilter(d.id)&&(o[d.id]=true),o),{})),Mt=r.getSelectionMode(),xe=Mt!=="none"&&(me.selection?.checkboxColumn??false),Tr=(me.selection?.rowClick??(xe?"toggle":"replace"))==="toggle",Qa=useCallback((o,d)=>{r.handleRowClick(o.key,{ctrlKey:d.ctrlKey||Tr&&!d.shiftKey,metaKey:d.metaKey,shiftKey:d.shiftKey});},[r,Tr]),ei=useCallback((o,d)=>r.focusCell(o.key,d),[r]),ti=useCallback(o=>r.toggleRow(o.key),[r]),[Pt,eo]=useState(null),ni=useCallback(()=>eo(null),[]),[Qt,to]=useState(null),xr=useCallback((o,d)=>{let H=(b.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(d)}"]`)??b.current)?.getBoundingClientRect();return {left:H?.left??0,top:(H?.bottom??0)+2}},[]),oi=useCallback(o=>{let d=Qt;to(null),!(!d||!D?.onChange)&&D.onChange({rowKey:d.rowKey,columnId:d.columnId,row:d.row,text:o});},[Qt,D]),Dr=useCallback((o,d)=>{if(!D?.onChange||D.menu===false)return [];let w=o.columnId;if(!w)return [];let H=r.getRowKey(o.row),Q=Nt(H,w,o.row),V=()=>to({rowKey:H,columnId:w,row:o.row,text:Q??"",anchor:xr(H,w)}),z=[];return d&&z.push({separator:true,id:"__note-sep"}),z.push({id:"__note-edit",label:Q?e.editNote:e.addNote,onSelect:V}),Q&&z.push({id:"__note-delete",label:e.deleteNote,onSelect:()=>D.onChange?.({rowKey:H,columnId:w,row:o.row,text:null})}),z},[D,r,Nt,xr,e]),[wn,hn]=useState(null),no=useRef({x:0,y:0}),Gr=useCallback(o=>or(r,e,j,o,d=>{hn({message:d,...no.current}),console.error("[datagrid] export failed:",d);}),[r,e,j]),bn=useCallback((o,d,w,H,Q)=>{if(w.kind!=="data")return;it();let V={row:w.data,node:w,rowIndex:H,columnId:Q,selectedKeys:r.getSelectedKeys()},z=(typeof O=="function"?O(V):O)??[],we=Dr(V,z.length>0),Re=rr(r,e,w.key,z.length+we.length>0),$e=[...z,...we,...Re,...Gr(z.length+we.length+Re.length>0)];$e.length!==0&&(no.current={x:o,y:d},hn(null),eo({x:o,y:d,items:$e,context:V}));},[O,r,e,Dr,Gr,it]),Sr=useCallback((o,d,w)=>{let H=rr(r,e,o,false);if(H.length===0)return;w.preventDefault(),it();let Q={row:d,node:{kind:"data",key:o,sourceIndex:-1,data:d},rowIndex:-1,columnId:w.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:r.getSelectedKeys()};no.current={x:w.clientX,y:w.clientY},hn(null),eo({x:w.clientX,y:w.clientY,items:H,context:Q});},[r,e,it]),Er=useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),Lt=useCallback((o,d,w,H,Q)=>{let V=H??-1;o&&r.notifyRow(o,w,V);let z=Er(Q);z!==null&&r.notifyCell(d,w,V,z);},[r,Er]),ri=useCallback((o,d,w)=>{ue?.(o),Lt("rowClicked","cellClicked",o,d,w);},[ue,Lt]),ai=useCallback((o,d,w)=>{Ge?.(o),Lt("rowDoubleClicked","cellDoubleClicked",o,d,w);},[Ge,Lt]),ii=useCallback((o,d,w)=>{if(Lt(null,"cellContextMenu",o,d,w),!O&&!Ee&&j===false&&!r.isRowPinningEnabled()||o.kind!=="data")return;w.preventDefault(),r.isRowSelected(o.key)||r.handleRowClick(o.key,{});let H=w.target.closest("[data-column-id]")?.dataset.columnId??null;bn(w.clientX,w.clientY,o,d,H);},[O,Ee,j,r,bn,Lt]),[li,si]=useState(null),[di,ui]=useState(null),[oo,ci]=useState(()=>me.grouping?.groupSummaries??false),[vt,ro]=useState(null),[Nr,ao]=useState(null),io=Pt!==null||vt!==null||Te!==null,Mr=useRef(false);useEffect(()=>{if(Mr.current&&!io){let o=Qn.current;Qn.current=null;let d=o?.el?.isConnected?o.el:o?.columnId?b.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,w=!document.activeElement||document.activeElement===document.body;d&&w&&d.focus({preventScroll:true});}Mr.current=io;},[io]);let pi=useCallback(()=>{r.getSelectedCount()>0?r.clearSelection():r.selectAll();},[r]),lo=xe?r.getSelectableCount():je,so=r.getSelectedCount(),mi=lo>0&&so>=lo?"all":so>0?"some":"none",gi=useCallback(o=>{let d=o.target;if(d.tagName==="INPUT"||d.tagName==="TEXTAREA"||d.isContentEditable)return;if((O||Ee||j!==false||r.isRowPinningEnabled())&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let Q=r.getFocus(),V=Q?ze.findIndex(we=>we.key===Q.rowKey):-1,z=V>=0?ze[V]:void 0;if(z){let Re=Ye.current?.querySelector(`[data-row-key="${CSS.escape(String(z.key))}"]`)?.getBoundingClientRect();bn(Re?Re.left+16:0,Re?Re.bottom:0,z,V,Q?.columnId??null),o.preventDefault();}return}let w=resolveGridCommand({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!w)return;if(w.type==="copy"){Ut(r);return}if(w.type==="activate"){let Q=r.getFocus(),V=Q?ze.find(z=>z.key===Q.rowKey):void 0;V&&Ge?.(V),w.preventDefault&&o.preventDefault();return}r.executeCommand(w),w.preventDefault&&o.preventDefault();let H=r.getFocusIndices();if(H&&Ye.current){let V=r.getColumnLayout().center.findIndex(we=>we.state.id===r.getFocus()?.columnId),z=r.ensureVisible(H.rowIndex,V===-1?void 0:V);if(z){let we=Ye.current;z.scrollTop!==void 0&&(we.scrollTop=z.scrollTop),z.scrollLeft!==void 0&&(we.scrollLeft=Ba(z.scrollLeft,we)),r.setScroll(we.scrollTop,we.scrollLeft);}}},[r,ze,Ge,O,Ee,j,bn]),Tt=useMemo(()=>bandDepth([...be.left,...be.center,...be.right]),[be]),It=$t,uo=(m?2:1)+Tt,Pr=r.getPinnedRows("top"),Lr=r.getPinnedRows("bottom"),co=[..._??[],...Pr.map(o=>o.row)],po=[...X??[],...Lr.map(o=>o.row)],fi=[...(_??[]).map(()=>null),...Pr.map(o=>o.key)],wi=[...(X??[]).map(()=>null),...Lr.map(o=>o.key)],Rn=co.length,hi=po.length,yn=uo+Rn,Cn=li??me.grouping?.panel??h,Ir=r.getGroupLevels(),bi=useCallback(o=>r.groupBy(o.slice(0,Ie)),[r,Ie]),Ri=useCallback(o=>r.toggleGroup(o),[r]),Hr=useCallback(o=>r.toggleGroupSelection(o),[r]),yi=r.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),_e=r.hasMasterDetail()&&!!ie,De=t.rowNumbers??false,Ci=De&&r.isPaginated()?r.getPage()*r.getPageSize():0;useEffect(()=>{r.setLeadWidth(Go(xe,_e,De));},[r,xe,_e,De]);let ki=useCallback(o=>r.toggleDetail(o),[r]),vi=useCallback(o=>r.toggleTreeRow(o),[r]),Ar=r.getSummaryDefs(),Ti=r.getSummaries(),Ht=di??Ze??Ar.length>0,en=Ht&&fe==="top",mo=m?2:1,Or=$.grouping?.groupSummaries&&oo?me.summaries:void 0,Fr=r.getGroupDisplay(),Br=useCallback(()=>{ci(o=>(r.setGroupSummaries(!o),!o));},[r]),xi=useCallback((o,d)=>{if(!Le)return;d.preventDefault();let w=r.getColumnModel().getDef(o),H=r.getColumnSummary(o),Q={columnId:o,headerName:w?.headerName??w?.field??o},V=[{id:"none",label:e.noTotal,disabled:H===null,onSelect:()=>r.setColumnSummary(o,null)},{id:"sep",separator:true},...allowedSummaryTypes(w?.dataType).map(z=>({id:z,label:summaryTypeLabels(e)[z],disabled:H?.type===z,onSelect:()=>r.setColumnSummary(o,z)}))];it(),ro({x:d.clientX,y:d.clientY,items:V,context:Q});},[r,Le,it]),Di=useCallback((o,d)=>{if(L===false)return;d.preventDefault();let w=r.getColumnModel().getDef(o),H={columnId:o,headerName:w?.headerName??w?.field??o},Q=gr(H,{controller:r,groupPanelVisible:Cn,footerVisible:Ht,groupFootersAvailable:se,groupFootersVisible:oo,onToggleGroupPanel:()=>si(!Cn),onToggleFooter:()=>ui(!Ht),onToggleGroupFooters:Br,onOpenFieldChooser:()=>ao({left:d.clientX,top:d.clientY}),onBestFit:Yn,onBestFitAll:Xn,maxGroupLevels:Ie,labels:$n(e)}),V=typeof L=="function"?L(H,Q):Q;!V||V.length===0||(it(),ro({x:d.clientX,y:d.clientY,items:V,context:H}));},[L,r,Cn,Ht,se,oo,Br,Yn,Xn,Ie,e,it]),At=r.getFocus(),Gi=At?`${t.gridId}-cell-${String(At.rowKey)}-${At.columnId}`:void 0,go=r.getSelectedCount(),Si=useMemo(()=>{let o=[fillText(e.announceRows,{n:je})];if(mt.length>0){let d=mt.map(w=>{let H=r.getColumnModel().getDef(w.columnId),Q=String(H?.headerName??H?.field??w.columnId),V=w.direction==="desc"?e.announceDescending:e.announceAscending;return `${Q} ${V}`}).join(", ");o.push(fillText(e.announceSortedBy,{columns:d}));}return go>0&&o.push(fillText(e.announceSelected,{n:go})),o.join(", ")},[r,je,mt,go,e]),{centerColumns:ft,centerIndices:kn,stickyInsets:Ot,leadingSpacer:wt,trailingSpacer:ht,rowStart:Ei,rowEnd:Kr}=Qr(be,ut),vn=r.getColumnModel(),Ft=Ei,Ni=o=>{if(ct)return;let d=r.getRowHeightAt(o);return d===dt?void 0:d},Mi=Array.from(ze.slice(Ft,Kr)),Pi=useMemo(()=>!De||r.getGroupLevels().length===0&&!r.hasMasterDetail()&&!r.hasTreePathRows()?null:ea(ze),[De,r,ze]),Li=r.hasCellSpans(),_r=useRef({start:0,end:0});_r.current={start:Ft,end:Kr-1};let $r=useRef(ut.columns);$r.current=ut.columns;let Ii=useCallback(o=>r.planRowColSpans(o,$r.current),[r]),Hi=hasColSpans(be),Ai=useCallback((o,d)=>{let w=r.getCellSpans(d);if(w.length===0)return null;let{start:H,end:Q}=_r.current,V=spanRoleAt(w,o,H,Q);if(!V)return null;if(V.role==="covered")return {kind:"covered"};let z=r.getRowOffset(V.drawStart);return {kind:"draw",height:r.getRowOffset(V.drawEnd)+r.getRowHeightAt(V.drawEnd)-z,offset:0}},[r]),Wr=r.getFindNeedle()||(Be?normalizeSearch(r.getSearchText()):""),Ur=r.getFindState(),Tn=Ur.count>0?`${r.getFindNeedle()}\0${Ur.activeIndex}`:"",Vr=useCallback((o,d)=>r.getFindMatchKind(o,d),[r]),Oi={pathOf:o=>bandPath(r.getColumnModel().getDef(o)),collapsible:o=>r.isBandCollapsible(o),collapsed:o=>r.isBandCollapsed(o),onToggle:o=>r.toggleBand(o),labels:{expand:e.expandColumnGroup,collapse:e.collapseColumnGroup}},zr={layout:be,centerColumns:ft,leadingSpacer:wt,trailingSpacer:ht,defs:Ar,values:Ti,checkboxColumn:xe,detailColumn:_e,rowNumberColumn:De,onPickSummary:Le?xi:void 0,emptyHint:Le?"\xB7":""};return jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${Qe.active?" kanuni-datagrid-print":""}${themeClassName(i,Y,s)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${dt}px`,"--dg-grip-inset":De?`${Kt}px`:"0px",...a},dir:isRtlLocale(t.locale)?"rtl":void 0,"data-grid-id":t.gridId,"data-theme":i,"data-palette":s,"data-auto-height":ct?"":void 0,ref:b,children:[u&&jsx(Jo,{controller:r,dark:l,columnChooser:t.toolbarColumnChooser??true,exportExcel:se&&N,exportPdf:se&&B,itemsBefore:M,itemsAfter:I,onOpenColumnChooser:o=>ao(d=>d?null:o)}),Cn&&jsx(qo,{columns:yi,levels:Ir,onSetLevels:bi,maxLevels:Ie,onExpandAll:()=>r.expandAllGroups(),onCollapseAll:()=>r.collapseAllGroups()}),jsx("div",{className:"kanuni-datagrid-scroller",ref:Ye,onScroll:Jt,onKeyDown:gi,tabIndex:0,role:"grid","aria-rowcount":je+uo+Rn+hi,"aria-colcount":be.left.length+be.center.length+be.right.length+(xe?1:0)+(_e?1:0)+(De?1:0),"aria-multiselectable":Mt==="multiple"||void 0,"aria-activedescendant":Gi,"aria-label":t.ariaLabel??t.gridId,children:jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(be.totalWidth||0)+Go(xe,_e,De)||"100%"},role:"rowgroup",children:[jsx(Po,{layout:be,centerColumns:ft,leadingSpacer:wt,trailingSpacer:ht,depth:Tt,checkboxColumn:xe,detailColumn:_e,rowNumberColumn:De,rowHeight:It,bandFold:Oi}),jsx(Io,{bandOffset:Tt*It,stickyInsets:Ot,layout:be,centerColumns:ft,leadingSpacer:wt,trailingSpacer:ht,sort:mt,sortable:f,onSort:Zt,groupLevels:Ir,headerFilter:et,filteredColumns:ja,onOpenFilter:Ja,filterIconMode:C,checkboxColumn:xe,detailColumn:_e,rowNumberColumn:De,selectAllState:mi,selectAllDisabled:lo===0&&so===0,onToggleSelectAll:pi,draggable:h,reorderable:k,onReorder:Ua,resizable:G,onResize:Va,onAutoFit:Yn,onHeaderContextMenu:L===false?void 0:Di,onHeaderClick:pe,getHeaderClassName:ye,renderHeaderLabel:he}),m&&jsx(Ao,{bandOffset:Tt*It,stickyInsets:Ot,layout:be,centerColumns:ft,leadingSpacer:wt,trailingSpacer:ht,values:za,checkboxColumn:xe,detailColumn:_e,rowNumberColumn:De,onChange:Xa,onCommit:qa,periodSuggestions:Ya,periodListId:`${t.gridId}-filter-periods`}),en&&jsx(In,{...zr,position:"top",bandOffset:Tt*It,headerRowsBetween:mo}),co.length>0&&jsx(Hn,{gridId:t.gridId,side:"top",rows:co,rowKeys:fi,onUserRowContextMenu:Sr,layout:be,columnModel:vn,centerColumns:ft,centerIndices:kn,stickyInsets:Ot,leadingSpacer:wt,trailingSpacer:ht,checkboxColumn:xe,detailColumn:_e,rowNumberColumn:De,rowHeight:dt,bandOffset:Tt*It,headerRowsBetween:mo+(en?1:0),ariaRowBase:uo}),r.hasStickyGroupHeaders()&&jsx(ga,{controller:r,width:be.totalWidth,bandOffset:Tt*It,headerRowsBetween:mo+(en?1:0),belowPinned:Rn>0?Rn*dt+1:0,renderRow:(o,d,w)=>jsx(_t,{gridId:t.gridId,node:o,index:d,layout:be,columnModel:vn,centerColumns:ft,centerIndices:kn,stickyInsets:Ot,leadingSpacer:wt,trailingSpacer:ht,striped:false,selected:false,groupSelection:xe&&Mt==="multiple"?r.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:Hr,groupDisplay:Fr,focusedColumnId:null,checkboxColumn:xe,rowNumberColumn:De,rowNumber:null,headerRowCount:yn,onToggleGroup:H=>{r.toggleGroup(H),r.scrollToRow(H);},revision:yr,searchNeedle:Wr,findStamp:Tn,findKind:Tn?Vr:void 0,summaryDefs:Or,detailColumn:_e,height:w,renderCellContent:Ce,getCellClassName:Fe})}),jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:ut.rows.totalHeight},onDragOver:at.bodyHandlers?.onDragOver,onDrop:at.bodyHandlers?.onDrop,onDragLeave:at.bodyHandlers?.onDragLeave,children:[jsx("div",{ref:qn,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${ut.rows.offsetY}px)`},children:Mi.map((o,d)=>o?jsx(_t,{gridId:t.gridId,node:o,index:Ft+d,layout:be,columnModel:vn,centerColumns:ft,centerIndices:kn,stickyInsets:Ot,leadingSpacer:wt,trailingSpacer:ht,striped:p,selected:r.isRowSelected(o.key),ariaSelectable:Mt!=="none",selectable:xe&&o.kind==="data"?r.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&xe&&Mt==="multiple"?r.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:Hr,groupDisplay:Fr,focusedColumnId:At?.rowKey===o.key?At.columnId:null,rowFocused:Z&&At?.rowKey===o.key,rowDrag:at.handlers,dropSide:at.dropAt?.key===o.key?at.dropAt.side:null,renderRow:c,checkboxColumn:xe,rowNumberColumn:De,getSpan:Li?Ai:void 0,resolveColSpans:Hi?Ii:void 0,getNote:D?Nt:void 0,rowNumber:De?ta(Ft+d,Pi,Ci):null,headerRowCount:yn,onRowClick:ri,onRowMouseDown:Mt==="none"?void 0:Qa,onRowDoubleClick:ai,onToggleSelect:ti,onCellMouseDown:ei,onRowContextMenu:ii,onToggleGroup:Ri,onToggleTreeRow:vi,revision:yr,searchNeedle:Wr,findStamp:Tn,findKind:Tn?Vr:void 0,summaryDefs:Or,detailColumn:_e,detailExpanded:_e&&r.isDetailExpanded(o.key),onToggleDetail:ki,renderDetail:ie,renderEditForm:T,height:Ni(Ft+d),renderCellContent:Ce,getCellClassName:Fe,onCellPointerDown:ae,onCellPointerEnter:re,onCellDoubleClick:ge},String(o.key)):(()=>{let w=Ft+d,H=r.isRowLoadFailed(w);return jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${H?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":w+1+yn,"aria-busy":H?void 0:"true",children:jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:H?jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-load-failed-text",children:e.rowsLoadFailed}),jsx("button",{type:"button",className:"kanuni-datagrid-retry-button","data-retry-load":"",onClick:()=>r.retryFailedLoads(),children:e.retryLoad})]}):jsx("span",{className:"kanuni-datagrid-loading-bar"})})},`__loading-${w}`)})())}),te?.()]}),po.length>0&&jsx(Hn,{gridId:t.gridId,side:"bottom",rows:po,rowKeys:wi,onUserRowContextMenu:Sr,layout:be,columnModel:vn,centerColumns:ft,centerIndices:kn,stickyInsets:Ot,leadingSpacer:wt,trailingSpacer:ht,checkboxColumn:xe,detailColumn:_e,rowNumberColumn:De,rowHeight:dt,headerRowsBetween:Ht&&!en?1:0,ariaRowBase:yn+je}),Ht&&!en&&jsx(In,{...zr,position:"bottom"})]})}),(K==="noRows"||K===null&&je===0)&&jsx("div",{className:"kanuni-datagrid-empty",children:R??e.noData}),F&&jsx(Qo,{controller:r,alwaysVisible:F==="always",onOpenBuilder:g,describeOptions:W}),P!==false&&jsx(sr,{controller:r,delay:typeof P=="number"?P:void 0,forced:K==="loading"}),r.isPaginated()&&jsx(jo,{page:r.getPage(),pageCount:r.getPageCount(),pageSize:r.getPageSize(),pageSizes:me.pagination?.pageSizes,pageButtons:me.pagination?.pageButtons,maxPageButtons:me.pagination?.maxPageButtons,totalRows:je,onPage:o=>r.setPage(o),onNext:()=>r.nextPage(),onPrevious:()=>r.previousPage(),onPageSize:o=>r.setPageSize(o)}),S&&jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:Si}),Qt&&jsx(ir,{anchor:Qt.anchor,value:Qt.text,dark:l,onCommit:oi,onCancel:()=>to(null)}),Pt&&jsx(Bn,{x:Pt.x,y:Pt.y,items:Pt.items,context:Pt.context,dark:l,onClose:ni}),wn&&jsx(ot,{dark:l,children:jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:wn.x,top:wn.y},onClick:()=>hn(null),children:wn.message})}),vt&&jsx(Bn,{x:vt.x,y:vt.y,items:vt.items,context:vt.context,dark:l,label:`${vt.context.headerName} column`,onClose:()=>ro(null)}),jt&&jsx(mr,{state:jt,dark:l}),Nr&&jsx(Zo,{controller:r,columns:r.getColumnStates(),anchor:Nr,dark:l,onClose:()=>ao(null)}),Te&&jsx(Yo,{gridId:t.gridId,columnId:Te.columnId,headerLabel:Te.label,entries:Te.entries,initialSelected:Te.selected,anchor:Te.anchor,loading:Te.loading,truncated:Te.truncated,onSearch:Te.capped&&!r.isRemote()?o=>{let{entries:d,truncated:w}=r.searchDistinctValues(Te.columnId,o);kt(H=>H&&H.columnId===Te.columnId?{...H,entries:d,truncated:w}:H);}:void 0,dark:l,onApply:Za,onClose:()=>kt(null)},`${Te.columnId}:${Te.loading?"loading":"ready"}`)]})}function bd({defs:t,values:e,columnModel:n,rowCount:a,rowCountLabel:l}){let i=le(),s=summaryTypeLabels(i);return t.length===0&&a===void 0?null:jsxs("div",{className:"kanuni-datagrid-summary-bar",role:"status","aria-label":i.summaryAria,children:[a!==void 0&&jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsx("strong",{children:a.toLocaleString()})," ",l??i.summaryRows]}),t.map(p=>{let R=e[summaryKey(p.columnId,p.type)],f=n.getDef(p.columnId),m=formatSummaryValue(p,R,f);return jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxs("span",{className:"kanuni-datagrid-summary-label",children:[summaryLabel(p,s)," ",f?.headerName??p.columnId,":"]}),jsx("strong",{children:m})]},summaryKey(p.columnId,p.type))})]})}var Rd=memo(bd);function vd(t,e){return Rr(t,e,e?.source,(n,a)=>n.computeChartData(a))}function Td(t,e){return Rr(t,e,e?.source,(n,a)=>n.computeChartXYData(a))}function xd(t,e){return Rr(t,e,e?.source,(n,a)=>n.computeChartBoxData(a))}function Rr(t,e,n,a){let[l,i]=useState(null);return useEffect(()=>{if(!t||!e){i(null);return}let s=n??"view",p=chartNeedsOrder(e),R=false,f=0,m=false,v=false,C=null,k=()=>{let S=++f;a(t,e).then(h=>{!R&&S===f&&i(h);},()=>{});},G=(S=false)=>{v||=S,!m&&(m=true,queueMicrotask(()=>{if(m=false,R)return;let h=t.chartBasis(s,p);!v&&h===C||(v=false,C=h,k());}));};C=t.chartBasis(s,p),k();let P=[t.events.on("contentReady",()=>G()),t.events.on("rowsChanged",()=>G()),t.events.on("dataUpdated",()=>G()),...s==="selection"?[t.events.on("selectionChanged",()=>G(true))]:[]];return ()=>{R=true,f++,P.forEach(S=>S());}},[t,e]),l}export{$t as BAND_ROW_HEIGHT,Ia as DEFAULT_HEADER_MENU_LABELS,gd as DataGrid,Zo as GridColumnChooser,Bn as GridContextMenu,Qo as GridFilterPanel,Ao as GridFilterRow,In as GridFooterRow,qo as GridGroupPanel,Io as GridHeader,Po as GridHeaderBands,Yo as GridHeaderFilterPopup,sr as GridLoadingOverlay,ir as GridNoteEditor,jo as GridPager,Hn as GridPinnedRows,Et as GridPopupPanel,ot as GridPortal,_t as GridRow,Rd as GridSummaryBar,$o as GridSurfaceProvider,yo as GridTextProvider,Jo as GridToolbar,mr as GridTooltip,wo as PRINT_MAX_ROWS,_n as ROW_DRAG_MIME,Ca as SHORTCUT_COPY,Ds as SHORTCUT_CUT,Gs as SHORTCUT_PASTE,or as buildCellMenuItems,gr as buildHeaderMenu,Ut as copyToClipboard,$n as headerMenuLabels,Kn as measureBestFitWidth,Ho as reconcileFilterInputs,an as runGridExport,Ro as useAlignedGrids,nn as useAnchoredPopup,pr as useCellTooltip,fo as useDataGrid,xd as useGridChartBoxData,vd as useGridChartData,Td as useGridChartXYData,Wo as useGridSurfaceClass,le as useGridText,ho as usePrintLayout,cr as useRowDrag,dr as useStateStoring,Ss as writeClipboardText};
|
|
1
|
+
import {createContext,memo,useState,useId,useRef,useEffect,useContext,useMemo,useCallback,useSyncExternalStore,useLayoutEffect,useReducer}from'react';import {getGridDictionary,isDetailRow,isEditFormRow,isFillerRow,isGroupRow,lookupLabel,fillText,summaryLabel,formatSummaryValue,summaryKey,GROUP_COLUMN_ID,summaryTypeLabels,pageButtonItems,describeFilter,filterLabels,computeHeaderBands,isChromeColumn,customFilterOperators,TOOLBAR_ICON_PATHS,downloadBlob,ExportAbortedError,formatDateValue,foldText,RangeSelectionEngine,rangesFromSaved,rangesToSaved,EditingEngine,createDebouncedCommit,isRowEditMode,edgeEditableColumn,nextEditableColumn,computeFillTarget,computeFillValues,cellDisplayText,parseClipboardTable,computePasteCells,coercePastedValue,RANGE_KEY_DIRECTIONS,extendRangeByKey,keyboardFill,themeClassName,toDate,DEFAULT_DATE_FORMAT,maskDate,parseDateValue,dateDigitCount,placeAnchoredLayer,toIsoDate,daysInMonth,dateDigits,attachStateStoring,isDataRow,inferColumns,isPackagedTheme,THEME_ROW_HEIGHT,DENSITY_ROW_HEIGHT,DEFAULT_ROW_HEIGHT,resolveCardView,showsCards,cardColumnIds,cardHeight,cardFields,DEFAULT_MAX_SCROLL_OFFSET,calibrateMaxScrollOffset,RowMotion,datePeriodLabels,periodSuggestionList,findCustomFilterOperator,parseCustomFilterInput,parseFilterInput,FILTER_PART_ROW,customFilterInputFromNode,FILTER_PART_SET,FILTER_PART_DEFAULT,selectedLabelsFromFilter,resolveGridCommand,bandDepth,allowedSummaryTypes,hasColSpans,spanRoleAt,normalizeSearch,isRtlLocale,chartNeedsOrder,DataGridController,isFilterGroup,isBuiltInFilterOperator,filterInputFromNode,bandPath}from'@kanunilabs/datagrid-core';export{ClientRowModel,ColumnModel,DEFAULT_ROW_HEIGHT,DENSITY_ROW_HEIGHT,DataGridController,GRID_COLOR_SCHEMES,GRID_PALETTES,GRID_THEMES,GridStateStore,SUMMARY_TYPE_LABEL,THEME_ROW_HEIGHT,VirtualWindowEngine,allowedSummaryTypes,andFilters,attachStateStoring,bandDepth,bandPath,computeColumnLayout,computeHeaderBands,createRestDataSource,describeFilter,downloadBlob,fillText,filterInputFromNode,formatSummaryValue,humanizeField,importCsv,inferColumns,isDataRow,isDataSource,isFilterGroup,isGroupRow,isPackagedTheme,lookupLabel,moveRowInArray,parseCsv,parseFilterInput,sniffDelimiter,summaryKey,summaryLabel,summaryTypeLabels,themeClassName}from'@kanunilabs/datagrid-core';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {createPortal,flushSync}from'react-dom';var Ds=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],ti=new WeakMap;function Jo(e){let t=ti.get(e);if(!t){let n={version:0,listeners:new Set},a=()=>{n.version++,n.listeners.forEach(l=>l());};for(let l of Ds)e.events.on(l,a);ti.set(e,n),t=n;}return t}function Zo(e){let t=e.sorting?.postSort,n=useRef(t);useEffect(()=>{n.current=t;},[t]);let[a]=useState(()=>((v,F)=>n.current?.(v,F))),l=()=>{let v=new DataGridController(t?{...e,sorting:{...e.sorting,postSort:a}}:e);return Jo(v),v},[r,d]=useState(l);useEffect(()=>{if(r.isDisposed()){d(l());return}return ()=>r.dispose()},[r]);let y=useCallback(v=>{let{listeners:F}=Jo(r);return F.add(v),()=>{F.delete(v);}},[r]),b=useCallback(()=>Jo(r).version,[r]);useSyncExternalStore(y,b,b);let{dataSource:w,columns:g}=e,E=useRef(true);useEffect(()=>{if(E.current){E.current=false;return}Array.isArray(w)&&r.setData(w);},[r,w]);let k=useRef(true);useEffect(()=>{if(k.current){k.current=false;return}r.setColumns(g);},[r,g]);let N=e.pagination?e.pagination.enabled!==false:false;useEffect(()=>{r.setPaginationEnabled(N);},[r,N]);let H=e.rowHeight,M=useRef(true);useEffect(()=>{if(M.current){M.current=false;return}H!==void 0&&r.setRowHeight(H);},[r,H]);let G=e.selection?.mode??"none";useEffect(()=>{r.setSelectionMode(G);},[r,G]);let m=e.rowPinning;useEffect(()=>{r.setRowPinning(m);},[r,m]);let h=e.selection?.isRowSelectable,f=useRef(true);useEffect(()=>{if(f.current){f.current=false;return}r.setRowSelectable(h??null);},[r,h]);let K=t!==void 0,Y=useRef(true);useEffect(()=>{if(Y.current){Y.current=false;return}r.setPostSort(K?a:null);},[r,K,a]);let P=e.grouping?.groupBy??null,B=JSON.stringify(P==null?[]:typeof P=="string"?[P]:P),x=useRef(true);return useEffect(()=>{if(x.current){x.current=false;return}r.groupBy(JSON.parse(B));},[r,B]),{controller:r,rows:r.getRows(),window:r.getVirtualWindow(),layout:r.getColumnLayout(),sort:r.getSort(),rowHeight:r.getRowHeight(),visibleCount:r.getVisibleCount(),totalCount:r.getTotalCount()}}var oi=createContext(getGridDictionary("en"));function Qo({locale:e,messages:t,children:n}){let a=useMemo(()=>getGridDictionary(e,t),[e,t]);return jsx(oi.Provider,{value:a,children:n})}function Te(){return useContext(oi)}var Us=1e5,zs=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function Ys(e){let{controller:t,canEditColumn:n}=e;return {controller:t,mode:"cell",onSave:e.onSave,editOnKeyPress:e.editOnKeyPress,focusCellOnTab:e.focusCellOnTab,focusCellOnCycle:e.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,enabled:e.enabled,range:false,history:false,canEditColumn:a=>{let l=t?.getColumnModel().getDef(a);return l?.lookup||l?.renderEditor||l?.allowFormulas===true?false:n?.(a)??true}}}function er(e){let t=e.controller?.isEnterpriseEdition()??false;return qs(t?e:Ys(e))}function qs({controller:e,mode:t="batch",rules:n,onSave:a,crud:l,allowAdding:r,allowUpdating:d,allowDeleting:y,onInitNewRow:b,onRowInserted:w,onRowUpdated:g,onRowRemoved:E,editOnKeyPress:k,confirmDelete:N,confirmDeleteMessage:H,insertKey:M,appendOnArrowDown:G,newRowPosition:m,focusCellOnTab:h,focusCellOnCycle:f,keepEditingOnTab:K,enabled:Y=true,range:P=true,history:B=true,canEditColumn:x}){let v=Te(),[F,c]=useState(0),T=useCallback(()=>c(s=>s+1),[]),A=useMemo(()=>new RangeSelectionEngine,[]),U=useMemo(()=>({start(s,u){A.start(s,u),T();},add(s,u){A.add(s,u),T();},extend(s,u){A.extend(s,u)&&T();},finish(){A.finish(),T(),e?.notifyViewStateChanged();},clear(){A.clear()&&(T(),e?.notifyViewStateChanged());},contains:(s,u)=>A.contains(s,u),isAnchor:(s,u)=>A.isAnchor(s,u),getRange:()=>A.getRange(),getBounds:()=>A.getBounds(),toTsv:s=>A.toTsv(s),selectColumn(s,u,R){return A.selectColumn(s,u,R)?(T(),e?.notifyViewStateChanged(),true):false},fullColumns:s=>A.fullColumns(s)}),[A,T,e]),z=useRef(null);useEffect(()=>{if(!(!e||!P))return e.registerViewStatePart("ranges",{session:true,get:()=>rangesToSaved(A.getRanges(),e.getVisualColumnIds()),apply:s=>{A.setRanges(rangesFromSaved(s,e.getVisualColumnIds())),T();}})},[e,P,A,T]);let[we,Oe]=useState(null),pe=useRef({onSave:a,crud:l,allowAdding:r,allowUpdating:d,allowDeleting:y,onInitNewRow:b,onRowInserted:w,onRowUpdated:g,onRowRemoved:E,editOnKeyPress:k,confirmDelete:N,confirmDeleteMessage:H,insertKey:M,appendOnArrowDown:G,newRowPosition:m,focusCellOnTab:h,focusCellOnCycle:f,keepEditingOnTab:K,canEditColumn:x});pe.current={onSave:a,crud:l,allowAdding:r,allowUpdating:d,allowDeleting:y,onInitNewRow:b,onRowInserted:w,onRowUpdated:g,onRowRemoved:E,editOnKeyPress:k,confirmDelete:N,confirmDeleteMessage:H,insertKey:M,appendOnArrowDown:G,newRowPosition:m,focusCellOnTab:h,focusCellOnCycle:f,keepEditingOnTab:K,canEditColumn:x};let ke=useRef(null),C=useMemo(()=>{if(!e||!Y)return null;let s=u=>e.getRowByKey(u);return new EditingEngine({mode:t,rules:n,messages:v,onChange:T,onAutoSaveFailed:u=>ke.current?.(u),onCellValueChanged:u=>e.notifyCellValueChanged(u),onEditingStarted:u=>e.notifyEditingStarted(u),onEditingStopped:u=>e.notifyEditingStopped(u),onRowEditingStarted:u=>e.notifyRowEditingStarted(u),onRowEditingStopped:u=>e.notifyRowEditingStopped(u),onHistoryStarted:({kind:u,label:R})=>e.notifyHistoryStarted(u,R),onHistoryEnded:({kind:u,...R})=>e.notifyHistoryEnded(u,R),readValue:(u,R)=>{let L=s(u);return L?e.getColumnModel().getStoredValue(L,R):void 0},formatForEdit:(u,R,L)=>e.formatCellForEdit(R,L),parseFromEdit:(u,R,L)=>e.parseCellFromEdit(R,L,u),readRow:s,editableColumns:u=>{let R=e.getColumnLayout(),L=s(u);return [...R.left,...R.center,...R.right].map(q=>q.state.id).filter(q=>{if(e.getColumnModel().getDef(q)?.editable===false||pe.current.canEditColumn&&!pe.current.canEditColumn(q))return false;let te=pe.current.allowUpdating;return te===void 0?true:typeof te=="function"?te(L,q):te})},isColumnEditable:u=>e.getColumnModel().getDef(u)?.editable!==false&&(pe.current.canEditColumn?.(u)??true),applyValue:(u,R,L)=>e.writeCellValue(u,R,L),storedValue:(u,R,L)=>e.valueAfterWrite(u,R,L),insertRow:(u,R,L,q)=>{let te=e.getRowKeyField(),Q={...R};te&&(Q[te]=u),e.applyTransaction({add:[Q],addPosition:L,addBeforeKey:q});},dropRow:u=>e.applyTransaction({remove:[u]}),replaceRow:(u,R)=>{if(e.getRowKey(R)===u){e.applyTransaction({update:[R]});return}e.applyTransaction({remove:[u],add:[R]});},allowAdding:()=>pe.current.allowAdding??false,allowUpdating:(u,R)=>{let L=pe.current.allowUpdating;return L===void 0?true:typeof L=="function"?L(u,R):L},allowDeleting:u=>{let R=pe.current.allowDeleting;return R===void 0?false:typeof R=="function"?R(u):R},onInitNewRow:u=>pe.current.onInitNewRow?.(u),get newRowPosition(){return pe.current.newRowPosition},onRowInserted:(u,R)=>pe.current.onRowInserted?.(u,R),onRowUpdated:(u,R,L)=>pe.current.onRowUpdated?.(u,R,L),onRowRemoved:(u,R)=>pe.current.onRowRemoved?.(u,R),crud:{get insert(){let u=pe.current.crud?.insert;return u&&(R=>u(R))},get update(){let u=pe.current.crud?.update;return u&&((R,L,q)=>u(R,L,q))},get remove(){let u=pe.current.crud?.remove;return u&&((R,L)=>u(R,L))}},onSave:u=>pe.current.onSave?.(u)})},[e,Y]);useEffect(()=>{C?.setMessages(v);},[C,v]),useEffect(()=>{C?.setMode(t);},[C,t]),useEffect(()=>{if(!e||!C)return;let s=false,u=e.events.on("rowsChanged",L=>{s=L.removed===0;}),R=e.events.on("dataUpdated",()=>{let L=s;s=false,!L&&C.retainKeys(new Set(e.getDataRows().map(q=>q.key)));});return ()=>{u(),R();}},[e,C]),useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>U.clear())},[e,U]),useEffect(()=>{if(!(!e||!C))return e.setPendingValueReader({effectiveValue:(s,u,R)=>C.changes.effectiveValue(s,u,R),effectiveRow:(s,u)=>C.changes.applyPendingTo(s,u),hasPending:()=>C.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,C]),useEffect(()=>{if(!(!e||!C||!B))return e.setHistoryDelegate({undo:()=>C.undo(),redo:()=>C.redo(),canUndo:()=>C.canUndo(),canRedo:()=>C.canRedo(),depth:()=>C.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,C,B]);let W=useMemo(()=>createDebouncedCommit(150),[]);useEffect(()=>()=>W.cancelAll(),[W]);let Ge=useRef(F);useEffect(()=>{!e||!C||F===Ge.current||(Ge.current=F,W.schedule("footer",()=>e.refreshSummaries()));},[e,C,F,W]);let Me=useCallback(s=>{let u=e?.getRows()[s];return u&&u.kind==="data"?u.key:null},[e]),ee=useCallback(s=>e?.getColumnIdAt(s)??null,[e]),ye=useCallback((s,u)=>{e?.scrollToCell(s,u),C?.beginEdit(s,u);},[C,e]),ue=useCallback((s={},u)=>{let R=C?.addRow(s,u)??null;if(R===null||!e)return R;if(isRowEditMode(t))return e.revealRow(R),R;let L=e.getRowKeyField(),q=e.getColumnModel().runtime().find(te=>te.state.visible&&te.def.editable!==false&&(L===null||(te.def.field??te.state.id)!==L));return e.revealRow(R),q&&(e.focusCell(R,q.state.id),C?.beginEdit(R,q.state.id)),R},[C,e]),Se=useCallback(s=>{if(!C)return false;let u=pe.current.confirmDelete;if(u===false)return C.removeRow(s);let R=e?.getRowByKey(s);if(typeof u!="function")return ge({rowKey:s,message:pe.current.confirmDeleteMessage??v.editDeleteConfirm}),false;let L=u(s,R);return typeof L=="boolean"?L?C.removeRow(s):false:(L.then(q=>{q&&C.removeRow(s);}),false)},[C,e]),D=useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),re=useCallback((s,u={})=>{if(!C||!e)return false;let R=C.getSession(),L=R?{rowKey:R.rowKey,columnId:R.columnId}:e.getFocus();if(!L||!C.commitEdit())return false;let q=Fe=>e.getColumnModel().getDef(Fe)?.editable!==false&&(pe.current.canEditColumn?.(Fe)??true),te=e.getColumnModel().runtime().filter(Fe=>Fe.state.visible).map(Fe=>Fe.state.id);if(edgeEditableColumn(te,q,1)===null)return false;let Q=e.getRows(),ne=Q.findIndex(Fe=>Fe.key===L.rowKey);if(ne<0)return false;let be=nextEditableColumn(te,q,L.columnId,s);if(be===null){if(u.cycle===false)return false;let Fe=s;do ne+=Fe;while(ne>=0&&ne<Q.length&&Q[ne]?.kind!=="data");if(ne<0||ne>=Q.length)return false;be=edgeEditableColumn(te,q,s);}let Re=Q[ne];return !Re||Re.kind!=="data"?false:(e.focusCell(Re.key,be),e.scrollToCell(Re.key,be),u.open===true?C.beginEdit(Re.key,be):(D(),true))},[C,e]),ve=useCallback(s=>{if(!C||!e||C.getSession())return false;let u=e.getFocus();if(!u||e.getColumnModel().getDef(u.columnId)?.editable===false)return false;let L=e.getColumnModel().getEditorDataType(u.columnId);if(L==="boolean"||L==="date")return false;let q=L==="number"?Number.isNaN(Number(s))?null:Number(s):s;return q===null?false:(e.scrollToCell(u.rowKey,u.columnId),C.beginEdit(u.rowKey,u.columnId,q))},[C,e]),[Ne,le]=useState(null),[O,ge]=useState(null),Z=useCallback(s=>{let u=O;ge(null),s&&u&&C&&C.removeRow(u.rowKey);},[O,C]),he=useCallback(s=>{le({message:s.error??v.editSaveFailed,rowKey:s.rowKey,columnId:s.columnId}),s.rowKey!==void 0&&s.columnId!==void 0&&(e?.revealRow(s.rowKey),e?.focusCell(s.rowKey,s.columnId));},[e,v]);ke.current=he;let me=useCallback(async()=>{if(!C)return;le(null);let s=await C.saveChanges();s.saved||s.superseded||he(s);},[C,he]),Ke=useCallback(()=>le(null),[]),X=useCallback(()=>{le(null),C?.cancelChanges();},[C]);useEffect(()=>{(C?.getSession()||C?.isEditingRow())&&le(null);},[F,C]);let ae=useMemo(()=>{if(!e||!A.getRange())return null;let s=A.cellCount();if(s>Us)return {cells:s,truncated:true,numeric:null};let u=e.getColumnModel(),R=e.getVisualColumnIds(),L=e.getRows(),q=A.getStats((te,Q)=>{let ne=L[te],be=R[Q];if(!ne||ne.kind!=="data"||!be)return;let Re=C?C.effectiveValue(ne.key,be):u.getCellValue(ne.data,be);return typeof Re=="string"&&Re.trim()!==""&&!Number.isNaN(Number(Re))?Number(Re):Re});return {cells:s,truncated:false,numeric:q}},[e,A,C,F]),se=useCallback((s,u)=>!!C&&!isChromeColumn(u)&&C.canUpdate(s,u),[C]),Ie=useCallback((s,u)=>{let R=U.getRange();z.current=R??{startRow:s,startColumn:u,endRow:s,endColumn:u},Oe(null);},[U]),$=useCallback((s,u)=>{let R=z.current;if(!R)return;let L=computeFillTarget(R,s,u);Oe(L?{startRow:L.bounds.minRow,startColumn:L.bounds.minColumn,endRow:L.bounds.maxRow,endColumn:L.bounds.maxColumn}:null);},[]),Be=useCallback((s,u)=>{if(!C||!e)return 0;let L=computeFillValues(s,u,(q,te)=>{let Q=Me(q),ne=ee(te);return Q!==null&&ne?C.effectiveValue(Q,ne):void 0}).map(q=>{let te=Me(q.row),Q=ee(q.column);if(te===null||!Q||!se(te,Q))return null;let ne=q.from?e.shiftCellFormula(Q,q.value,q.row-q.from.row,q.column-q.from.column):q.value;return {rowKey:te,columnId:Q,value:ne}}).filter(q=>q!==null);return e.notifyClipboardGesture("fill",L.length,()=>L.length===0?false:(C.applyEdits(L,fillText(v.editFillUndo,{count:L.length}),"fill"),true)),L.length},[C,e,Me,ee,se,v]),je=useCallback(()=>{let s=z.current,u=we;if(z.current=null,Oe(null),!s||!u||!C||!e)return;let R=computeFillTarget(s,u.endRow,u.endColumn);R&&Be(s,R);},[we,C,e,Be]),Ee=useCallback((s,u)=>{if(!e)return "";let R=e.getRows()[s],L=e.getColumnIdAt(u);if(!R||R.kind!=="data"||!L)return "";let q=e.getColumnModel(),te=C?C.effectiveValue(R.key,L):q.getCellValue(R.data,L),Q=cellDisplayText(q.getDef(L),te,R.data);return e.clipboardCellText(R,L,te,Q).replace(/[\t\r\n]+/g," ")},[e,C]),Ae=useCallback((s="copy")=>{if(!e||!U.getRange())return false;let u=U.toTsv(Ee);return e.notifyClipboardGesture("copy",u?u.split(`
|
|
2
|
+
`).length:0,()=>e.writeClipboard(u,s)),true},[e,U,Ee]),_e=useCallback(s=>{if(!e||!C)return false;let u=U.getRange()!==null,R=s??e.getFocus();if(!u&&!R)return false;if(!Ae("cut")){let Q=R?e.getVisualColumnIds().indexOf(R.columnId):-1,ne=R?e.getRows().findIndex(Re=>Re.key===R.rowKey):-1;if(ne<0||Q<0)return false;let be=Ee(ne,Q);e.notifyClipboardGesture("copy",be?1:0,()=>e.writeClipboard(be,"cut"));}let L=[];if(u)A.forEachCell((Q,ne)=>L.push([Q,ne]));else {let Q=e.getRows().findIndex(be=>be.key===R.rowKey),ne=e.getVisualColumnIds().indexOf(R.columnId);if(Q<0||ne<0)return false;L.push([Q,ne]);}let q=e.getRows(),te=[];for(let[Q,ne]of L){let be=q[Q];if(!be||be.kind!=="data")continue;let Re=e.getColumnIdAt(ne);!Re||isChromeColumn(Re)||C.canUpdate(be.key,Re)&&te.push({rowKey:be.key,columnId:Re,value:null});}return e.notifyClipboardGesture("cut",te.length,()=>te.length===0?false:(C.applyEdits(te,fillText(v.editCutUndo,{count:te.length}),"cut"),true)),true},[e,C,U,A,Ae,Ee,v]),We=useCallback(async s=>{if(!C||!e)return;let u="";try{u=await navigator.clipboard.readText();}catch{return}if(!u)return;let R=e.processPastedTable(parseClipboardTable(u));if(!R)return;let L=U.getBounds(),q,te;if(L)q=L.minRow,te=L.minColumn;else {let Re=s??e.getFocus();if(!Re||(q=e.getRows().findIndex(Fe=>Fe.key===Re.rowKey),te=e.getVisualColumnIds().indexOf(Re.columnId),q<0||te<0))return}let Q=computePasteCells(R,q,te,{target:L,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),ne=e.getColumnModel(),be=Q.map(Re=>{let Fe=Me(Re.row),ct=ee(Re.column);return Fe===null||!ct||!se(Fe,ct)?null:{rowKey:Fe,columnId:ct,value:e.pastedCellValue(Fe,ct,Re.text,coercePastedValue(Re.text,ne.getEditorDataType(ct)))}}).filter(Re=>Re!==null);e.notifyClipboardGesture("paste",be.length,()=>be.length===0?false:(C.applyEdits(be,fillText(v.editPasteUndo,{count:be.length}),"paste"),true));},[C,e,U,Me,ee,se,v]),[lt,J]=useState(null),ut=useCallback(s=>C?(J(null),C.beginRowEdit(s)):false,[C]),i=useCallback(async()=>{if(!C||!C.getRowSession())return false;let u=e?.getVisualColumnIds()??[],R=await C.saveRowEdit(u);return J(R.saved?null:R.error??null),R.saved&&D(),R.saved},[C,e,D]),qe=useCallback(()=>{C&&(J(null),C.cancelRowEdit(),D());},[C,D]);useEffect(()=>{if(!(!e||!C))return e.setEditingDelegate({startEditingCell:(s,u)=>(e.scrollToCell(s,u),C.beginEdit(s,u)),stopEditing:async s=>{if(C.isEditingRow())return s?(qe(),true):i();if(!C.getSession())return false;if(s)return C.cancelEdit(),D(),true;let u=C.commitEdit();return u&&D(),u},getEditingCells:()=>{let s=C.getRowSession();if(s)return e.getVisualColumnIds().filter(R=>!isChromeColumn(R)&&C.canUpdate(s.rowKey,R)).map(R=>({rowKey:s.rowKey,columnId:R}));let u=C.getSession();return u?[{rowKey:u.rowKey,columnId:u.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,C,i,qe,D]);let Et=useCallback(s=>{if(!C||!e)return false;let u=s.ctrlKey||s.metaKey;if(B&&u&&(s.key==="z"||s.key==="Z"))return s.preventDefault(),s.shiftKey?C.redo():C.undo(),true;if(B&&u&&(s.key==="y"||s.key==="Y"))return s.preventDefault(),C.redo(),true;if(P&&u&&(s.key==="v"||s.key==="V"))return s.preventDefault(),We(),true;if(P&&u&&(s.key==="x"||s.key==="X"))return s.preventDefault(),_e(),true;if(u&&(s.key==="c"||s.key==="C"))return Ae()?(s.stopPropagation(),true):false;if(C.isEditingRow()){if(s.key==="Enter")return s.preventDefault(),i(),true;if(s.key==="Escape")return s.preventDefault(),qe(),true}if(s.key==="Escape"&&C.getSession())return s.preventDefault(),C.cancelEdit(),true;if(s.key==="Tab"&&pe.current.focusCellOnTab!==false&&!C.getSession()&&e.getFocus()&&re(s.shiftKey?-1:1,{open:pe.current.keepEditingOnTab===true,cycle:pe.current.focusCellOnCycle!==false}))return s.preventDefault(),true;if(P&&s.shiftKey&&!s.altKey&&!C.getSession()&&RANGE_KEY_DIRECTIONS[s.key]){let R=e.getFocus(),L=e.getVisualColumnIds(),q=L.flatMap((ne,be)=>isChromeColumn(ne)?[]:[be]),te=R?e.getRowIndex(R.rowKey):-1,Q=R?L.indexOf(R.columnId):-1;if(te>=0&&Q>=0&&q.length>0){s.preventDefault(),s.stopPropagation();let ne=e.getRows(),be=extendRangeByKey(U.getRange(),{row:te,column:Q},RANGE_KEY_DIRECTIONS[s.key],u,{rows:ne.length,firstColumn:q[0],lastColumn:q[q.length-1]});U.getRange()||U.start(be.startRow,be.startColumn),U.extend(be.endRow,be.endColumn),e.notifyViewStateChanged();let Re=ne[be.endRow]?.key;return Re!==void 0&&e.scrollToCell(Re,L[be.endColumn]),true}}if(P&&u&&!s.shiftKey&&!s.altKey&&!C.getSession()&&(s.key==="d"||s.key==="D"||s.key==="r"||s.key==="R")){let R=e.getFocus(),L=e.getVisualColumnIds(),q=L.findIndex(Re=>!isChromeColumn(Re)),te=R?e.getRowIndex(R.rowKey):-1,Q=R?L.indexOf(R.columnId):-1,ne=U.getRange()??(te>=0&&Q>=0?{startRow:te,startColumn:Q,endRow:te,endColumn:Q}:null),be=ne?keyboardFill(ne,s.key.toLowerCase()==="d"?"down":"right",Math.max(0,q)):null;if(be)return s.preventDefault(),s.stopPropagation(),Be(be.source,be.target),true}if(!u&&!s.shiftKey&&!C.getSession()&&zs.has(s.key)&&U.clear(),s.key==="Insert"&&pe.current.insertKey===true&&!u&&!C.getSession()){let R=e.getFocus();if(R&&C.canAdd())return s.preventDefault(),ue({},R.rowKey),true}if(s.key==="ArrowDown"&&pe.current.appendOnArrowDown===true&&!u&&!s.shiftKey&&!C.getSession()){let R=e.getFocus(),L=e.getRows(),q=L.length>0?L[L.length-1]:void 0;if(R&&q&&q.key===R.rowKey&&C.canAdd())return s.preventDefault(),ue({}),true}if(s.key==="F2"){let R=e.getFocus();if(R)return s.preventDefault(),e.scrollToCell(R.rowKey,R.columnId),C.beginEdit(R.rowKey,R.columnId),true}return pe.current.editOnKeyPress!==false&&!u&&!s.altKey&&s.key.length===1&&s.key!==" "&&!C.getSession()&&ve(s.key)?(s.preventDefault(),true):false},[C,e,P,B,We,_e,Ae,ve,re,ue,i,qe,Be]);return {engine:C,range:U,version:F,beginEdit:ye,beginRowEdit:ut,saveRowEdit:i,cancelRowEdit:qe,rowSaveError:lt,addRow:ue,editAdjacentCell:re,editFocusedCellWith:ve,focusScroller:D,deleteRow:Se,saveChanges:me,cancelChanges:X,selectionStats:ae,handleKeyDown:Et,cut:_e,copySelection:Ae,paste:We,saveError:Ne,clearSaveError:Ke,pendingDelete:O,resolveDelete:Z,fillPreview:we,startFillDrag:Ie,moveFillDrag:$,endFillDrag:je,isDraggingFill:z.current!==null}}var li=createContext("");function rr({theme:e,density:t,palette:n,children:a}){let l=useMemo(()=>themeClassName(e,t,n),[e,t,n]);return jsx(li.Provider,{value:l,children:a})}function Tt(){return useContext(li)}var lr=8,xt=26,ui=4;function ci(e,t,n){let a=foldText(t.trim());if(a==="")return null;let l=[];for(let r=0;r<e.length;r++){let d=e[r];(n==="contains"?d.includes(a):d.startsWith(a))&&l.push(r);}return l}function rd(e,t,n){let a=e.map(r=>foldText(r.label)),l=ci(a,t,n);return l===null?e:l.map(r=>e[r])}function sr({options:e,value:t,matchMode:n="startsWith",allowCustom:a=false,invalid:l,autoFocus:r=true,testId:d,columnId:y,ariaLabel:b,onChange:w,onCommit:g,commitOnPick:E=true,onCancel:k,onTab:N}){let H=Te(),M=Tt(),G=useRef(null),m=useRef(null),[h,f]=useState(null),[K,Y]=useState(false),[P,B]=useState(0),[x,v]=useState(0),[F,c]=useState(null),T=useMemo(()=>e.map(D=>foldText(D.label)),[e]),A=useMemo(()=>{let D=e.find(re=>re.value===t);return D?D.label:t==null||t===""?"":String(t)},[e,t]),U=useMemo(()=>h===null?null:ci(T,h,n),[T,h,n]),z=U===null?e.length:U.length,we=D=>e[U===null?D:U[D]],Oe=h??A;useEffect(()=>{B(D=>D<z?D:0);},[z]),useLayoutEffect(()=>{r&&(G.current?.focus({preventScroll:true}),G.current?.select());},[]);let pe=()=>{let D=G.current;if(!D)return;let re=D.getBoundingClientRect(),ve=placeAnchoredLayer({anchor:{left:re.left,top:re.top,bottom:re.bottom},width:re.width,height:Math.min(Math.max(z,1),lr)*xt,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});c({left:ve.left,top:ve.top,width:re.width});};useLayoutEffect(()=>{K&&pe();},[K,z]),useEffect(()=>{if(!K)return;let D=()=>pe();return window.addEventListener("scroll",D,true),window.addEventListener("resize",D),()=>{window.removeEventListener("scroll",D,true),window.removeEventListener("resize",D);}},[K]),useLayoutEffect(()=>{let D=m.current;if(!D||!K||z===0)return;let re=P*xt,ve=re+xt,Ne=D.scrollTop;re<Ne?Ne=re:ve>Ne+D.clientHeight&&(Ne=ve-D.clientHeight),Ne!==D.scrollTop&&(D.scrollTop=Ne,v(Ne));},[P,K,z]);let ke=Math.min(Math.max(z,1),lr)*xt,C=Math.max(0,Math.floor(x/xt)-ui),W=Math.min(z,Math.ceil((x+ke)/xt)+ui),Ge=D=>{w(D.value),f(null),Y(false),E&&g();},Me=()=>{K||(Y(true),v(0),m.current&&(m.current.scrollTop=0));},ee=()=>{if(h===null)return true;let D=h.trim();if(D==="")return a&&w(""),true;let re=foldText(D),ve=T.indexOf(re);return ve>=0?(w(e[ve].value),true):z===1?(w(we(0).value),true):a?(w(D),true):false},ye=D=>{if(!(D.nativeEvent.isComposing||D.keyCode===229)){if(D.key==="ArrowDown"||D.key==="ArrowUp"){if(D.preventDefault(),D.stopPropagation(),!K){Me();return}if(z===0)return;B(re=>((D.key==="ArrowDown"?re+1:re-1)+z)%z);return}if(D.key==="PageDown"||D.key==="PageUp"){if(!K||z===0)return;D.preventDefault(),D.stopPropagation();let re=lr*(D.key==="PageDown"?1:-1);B(ve=>Math.min(z-1,Math.max(0,ve+re)));return}if(D.key==="Home"||D.key==="End"){if(!K||z===0)return;D.preventDefault(),D.stopPropagation(),B(D.key==="Home"?0:z-1);return}if(D.key==="Enter"){if(D.preventDefault(),D.stopPropagation(),K&&z>0){Ge(we(P));return}ee()?g():Me();return}if(D.key==="Escape"){if(D.preventDefault(),D.stopPropagation(),K){Y(false);return}f(null),k();return}if(D.key==="Tab"){if(!ee()){D.preventDefault(),D.stopPropagation(),Me();return}Y(false),N&&(D.preventDefault(),D.stopPropagation(),N(D.shiftKey));return}D.stopPropagation();}},ue=[];for(let D=C;D<W;D++){let re=we(D);ue.push(jsx("div",{role:"option","aria-selected":D===P,"aria-posinset":D+1,"aria-setsize":z,className:`kanuni-datagrid-lookup-item${D===P?" kanuni-datagrid-lookup-item--active":""}`,style:{position:"absolute",top:D*xt,height:xt,left:0,right:0},onMouseEnter:()=>B(D),onClick:()=>Ge(re),children:re.label},String(re.value)));}let Se=K&&F?createPortal(jsx("div",{ref:m,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${M}`,role:"listbox","aria-label":b,"data-testid":d?`${d}-list`:void 0,style:{left:F.left,top:F.top,width:F.width,height:ke},onScroll:D=>v(D.currentTarget.scrollTop),onMouseDown:D=>D.preventDefault(),children:z===0?jsx("div",{className:"kanuni-datagrid-lookup-empty",children:H.editNoMatch}):jsx("div",{style:{position:"relative",height:z*xt},children:ue})}),document.body):null;return jsxs(Fragment,{children:[jsx("input",{ref:G,type:"text",role:"combobox","aria-expanded":K,"aria-autocomplete":"list","aria-label":b,"data-testid":d,"data-column-id":y,className:`kanuni-datagrid-editor${l?" kanuni-datagrid-editor--invalid":""}`,value:Oe,onChange:D=>{f(D.target.value),B(0),v(0),m.current&&(m.current.scrollTop=0),Y(true);},onFocus:Me,onClick:Me,onKeyDown:ye,onBlur:()=>{h!==null&&!ee()&&f(null),Y(false);}}),Se]})}function gd(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=bi(e);return [...t.slice(n),...t.slice(0,n)]}function bi(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function wd(e){return [e.monthJanuary,e.monthFebruary,e.monthMarch,e.monthApril,e.monthMay,e.monthJune,e.monthJuly,e.monthAugust,e.monthSeptember,e.monthOctober,e.monthNovember,e.monthDecember]}function hd(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function ur({value:e,format:t=DEFAULT_DATE_FORMAT,invalid:n,disabled:a,autoFocus:l=true,testId:r,columnId:d,ariaLabel:y,onChange:b,onCommit:w,onCancel:g,onTab:E}){let k=Te(),N=Tt(),H=useMemo(()=>wd(k),[k]),M=useMemo(()=>gd(k),[k]),G=useRef(null),[m,h]=useState(null),[f,K]=useState(false),[Y,P]=useState(null),B=useMemo(()=>toDate(e),[e]),x=m===null?formatDateValue(e,t):maskDate(m,t),v=m===null?null:parseDateValue(x,t),F=m!==null&&m.length===dateDigitCount(t)&&v===null,[c,T]=useState(()=>B??new Date);useEffect(()=>{f&&T(v??B??new Date);},[f]),useLayoutEffect(()=>{l&&(G.current?.focus({preventScroll:true}),G.current?.select());},[]);let A=useRef(null),U=useCallback(()=>{let W=G.current;if(!W)return;let Ge=W.getBoundingClientRect(),Me=placeAnchoredLayer({anchor:{left:Ge.left,top:Ge.top,bottom:Ge.bottom},width:A.current?.offsetWidth??0,height:A.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});P({left:Me.left,top:Me.top});},[]),z=useCallback(W=>{A.current=W,W&&U();},[U]);useLayoutEffect(()=>{f&&U();},[f,U]),useEffect(()=>{if(!f)return;let W=()=>U();return window.addEventListener("scroll",W,true),window.addEventListener("resize",W),()=>{window.removeEventListener("scroll",W,true),window.removeEventListener("resize",W);}},[f,U]);let we=useCallback(W=>{if(W===null){b(null);return}b(e instanceof Date?W:toIsoDate(W));},[b,e]),Oe=W=>{h(null),K(false),we(W),G.current?.focus({preventScroll:true});},pe=useCallback(()=>{if(m!==null){if(m.length===0){we(null),h(null);return}v&&we(v),h(null);}},[m,v,we]),ke=W=>{if(W.key==="Escape"){if(W.preventDefault(),W.stopPropagation(),f){K(false);return}h(null),g();return}if(f){let Ge=W.key==="ArrowLeft"?-1:W.key==="ArrowRight"?1:W.key==="ArrowUp"?-7:W.key==="ArrowDown"?7:0;if(Ge!==0){W.preventDefault(),W.stopPropagation();let Me=v??B??new Date,ee=new Date(Me.getFullYear(),Me.getMonth(),Me.getDate()+Ge);h(dateDigits(formatDateValue(ee,t),t)),T(ee);return}if(W.key==="Enter"){W.preventDefault(),W.stopPropagation(),K(false),v&&Oe(v);return}}if(W.key==="Enter"){W.preventDefault(),W.stopPropagation(),pe(),w();return}if(W.key==="Tab"){pe(),K(false),E&&(W.preventDefault(),W.stopPropagation(),E(W.shiftKey));return}if(W.key.length===1&&!W.ctrlKey&&!W.metaKey&&!/\d/.test(W.key)){W.preventDefault();return}W.stopPropagation();},C=f&&Y?createPortal(jsxs("div",{ref:z,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${N}`,style:{left:Y.left,top:Y.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":y?`${y} ${k.dateCalendar}`:k.dateCalendar,onMouseDown:W=>W.preventDefault(),children:[jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsx("button",{type:"button","aria-label":k.datePreviousMonth,"data-testid":"dg-date-prev",onClick:()=>T(new Date(c.getFullYear(),c.getMonth()-1,1)),children:"\u2039"}),jsxs("span",{"data-testid":"dg-date-title",children:[H[c.getMonth()]," ",c.getFullYear()]}),jsx("button",{type:"button","aria-label":k.dateNextMonth,"data-testid":"dg-date-next",onClick:()=>T(new Date(c.getFullYear(),c.getMonth()+1,1)),children:"\u203A"})]}),jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[M.map(W=>jsx("span",{className:"kanuni-datagrid-date-weekday",role:"columnheader",children:W},W)),(()=>{let Ge=(new Date(c.getFullYear(),c.getMonth(),1).getDay()-bi(k)+7)%7,Me=daysInMonth(c.getFullYear(),c.getMonth()+1),ee=[];for(let ye=0;ye<42;ye++){let ue=ye-Ge+1,Se=new Date(c.getFullYear(),c.getMonth(),ue),D=ue<1||ue>Me,re=hd(Se,v??B);ee.push(jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${D?" kanuni-datagrid-date-day--outside":""}${re?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":re,"data-testid":"dg-date-day","data-date":toIsoDate(Se),onClick:()=>Oe(Se),children:Se.getDate()},ye));}return ee})()]})]}),document.body):null;return jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsx("input",{ref:G,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":y,"aria-invalid":F||n?true:void 0,"data-testid":r,"data-column-id":d,disabled:a,className:`kanuni-datagrid-editor${F||n?" kanuni-datagrid-editor--invalid":""}`,value:x,onChange:W=>{h(dateDigits(W.target.value,t));},onKeyDown:ke,onBlur:()=>{f||pe();}}),jsx("button",{type:"button",className:"kanuni-datagrid-date-button","aria-label":y?`${y} \u2014 ${k.dateOpenCalendar}`:k.dateOpenCalendar,"aria-expanded":f,"data-testid":"dg-date-open",disabled:a,tabIndex:-1,onMouseDown:W=>W.preventDefault(),onClick:()=>{K(W=>!W),G.current?.focus({preventScroll:true});},children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),C]})}function cr(e,t){return e==null?"":t==="date"&&e instanceof Date?e.toISOString().slice(0,10):String(e)}function pr({value:e,dataType:t,error:n,seeded:a=false,options:l,allowCustom:r=false,matchMode:d,ariaLabel:y,dateFormat:b,onChange:w,onCommit:g,onTab:E,onCancel:k}){let N=useRef(null),H=useRef(false);useEffect(()=>{let h=N.current;if(h&&(h.focus({preventScroll:true}),!(!(h instanceof HTMLInputElement)||h.type==="checkbox")))if(a){if(h.type==="text"||h.type==="search"){let f=h.value.length;h.setSelectionRange(f,f);}}else h.select();},[]);let G={ref:N,onKeyDown:h=>{h.nativeEvent.isComposing||h.keyCode===229||(h.key==="Enter"?(h.preventDefault(),h.stopPropagation(),g(h.shiftKey?"none":"down")):h.key==="Tab"?(h.preventDefault(),h.stopPropagation(),H.current=true,E(h.shiftKey?-1:1)):h.key==="Escape"?(h.preventDefault(),h.stopPropagation(),k()):h.stopPropagation());},onBlur:()=>{H.current||g("none");},className:`kanuni-datagrid-editor${n?" kanuni-datagrid-editor--invalid":""}`,"aria-invalid":!!n,"aria-errormessage":n?"kanuni-datagrid-editor-error":void 0,"data-testid":"dg-cell-editor"},m;return l===null?m=jsx("input",{...G,type:"text",value:"\u2026",readOnly:true,disabled:true}):l&&l.length>0?m=r?jsxs(Fragment,{children:[jsx("input",{...G,type:"text",list:`${G["data-testid"]}-list`,value:cr(e,t),onChange:h=>{let f=l.find(K=>K.label===h.target.value);w(f?f.value:h.target.value);}}),jsx("datalist",{id:`${G["data-testid"]}-list`,children:l.map(h=>jsx("option",{value:h.label},String(h.value)))})]}):jsx(sr,{options:l,value:e,matchMode:d,allowCustom:false,invalid:!!n,testId:G["data-testid"],ariaLabel:y,onChange:w,onCommit:()=>g("none"),onCancel:k,onTab:h=>{H.current=true,E(h?-1:1);}}):t==="boolean"?m=jsx("input",{...G,type:"checkbox",checked:e===true,onChange:h=>w(h.target.checked)}):t==="number"?m=jsx("input",{...G,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:cr(e,t),onChange:h=>w(h.target.value===""?null:Number(h.target.value))}):t==="date"?m=jsx(ur,{value:e,format:b,invalid:!!n,testId:G["data-testid"],ariaLabel:y,onChange:w,onCommit:()=>g("none"),onCancel:k,onTab:h=>{H.current=true,E(h?-1:1);}}):m=jsx("input",{...G,type:"text",value:cr(e,t),onChange:h=>w(h.target.value)}),jsxs(Fragment,{children:[m,n&&jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function ki(e,t,n,a,l=false){let r=!n&&t!==void 0&&t.enabled!==false,d=r&&!l,y=useCallback(P=>{let B=e?.getColumnModel().getDef(P);return !B?.lookup&&!B?.renderEditor&&B?.allowFormulas!==true},[e]),{engine:b,version:w,handleKeyDown:g,editAdjacentCell:E,focusScroller:k,saveError:N,clearSaveError:H}=er({controller:e,enabled:r,mode:"cell",onSave:t?.onSave,editOnKeyPress:t?.editOnKeyPress,focusCellOnTab:t?.focusCellOnTab,focusCellOnCycle:t?.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,range:false,history:false,canEditColumn:y}),{renderCellContent:M,getCellClassName:G,onCellDoubleClick:m}=a,h=useCallback(P=>{if(!r||!b||P.node.kind!=="data"||!b.isEditing(P.node.key,P.columnId))return M?.(P);let B=b.getSession(),x=e.getColumnModel(),v=x.getDef(P.columnId);return jsx(pr,{value:B.value,dataType:x.getEditorDataType(P.columnId),ariaLabel:v?.headerName??P.columnId,dateFormat:v?.dateFormat,error:B.validation.message,seeded:B.seeded,onChange:F=>b.setEditValue(F),onCommit:F=>{b.commitEdit()&&(F==="down"&&e?.moveFocus("down"),k());},onTab:F=>{if(t?.focusCellOnTab===false){b.commitEdit();return}E(F,{open:false,cycle:t?.focusCellOnCycle!==false}),k();},onCancel:()=>{b.cancelEdit(),k();}})},[r,b,e,w,M,E,k,t?.focusCellOnTab,t?.focusCellOnCycle]),f=useCallback(P=>{let B=G?.(P);return !r||!b||P.node.kind!=="data"||!b.isEditing(P.node.key,P.columnId)?B:B?`${B} kanuni-datagrid-cell--editing`:"kanuni-datagrid-cell--editing"},[r,b,w,G]),K=useCallback(P=>{m?.(P),!(!r||!b||P.node.kind!=="data")&&b.beginEdit(P.node.key,P.columnId);},[r,b,m]),Y=useCallback(P=>d?g(P):false,[d,g]);return {active:r,renderCellContent:d?h:M,getCellClassName:d?f:G,onCellDoubleClick:d?K:m,handleKeyDown:Y,saveError:r?N:null,clearSaveError:H}}function fr({open:e,title:t,message:n,cancelLabel:a,confirmLabel:l,danger:r,dark:d,onConfirm:y,onCancel:b}){let w=useRef(null),g=useRef(null),E=useId(),k=useId(),N=Tt();return useEffect(()=>{if(!e)return;let H=document.activeElement;w.current?.focus();let M=g.current;return ()=>{let G=document.activeElement;M&&(M.contains(G)||G===document.body||G===null)&&H?.isConnected&&H.focus({preventScroll:true});}},[e]),useEffect(()=>{if(!e)return;let H=M=>{if(M.key==="Escape"){M.stopPropagation(),b();return}if(M.key==="Tab"&&g.current){let G=Array.from(g.current.querySelectorAll("button:not([disabled])"));if(G.length===0)return;let m=G.indexOf(document.activeElement),h=M.shiftKey?m<=0?G.length-1:m-1:m===G.length-1?0:m+1;M.preventDefault(),M.stopPropagation(),G[h].focus();}};return document.addEventListener("keydown",H,true),()=>document.removeEventListener("keydown",H,true)},[e,b]),!e||typeof document>"u"?null:createPortal(jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${d?" kanuni-datagrid-dark":""}${N}`,role:"presentation",children:[jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:b}),jsxs("div",{ref:g,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":E,"aria-describedby":k,"data-testid":"dg-dialog",children:[jsx("div",{className:"kanuni-datagrid-dialog-title",id:E,children:t}),jsx("div",{className:"kanuni-datagrid-dialog-message",id:k,children:n}),jsxs("div",{className:"kanuni-datagrid-dialog-actions",children:[a!==void 0&&jsx("button",{type:"button","data-testid":"dg-dialog-cancel",onClick:b,children:a}),jsx("button",{ref:w,type:"button",className:`kanuni-datagrid-dialog-primary${r?" kanuni-datagrid-dialog-primary--danger":""}`,"data-testid":"dg-dialog-confirm",onClick:y,children:l})]})]})]}),document.body)}var to=0,gr=5e3;function kd(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??gr}}function vd(e,t){return e<=t}function wr(e,t){let n=kd(t),a=n!==null,l=n?.always??false,r=n?.maxRows??gr,[d,y]=useState(false),b=useCallback(()=>y(true),[]),w=useCallback(()=>y(false),[]);useEffect(()=>{if(!a||l||typeof window>"u"||typeof window.addEventListener!="function")return;let E=()=>{let N=e.getRows().length;if(!vd(N,r)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${N} rows exceeds maxRows (${r}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}flushSync(()=>y(true));},k=()=>flushSync(()=>y(false));return window.addEventListener("beforeprint",E),window.addEventListener("afterprint",k),()=>{window.removeEventListener("beforeprint",E),window.removeEventListener("afterprint",k);}},[a,l,r,e]);let g=l||d;return useEffect(()=>{if(!g||typeof document>"u")return;let E=document.documentElement;return to++,E.classList.add("kanuni-datagrid-printing"),()=>{to--,to<=0&&(to=0,E.classList.remove("kanuni-datagrid-printing"));}},[g]),{active:g,begin:b,end:w}}var no=new Map,hr=new Set;function Gi(e,t){let n=no.get(e);return n?[...n].filter(a=>a!==t):[]}function br(e,t,n){let a=useRef(null);return useEffect(()=>{if(!t)return;let r={controller:e,scroller:()=>n.current};a.current=r;let d=no.get(t)??new Set;d.add(r),no.set(t,d);let y=e.events.on("columnStateChanged",()=>{if(hr.has(t))return;let b=Gi(t,r);if(b.length===0)return;let w=e.getColumnStates();hr.add(t);try{for(let g of b)g.controller.applyColumnStates(w);}finally{hr.delete(t);}});return ()=>{y(),d.delete(r),d.size===0&&no.delete(t),a.current=null;}},[e,t,n]),{syncScroll:useCallback(r=>{let d=a.current;if(!t||!d)return;let y=Gi(t,d);if(y.length!==0)for(let b of y){let w=b.scroller();w&&w.scrollLeft!==r&&(w.scrollLeft=r);}},[t])}}function oo(e,t,n){return e==="left"?t:e==="center"?n.left+t:n.left+n.center+t}function Mi(e,t){let{start:n,end:a}=t.columns,l=e.centerOffsets,r=l[n]??0,d=(l[a]??0)-r,y=Math.max(0,e.centerWidth-r-d),b=r,w=e.center.slice(n,a),g=Array.from({length:w.length},(N,H)=>n+H),E=e.stickyIndices.filter(N=>N<n);if(E.length>0){let N=E.map(H=>e.center[H]);b-=N.reduce((H,M)=>H+M.state.width,0),w=[...N,...w],g=[...E,...g];}let k=new Map;for(let N of e.stickyIndices){let H=e.centerStickyOffsets[N];H!==null&&k.set(e.center[N].state.id,H);}return {centerColumns:w,centerIndices:g,leadingSpacer:Math.max(0,b),trailingSpacer:y,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:k}}function Ni(e){let t=[];for(let n=0;n<e.length;n++){let a=e[n];a&&a.kind!=="data"&&t.push(n);}return t.length>0?t:null}function Pi(e,t,n=0){if(!t)return n+e+1;let a=0,l=t.length;for(;a<l;){let r=a+l>>1;t[r]<e?a=r+1:l=r;}return n+e-a+1}var ao=36,io=28,ln=60,Hd=[["rowNumberColumn",ln],["detailColumn",io],["checkboxColumn",ao]];function xr(e,t,n=false){return Ct({checkboxColumn:e,detailColumn:t,rowNumberColumn:n}).total}function Ct(e){let t=new Map,n=new Map,a=0,l=0;for(let[r,d]of Hd)e[r]&&(t.set(r,a),n.set(r,++l),a+=d);return {total:a,count:l,inset:r=>t.get(r)??0,colIndex:r=>n.get(r)??1}}function Cr(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function kr(e,t,n){return e?e.kind==="covered"?t?n():null:jsx("div",{className:"kanuni-datagrid-span-box",style:{height:e.height},children:n()}):n()}function vr(e,t){let n=e??(t==="number"||t==="bigint"?"right":"left");return n==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":n==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function ro(e,t){if(t===""||e==="")return e;let n=foldText(e),a=n.indexOf(t);if(a===-1)return e;let l=[],r=0,d=0;for(;a!==-1;)a>r&&l.push(e.slice(r,a)),l.push(jsx("mark",{className:"kanuni-datagrid-highlight",children:e.slice(a,a+t.length)},d++)),r=a+t.length,a=n.indexOf(t,r);return r<e.length&&l.push(e.slice(r)),jsx("span",{className:"kanuni-datagrid-cell-text",children:l})}function Fd(e,t,n,a=""){if(e.renderCell)return e.renderCell({value:t,row:n.data,node:n,column:e});let l=lookupLabel(e,t);if(l!==null)return ro(l,a);if(e.valueFormatter){let r=e.valueFormatter(t,n.data);return typeof r=="string"?ro(r,a):r}return e.dateFormat&&e.dataType==="date"?ro(formatDateValue(t,e.dateFormat),a):t==null?"":ro(String(t),a)}function Ad({gridId:e,node:t,index:n,layout:a,columnModel:l,centerColumns:r,centerIndices:d,stickyInsets:y,leadingSpacer:b,trailingSpacer:w,striped:g,selected:E,ariaSelectable:k=true,selectable:N=true,groupSelection:H,onToggleGroupSelect:M,groupDisplay:G="fullWidth",focusedColumnId:m,rowFocused:h=false,renderRow:f,checkboxColumn:K,rowNumberColumn:Y=false,rowNumber:P=null,getNote:B,getSpan:x,resolveColSpans:v,findKind:F,headerRowCount:c,onRowClick:T,onRowMouseDown:A,onRowDoubleClick:U,onToggleSelect:z,onCellMouseDown:we,onRowContextMenu:Oe,searchNeedle:pe="",onToggleGroup:ke,summaryDefs:C,detailColumn:W=false,detailExpanded:Ge=false,onToggleDetail:Me,onToggleTreeRow:ee,renderDetail:ye,renderEditForm:ue,renderCellContent:Se,getCellClassName:D,onCellPointerDown:re,onCellPointerEnter:ve,onCellDoubleClick:Ne,rowDrag:le,dropSide:O=null,height:ge}){let Z=Te();if(isDetailRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+c,"data-row-key":String(t.key),"data-detail-for":String(t.parentKey),style:{height:t.height},children:jsx("div",{className:"kanuni-datagrid-detail-cell",role:"gridcell","aria-colindex":1,children:ye?.(t.data)})});if(isEditFormRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+c,"data-row-key":String(t.key),"data-editform-for":t.parentKey===null?"":String(t.parentKey),style:{height:t.height},children:jsx("div",{className:"kanuni-datagrid-editform-cell",role:"gridcell","aria-colindex":1,children:t.parentKey===null?null:ue?.(t.parentKey,t.data)})});if(isFillerRow(t))return null;if(isGroupRow(t)&&G==="fullWidth"){let I=l.getDef(t.columnId),ie=I?.headerName??t.columnId,de=lookupLabel(I,t.value)??t.display??(t.label===""?Z.filterBlank:t.label),xe=t.aggregates??null;return jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${m?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+c,"aria-expanded":t.expanded,"aria-level":t.level+1,"data-row-key":String(t.key),"data-group-key":String(t.key),"data-group-level":t.level,onClick:()=>ke?.(String(t.key)),children:jsxs("div",{className:"kanuni-datagrid-group-cell",role:"gridcell","aria-colindex":1,id:`${e}-cell-${String(t.key)}-__group`,style:t.level>0?{paddingLeft:8+t.level*18}:void 0,children:[H&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:H==="all",ref:V=>{V&&(V.indeterminate=H==="some");},"aria-label":fillText(Z.selectGroupAria,{count:String(t.count),group:de}),onChange:()=>M?.(String(t.key)),onClick:V=>V.stopPropagation(),onMouseDown:V=>V.stopPropagation()}),jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:t.expanded?"\u25BE":"\u25B8"}),jsxs("span",{className:"kanuni-datagrid-group-caption",children:[ie,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:de}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),xe&&C?.map(V=>jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[summaryLabel(V)," ",l.getDef(V.columnId)?.headerName??V.columnId,":"]})," ",formatSummaryValue(V,xe[summaryKey(V.columnId,V.type)],l.getDef(V.columnId))]},summaryKey(V.columnId,V.type)))]})})}let he=[],me=Ct({rowNumberColumn:Y,detailColumn:W,checkboxColumn:K}),Ke=me.count,X=(I,ie)=>({node:t,columnId:I,rowIndex:n,columnIndex:ie,value:$?void 0:l.getCellValue(t.data,I)}),ae=(I,ie)=>{let de=()=>X(I,ie);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${I}`,"aria-colindex":Ke+ie+1,"data-column-id":I,onMouseDown:xe=>{we?.(t,I),re?.(de(),xe);},onMouseEnter:ve?xe=>ve(de(),xe):void 0,onDoubleClick:Ne?()=>Ne(de()):void 0}},se=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,Ie=t.kind==="treePath",$=isGroupRow(t)?t:null,Be=Ie||$!==null,je=$?G==="column"?GROUP_COLUMN_ID:(a.left[0]??a.center[0]??a.right[0])?.state.id??null:null,Ee=()=>{let I=$,ie=l.getDef(I.columnId),de=lookupLabel(ie,I.value)??I.display??(I.label===""?Z.filterBlank:I.label);return jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:I.level*16},children:[jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:I.expanded?"\u25BE":"\u25B8"}),G!=="column"&&jsxs("span",{className:"kanuni-datagrid-group-caption",children:[ie?.headerName??I.columnId,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:de}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",I.count,")"]})]})},Ae=(I,ie)=>{let de=$.aggregates?C?.find(xe=>xe.columnId===ie):void 0;return de?jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:formatSummaryValue(de,$.aggregates[summaryKey(ie,de.type)],I)}):null},_e=se?(a.left[0]??a.center[0]??a.right[0])?.state.id??null:null,We=(I,ie,de)=>{if($){if(ie===je)return Ee();if(Se){let V=Se(X(ie,de));if(V!==void 0)return V}return Ae(I,ie)}if(Se&&!Ie){let V=Se(X(ie,de));if(V!==void 0)return V}let xe=Ie?ie===_e?jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:Fd(I,l.getCellValue(t.data,ie),t,pe);return se&&ie===_e?jsxs("span",{className:se.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:se.depth*16},children:[se.hasChildren?jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":se.expanded,"aria-label":se.expanded?Z.collapseTreeRow:Z.expandTreeRow,onClick:V=>{V.stopPropagation(),ee?.(t.key);},children:se.expanded?"\u25BE":"\u25B8"}):jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),xe]}):xe},lt=(I,ie)=>{if(!D||$)return "";let de=D(X(I,ie));return de?` ${de}`:""},J=I=>!B||t.kind!=="data"?"":B(t.key,I,t.data)?" kanuni-datagrid-cell--noted":"",ut=I=>x&&t.kind==="data"?x(n,I):null,i=(I,ie)=>{let de=I.autoHeight?" kanuni-datagrid-cell--wrap":"";return !I.cellClassName||Be?de:de+qe(I,ie)},qe=(I,ie)=>{let de=I.cellClassName;if(!de)return "";if(typeof de=="string")return ` ${de}`;let xe=t.data,V=de({value:l.getCellValue(xe,ie),row:xe,node:t,column:I});return V?` ${V}`:""};if(Y){let I=t.kind==="data"&&P!==null;he.push(jsx("div",{role:"gridcell","aria-colindex":me.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:ln,insetInlineStart:me.inset("rowNumberColumn")},children:I?P:""},"__rownum"));}W&&he.push(jsx("div",{role:"gridcell","aria-colindex":me.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:io,insetInlineStart:me.inset("detailColumn")},children:Be?null:jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Ge,"aria-label":Ge?Z.collapseDetails:Z.expandDetails,onMouseDown:I=>I.stopPropagation(),onClick:I=>{I.stopPropagation(),Me?.(t.key);},children:Ge?"\u25BE":"\u25B8"})},"__detail")),K&&he.push(jsx("div",{role:"gridcell","aria-colindex":me.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:ao,insetInlineStart:me.inset("checkboxColumn")},onMouseDown:I=>I.stopPropagation(),onClick:I=>{I.target.tagName!=="INPUT"&&(I.stopPropagation(),z?.(t));},children:$?H&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:H==="all",ref:I=>{I&&(I.indeterminate=H==="some");},"aria-label":fillText(Z.selectGroupAria,{count:String($.count),group:$.display??$.label}),onChange:()=>M?.(String($.key)),onClick:I=>I.stopPropagation(),onMouseDown:I=>I.stopPropagation()}):Ie?null:jsx("input",{type:"checkbox",checked:E,disabled:!N,tabIndex:-1,"aria-label":fillText(Z.selectRowAria,{row:String(t.key)}),onChange:()=>z?.(t),onClick:I=>I.stopPropagation(),onMouseDown:I=>I.stopPropagation()})},"__select"));let Et=me.total,s=I=>m===I?" kanuni-datagrid-cell--focused":"",u=I=>{let ie=F&&t.kind==="data"?F(t.key,I):null;return ie==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":ie==="match"?" kanuni-datagrid-cell--find-match":""},R={left:a.left.length,center:a.center.length},L=t.kind==="data"&&v?v(t):null,q=I=>L?.widths.get(I.state.id)??I.state.width,te=I=>{let ie=L?.spans.get(I);return ie?{"aria-colspan":ie}:null};a.left.forEach((I,ie)=>{let de=I.def,xe=ie===a.left.length-1,V=I.state.id;if(L?.covered.has(V))return;let et=oo("left",ie,R);he.push(jsx("div",{...ae(V,et),className:`${vr(de.align,de.dataType)} kanuni-datagrid-cell--pinned${xe?" kanuni-datagrid-pin-edge-left":""}${s(V)}${u(V)}${i(de,V)}${lt(V,et)}${J(V)}${Cr(ut(V))}`,...te(V),style:{width:q(I),insetInlineStart:a.leftOffsets[ie]+Et},children:kr(ut(V),m===V,()=>We(de,V,et))},V));});let Q=L?.lead??null,ne=b-(L?.leadingDelta??0),be=w-(L?.trailingDelta??0);ne>0&&he.push(jsx("div",{className:"kanuni-datagrid-spacer",style:{width:ne}},"__lead"));let Re=(I,ie)=>{let de=I.def,xe=I.state.id,V=oo("center",ie,R),et=y?.get(xe),Fn=et===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",An=Q&&Q.column.state.id===xe?Q.width:q(I);return jsx("div",{...ae(xe,V),...te(xe),className:`${vr(de.align,de.dataType)}${Fn}${s(xe)}${u(xe)}${i(de,xe)}${lt(xe,V)}${J(xe)}${Cr(ut(xe))}`,style:et===void 0?{width:An}:{width:An,insetInlineStart:et+Et},children:kr(ut(xe),m===xe,()=>We(de,xe,V))},xe)},Fe=Q?a.center.indexOf(Q.column):-1,ct=Q===null;return r.forEach((I,ie)=>{let de=d?.[ie]??ie;!ct&&de>Fe&&(he.push(Re(Q.column,Fe)),ct=true),!L?.covered.has(I.state.id)&&he.push(Re(I,de));}),ct||he.push(Re(Q.column,Fe)),be>0&&he.push(jsx("div",{className:"kanuni-datagrid-spacer",style:{width:be}},"__trail")),a.right.forEach((I,ie)=>{let de=I.def,xe=ie===0,V=I.state.id;if(L?.covered.has(V))return;let et=oo("right",ie,R);he.push(jsx("div",{...ae(V,et),className:`${vr(de.align,de.dataType)} kanuni-datagrid-cell--pinned${xe?" kanuni-datagrid-pin-edge-right":""}${s(V)}${u(V)}${i(de,V)}${lt(V,et)}${J(V)}${Cr(ut(V))}`,...te(V),style:{width:q(I),insetInlineEnd:a.rightOffsets[ie]},children:kr(ut(V),m===V,()=>We(de,V,et))},V));}),jsxs("div",{className:`kanuni-datagrid-row${g&&n%2===1?" kanuni-datagrid-row--odd":""}${E?" kanuni-datagrid-row--selected":""}${h?" kanuni-datagrid-row--focused":""}${Ie?" kanuni-datagrid-row--tree-path":""}${$?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${$.level}`:""}${O?` kanuni-datagrid-row--drop-${O}`:""}`,role:"row","aria-rowindex":n+1+c,"aria-selected":$||!k?void 0:E,"aria-expanded":$?$.expanded:void 0,"aria-level":$?$.level+1:void 0,"data-row-key":String(t.key),"data-group-key":$?String($.key):void 0,"data-group-level":$?$.level:void 0,style:ge===void 0?void 0:{height:ge},draggable:le?.draggable&&!$?true:void 0,onDragStart:le&&!$?I=>le.onDragStart(t,I):void 0,onDragEnd:le&&!$?()=>le.onDragEnd():void 0,onDragOver:le&&!$?I=>le.onDragOver(t,I):void 0,onDrop:le&&!$?I=>le.onDrop(t,I):void 0,onMouseDown:A&&!$?I=>A(t,I):void 0,onClick:$?()=>ke?.(String($.key)):T?I=>T(t,n,I):void 0,onDoubleClick:U?I=>U(t,n,I):void 0,onContextMenu:Oe?I=>Oe(t,n,I):void 0,children:[le&&!$&&jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:Z.dragToReorder,onMouseEnter:()=>le.setDraggable(true),onMouseLeave:()=>le.setDraggable(false),children:jsx("svg",{width:"10",height:"14",viewBox:"0 0 10 14",focusable:"false",children:jsxs("g",{fill:"currentColor",children:[jsx("circle",{cx:"3",cy:"3",r:"1.2"}),jsx("circle",{cx:"7",cy:"3",r:"1.2"}),jsx("circle",{cx:"3",cy:"7",r:"1.2"}),jsx("circle",{cx:"7",cy:"7",r:"1.2"}),jsx("circle",{cx:"3",cy:"11",r:"1.2"}),jsx("circle",{cx:"7",cy:"11",r:"1.2"})]})})}),f&&t.kind==="data"?f({row:t.data,node:t,rowIndex:n,selected:E,focused:h}):he]})}var sn=memo(Ad);var dn=26;function Dr(e,t){return computeHeaderBands(e,t)}function Sr(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function Er(e,t){let n=jsx("span",{className:"kanuni-datagrid-band-label",children:e.label});if(!t||e.spacer||e.columnIds.length===0)return n;let a=t.pathOf(e.columnIds[0]).slice(0,e.level+1);if(a.length!==e.level+1||!t.collapsible(a))return n;let l=t.collapsed(a);return jsxs(Fragment,{children:[jsx("button",{type:"button",className:"kanuni-datagrid-band-toggle","aria-expanded":!l,"aria-label":l?t.labels.expand:t.labels.collapse,title:l?t.labels.expand:t.labels.collapse,onClick:r=>{r.stopPropagation(),t.onToggle(a);},children:jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),jsx("path",{d:"M5 8h6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),l&&jsx("path",{d:"M8 5v6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}),n]})}function Bd({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:a,depth:l,checkboxColumn:r=false,detailColumn:d=false,rowNumberColumn:y=false,rowHeight:b=dn,bandFold:w}){if(l<=0)return null;let g=Ct({rowNumberColumn:y,detailColumn:d,checkboxColumn:r}).total,E=Dr(e.left,l),k=Dr(t,l),N=Dr(e.right,l),H=(M,G,m)=>{let h=m;for(let f=0;f<G;f++)h+=M[f].width;return h};return jsx(Fragment,{children:Array.from({length:l},(M,G)=>jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":G+1,style:{width:e.totalWidth+g,height:b,top:G*b},children:[g>0&&jsx("div",{className:"kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned",style:{width:g,insetInlineStart:0},"aria-hidden":"true"}),(E[G]??[]).map((m,h)=>jsx("div",{className:Sr(m,` kanuni-datagrid-band-cell--pinned${h===(E[G]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:m.spacer?"presentation":"columnheader","aria-colspan":m.spacer?void 0:m.columnIds.length,style:{width:m.width,insetInlineStart:H(E[G]??[],h,g)},title:m.spacer?void 0:m.label,children:Er(m,w)},m.columnIds[0])),n>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(k[G]??[]).map(m=>jsx("div",{className:Sr(m),role:m.spacer?"presentation":"columnheader","aria-colspan":m.spacer?void 0:m.columnIds.length,style:{width:m.width},title:m.spacer?void 0:m.label,children:Er(m,w)},m.columnIds[0])),a>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),(N[G]??[]).map((m,h)=>{let f=N[G]??[],K=0;for(let Y=h+1;Y<f.length;Y++)K+=f[Y].width;return jsx("div",{className:Sr(m,` kanuni-datagrid-band-cell--pinned${h===0?" kanuni-datagrid-pin-edge-right":""}`),role:m.spacer?"presentation":"columnheader","aria-colspan":m.spacer?void 0:m.columnIds.length,style:{width:m.width,insetInlineEnd:K},title:m.spacer?void 0:m.label,children:Er(m,w)},m.columnIds[0])})]},G))})}var Mr=memo(Bd);var Ud=()=>jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"0.6",strokeLinejoin:"round"})});function zd(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function Yd({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:a,leadingSpacer:l,trailingSpacer:r,sort:d,sortable:y,onSort:b,headerFilter:w=false,filteredColumns:g,onOpenFilter:E,filterIconMode:k="hover",checkboxColumn:N=false,detailColumn:H=false,rowNumberColumn:M=false,rowNumberHeader:G="#",selectAllState:m="none",selectAllDisabled:h=false,onToggleSelectAll:f,draggable:K=false,reorderable:Y=false,onReorder:P,resizable:B=false,onResize:x,onAutoFit:v,onHeaderContextMenu:F,groupLevels:c,onHeaderClick:T,getHeaderClassName:A,renderHeaderLabel:U}){let z=Te(),we=Ct({rowNumberColumn:M,detailColumn:H,checkboxColumn:N}),Oe=new Map(d.map((X,ae)=>[X.columnId,{direction:X.direction,order:ae}])),pe=new Set(g??[]),ke=[...n.left.map(X=>X.state.id),...a.map(X=>X.state.id),...n.right.map(X=>X.state.id)],[C,W]=useState(null),Ge=useId(),Me=C&&ke.includes(C)?C:ke[0],ee=X=>{W(X),document.querySelector(`[data-column-id="${X}"].kanuni-datagrid-header-cell`)?.focus();},ye=X=>{let ae=ke.indexOf(Me),se=Math.min(ke.length-1,Math.max(0,ae+X));se!==ae&&ee(ke[se]);},ue=useRef(null),Se=useRef(false),[D,re]=useState(null),ve=ke,Ne=X=>[...n.left,...n.center,...n.right].find(ae=>ae.state.id===X)?.state.pinned??null,le=(X,ae)=>(Se.current?X>ae.left+ae.width/2:X<ae.left+ae.width/2)?"before":"after",O=(X,ae)=>{let se=ue.current;if(!Y||!se||se===X||Ne(se)!==Ne(X))return;ae.preventDefault(),ae.dataTransfer.dropEffect="move";let Ie=le(ae.clientX,ae.currentTarget.getBoundingClientRect());re($=>$?.id===X&&$.side===Ie?$:{id:X,side:Ie});},ge=(X,ae)=>{let se=ue.current;if(re(null),!Y||!se||se===X||Ne(se)!==Ne(X))return;if(ae.preventDefault(),ae.stopPropagation(),le(ae.clientX,ae.currentTarget.getBoundingClientRect())==="before")P?.(se,X);else {let $=ve[ve.indexOf(X)+1];P?.(se,$===se?ve[ve.indexOf(X)+2]:$);}ue.current=null;},[Z,he]=useState(null),me=(X,ae)=>{if(!B)return;ae.preventDefault(),ae.stopPropagation();let se=ae.currentTarget,Ie=ae.clientX,$=X.state.width,Be=Se.current?-1:1,je=X.state.id;he(je),se.setPointerCapture(ae.pointerId);let Ee=$,Ae=false,_e=lt=>{Ae=true,Ee=$+(lt.clientX-Ie)*Be,x?.(je,Ee,false);},We=()=>{se.releasePointerCapture?.(ae.pointerId),se.removeEventListener("pointermove",_e),se.removeEventListener("pointerup",We),se.removeEventListener("pointercancel",We),Ae&&x?.(je,Ee,true),he(null);};se.addEventListener("pointermove",_e),se.addEventListener("pointerup",We),se.addEventListener("pointercancel",We);},Ke=(X,ae,se)=>{let Ie=X.def,$=X.state.id,Be=y&&Ie.sortable!==false,je=w&&Ie.filterable!==false,Ee=$===GROUP_COLUMN_ID,Ae=Oe.get(Ee?c?.[0]??$:$),_e=K&&Ie.groupable!==false||Y&&Ie.reorderable!==false,We=D?.id===$?D.side:null,lt=A?.($);return jsxs("div",{className:`kanuni-datagrid-header-cell${ae}${lt?` ${lt}`:""}${Be?" kanuni-datagrid-header-cell--sortable":""}${We?` kanuni-datagrid-header-cell--drop-${We}`:""}${Z===$?" kanuni-datagrid-header-cell--resizing":""}${Ie.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:se,role:"columnheader","aria-labelledby":`${Ge}-${encodeURIComponent($)}`,"aria-sort":Ae?Ae.direction==="asc"?"ascending":"descending":"none","data-column-id":$,tabIndex:$===Me?0:-1,onFocus:()=>W($),draggable:_e&&Z===null,onDragStart:J=>{J.dataTransfer.setData("text/x-kanuni-column",$),J.dataTransfer.effectAllowed="move",ue.current=$,Se.current=getComputedStyle(J.currentTarget).direction==="rtl";},onDragEnd:()=>{ue.current=null,re(null);},onDragOver:Y?J=>O($,J):void 0,onDragLeave:Y?()=>re(J=>J?.id===$?null:J):void 0,onDrop:Y?J=>ge($,J):void 0,onContextMenu:F&&!isChromeColumn($)?J=>F($,J):void 0,onClick:Be||T?J=>{T?.($,J)||Be&&b($,J.shiftKey);}:void 0,onKeyDown:J=>{J.key==="ArrowRight"?(J.preventDefault(),ye(1)):J.key==="ArrowLeft"?(J.preventDefault(),ye(-1)):J.key==="Home"?(J.preventDefault(),ee(ke[0])):J.key==="End"?(J.preventDefault(),ee(ke[ke.length-1])):je&&J.altKey&&J.key==="ArrowDown"?(J.preventDefault(),E?.($,J.currentTarget)):Be&&(J.key==="Enter"||J.key===" ")&&(J.preventDefault(),b($,J.shiftKey));},children:[jsx("span",{className:"kanuni-datagrid-header-label",id:`${Ge}-${encodeURIComponent($)}`,children:U?.($)??zd(Ie,$)}),Ae&&jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:Ae.direction==="asc"?"\u25B2":"\u25BC"}),Ae&&d.length>1&&!Ee&&jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:Ae.order+1}),w&&Ie.filterable!==false&&jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${pe.has($)?" kanuni-datagrid-filter-button--active":""}${k==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":fillText(z.filterColumnAria,{column:Ie.headerName??$}),"aria-haspopup":"dialog","data-filter-button":$,tabIndex:-1,onClick:J=>{J.stopPropagation(),E?.($,J.currentTarget);},children:jsx(Ud,{})}),B&&Ie.resizable!==false&&jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":$,role:"presentation",onPointerDown:J=>me(X,J),onDoubleClick:J=>{J.stopPropagation(),v?.($);},onClick:J=>J.stopPropagation()})]},$)};return jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/dn)+1,style:{width:n.totalWidth+we.total,top:e||void 0},children:[M&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":we.colIndex("rowNumberColumn"),"aria-label":z.rowNumberAria,style:{width:ln,insetInlineStart:we.inset("rowNumberColumn")},children:G??""}),H&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":we.colIndex("detailColumn"),"aria-label":z.detailsAria,style:{width:io,insetInlineStart:we.inset("detailColumn")}}),N&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":we.colIndex("checkboxColumn"),style:{width:ao,insetInlineStart:we.inset("checkboxColumn")},children:jsx("input",{type:"checkbox",checked:m==="all",ref:X=>{X&&(X.indeterminate=m==="some");},"aria-label":z.selectAllRows,disabled:h,onChange:()=>f?.()})}),n.left.map((X,ae)=>Ke(X,` kanuni-datagrid-header-cell--pinned${ae===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:X.state.width,insetInlineStart:n.leftOffsets[ae]+we.total})),l>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),a.map(X=>{let ae=t?.get(X.state.id);return ae===void 0?Ke(X,"",{width:X.state.width}):Ke(X," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:X.state.width,insetInlineStart:ae+we.total})}),r>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),n.right.map((X,ae)=>Ke(X,` kanuni-datagrid-header-cell--pinned${ae===0?" kanuni-datagrid-pin-edge-right":""}`,{width:X.state.width,insetInlineEnd:n.rightOffsets[ae]}))]})}var Pr=memo(Yd);function Lr(e,t,n=[]){let a=null,l=new Set,r=d=>{if(l.has(d)||(l.add(d),t.isPending(d)))return;let y=t.textFor(d);if(y===null)return;let b=e[d]??"";b!==y&&(b===""&&y===""||(a??={...e},a[d]=y));};for(let d of Object.keys(e))r(d);for(let d of n)r(d);return a??e}function Jd({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:a,leadingSpacer:l,trailingSpacer:r,values:d,checkboxColumn:y=false,detailColumn:b=false,rowNumberColumn:w=false,placeholder:g,onChange:E,onCommit:k,periodSuggestions:N,periodListId:H,operators:M,onOperatorChange:G,renderCustom:m}){let h=Te(),f=Ct({rowNumberColumn:w,detailColumn:b,checkboxColumn:y}),K=g??h.filterPlaceholder,Y=(P,B,x)=>{let v=P.state.id,F=P.def.filterable!==false,c=F?m?.(v):void 0,T=F&&c===void 0?customFilterOperators(P.def):[],A=T.some(z=>z.id===M?.[v])?M[v]:"",U=T.find(z=>z.id===A)?.operandType==="none";return jsxs("div",{className:`kanuni-datagrid-filter-cell${B}`,role:"gridcell",style:x,"data-column-id":v,children:[F&&c!==void 0&&c,F&&c===void 0&&T.length>0&&jsxs("select",{className:"kanuni-datagrid-filter-operator",value:A,"aria-label":fillText(h.filterOperatorAria,{column:P.def.headerName??v}),"data-filter-operator-for":v,onChange:z=>G?.(v,z.target.value),children:[jsx("option",{value:"",children:h.filterOperatorDefault}),T.map(z=>jsx("option",{value:z.id,children:z.label},z.id))]}),F&&c===void 0&&jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:d[v]??"",placeholder:K,"aria-label":fillText(h.filterColumnAria,{column:P.def.headerName??v}),"data-filter-for":v,disabled:U||void 0,list:P.def.dataType==="date"&&H&&A===""?H:void 0,onChange:z=>E(v,z.target.value),onKeyDown:z=>{z.key==="Enter"&&k?.(v,z.target.value);},onBlur:z=>k?.(v,z.target.value)})]},v)};return jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+f.total,"--dg-band-offset":`${e}px`},children:[H&&N&&N.length>0&&jsx("datalist",{id:H,children:N.map(P=>jsx("option",{value:P},P))}),f.total>0&&jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",role:"gridcell",style:{width:f.total,insetInlineStart:0}}),n.left.map((P,B)=>Y(P,` kanuni-datagrid-filter-cell--pinned${B===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:P.state.width,insetInlineStart:n.leftOffsets[B]+f.total})),l>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),a.map(P=>{let B=t?.get(P.state.id);return B===void 0?Y(P,"",{width:P.state.width}):Y(P," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:P.state.width,insetInlineStart:B+f.total})}),r>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),n.right.map((P,B)=>Y(P,` kanuni-datagrid-filter-cell--pinned${B===0?" kanuni-datagrid-pin-edge-right":""}`,{width:P.state.width,insetInlineEnd:n.rightOffsets[B]}))]})}var Hr=memo(Jd);function it({children:e,dark:t=false}){let[n,a]=useState(null),l=Tt();return useEffect(()=>{let r=document.createElement("div");return r.className=`kanuni-datagrid-root kanuni-datagrid-portal${t?" kanuni-datagrid-dark":""}${l}`,document.body.appendChild(r),a(r),()=>{r.remove();}},[t,l]),n?createPortal(e,n):null}function Wt({anchor:e,onClose:t,margin:n=8,autoFocus:a=false}){let l=useRef(null),[r,d]=useState(e),y=useCallback(b=>{if(l.current=b,!b)return;let w=b.getBoundingClientRect(),g=e.top+w.height+n>window.innerHeight,E=e.top-w.height-n*2,k=g&&E>n?E:e.top;d({left:Math.max(n,Math.min(e.left,window.innerWidth-w.width-n)),top:Math.max(n,Math.min(k,window.innerHeight-w.height-n))}),a&&b.focus();},[e.left,e.top,n,a]);return useEffect(()=>{let b=E=>{let k=l.current;k&&!k.contains(E.target)&&t();},w=E=>{E.key==="Escape"&&t();},g=E=>{let k=l.current,N=E.target;k&&N instanceof Node&&k.contains(N)||t();};return document.addEventListener("mousedown",b),document.addEventListener("keydown",w),window.addEventListener("scroll",g,true),()=>{document.removeEventListener("mousedown",b),document.removeEventListener("keydown",w),window.removeEventListener("scroll",g,true);}},[t]),{position:r,ref:y,elementRef:l}}var uo=25,En=new Map,Ai=200,au=200,Oi=8;function iu(e){let t=Te();return useMemo(()=>({search:t.search,selectAll:t.filterSelectAll,clear:t.clear,apply:t.apply,cancel:t.cancel,blank:t.filterBlank,noMatch:t.filterNoMatch,loading:t.filterLoading,truncated:t.filterTruncated,...e}),[t,e])}var lu=memo(function({label:t,display:n,index:a,active:l,checked:r,onToggle:d,onFocus:y}){return jsxs("div",{role:"option","aria-selected":r,tabIndex:0,className:`kanuni-datagrid-filter-item${l?" kanuni-datagrid-filter-item--active":""}`,"data-value":t,"data-index":a,onFocus:()=>y(a),onClick:()=>d(t),children:[jsx("input",{type:"checkbox",readOnly:true,checked:r,tabIndex:-1}),jsx("span",{children:n})]})});function _r({gridId:e,columnId:t,headerLabel:n,entries:a,initialSelected:l,anchor:r,loading:d=false,dark:y,onApply:b,onClose:w,truncated:g=false,onSearch:E,labels:k}){let N=iu(k),[H,M]=useState(""),[G,m]=useState(0),[h,f]=useState(()=>new Set(l??a.map(O=>O.label))),[K,Y]=useState(false),P=useRef(null),B=useRef(null),[x,v]=useState(0),[F,c]=useState(240),T=`${e??""}:${t}`,A=En.get(T),U=useRef(A?.scrollTop??null),[z,we]=useState(A&&A.width&&A.height?{width:A.width,height:A.height}:null),Oe=useCallback(O=>{P.current=O,O?.focus();},[]),pe=useRef(null),ke=useMemo(()=>{let O=foldText(H.trim());if(!O||g)return a;let ge=pe.current;(!ge||ge.entries!==a)&&(ge={entries:a,lowered:a.map(he=>foldText(he.label)),needle:"",result:[]},pe.current=ge);let Z=ge.needle!==""&&O.includes(ge.needle)?ge.result.filter(he=>foldText(he.label).includes(O)):a.filter((he,me)=>ge.lowered[me].includes(O));return ge.needle=O,ge.result=Z,Z},[a,H,g]);useEffect(()=>{if(!E)return;let O=setTimeout(()=>E(H),150);return ()=>clearTimeout(O)},[H,E]),useEffect(()=>{K||l||f(new Set(a.map(O=>O.label)));},[a,K,l]);let C=useCallback(O=>{B.current=O,O&&c(O.clientHeight||240);},[]);useEffect(()=>{let O=B.current;!O||U.current===null||d||O.scrollHeight<=O.clientHeight||(O.scrollTop=U.current,U.current=null,v(O.scrollTop));});let W=useMemo(()=>{let O=ke.length,ge=Math.max(0,Math.floor(x/uo)-Oi),Z=Math.ceil(F/uo)+Oi*2,he=Math.min(ge,Math.max(0,O-1)),me=Math.min(O,he+Z);return {start:he,end:me,count:O,rows:ke.slice(he,me)}},[ke,x,F]),Ge=Wt({anchor:r,onClose:w}),[Me,ee]=useState(null),ye=(Me??Ge.position.left)+(z?.width??260)+48<window.innerWidth?"right":"left",ue=O=>{O.preventDefault(),O.stopPropagation();let ge=Ge.elementRef.current;if(!ge)return;let Z=ge.getBoundingClientRect(),he=ye,me={x:O.clientX,y:O.clientY,w:Z.width,h:Z.height,left:Z.left},Ke=null,X=se=>{let Ie=se.clientX-me.x,$=se.clientY-me.y,Be=window.innerHeight-Z.top-12,je=Math.min(Be,Math.max(au,me.h+$));if(he==="right"){let Ee=window.innerWidth-me.left-12;Ke={width:Math.min(Ee,Math.max(Ai,me.w+Ie)),height:je},we(Ke);}else {let Ee=me.left+me.w,Ae=Ee-12,_e=Math.min(Ae,Math.max(Ai,me.w-Ie));Ke={width:_e,height:je},we(Ke),ee(Ee-_e);}B.current&&c(B.current.clientHeight);},ae=()=>{if(window.removeEventListener("pointermove",X),window.removeEventListener("pointerup",ae),Ke){let se=En.get(T);En.set(T,{scrollTop:se?.scrollTop??B.current?.scrollTop??0,width:Math.round(Ke.width),height:Math.round(Ke.height)});}};window.addEventListener("pointermove",X),window.addEventListener("pointerup",ae);},Se=useCallback(O=>{Y(true),f(ge=>{let Z=new Set(ge);return Z.has(O)?Z.delete(O):Z.add(O),Z});},[]),D=useCallback(O=>m(O),[]),re=()=>{if(d)return;if(h.size===a.length){b(null);return}let O=a.filter(me=>h.has(me.label)),ge=O.some(me=>me.value===null||me.value===void 0),Z=O.filter(me=>me.value!==null&&me.value!==void 0),he;Z.length===0?he={columnId:t,operator:"isnull"}:ge?he={logic:"or",nodes:[{columnId:t,operator:"in",value:Z.map(me=>me.value)},{columnId:t,operator:"isnull"}]}:he={columnId:t,operator:"in",value:Z.map(me=>me.value)},b(he);},ve=O=>{let ge=Math.max(0,Math.min(ke.length-1,O));m(ge);let Z=Ge.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${ge}"]`);Z?.focus(),Z?.scrollIntoView({block:"nearest"});},Ne=O=>O.key.length===1&&!O.ctrlKey&&!O.metaKey&&!O.altKey,le=O=>{let ge=O.target===P.current;if(O.key==="Backspace"&&!ge){O.preventDefault(),P.current?.focus(),M(Z=>Z.slice(0,-1)),m(0);return}if(O.key==="ArrowDown"){O.preventDefault(),ve(ge?0:G+1);return}if(O.key==="ArrowUp"){O.preventDefault(),ve(ge?ke.length-1:G-1);return}if(!ge&&(O.key==="Home"||O.key==="End")){O.preventDefault(),ve(O.key==="Home"?0:ke.length-1);return}if(O.key===" "&&!ge){O.preventDefault();let Z=ke[G];Z&&Se(Z.label);return}if(O.key==="Enter"){O.preventDefault(),re();return}!ge&&Ne(O)&&O.key!==" "&&(O.preventDefault(),P.current?.focus(),M(Z=>Z+O.key),m(0));};return jsx(it,{dark:y,children:jsxs("div",{ref:Ge.ref,className:"kanuni-datagrid-filter-popup",style:{left:Me??Ge.position.left,top:Ge.position.top,...z?{width:z.width,height:z.height,maxHeight:"none"}:null},role:"dialog","aria-label":`${n} filter`,onKeyDown:le,children:[jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${ye}`,"data-testid":"dg-filter-resize",onPointerDown:ue}),jsx("input",{ref:Oe,className:"kanuni-datagrid-filter-search",type:"search",placeholder:N.search,value:H,onChange:O=>{M(O.target.value),m(0);},"data-testid":"dg-filter-search"}),g&&jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:N.truncated}),jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsx("button",{type:"button",onClick:()=>{Y(true),f(new Set(a.map(O=>O.label)));},children:N.selectAll}),jsx("button",{type:"button",onClick:()=>{Y(true),f(new Set);},children:N.clear})]}),jsxs("div",{ref:C,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true","aria-busy":d||void 0,"aria-setsize":ke.length,onScroll:O=>{let ge=O.target.scrollTop;v(ge),U.current=null;let Z=En.get(T);En.set(T,{...Z,scrollTop:ge});},children:[d&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:N.loading}),!d&&ke.length===0&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:N.noMatch}),W.count>0&&jsx("div",{style:{height:ke.length*uo,position:"relative"},children:jsx("div",{style:{transform:`translateY(${W.start*uo}px)`},children:W.rows.map((O,ge)=>{let Z=W.start+ge;return jsx(lu,{label:O.label,display:O.label===""?N.blank:O.label,index:Z,active:Z===G,checked:h.has(O.label),onToggle:Se,onFocus:D},O.label)})})})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",onClick:w,children:N.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:re,disabled:d,"data-testid":"dg-filter-apply",children:N.apply})]})]})})}function $r(e,t,n){return n==="row"?e.getColumnFilter(t,FILTER_PART_ROW):e.getColumnFilter(t,FILTER_PART_SET)??e.getColumnFilter(t,FILTER_PART_DEFAULT)}function Vr({controller:e,columnId:t,surface:n,close:a}){let[l,r]=useState(()=>$r(e,t,n));useEffect(()=>(r($r(e,t,n)),e.events.on("filterChanged",()=>{r($r(e,t,n));})),[e,t,n]);let d=useCallback(w=>{e.setColumnFilter(t,w,n==="row"?FILTER_PART_ROW:FILTER_PART_SET);},[e,t,n]),y=useCallback(()=>{},[]),b=e.getColumnModel().getDef(t);return b?.renderFilter?jsx(Fragment,{children:b.renderFilter({columnId:t,column:b,surface:n,value:l,setValue:d,close:a??y})}):null}var pu='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function _i({controller:e,columnId:t,headerLabel:n,anchor:a,dark:l,onClose:r}){let d=Wt({anchor:a,onClose:r}),y=useRef(false),b=d.ref,w=useCallback(g=>{b(g),!(!g||y.current)&&(y.current=true,(g.querySelector(pu)??g).focus({preventScroll:true}));},[b]);return jsx(it,{dark:l,children:jsx("div",{ref:w,tabIndex:-1,className:"kanuni-datagrid-filter-popup kanuni-datagrid-filter-popup--custom",style:{left:d.position.left,top:d.position.top},role:"dialog","aria-label":`${n} filter`,"data-column-id":t,children:jsx(Vr,{controller:e,columnId:t,surface:"popup",close:r})})})}var Ur="text/x-kanuni-column";function wu({columns:e,levels:t,onSetLevels:n,maxLevels:a=1,onExpandAll:l,onCollapseAll:r,emptyText:d}){let y=Te(),b=d??y.groupPanelHint,[w,g]=useState(false),E=useRef(null),[k,N]=useState(null),H=x=>e.find(F=>F.state.id===x)?.def.headerName??x,M=x=>{if(!x||t.includes(x))return;let v=t.length>=a?t.slice(0,a-1):[...t];n([...v,x]);},G=x=>n(t.filter(v=>v!==x)),m=(x,v)=>{let F=t.filter(T=>T!==x),c=Math.max(0,Math.min(F.length,v));n([...F.slice(0,c),x,...F.slice(c)]);},h=(x,v,F)=>{if(x===v)return;let T=t.filter(A=>A!==x).indexOf(v);T<0||m(x,F==="before"?T:T+1);},f=(x,v)=>{let F=x+v;F<0||F>=t.length||h(t[x],t[F],v<0?"before":"after");},K=(x,v)=>x<v.top+v.height/2?"before":"after",Y=(x,v)=>{v.preventDefault(),v.stopPropagation();let F=K(v.clientY,v.currentTarget.getBoundingClientRect());N(null),g(false);let c=E.current;if(E.current=null,c){h(c,t[x],F);return}let T=v.dataTransfer.getData(Ur);if(!T||t.includes(T))return;if(t.length>=a){M(T);return}let A=F==="before"?x:x+1;n([...t.slice(0,A),T,...t.slice(A)]);},P=(x,v,F)=>{let c=F.ctrlKey||F.metaKey;c&&(F.key==="ArrowUp"||F.key==="ArrowLeft")?(F.preventDefault(),f(x,-1)):c&&(F.key==="ArrowDown"||F.key==="ArrowRight")?(F.preventDefault(),f(x,1)):(F.key==="Delete"||F.key==="Backspace")&&(F.preventDefault(),G(v));},B=e.filter(x=>!t.includes(x.state.id));return jsxs("div",{className:`kanuni-datagrid-group-panel${w?" kanuni-datagrid-group-panel--over":""}`,onDragOver:x=>{x.preventDefault(),g(true);},onDragLeave:()=>g(false),onDrop:x=>{if(x.preventDefault(),g(false),N(null),E.current){E.current=null;return}M(x.dataTransfer.getData(Ur));},children:[t.length>0?jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((x,v)=>jsx("div",{className:`kanuni-datagrid-group-level${k?.index===v?` kanuni-datagrid-group-level--drop-${k.side}`:""}`,style:{"--dg-group-level":v},"data-group-level":v,onDragOver:F=>{F.preventDefault(),F.stopPropagation();let c=K(F.clientY,F.currentTarget.getBoundingClientRect());N(T=>T?.index===v&&T.side===c?T:{index:v,side:c});},onDragLeave:()=>N(F=>F?.index===v?null:F),onDrop:F=>Y(v,F),children:jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:a>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${fillText(y.groupLevelAria,{n:v+1})}: ${H(x)}`,onDragStart:F=>{E.current=x,F.dataTransfer.effectAllowed="move",F.dataTransfer.setData(Ur,x);},onDragEnd:()=>{E.current=null,N(null);},onKeyDown:F=>P(v,x,F),children:[a>1&&jsx("span",{className:"kanuni-datagrid-group-chip-level",children:v+1}),H(x),jsx("button",{type:"button","aria-label":fillText(y.groupRemoveAria,{column:H(x)}),onClick:()=>G(x),children:"\xD7"})]})},x))}):jsx("span",{className:"kanuni-datagrid-group-panel-hint",children:b}),jsxs("div",{className:"kanuni-datagrid-group-panel-actions",children:[t.length>0&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:l,children:y.groupExpandAll}),jsx("button",{type:"button",onClick:r,children:y.groupCollapseAll})]}),jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsx("span",{className:"kanuni-datagrid-sr-only",children:a>1?y.groupAddLevel:y.groupByColumn}),a>1?jsxs("select",{value:"",disabled:B.length===0,onChange:x=>M(x.target.value),children:[jsx("option",{value:"",children:y.groupAddLevelButton}),B.map(x=>jsx("option",{value:x.state.id,children:x.def.headerName??x.state.id},x.state.id))]}):jsxs("select",{value:t[0]??"",onChange:x=>n(x.target.value?[x.target.value]:[]),children:[jsx("option",{value:"",children:y.groupNoGrouping}),e.map(x=>jsx("option",{value:x.state.id,children:x.def.headerName??x.state.id},x.state.id))]})]})]})]})}var zr=memo(wu);function Cu({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:a,defs:l,values:r,checkboxColumn:d=false,detailColumn:y=false,rowNumberColumn:b=false,onPickSummary:w,emptyHint:g="",position:E="bottom",bandOffset:k=0,headerRowsBetween:N=0}){let H=Te(),M=summaryTypeLabels(H),G=new Map(l.map(f=>[f.columnId,f])),m=Ct({rowNumberColumn:b,detailColumn:y,checkboxColumn:d}).total,h=(f,K,Y)=>{let P=f.state.id,B=G.get(P),x=B?r[summaryKey(B.columnId,B.type)]:void 0,v=f.def.dataType==="number"||f.def.dataType==="bigint",F=isChromeColumn(P)?void 0:w;return jsx("div",{className:`kanuni-datagrid-footer-cell${K}${v?" kanuni-datagrid-footer-cell--number":""}${B?" kanuni-datagrid-footer-cell--active":""}`,style:Y,role:"gridcell","data-column-id":P,"data-summary-type":B?.type??"",title:B?`${summaryLabel(B,M)} \u2014 ${f.def.headerName??P}`:void 0,onContextMenu:F?c=>F(P,c):void 0,onClick:F?c=>F(P,c):void 0,children:B?jsx("span",{className:"kanuni-datagrid-footer-value",children:formatSummaryValue(B,x,f.def)}):F?jsx("span",{className:"kanuni-datagrid-footer-hint",children:g}):null},P)};return jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${E}`,role:"row","aria-label":H.columnTotalsAria,style:{width:e.totalWidth+m,"--dg-band-offset":`${k}px`,"--dg-pinned-gap":String(N)},children:[m>0&&jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:m,insetInlineStart:0}}),e.left.map((f,K)=>h(f,` kanuni-datagrid-footer-cell--pinned${K===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:f.state.width,insetInlineStart:e.leftOffsets[K]+m})),n>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(f=>h(f,"",{width:f.state.width})),a>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),e.right.map((f,K)=>h(f,` kanuni-datagrid-footer-cell--pinned${K===0?" kanuni-datagrid-pin-edge-right":""}`,{width:f.state.width,insetInlineEnd:e.rightOffsets[K]}))]})}var po=memo(Cu);function Tu(e,t){return `__dg_pinned_${e}_${t}`}function xu({gridId:e,side:t,rows:n,rowKeys:a,onUserRowContextMenu:l,layout:r,columnModel:d,centerColumns:y,centerIndices:b,stickyInsets:w,leadingSpacer:g,trailingSpacer:E,checkboxColumn:k=false,detailColumn:N=false,rowNumberColumn:H=false,rowHeight:M,bandOffset:G=0,headerRowsBetween:m,ariaRowBase:h}){return n.length===0?null:jsx("div",{className:`kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--${t}`,role:"rowgroup",style:{width:r.totalWidth||"100%","--dg-band-offset":`${G}px`,"--dg-pinned-gap":String(m)},children:n.map((f,K)=>{let Y=a?.[K]??null,P={kind:"data",key:Tu(t,K),sourceIndex:-1,data:f};return jsx(sn,{gridId:e,node:P,index:K,layout:r,columnModel:d,centerColumns:y,centerIndices:b,stickyInsets:w,leadingSpacer:g,trailingSpacer:E,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:k,detailColumn:N,rowNumberColumn:H,rowNumber:null,headerRowCount:h,height:M,onRowContextMenu:Y!==null&&l?(B,x,v)=>l(Y,f,v):void 0},P.key)})})}var mo=memo(xu);function Ui({controller:e,renderRow:t,width:n,bandOffset:a,headerRowsBetween:l,belowPinned:r}){let[,d]=useReducer(w=>w+1,0);useEffect(()=>{let w=[e.events.on("bodyScroll",d),e.events.on("contentReady",d),e.events.on("viewportChanged",d)];return ()=>w.forEach(g=>g())},[e]);let y=useRef(null);useLayoutEffect(()=>{y.current?.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(w=>w.setAttribute("tabindex","-1"));});let b=e.getStickyGroupRows();return b.length===0?null:jsx("div",{ref:y,className:"kanuni-datagrid-sticky-groups","aria-hidden":"true",style:{width:n||"100%","--dg-band-offset":`${a}px`,"--dg-pinned-gap":String(l),"--dg-sticky-below":`${r}px`},children:b.map((w,g)=>jsx("div",{className:`kanuni-datagrid-sticky-group${g===b.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:w.offset,height:w.height,zIndex:b.length-g},children:t(w.node,w.index,w.height)},String(w.node.key)))})}function Yr({name:e,size:t=14}){return jsx("svg",{width:t,height:t,viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",className:"kanuni-datagrid-icon",children:jsx("path",{d:TOOLBAR_ICON_PATHS[e],fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}async function Mn(e,t){try{let n=t==="csv"?await e.exportToCsv():t==="excel"?await e.exportToExcel():t==="excel-selected"?await e.exportToExcel({selectedOnly:!0}):await e.exportToPdf();return downloadBlob(n.blob,n.fileName),{completed:!0}}catch(n){return n instanceof ExportAbortedError?{completed:false}:{completed:false,error:n instanceof Error?n.message:String(n)}}}function Ut({anchor:e,onClose:t,children:n,dark:a,className:l="",label:r,role:d="dialog"}){let y=Wt({anchor:e,onClose:t});return jsx(it,{dark:a,children:jsx("div",{ref:y.ref,className:`kanuni-datagrid-filter-popup ${l}`.trim(),style:{left:y.position.left,top:y.position.top},role:d,"aria-label":r,children:n})})}function Hu(e){let t=Te();return useMemo(()=>({search:t.toolbarSearch,csv:t.exportCsv,excel:t.exportExcel,excelSelected:t.exportExcelSelected,pdf:t.exportPdf,columns:t.columns,exporting:t.exporting,exportMenu:t.exportMenu,...e}),[t,e])}var Fu=()=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})});function Au({controller:e,search:t=true,exportCsv:n=true,exportExcel:a=false,exportPdf:l=false,columnChooser:r=true,dark:d,onOpenColumnChooser:y,itemsBefore:b,itemsAfter:w,searchDebounce:g=200,labels:E}){let k=Hu(E),[N,H]=useState(e.getSearchText()),[M,G]=useState(null),[m,h]=useState(null),[f,K]=useState(null);useEffect(()=>{let x=setTimeout(()=>e.setSearchText(N),g);return ()=>clearTimeout(x)},[e,N,g]);let[Y,P]=useState(()=>e.getSelectedCount());useEffect(()=>(P(e.getSelectedCount()),e.events.on("selectionChanged",()=>P(e.getSelectedCount()))),[e]);let B=async x=>{G(x),K(null);let v=await Mn(e,x);v.error?K(v.error):h(null),G(null);};return jsxs("div",{className:"kanuni-datagrid-toolbar",children:[b,t&&jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:k.search,value:N,"aria-label":k.search,"data-testid":"dg-toolbar-search",onChange:x=>H(x.target.value)}),jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),r&&jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:x=>{let v=x.currentTarget.getBoundingClientRect();y?.({left:v.left,top:v.bottom+2});},children:[jsx(Yr,{name:"columns"}),jsx("span",{children:k.columns})]}),(n&&e.canExportAll()||a||l)&&jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":k.exportMenu,title:k.exportMenu,disabled:M!==null,"data-testid":"dg-export-menu",onClick:x=>{let v=x.currentTarget.getBoundingClientRect();h(m?null:{left:v.right-190,top:v.bottom+2});},children:M?jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsx(Fu,{})}),m&&jsxs(Ut,{anchor:m,onClose:()=>h(null),dark:d,role:"menu",label:k.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null,"data-testid":"dg-export-csv",onClick:()=>B("csv"),children:M==="csv"?k.exporting:k.csv}),a&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null,"data-testid":"dg-export-excel",onClick:()=>B("excel"),children:M==="excel"?k.exporting:k.excel}),a&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null||Y===0,"data-testid":"dg-export-excel-selected",onClick:()=>B("excel-selected"),children:M==="excel-selected"?k.exporting:k.excelSelected}),l&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null,"data-testid":"dg-export-pdf",onClick:()=>B("pdf"),children:M==="pdf"?k.exporting:k.pdf})]}),w,f&&jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:f})]})}var Xr=memo(Au);var _u=8;function $u(e){let t=Te();return useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function Jr({controller:e,columns:t,anchor:n,onClose:a,dark:l,labels:r}){let d=$u(r),[y,b]=useState(""),w=e.getColumnModel(),g=M=>w.getDef(M.id)?.headerName??M.id,E=t.filter(M=>!isChromeColumn(M.id)),k=E.filter(M=>M.visible).length,N=y.trim().toLocaleLowerCase(),H=N?E.filter(M=>g(M).toLocaleLowerCase().includes(N)):E;return jsxs(Ut,{anchor:n,onClose:a,dark:l,label:d.title,className:"kanuni-datagrid-column-chooser",children:[jsx("div",{className:"kanuni-datagrid-chooser-title",children:d.title}),E.length>_u&&jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:d.search,"aria-label":d.search,value:y,onChange:M=>b(M.target.value)}),jsxs("div",{className:"kanuni-datagrid-filter-list",children:[H.length===0&&jsx("div",{className:"kanuni-datagrid-chooser-empty",children:d.empty}),H.map(M=>{let G=M.visible&&k===1;return jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsx("input",{type:"checkbox",checked:M.visible,disabled:G,"data-column-toggle":M.id,onChange:()=>e.setColumnVisible(M.id,!M.visible)}),jsx("span",{children:g(M)})]},M.id)})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",disabled:k===E.length,onClick:()=>E.forEach(M=>!M.visible&&e.setColumnVisible(M.id,true)),children:d.showAll}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:a,children:d.ok})]})]})}function Yu(e){let t=Te();return useMemo(()=>({first:t.pagerFirst,previous:t.pagerPrevious,next:t.pagerNext,last:t.pagerLast,page:t.pagerPage,of:t.pagerOf,rowsPerPage:t.pagerRowsPerPage,pageButton:t.pagerPageButton,navigation:t.pagerAria,...e}),[t,e])}function qu({page:e,pageCount:t,pageSize:n,pageSizes:a=[25,50,100,250],totalRows:l,onPage:r,onNext:d,onPrevious:y,onPageSize:b,pageButtons:w=false,maxPageButtons:g,labels:E}){let k=Yu(E),N=e<=0,H=e>=t-1,M=l===0?0:e*n+1,G=Math.min(l,(e+1)*n),m=useRef(null),h=useRef(null);return useEffect(()=>{let f=h.current,K=m.current;if(!K||!(f instanceof HTMLButtonElement)||!f.disabled)return;let Y=document.activeElement;if(Y&&Y!==document.body&&Y!==f)return;let P=K.querySelector('[aria-current="page"]')??K.querySelector("button:not(:disabled)");P?.focus(),h.current=P;},[e,t]),jsxs("div",{ref:m,className:"kanuni-datagrid-pager",role:"navigation","aria-label":k.navigation,onFocus:f=>{h.current=f.target;},onBlur:f=>{let K=f.relatedTarget;K&&!m.current?.contains(K)&&(h.current=null);},children:[jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsx("span",{children:k.rowsPerPage}),jsx("select",{value:n,"data-testid":"dg-page-size",onChange:f=>b(Number(f.target.value)),children:a.map(f=>jsx("option",{value:f,children:f},f))})]}),jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[M.toLocaleString(),"\u2013",G.toLocaleString()," ",k.of," ",l.toLocaleString()]}),jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsx("button",{type:"button","aria-label":k.first,disabled:N,onClick:()=>r(0),children:"\xAB"}),jsx("button",{type:"button","aria-label":k.previous,disabled:N,"data-testid":"dg-page-prev",onClick:y,children:"\u2039"}),w?pageButtonItems(e,t,g).map(f=>typeof f=="number"?jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":fillText(k.pageButton,{n:String(f+1)}),"aria-current":f===e?"page":void 0,onClick:()=>r(f),children:f+1},f):jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},f)):jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[k.page," ",e+1," ",k.of," ",t]}),jsx("button",{type:"button","aria-label":k.next,disabled:H,"data-testid":"dg-page-next",onClick:d,children:"\u203A"}),jsx("button",{type:"button","aria-label":k.last,disabled:H,onClick:()=>r(t-1),children:"\xBB"})]})]})}var Zr=memo(qu);function tc(e){let t=Te();return useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function nc({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:a,labels:l}){let r=tc(l),d=Te(),[,y]=useState(0);useEffect(()=>e.events.on("filterChanged",()=>y(E=>E+1)),[e]);let b=e.getEffectiveFilter(),w=e.isFilterEnabled(),g=describeFilter(b,e.getColumnModel(),{...a,labels:{...filterLabels(d),...a?.labels}});return !b&&!n?null:jsxs("div",{className:`kanuni-datagrid-filter-panel${w?"":" kanuni-datagrid-filter-panel--suspended"}`,"data-testid":"dg-filter-panel",role:"group","aria-label":r.toggle,children:[jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-clear",title:r.clear,"aria-label":r.clear,disabled:!b,"data-testid":"dg-filter-panel-clear",onClick:()=>{e.setFilter(null),e.clearColumnFilters(),e.setFilterEnabled(true);},children:"\xD7"}),jsx("input",{type:"checkbox",className:"kanuni-datagrid-filter-panel-toggle",checked:w,disabled:!b,title:r.toggle,"aria-label":r.toggle,"data-testid":"dg-filter-panel-toggle",onChange:E=>e.setFilterEnabled(E.target.checked)}),jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:g??void 0,"data-testid":"dg-filter-panel-text",children:g??r.empty}),t&&jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-builder",title:r.builder,"aria-label":r.builder,"data-testid":"dg-filter-panel-builder",onClick:t,children:"\u25BE"})]})}var Qr=memo(nc);var wo=e=>!e.separator&&!e.disabled;function ho({x:e,y:t,items:n,context:a,onClose:l,dark:r=false,label:d}){let y=Te(),b=useRef(null),[w,g]=useState({left:e,top:t}),[E,k]=useState(()=>n.findIndex(wo)),[N,H]=useState(null),[M,G]=useState(null),m=useRef(null),[h,f]=useState(null);useEffect(()=>G(null),[N]);let K=useCallback((c,T)=>{if(H(c),c===null||!T)return;let A=T.getBoundingClientRect();f({left:A.left,right:A.right,top:A.top});},[]),Y=c=>b.current?.querySelector(`[data-item-index="${c}"]`)??null,P=useCallback(c=>{if(m.current=c,!c||!h)return;let T=8,A=c.getBoundingClientRect(),U=Math.max(T,Math.min(h.top-4,window.innerHeight-A.height-T)),we=h.right+A.width+T<=window.innerWidth?h.right:Math.max(T,h.left-A.width);G({left:we,top:U});},[h]),B=useCallback(c=>{if(b.current=c,!c)return;let T=c.getBoundingClientRect(),A=8;g({left:Math.max(A,Math.min(e,window.innerWidth-T.width-A)),top:Math.max(A,Math.min(t,window.innerHeight-T.height-A))}),c.focus();},[e,t]);useEffect(()=>{let c=A=>{let U=A.target;m.current?.contains(U)||b.current&&!b.current.contains(U)&&l();},T=()=>l();return document.addEventListener("mousedown",c),window.addEventListener("scroll",T,true),()=>{document.removeEventListener("mousedown",c),window.removeEventListener("scroll",T,true);}},[l]);let x=(c,T)=>{let A=n.length;for(let U=1;U<=A;U++){let z=(c+T*U+A*A)%A;if(wo(n[z]))return z}return c},v=c=>{let T=n[c];if(!(!T||!wo(T))){if(T.items?.length){K(c,Y(c));return}T.onSelect?.(a),l();}},F=c=>{switch(c.key){case "ArrowDown":k(T=>x(T,1));break;case "ArrowUp":k(T=>x(T,-1));break;case "Home":k(n.findIndex(wo));break;case "End":k(x(0,-1));break;case "ArrowRight":if(n[E]?.items?.length)K(E,Y(E));else return;break;case "ArrowLeft":if(N!==null)K(null);else return;break;case "Enter":case " ":v(E);break;case "Escape":l();break;case "Tab":l();return;default:return}c.preventDefault(),c.stopPropagation();};return jsxs(it,{dark:r,children:[jsx("div",{ref:B,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":d??y.rowActions,tabIndex:-1,style:{left:w.left,top:w.top},onKeyDown:F,children:n.map((c,T)=>c.separator?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},c.id??`sep-${T}`):jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${T===E?" kanuni-datagrid-menu-item--active":""}`,disabled:c.disabled,"data-item-index":T,"aria-haspopup":c.items?.length?"menu":void 0,"aria-expanded":c.items?.length?N===T:void 0,onMouseEnter:A=>{k(T),K(c.items?.length?T:null,A.currentTarget);},onClick:()=>v(T),children:[c.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:c.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:c.label}),c.shortcut&&jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:c.shortcut}),c.items?.length?jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},c.id??T))}),N!==null&&n[N]?.items?.length?jsx("div",{ref:P,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:M?{left:M.left,top:M.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[N].items.map((c,T)=>c.separator?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},c.id??`sub-sep-${T}`):jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:c.disabled,onClick:()=>{c.onSelect?.(a),l();},children:[c.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:c.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:c.label})]},c.id??T))}):null]})}var rc=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),ta=rc?"\u2318":"Ctrl+",Qi=`${ta}C`,ac=`${ta}X`,ic=`${ta}V`;function cn(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
|
|
3
|
+
`).length:0,()=>e.writeClipboard(n,"copy"));}function lc(e){navigator.clipboard?.writeText(e).catch(()=>{});}function sc(e){let t=e.getColumnModel();return e.getVisualColumnIds().some(n=>{let a=t.getDef(n)?.band;return typeof a=="string"?a!=="":Array.isArray(a)&&a.length>0})}function dc(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var uc={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function na(e,t,n,a,l){if(n===false)return [];let r=n===true||n===void 0?{}:n,d=[];r.copy!==false&&d.push({id:"__dg-copy",label:t.menuCopy,shortcut:Qi,onSelect:()=>cn(e)}),r.copyWithHeaders!==false&&d.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>cn(e,{includeHeaders:true})}),r.copyWithGroupHeaders!==false&&sc(e)&&d.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>cn(e,{includeGroupHeaders:true})});let y=dc(r.export).filter(b=>b!=="csv"||e.canExportAll());if(y.length>0){let b=e.getSelectedCount()===0;d.push({id:"__dg-export",label:t.menuExport,items:y.map(w=>({id:`__dg-export-${w}`,label:t[uc[w]],disabled:w==="excel-selected"&&b,onSelect:()=>{Mn(e,w).then(g=>{g.error&&l?.(g.error);});}}))});}return d.length>0&&a&&d.unshift({id:"__dg-sep-builtin",separator:true}),d}function oa(e,t,n,a){if(!e.isRowPinningEnabled()||!e.canPinRow(n))return [];let l=e.getRowPinSide(n),r=[];return l!=="top"&&r.push({id:"__dg-pin-top",label:t.pinRowTop,onSelect:()=>e.pinRow(n,"top")}),l!=="bottom"&&r.push({id:"__dg-pin-bottom",label:t.pinRowBottom,onSelect:()=>e.pinRow(n,"bottom")}),l&&r.push({id:"__dg-unpin",label:t.unpinRow,onSelect:()=>e.pinRow(n,null)}),a?[{id:"__dg-sep-pin",separator:true},...r]:r}function aa({anchor:e,value:t,dark:n,onCommit:a,onCancel:l}){let r=Te(),[d,y]=useState(t),b=useRef(null);useEffect(()=>{let g=b.current;g&&(g.focus(),g.select());},[]);let w=()=>{let g=d.trim();a(g===""?null:g);};return jsxs(Ut,{anchor:e,onClose:l,dark:n,label:r.noteEditorAria,className:"kanuni-datagrid-note-editor",children:[jsx("textarea",{ref:b,className:"kanuni-datagrid-note-input",value:d,rows:4,"aria-label":r.noteEditorAria,placeholder:r.notePlaceholder,onChange:g=>y(g.target.value),onKeyDown:g=>{g.key==="Enter"&&(g.ctrlKey||g.metaKey)&&(g.preventDefault(),w()),g.key==="Escape"&&(g.preventDefault(),l());}}),jsxs("div",{className:"kanuni-datagrid-note-actions",children:[jsx("button",{type:"button",className:"kanuni-datagrid-note-cancel",onClick:l,children:r.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-note-save",onClick:w,children:r.save})]})]})}function gc(e){let t=Te();return useMemo(()=>({busy:t.busy,loading:t.busyLoading,encoding:t.busyEncoding,filtering:t.busyFiltering,sorting:t.busySorting,computing:t.busyComputing,grouping:t.busyGrouping,aggregating:t.busyAggregating,projecting:t.busyProjecting,exporting:t.busyExporting,cancel:t.cancel,...e}),[t,e])}var wc=new Set(["filtering","sorting","computing","encoding","exporting"]);function la({controller:e,delay:t=300,labels:n,cancellable:a=true,forced:l=false}){let[r,d]=useState(()=>e.getBusy()),[y,b]=useState(false);useEffect(()=>(d(e.getBusy()),e.events.on("busyChanged",H=>d(H))),[e]);let w=r.busy&&r.background!==true;useEffect(()=>{if(!w){b(false);return}let H=setTimeout(()=>b(true),t);return ()=>clearTimeout(H)},[w,t]);let g=gc(n);if(!l&&(!y||!w))return null;let E=r.phase?g[r.phase]:g.busy,k=r.progress===null?null:Math.max(0,Math.min(100,r.progress)),N=a&&r.phase!==null&&wc.has(r.phase)&&r.cancellable!==false;return jsx("div",{className:"kanuni-datagrid-loading-overlay",role:"status","aria-live":"polite","data-testid":"dg-loading-overlay","data-phase":r.phase??"busy","data-blocking":r.phase==="exporting"?"true":void 0,"aria-busy":"true",children:jsxs("div",{className:"kanuni-datagrid-loading-card",children:[jsx("span",{className:"kanuni-datagrid-loading-spinner","aria-hidden":"true"}),jsx("span",{className:"kanuni-datagrid-loading-label",children:E}),k!==null&&jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(k),"aria-valuemin":0,"aria-valuemax":100,children:[jsx("div",{className:"kanuni-datagrid-loading-track",children:jsx("div",{className:"kanuni-datagrid-loading-fill",style:{width:`${k}%`}})}),jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(k),"%"]})]}),N&&jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:g.cancel})]})})}function ol({fields:e}){let[t,...n]=e;return jsxs("div",{role:"gridcell",className:"kanuni-datagrid-card",children:[jsx("div",{className:"kanuni-datagrid-card-title",children:t?.text}),n.length>0&&jsx("dl",{className:"kanuni-datagrid-card-fields",children:n.map(a=>jsxs("div",{className:"kanuni-datagrid-card-field",children:[jsx("dt",{children:a.label}),jsx("dd",{children:a.text})]},a.columnId))})]})}function rl({controller:e,sort:t,columns:n,text:a}){if(n.length===0)return null;let l=t[0],r=l?.direction==="desc";return jsxs("div",{className:"kanuni-datagrid-cardbar",children:[jsxs("label",{className:"kanuni-datagrid-cardbar-label",children:[jsx("span",{children:a.cardSortBy}),jsxs("select",{className:"kanuni-datagrid-cardbar-select",value:l?.columnId??"",onChange:d=>e.setSort(d.target.value?[{columnId:d.target.value,direction:l?.direction??"asc"}]:[]),children:[jsx("option",{value:"",children:a.none}),n.map(d=>jsx("option",{value:d.id,children:d.label},d.id))]})]}),l&&jsx("button",{type:"button",className:"kanuni-datagrid-cardbar-dir","aria-label":r?a.sortAsc:a.sortDesc,title:r?a.sortAsc:a.sortDesc,onClick:()=>e.setSort([{columnId:l.columnId,direction:r?"asc":"desc"}]),children:jsx("span",{"aria-hidden":"true",children:r?"\u2193":"\u2191"})})]})}var al=null;function hc(){return typeof document>"u"?null:(al??=document.createElement("canvas"),al.getContext("2d"))}function il(e){let t=getComputedStyle(e);return `${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function bc(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function yc(e){let t=e.map(a=>[a.style.width,a.style.minWidth,a.style.maxWidth]);for(let a of e)a.style.width="max-content",a.style.minWidth="0",a.style.maxWidth="none";let n=0;for(let a of e){let l=Math.ceil(a.getBoundingClientRect().width);l>n&&(n=l);}return e.forEach((a,l)=>{[a.style.width,a.style.minWidth,a.style.maxWidth]=t[l];}),n}function bo(e,t){let n=hc();if(!n)return null;let a=typeof CSS<"u"&&CSS.escape?CSS.escape(t):t.replace(/"/g,'\\"'),l=e.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${a}"]`),r=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${a}"]`);if(!l&&r.length===0)return null;let d=0;if(l){let y=l.querySelector(".kanuni-datagrid-header-label")??l;n.font=il(y),d=n.measureText(y.textContent??"").width+44;}if(r.length>0){n.font=il(r[0]);let y=[];for(let b=0;b<r.length;b++){if(bc(r[b])){y.push(r[b]);continue}let w=r[b].textContent??"";if(w==="")continue;let g=n.measureText(w).width+20;g>d&&(d=g);}y.length>0&&(d=Math.max(d,yc(y)));}return d===0?null:Math.round(Math.min(640,Math.max(48,d)))}function sa(e,t){let n=useRef(t);n.current=t;let a=!!t?.enabled,l=t?.storageKey,r=t?.type;useEffect(()=>{if(a)return attachStateStoring(e,{...n.current,enabled:true})},[e,a,l,r]);}var yo="application/x-kanuni-row";function ua(e,t){let n=!!t?.enabled,a=t?.group??null,l=t?.allowReordering??true,r=t?.allowDropInsert??a!==null,[d,y]=useState(false),[b,w]=useState(null),g=useRef(null),E=useRef(false),k=useRef(null),N=useRef(null),H=useRef(t);H.current=t;let M=useCallback(c=>e.getRowByKey(c),[e]),G=(c,T)=>{let A=T.getBoundingClientRect();return c.clientY<A.top+A.height/2?"before":"after"},m=useCallback((c,T)=>{if(!isDataRow(c))return;N.current=c.key,k.current=c.key,E.current=false,g.current=null;let A={gridId:e.gridId,group:a,rowKey:c.key,row:c.data};T.dataTransfer.setData(yo,JSON.stringify(A)),T.dataTransfer.setData("text/plain",String(c.key)),T.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:c.key}),T.stopPropagation();},[e,a]),h=useCallback(()=>{let c=k.current;c!==null&&e.notifyRowDragEnd({rowKey:c,dropped:E.current,overKey:g.current?.key??null,position:g.current?.side??null}),E.current=false,g.current=null,k.current=null,N.current=null,w(null),y(false);},[e]),f=useCallback(c=>c.dataTransfer.types.includes(yo)?N.current!==null?l:r&&a!==null:false,[l,r,a]),K=useCallback((c,T)=>{if(!isDataRow(c)||!f(T))return;if(T.preventDefault(),T.dataTransfer.dropEffect="move",N.current===c.key){g.current=null,w(null);return}let A=G(T,T.currentTarget),U=g.current?.key!==c.key||g.current.side!==A;g.current={key:c.key,side:A},w(z=>z?.key===c.key&&z.side===A?z:{key:c.key,side:A}),U&&N.current!==null&&e.notifyRowDrag("move",{rowKey:N.current,overKey:c.key,position:A});},[f,e]),Y=useCallback((c,T,A)=>{let U=null;try{let we=c.dataTransfer.getData(yo);U=we?JSON.parse(we):null;}catch{U=null;}if(!U)return;if(U.gridId===e.gridId){if(!l)return;let we=H.current?.onReorder;if(we){we({dragKey:U.rowKey,targetKey:T,position:A,row:M(U.rowKey)});return}e.moveRow(U.rowKey,T,A);return}!r||a===null||U.group!==a||H.current?.onAdd?.({row:U.row,rowKey:U.rowKey,otherGridId:U.gridId,targetKey:T,position:A});},[e,l,r,a,M]),P=useCallback((c,T)=>{if(w(null),!isDataRow(c)||!f(T))return;T.preventDefault(),T.stopPropagation();let A=G(T,T.currentTarget);E.current=true,g.current={key:c.key,side:A},Y(T,c.key,A),N.current=null;},[f,Y]),B=useCallback(c=>{f(c)&&(c.preventDefault(),c.dataTransfer.dropEffect="move");},[f]),x=useCallback(c=>{w(null),f(c)&&(c.preventDefault(),E.current=true,g.current=null,Y(c,null,"after"),N.current=null);},[f,Y]),v=useCallback(c=>{let T=c.relatedTarget;T&&c.currentTarget.contains(T)||N.current!==null&&(g.current=null,w(null),e.notifyRowDrag("leave",{rowKey:N.current}));},[e]);return {handlers:n?{draggable:d,setDraggable:y,onDragStart:m,onDragEnd:h,onDragOver:K,onDrop:P}:void 0,dropAt:n?b:null,bodyHandlers:n?{onDragOver:B,onDrop:x,onDragLeave:v}:void 0}}var Dc=400;function sl(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function dl(e){return (e.textContent??"").trim()}function Sc(e){let{def:t,node:n,value:a,clipped:l,note:r}=e;if(r)return r;if(t&&n){if(typeof t.tooltip=="function"){let d=t.tooltip({value:a,row:n.data,node:n,column:t});return d||null}if(typeof t.tooltip=="string")return t.tooltip||null;if(t.tooltipField){let d=n.data[t.tooltipField];return d==null||d===""?null:String(d)}}return l&&l.length>0?l:null}function ca({rootRef:e,columnModel:t,getRowNode:n,getNote:a,config:l,controller:r,gridId:d}){let y=l?.enabled!==false,b=l?.delay??Dc,w=l?.showOnTruncation!==false,g=l?.trigger??"hover",E=g!=="focus",k=g!=="hover"&&!!r&&!!d,N=l?.interactive===true,[H,M]=useState(null),G=useRef({columnModel:t,getRowNode:n,getNote:a,showOnTruncation:w,delay:b});return G.current={columnModel:t,getRowNode:n,getNote:a,showOnTruncation:w,delay:b},useEffect(()=>{if(!y){M(null);return}let m=e.current;if(!m)return;let h=null,f=null,K=null,Y=null,P=d?`${d}-tooltip`:void 0,B=()=>{Y?.removeAttribute("aria-describedby"),Y=null;},x=()=>{h!==null&&(clearTimeout(h),h=null),f!==null&&(clearTimeout(f),f=null),K=null,B(),M(null);},v=()=>{f!==null&&(clearTimeout(f),f=null);},F=()=>{f=null,B(),M(null);},c=()=>{v(),h!==null&&(clearTimeout(h),h=null);},T=()=>{if(!N){x();return}f!==null&&clearTimeout(f),f=setTimeout(F,150);},A=(ee,ye)=>{let{columnModel:ue,getRowNode:Se,getNote:D}=G.current,re=ue.getDef(ye);if(!re?.renderTooltip)return;let ve=ee.closest("[data-row-key]")?.dataset.rowKey,Ne=ve===void 0?void 0:Se(ve);if(!Ne||D&&D(Ne.key,ye,Ne.data))return;let le=re.renderTooltip({value:ue.getCellValue(Ne.data,ye),row:Ne.data,node:Ne,column:re});return le==null||le===false?null:{content:le}},U=(ee,ye,ue,Se)=>{let D=ue?void 0:A(ee,ye);if(D===null)return;let re=D?"":ue?we(ye,ee):z(ee,ye);if(!D&&!re)return;let ve=ee.getBoundingClientRect();v(),B(),Se&&P&&(ee.setAttribute("aria-describedby",P),Y=ee),M({text:re??"",...D?{content:D.content}:{},anchor:{top:ve.top,left:ve.left,width:ve.width,height:ve.height},...N?{interactive:true,hold:c,release:x}:{},...P?{id:P}:{}});},z=(ee,ye)=>{let{columnModel:ue,getRowNode:Se,getNote:D,showOnTruncation:re}=G.current,ve=ue.getDef(ye),Ne=ee.closest("[data-row-key]")?.dataset.rowKey,le=Ne===void 0?void 0:Se(Ne);return Sc({def:ve,node:le,value:le?ue.getCellValue(le.data,ye):void 0,clipped:re&&sl(ee)?dl(ee):null,note:le&&D?D(le.key,ye,le.data):null})},we=(ee,ye)=>{let ue=G.current.columnModel.getDef(ee);if(ue?.headerTooltip)return ue.headerTooltip;if(!G.current.showOnTruncation)return null;let Se=ye.querySelector(".kanuni-datagrid-header-label")??ye;if(!sl(Se))return null;let D=dl(Se);return D.length>0?D:null},Oe=ee=>{if(!E)return;let ue=ee.target?.closest("[data-column-id]")??null;if(ue===K){v();return}if(N&&f!==null?(h!==null&&(clearTimeout(h),h=null),K=null):x(),!ue||!m.contains(ue))return;let Se=ue.dataset.columnId;if(!Se)return;let D=ue.classList.contains("kanuni-datagrid-header-cell");!D&&!ue.closest("[data-row-key]")||(K=ue,h=setTimeout(()=>{h=null,!(K!==ue||!ue.isConnected)&&U(ue,Se,D,false);},G.current.delay));},pe=ee=>{if(!E)return;let ye=ee.relatedTarget;K&&ye&&K.contains(ye)||T();},ke=-1/0,C=()=>{ke=Date.now();},W=()=>{x();let ee=r?.getFocus();!ee||!d||(h=setTimeout(()=>{if(h=null,!m.contains(document.activeElement)&&Date.now()-ke>1500)return;let ye=document.getElementById(`${d}-cell-${String(ee.rowKey)}-${ee.columnId}`);!ye||!m.contains(ye)||(K=ye,U(ye,ee.columnId,false,true));},G.current.delay));},Ge=k?r.events.on("focusChanged",W):null,Me=ee=>{(!k||ee.key==="Escape")&&x();};return m.addEventListener("mouseover",Oe),m.addEventListener("mouseout",pe),m.addEventListener("mousedown",x),m.addEventListener("pointerdown",C),m.addEventListener("keydown",Me),m.addEventListener("scroll",x,true),window.addEventListener("blur",x),()=>{x(),Ge?.(),m.removeEventListener("mouseover",Oe),m.removeEventListener("mouseout",pe),m.removeEventListener("mousedown",x),m.removeEventListener("pointerdown",C),m.removeEventListener("keydown",Me),m.removeEventListener("scroll",x,true),window.removeEventListener("blur",x);}},[y,e,E,k,N,r,d]),y?H:null}var cl=6,mn=8;function pa({state:e,dark:t}){let[n,a]=useState(null),[l,r]=useState(null),{text:d,anchor:y,content:b,interactive:w,hold:g,release:E,id:k}=e;return useLayoutEffect(()=>{if(!n)return;let{width:N,height:H}=n.getBoundingClientRect(),M=document.documentElement.clientWidth,G=document.documentElement.clientHeight,m=y.top+y.height+cl,h=y.top-H-cl,K=m+H+mn<=G||h<mn?m:h,Y=Math.min(Math.max(mn,y.left),Math.max(mn,M-N-mn));r({top:Math.min(K,G-H-mn),left:Y});},[n,d,b,y]),jsx(it,{dark:t,children:jsx("div",{ref:a,id:k,className:w?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:w?g:void 0,onMouseLeave:w?E:void 0,style:l?{top:l.top,left:l.left}:{top:0,left:0,visibility:"hidden"},children:b??d})})}function Ro(e){return {sortAsc:e.sortAsc,sortDesc:e.sortDesc,clearSort:e.clearSort,groupBy:e.groupByColumn,ungroup:e.ungroupColumn,showGroupPanel:e.showGroupPanel,hideGroupPanel:e.hideGroupPanel,showFooter:e.showFooter,hideFooter:e.hideFooter,showGroupFooters:e.showGroupFooters,hideGroupFooters:e.hideGroupFooters,hideColumn:e.hideColumn,fieldChooser:e.fieldChooser,bestFit:e.bestFit,bestFitAll:e.bestFitAll,fixedPosition:e.fixedPosition,pinLeft:e.pinLeft,pinRight:e.pinRight,pinSticky:e.pinSticky,unpin:e.unpin,moveLeft:e.moveLeft,moveRight:e.moveRight}}var ml=Ro(getGridDictionary("en"));function ma(e,t){let n={...ml,...t.labels},{controller:a,maxGroupLevels:l}=t,r=e.columnId,d=a.getColumnModel().getDef(r),y=a.getSort(),b=y.find(f=>f.columnId===r),w=a.getGroupLevels(),g=w.includes(r),E=d?.sortable!==false,k=a.getColumnStates().find(f=>f.id===r)?.pinned??null,N=d?.groupable!==false,H=a.canGroup(),M=[{id:"sort-asc",label:n.sortAsc,disabled:!E||b?.direction==="asc",onSelect:()=>a.setSort([{columnId:r,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!E||b?.direction==="desc",onSelect:()=>a.setSort([{columnId:r,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!b,onSelect:()=>a.setSort(y.filter(f=>f.columnId!==r))},{id:"sep-1",separator:true}];H&&M.push({id:"group",label:g?n.ungroup:n.groupBy,disabled:!N,onSelect:()=>{g?a.groupBy(w.filter(f=>f!==r)):a.groupBy([...w,r].slice(-l));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&M.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),M.push({id:"footer",label:t.footerVisible?n.hideFooter:n.showFooter,onSelect:t.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:n.hideColumn,disabled:a.getColumnStates().filter(f=>f.visible).length<=1,onSelect:()=>a.setColumnVisible(r,false)},{id:"field-chooser",label:n.fieldChooser,onSelect:t.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:n.bestFit,disabled:d?.resizable===false,onSelect:()=>t.onBestFit(r)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll});let G=a.getColumnStates().filter(f=>f.visible&&f.pinned===k).map(f=>f.id),m=G.indexOf(r),h=d?.reorderable!==false&&m>=0;return M.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!h||m<=0,onSelect:()=>a.moveColumn(r,G[m-1])},{id:"move-right",label:n.moveRight,disabled:!h||m<0||m>=G.length-1,onSelect:()=>a.moveColumn(r,G[m+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:k==="left",onSelect:()=>a.setColumnPinned(r,"left")},{id:"pin-right",label:n.pinRight,disabled:k==="right",onSelect:()=>a.setColumnPinned(r,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:k==="sticky",onSelect:()=>a.setColumnPinned(r,"sticky")}]},{id:"unpin",label:n.unpin,disabled:k===null,onSelect:()=>a.setColumnPinned(r,null)}),M}var At=typeof window<"u"?useLayoutEffect:useEffect,yl=1e8,Co=null;function Cl(){if(Co!==null)return Co;if(typeof document>"u"||!document.body)return null;let e=document.createElement("div");e.setAttribute("aria-hidden","true"),e.style.cssText="position:fixed;top:0;left:-9999px;width:80px;height:80px;overflow:auto;visibility:hidden;pointer-events:none;";let t=document.createElement("div");t.style.cssText="width:1px;",t.style.height=`${yl}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=yl;let n=e.scrollTop;return ba=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(Co=n),Co}var ba=null;function jc(){return ba===null&&Cl(),ba}function wa(e){return Math.abs(e)}function Rl(e,t){return getComputedStyle(t).direction==="rtl"?-e:e}function vo(e,t){if(t)return e;if(e.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");if(e.dataSource!=null&&!Array.isArray(e.dataSource)&&e.grouping){e.debugMode&&console.warn("[datagrid] grouping a server-side DataSource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let d={...e};return delete d.grouping,vo(d,t)}if(e.columns?.some(d=>d.spanRows)){e.debugMode&&console.warn("[datagrid] cell span/merge (spanRows) is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let d={...e,columns:e.columns.map(y=>y.spanRows?{...y,spanRows:void 0}:y)};return vo(d,t)}if(e.tree){e.debugMode&&console.warn("[datagrid] tree data is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let d={...e};return delete d.tree,vo(d,t)}if(!e.grouping)return e.masterDetail?ha(e):e;let{groupBy:n,groupSummaries:a}=e.grouping,l=n==null?[]:typeof n=="string"?[n]:n;if(l.length<=1&&!a)return e.masterDetail?ha(e):e;e.debugMode&&console.warn("[datagrid] multi-level grouping and group summaries are Enterprise features \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use them.");let r={...e,grouping:{...e.grouping,groupBy:l.slice(0,1),groupSummaries:false}};return e.masterDetail?ha(r):r}function ha(e){e.debugMode&&console.warn("[datagrid] master-detail is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let t={...e};return delete t.masterDetail,t}function ep(e){return jsx(Qo,{locale:e.locale,messages:e.messages,children:jsx(rr,{theme:e.theme,density:e.density,palette:e.palette,children:jsx(tp,{...e})})})}function tp(e){let t=Te(),{className:n,style:a,dark:l=false,theme:r,palette:d,striped:y=true,emptyText:b,sortable:w=true,autoHeaderHeight:g=false,filterRow:E=false,headerFilter:k=false,filterIconMode:N="hover",columnReorder:H=true,columnResize:M=true,loadingOverlay:G=true,announcements:m=true,groupPanel:h=false,showRowCount:f=false,toolbar:K=false,toolbarExcel:Y=false,toolbarPdf:P=false,filterPanel:B=false,filterPanelLabels:x,onOpenFilterBuilder:v,toolbarItemsBefore:F,toolbarItemsAfter:c,renderRow:T,stateStoring:A,headerMenu:U=true,focusedRow:z=false,focusedRowKey:we,onFocusedRowChanged:Oe,footer:pe,footerMenu:ke=true,onRowClick:C,onRowActivate:W,onReady:Ge,renderCellContent:Me,getCellClassName:ee,renderOverlay:ye,onCellPointerDown:ue,onCellPointerEnter:Se,onCellDoubleClick:D,onHeaderClick:re,getHeaderClassName:ve,renderHeaderLabel:Ne,enterpriseEdition:le=false,renderDetail:O,renderEditForm:ge,density:Z,rowMenu:he,cellMenu:me,autoColumns:Ke,rowDrag:X,tooltip:ae,pinnedTopRows:se,pinnedBottomRows:Ie,footerPosition:$="bottom",autoSizeStrategy:Be="none",highlightSearch:je=true,...Ee}=e,Ae=useMemo(()=>{let o=Ee.columns;if(o&&o.length>0)return o;let p=Ee.dataSource;if(!Array.isArray(p)||p.length===0)return o??[];let S=typeof Ke=="object"?Ke:void 0;return Ke===false?o??[]:inferColumns(p,S)},[Ee.columns,Ee.dataSource,Ke]),_e={...Ee,columns:Ae},We=isPackagedTheme(r)?THEME_ROW_HEIGHT[r][Z??"normal"]:Z?DENSITY_ROW_HEIGHT[Z]:DEFAULT_ROW_HEIGHT,lt=_e.rowHeight===void 0?{..._e,rowHeight:We}:_e,J=le?Number.POSITIVE_INFINITY:1,ut=vo(lt,le),{controller:i,rows:qe,window:Et,layout:s,sort:u,rowHeight:R,visibleCount:L}=Zo(ut),q=e.cardView,te=q?q===true?"on":`${q.breakpoint??""}|${(q.columns??[]).join("|")}`:"",Q=useMemo(()=>resolveCardView(q),[te]),[ne,be]=useState(false),Re=useRef(Q);At(()=>{Re.current=Q;let o=pt.current;be(o?showsCards(o.clientWidth,Q):false);},[Q]);let Fe=ne?cardColumnIds(i.getColumnModel(),Q):null,ct=Fe?JSON.stringify(Fe):"",I=useMemo(()=>Fe,[ct]);useEffect(()=>{i.setDataRowHeight(I?cardHeight(I.length):null);},[i,I]);let ie=e.onCardViewChange,de=useRef(false);useEffect(()=>{ne!==de.current&&(de.current=ne,ie?.(ne));},[ne,ie]);let xe=useCallback(o=>jsx(ol,{fields:cardFields(i.getColumnModel(),I??[],o.row)}),[i,I]),V=ki(i,e.editing,le,{renderCellContent:Me,getCellClassName:ee,onCellDoubleClick:D},ne),et=V.renderCellContent,Fn=V.getCellClassName,An=V.onCellDoubleClick,Ra=wr(i,e.printLayout),fn=Ra.active?{...Et,rows:{...Et.rows,start:0,end:qe.length,offsetY:0,totalHeight:0}}:Et,gn=useMemo(()=>Ae.some(o=>o.autoHeight===true),[Ae]),Ca=k&&i.canListDistinctValues();k&&!Ca&&Ee.debugMode&&console.warn("[datagrid] headerFilter needs a column's distinct values. This grid is remote and its DataSource does not implement `loadDistinctValues` \u2014 implement it, or use `filterRow`.");let pt=useRef(null);At(()=>{i.setEnterpriseEdition(le);},[i,le]),useEffect(()=>{Ge?.(i);},[i,Ge]),At(()=>{let o=Cl();o!==null&&o<DEFAULT_MAX_SCROLL_OFFSET&&i.setMaxScrollOffset(o);let p=jc();p!==null&&i.setMaxCanvasHeight(p);},[i]),At(()=>{let o=pt.current;if(!o)return;let p=()=>{i.setViewportSize(o.clientWidth,o.clientHeight),Re.current&&be(showsCards(o.clientWidth,Re.current)),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let ce=o.querySelector(".kanuni-datagrid-rows"),oe=o.querySelector(".kanuni-datagrid-canvas");if(ce&&oe){let j=ce.getBoundingClientRect(),Pe=oe.getBoundingClientRect();i.setChromeOffsets(j.top-Pe.top,Pe.bottom-j.bottom);}calibrateMaxScrollOffset(o,i);};if(p(),typeof ResizeObserver>"u")return;let S=new ResizeObserver(p);S.observe(o);let _=o.querySelector(".kanuni-datagrid-canvas");return _&&S.observe(_),()=>S.disconnect()},[i]),At(()=>{if(!g)return;let o=pt.current?.querySelector(".kanuni-datagrid-canvas"),p=o?.querySelector(".kanuni-datagrid-header");if(!o||!p)return;let S=null,_=()=>{let oe=p.offsetHeight,j=oe>0?`${oe}px`:null;j!==S&&(S=j,j?o.style.setProperty("--dg-header-actual",j):o.style.removeProperty("--dg-header-actual"));};_();let ce=typeof ResizeObserver>"u"?null:new ResizeObserver(_);return ce?.observe(p),()=>{ce?.disconnect(),o.style.removeProperty("--dg-header-actual");}},[i,g]),At(()=>{if(!gn)return;let o=pt.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let p=i.getVirtualWindow(),S=i.getRows(),_=new Map(i.getMeasuredRowHeights()),ce=false;for(let oe=p.rows.start;oe<p.rows.end;oe++){let j=S[oe];if(!j||j.kind!=="data")continue;let Pe=o.querySelector(`[data-row-key="${CSS.escape(String(j.key))}"]`);if(!Pe)continue;let Le=Pe.getBoundingClientRect().height;Le>0&&_.get(j.key)!==Le&&(_.set(j.key,Le),ce=true);}ce&&i.setMeasuredRowHeights(_);}),useEffect(()=>{if(gn)return i.events.on("columnStateChanged",()=>{i.clearMeasuredRowHeights();})},[i,gn]),useEffect(()=>i.events.on("scrollRequested",o=>{let p=pt.current;if(!p)return;o.scrollTop!==void 0&&(p.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(p.scrollLeft=Rl(o.scrollLeft,p)),i.setScroll(p.scrollTop,wa(p.scrollLeft));let S=o.scrollTop;S===void 0||Math.abs(p.scrollTop-S)<=1||setTimeout(()=>{let _=pt.current;!_||Math.abs(_.scrollTop-S)<=1||(_.scrollTop=S,i.setScroll(_.scrollTop,wa(_.scrollLeft)));},0);}),[i]);let ka=br(i,e.alignedGrids,pt),Tl=useCallback(o=>{let p=o.currentTarget;i.setScroll(p.scrollTop,wa(p.scrollLeft)),ka.syncScroll(p.scrollLeft);},[i,ka]),xl=useCallback((o,p)=>i.toggleSort(o,p),[i]);sa(i,A);let Yt=ua(i,X);useEffect(()=>{we!=null&&i.getFocusedRowKey()!==we&&i.focusRow(we);},[i,we]),useEffect(()=>{if(Oe)return i.events.on("focusedRowChanged",o=>Oe({rowKey:o.rowKey,row:o.row}))},[i,Oe]);let bt=useRef(null),[xo,Dl]=useState(null);useEffect(()=>i.events.on("overlayChanged",o=>{Dl(o.manual?o.overlay:null);}),[i]);let Sl=useCallback(o=>{let p=i.getDataRowNode(o);if(p)return p;if(o==="")return;let S=Number(o);return Number.isNaN(S)?void 0:i.getDataRowNode(S)},[i]),tt=le?e.notes:void 0;!le&&e.notes&&e.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use them.");let On=!!tt?.onChange&&tt.menu!==false,Kn=useCallback((o,p,S)=>tt?tt.get({rowKey:o,columnId:p,row:S})??null:null,[tt]),va=ca({rootRef:bt,columnModel:i.getColumnModel(),getRowNode:Sl,getNote:tt?Kn:void 0,config:ae,controller:i,gridId:Ee.gridId}),[Ta,El]=useState(0);useEffect(()=>{let o=new Set,p=[i.events.on("cellsFlashed",({rowKeys:S,columnIds:_,duration:ce})=>{let oe=bt.current;if(!oe)return;let j=S.length?S.map(nt=>`[data-row-key="${CSS.escape(String(nt))}"]`).join(","):".kanuni-datagrid-row",Pe=_.length?_.map(nt=>`[data-column-id="${CSS.escape(nt)}"]`).join(","):"[data-column-id]",Le=[];oe.querySelectorAll(j).forEach(nt=>{nt.querySelectorAll(Pe).forEach(an=>Le.push(an));});for(let nt of Le)nt.classList.remove("kanuni-datagrid-cell--flash");oe.offsetWidth;for(let nt of Le)nt.classList.add("kanuni-datagrid-cell--flash");let $e=setTimeout(()=>{for(let nt of Le)nt.classList.remove("kanuni-datagrid-cell--flash");o.delete($e);},ce);o.add($e);}),i.events.on("cellsRefreshed",({revision:S})=>El(S))];return ()=>{p.forEach(S=>S()),o.forEach(clearTimeout);}},[i]);let Gl=useCallback((o,p)=>i.moveColumn(o,p),[i]),Ml=useCallback((o,p,S)=>i.setColumnWidth(o,p,S??true),[i]),Do=useCallback(o=>{if(!bt.current)return;let p=bo(bt.current,o);p!==null&&i.setColumnWidth(o,p);},[i]),So=useCallback(()=>{let o=bt.current;if(o)for(let p of i.getColumnStates()){if(!p.visible||p.flex)continue;let S=bo(o,p.id);S!==null&&i.setColumnWidth(p.id,S);}},[i]),Eo=useRef(null),[Bn]=useState(()=>new RowMotion),xa=e.animateRows===true;useEffect(()=>{i.setAnimateRows(xa);},[i,xa]),useEffect(()=>{let o=()=>{i.getAnimateRows()&&Bn.capture(Eo.current);},p=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(S=>i.events.on(S,o));return ()=>{p.forEach(S=>S()),Bn.dispose();}},[i,Bn]),At(()=>{i.getAnimateRows()&&Bn.play(Eo.current);}),useEffect(()=>{if(Be!=="fitGrid")return;let o=()=>i.sizeColumnsToFit();return o(),i.events.on("gridSizeChanged",o)},[i,Be]);let Go=useRef(null);At(()=>{if(Be!=="fitCells"){Go.current=null;return}Go.current!==i&&bt.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(Go.current=i,So());});let[Mo,Da]=useState({}),[No,Sa]=useState({}),qt=useRef(No);qt.current=No;let Ea=useRef(Mo);Ea.current=Mo;let Ga=e.filterDebounce??(i.isRemote()?200:0),Po=useRef(false),_n=useMemo(()=>datePeriodLabels(t),[t]),Io=useRef(_n);Io.current=_n;let Nl=useMemo(()=>periodSuggestionList(_n),[_n]),Xt=useCallback((o,p)=>{let S=i.getColumnModel(),_=S.getDataType(o),ce=findCustomFilterOperator(S.getDef(o),qt.current[o]??"");Po.current=true;try{i.setColumnFilter(o,ce?parseCustomFilterInput(o,p,ce):parseFilterInput(o,p,_,Io.current),FILTER_PART_ROW);}finally{Po.current=false;}},[i]),mt=useMemo(()=>createDebouncedCommit(Ga),[Ga]);useEffect(()=>()=>mt.cancelAll(),[mt]);let Pl=useCallback((o,p)=>{Da(S=>({...S,[o]:p})),mt.schedule(o,()=>Xt(o,p));},[Xt,mt]),Il=useCallback((o,p)=>{qt.current={...qt.current,[o]:p},Sa(qt.current),mt.cancel(o),Xt(o,Ea.current[o]??"");},[Xt,mt]),Ll=useCallback(o=>{if(i.getColumnModel().getDef(o)?.renderFilter)return jsx(Vr,{controller:i,columnId:o,surface:"row"})},[i]),Hl=useCallback((o,p)=>{mt.cancel(o),Xt(o,p);},[Xt,mt]);useEffect(()=>i.events.on("filterChanged",()=>{if(Po.current)return;let o=i.getColumnModel();Sa(p=>{let S=null;for(let _ of o.getOrder()){let ce=o.getDef(_);if(!ce?.filterOperators?.length||mt.isPending(_))continue;let oe=i.getColumnFilter(_,FILTER_PART_ROW),j=p[_]??"",Pe=j;oe?Pe=customFilterInputFromNode(oe,ce)?.operatorId??"":findCustomFilterOperator(ce,j)?.operandType==="none"&&(Pe=""),Pe!==j&&(S??={...p},S[_]=Pe);}return S&&(qt.current=S),S??p}),Da(p=>Lr(p,{isPending:S=>mt.isPending(S),textFor:S=>{let _=i.getColumnFilter(S,FILTER_PART_ROW);if(!_)return "";let ce=customFilterInputFromNode(_,o.getDef(S));return ce?ce.text:!isFilterGroup(_)&&!isBuiltInFilterOperator(_.operator)?null:filterInputFromNode(S,_,o.getDataType(S),Io.current)}},o.getOrder()));}),[i,mt]);let[Ve,Gt]=useState(null),wn=useRef(0),[Jt,Lo]=useState(null),Ho=useRef(null),yt=useCallback(()=>{let o=document.activeElement instanceof HTMLElement?document.activeElement:null;o?.closest(".kanuni-datagrid-portal")||(Ho.current={el:o,columnId:o?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??null});},[]),Fl=useCallback((o,p)=>{yt();let S=p.getBoundingClientRect(),_=i.getColumnModel().getDef(o),ce={left:S.left,top:S.bottom+2},oe=_?.headerName??o;if(_?.renderFilter){++wn.current,Gt(null),Lo({columnId:o,label:oe,anchor:ce});return}Lo(null);let j=i.getColumnFilter(o,FILTER_PART_SET)??i.getColumnFilter(o,FILTER_PART_DEFAULT);if(!i.isRemote()){let Le=++wn.current;Gt({columnId:o,label:oe,entries:[],selected:null,anchor:ce,loading:true}),i.getDistinctValueSetAsync(o).then(({entries:$e,truncated:nt})=>{wn.current===Le&&Gt(an=>an&&an.columnId===o?{...an,entries:$e,truncated:nt,capped:nt,selected:selectedLabelsFromFilter(j,$e),loading:false}:an);});return}let Pe=++wn.current;Gt({columnId:o,label:oe,entries:[],selected:null,anchor:ce,loading:true}),i.getDistinctValuesAsync(o).then(Le=>{wn.current===Pe&&Gt($e=>$e&&$e.columnId===o?{...$e,entries:Le,selected:selectedLabelsFromFilter(j,Le),loading:false}:$e);});},[i,yt]),Al=useCallback(o=>{Ve&&(i.setColumnFilter(Ve.columnId,o,FILTER_PART_SET),Gt(null));},[i,Ve]),Ol=Object.keys(i.getColumnStates().reduce((o,p)=>(i.getColumnFilter(p.id)&&(o[p.id]=true),o),{})),Zt=i.getSelectionMode(),Ue=Zt!=="none"&&(Ee.selection?.checkboxColumn??false),Ma=(Ee.selection?.rowClick??(Ue?"toggle":"replace"))==="toggle",Kl=useCallback((o,p)=>{i.handleRowClick(o.key,{ctrlKey:p.ctrlKey||Ma&&!p.shiftKey,metaKey:p.metaKey,shiftKey:p.shiftKey});},[i,Ma]),Bl=useCallback((o,p)=>i.focusCell(o.key,p),[i]),_l=useCallback(o=>i.toggleRow(o.key),[i]),[Qt,Fo]=useState(null),$l=useCallback(()=>Fo(null),[]),[hn,Ao]=useState(null),Na=useCallback((o,p)=>{let _=(bt.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(p)}"]`)??bt.current)?.getBoundingClientRect();return {left:_?.left??0,top:(_?.bottom??0)+2}},[]),Wl=useCallback(o=>{let p=hn;Ao(null),!(!p||!tt?.onChange)&&tt.onChange({rowKey:p.rowKey,columnId:p.columnId,row:p.row,text:o});},[hn,tt]),Pa=useCallback((o,p)=>{if(!tt?.onChange||tt.menu===false)return [];let S=o.columnId;if(!S)return [];let _=i.getRowKey(o.row),ce=Kn(_,S,o.row),oe=()=>Ao({rowKey:_,columnId:S,row:o.row,text:ce??"",anchor:Na(_,S)}),j=[];return p&&j.push({separator:true,id:"__note-sep"}),j.push({id:"__note-edit",label:ce?t.editNote:t.addNote,onSelect:oe}),ce&&j.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>tt.onChange?.({rowKey:_,columnId:S,row:o.row,text:null})}),j},[tt,i,Kn,Na,t]),[$n,Wn]=useState(null),Oo=useRef({x:0,y:0}),Ia=useCallback(o=>na(i,t,me,o,p=>{Wn({message:p,...Oo.current}),console.error("[datagrid] export failed:",p);}),[i,t,me]),Vn=useCallback((o,p,S,_,ce)=>{if(S.kind!=="data")return;yt();let oe={row:S.data,node:S,rowIndex:_,columnId:ce,selectedKeys:i.getSelectedKeys()},j=(typeof he=="function"?he(oe):he)??[],Pe=Pa(oe,j.length>0),Le=oa(i,t,S.key,j.length+Pe.length>0),$e=[...j,...Pe,...Le,...Ia(j.length+Pe.length+Le.length>0)];$e.length!==0&&(Oo.current={x:o,y:p},Wn(null),Fo({x:o,y:p,items:$e,context:oe}));},[he,i,t,Pa,Ia,yt]),La=useCallback((o,p,S)=>{let _=oa(i,t,o,false);if(_.length===0)return;S.preventDefault(),yt();let ce={row:p,node:{kind:"data",key:o,sourceIndex:-1,data:p},rowIndex:-1,columnId:S.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:i.getSelectedKeys()};Oo.current={x:S.clientX,y:S.clientY},Wn(null),Fo({x:S.clientX,y:S.clientY,items:_,context:ce});},[i,t,yt]),Ha=useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),jt=useCallback((o,p,S,_,ce)=>{let oe=_??-1;o&&i.notifyRow(o,S,oe);let j=Ha(ce);j!==null&&i.notifyCell(p,S,oe,j);},[i,Ha]),Vl=useCallback((o,p,S)=>{C?.(o),jt("rowClicked","cellClicked",o,p,S);},[C,jt]),Ul=useCallback((o,p,S)=>{W?.(o),jt("rowDoubleClicked","cellDoubleClicked",o,p,S);},[W,jt]),zl=useCallback((o,p,S)=>{if(jt(null,"cellContextMenu",o,p,S),!he&&!On&&me===false&&!i.isRowPinningEnabled()||o.kind!=="data")return;S.preventDefault(),i.isRowSelected(o.key)||i.handleRowClick(o.key,{});let _=S.target.closest("[data-column-id]")?.dataset.columnId??null;Vn(S.clientX,S.clientY,o,p,_);},[he,On,me,i,Vn,jt]),[Yl,ql]=useState(null),[Xl,Jl]=useState(null),[Ko,Zl]=useState(()=>Ee.grouping?.groupSummaries??false),[Ot,Bo]=useState(null),[Fa,_o]=useState(null),$o=Qt!==null||Ot!==null||Ve!==null||Jt!==null,Aa=useRef(false);useEffect(()=>{if(Aa.current&&!$o){let o=Ho.current;Ho.current=null;let p=o?.el?.isConnected?o.el:o?.columnId?bt.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,S=!document.activeElement||document.activeElement===document.body;p&&S&&p.focus({preventScroll:true});}Aa.current=$o;},[$o]);let Ql=useCallback(()=>{i.getSelectedCount()>0?i.clearSelection():i.selectAll();},[i]),Wo=Ue?i.getSelectableCount():L,Vo=i.getSelectedCount(),jl=Wo>0&&Vo>=Wo?"all":Vo>0?"some":"none",es=useCallback(o=>{let p=o.target,S=p.tagName;if(S==="INPUT"||S==="TEXTAREA"||S==="SELECT"||p.isContentEditable||V.handleKeyDown(o))return;if((he||On||me!==false||i.isRowPinningEnabled())&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let oe=i.getFocus(),j=oe?qe.findIndex(Le=>Le.key===oe.rowKey):-1,Pe=j>=0?qe[j]:void 0;if(Pe){let $e=pt.current?.querySelector(`[data-row-key="${CSS.escape(String(Pe.key))}"]`)?.getBoundingClientRect();Vn($e?$e.left+16:0,$e?$e.bottom:0,Pe,j,oe?.columnId??null),o.preventDefault();}return}let _=resolveGridCommand({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!_)return;if(_.type==="copy"){cn(i);return}if(_.type==="activate"){let oe=i.getFocus(),j=oe?qe.find(Pe=>Pe.key===oe.rowKey):void 0;j&&W?.(j),_.preventDefault&&o.preventDefault();return}i.executeCommand(_),_.preventDefault&&o.preventDefault();let ce=i.getFocusIndices();if(ce&&pt.current){let j=i.getColumnLayout().center.findIndex(Le=>Le.state.id===i.getFocus()?.columnId),Pe=i.ensureVisible(ce.rowIndex,j===-1?void 0:j);if(Pe){let Le=pt.current;Pe.scrollTop!==void 0&&(Le.scrollTop=Pe.scrollTop),Pe.scrollLeft!==void 0&&(Le.scrollLeft=Rl(Pe.scrollLeft,Le)),i.setScroll(Le.scrollTop,Le.scrollLeft);}}},[i,qe,W,he,On,me,Vn,V.handleKeyDown]),Kt=useMemo(()=>bandDepth([...s.left,...s.center,...s.right]),[s]),en=dn,Uo=(E?2:1)+Kt,Oa=i.getPinnedRows("top"),Ka=i.getPinnedRows("bottom"),zo=[...se??[],...Oa.map(o=>o.row)],Yo=[...Ie??[],...Ka.map(o=>o.row)],ts=[...(se??[]).map(()=>null),...Oa.map(o=>o.key)],ns=[...(Ie??[]).map(()=>null),...Ka.map(o=>o.key)],Un=zo.length,os=Yo.length,zn=Uo+Un,Yn=Yl??Ee.grouping?.panel??h,Ba=i.getGroupLevels(),rs=useCallback(o=>i.groupBy(o.slice(0,J)),[i,J]),as=useCallback(o=>i.toggleGroup(o),[i]),_a=useCallback(o=>i.toggleGroupSelection(o),[i]),is=i.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),at=i.hasMasterDetail()&&!!O,ze=e.rowNumbers??false,ls=ze&&i.isPaginated()?i.getPage()*i.getPageSize():0;useEffect(()=>{i.setLeadWidth(xr(Ue,at,ze));},[i,Ue,at,ze]);let ss=useCallback(o=>i.toggleDetail(o),[i]),ds=useCallback(o=>i.toggleTreeRow(o),[i]),$a=i.getSummaryDefs(),us=i.getSummaries(),tn=Xl??pe??$a.length>0,bn=tn&&$==="top",qo=E?2:1,Wa=ut.grouping?.groupSummaries&&Ko?Ee.summaries:void 0,Va=i.getGroupDisplay(),Ua=useCallback(()=>{Zl(o=>(i.setGroupSummaries(!o),!o));},[i]),cs=useCallback((o,p)=>{if(!ke)return;p.preventDefault();let S=i.getColumnModel().getDef(o),_=i.getColumnSummary(o),ce={columnId:o,headerName:S?.headerName??S?.field??o},oe=[{id:"none",label:t.noTotal,disabled:_===null,onSelect:()=>i.setColumnSummary(o,null)},{id:"sep",separator:true},...allowedSummaryTypes(S?.dataType).map(j=>({id:j,label:summaryTypeLabels(t)[j],disabled:_?.type===j,onSelect:()=>i.setColumnSummary(o,j)}))];yt(),Bo({x:p.clientX,y:p.clientY,items:oe,context:ce});},[i,ke,yt]),ps=useCallback((o,p)=>{if(U===false)return;p.preventDefault();let S=i.getColumnModel().getDef(o),_={columnId:o,headerName:S?.headerName??S?.field??o},ce=ma(_,{controller:i,groupPanelVisible:Yn,footerVisible:tn,groupFootersAvailable:le&&i.getGroupLevels().length>0,groupFootersVisible:Ko,onToggleGroupPanel:()=>ql(!Yn),onToggleFooter:()=>Jl(!tn),onToggleGroupFooters:Ua,onOpenFieldChooser:()=>_o({left:p.clientX,top:p.clientY}),onBestFit:Do,onBestFitAll:So,maxGroupLevels:J,labels:Ro(t)}),oe=typeof U=="function"?U(_,ce):ce;!oe||oe.length===0||(yt(),Bo({x:p.clientX,y:p.clientY,items:oe,context:_}));},[U,i,Yn,tn,le,Ko,Ua,Do,So,J,t,yt]),nn=i.getFocus(),ms=nn?`${e.gridId}-cell-${String(nn.rowKey)}-${nn.columnId}`:void 0,Xo=i.getSelectedCount(),fs=useMemo(()=>{let o=[fillText(t.announceRows,{n:L})];if(u.length>0){let p=u.map(S=>{let _=i.getColumnModel().getDef(S.columnId),ce=String(_?.headerName??_?.field??S.columnId),oe=S.direction==="desc"?t.announceDescending:t.announceAscending;return `${ce} ${oe}`}).join(", ");o.push(fillText(t.announceSortedBy,{columns:p}));}return Xo>0&&o.push(fillText(t.announceSelected,{n:Xo})),o.join(", ")},[i,L,u,Xo,t]),{centerColumns:Mt,centerIndices:qn,stickyInsets:on,leadingSpacer:Nt,trailingSpacer:Pt,rowStart:gs,rowEnd:za}=Mi(s,fn),Xn=i.getColumnModel(),rn=gs,ws=o=>{if(gn)return;let p=i.getRowHeightAt(o);return p===R?void 0:p},hs=Array.from(qe.slice(rn,za)),bs=useMemo(()=>!ze||i.getGroupLevels().length===0&&!i.hasMasterDetail()&&!i.hasTreePathRows()?null:Ni(qe),[ze,i,qe]),ys=i.hasCellSpans(),Ya=useRef({start:0,end:0});Ya.current={start:rn,end:za-1};let qa=useRef(fn.columns);qa.current=fn.columns;let Rs=useCallback(o=>i.planRowColSpans(o,qa.current),[i]),Cs=hasColSpans(s),ks=useCallback((o,p)=>{let S=i.getCellSpans(p);if(S.length===0)return null;let{start:_,end:ce}=Ya.current,oe=spanRoleAt(S,o,_,ce);if(!oe)return null;if(oe.role==="covered")return {kind:"covered"};let j=i.getRowOffset(oe.drawStart);return {kind:"draw",height:i.getRowOffset(oe.drawEnd)+i.getRowHeightAt(oe.drawEnd)-j,offset:0}},[i]),Xa=i.getFindNeedle()||(je?normalizeSearch(i.getSearchText()):""),Ja=i.getFindState(),Jn=Ja.count>0?`${i.getFindNeedle()}\0${Ja.activeIndex}`:"",Za=useCallback((o,p)=>i.getFindMatchKind(o,p),[i]),vs={pathOf:o=>bandPath(i.getColumnModel().getDef(o)),collapsible:o=>i.isBandCollapsible(o),collapsed:o=>i.isBandCollapsed(o),onToggle:o=>i.toggleBand(o),labels:{expand:t.expandColumnGroup,collapse:t.collapseColumnGroup}},Qa={layout:s,centerColumns:Mt,leadingSpacer:Nt,trailingSpacer:Pt,defs:$a,values:us,checkboxColumn:Ue,detailColumn:at,rowNumberColumn:ze,onPickSummary:ke?cs:void 0,emptyHint:ke?"\xB7":""};return jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${Ra.active?" kanuni-datagrid-print":""}${ne?" kanuni-datagrid-cards":""}${themeClassName(r,Z,d)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${R}px`,"--dg-grip-inset":ze?`${ln}px`:"0px",...a},dir:isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":r,"data-palette":d,"data-auto-height":gn?"":void 0,"data-auto-header-height":g?"":void 0,ref:bt,children:[K&&jsx(Xr,{controller:i,dark:l,columnChooser:e.toolbarColumnChooser??true,exportExcel:le&&Y,exportPdf:le&&P,itemsBefore:F,itemsAfter:c,onOpenColumnChooser:o=>_o(p=>p?null:o)}),Yn&&jsx(zr,{columns:is,levels:Ba,onSetLevels:rs,maxLevels:J,onExpandAll:()=>i.expandAllGroups(),onCollapseAll:()=>i.collapseAllGroups()}),ne&&jsx(rl,{controller:i,sort:u,text:t,columns:w?i.getColumnModel().getOrder().filter(o=>{let p=i.getColumnModel();return p.getState(o)?.visible!==false&&p.getDef(o)?.sortable!==false}).map(o=>({id:o,label:i.getColumnModel().getDef(o)?.headerName??o})):[]}),jsx("div",{className:"kanuni-datagrid-scroller",ref:pt,onScroll:Tl,onKeyDown:es,tabIndex:0,role:"grid","aria-rowcount":L+Uo+Un+os,"aria-colcount":s.left.length+s.center.length+s.right.length+(Ue?1:0)+(at?1:0)+(ze?1:0),"aria-multiselectable":Zt==="multiple"||void 0,"aria-activedescendant":ms,"aria-label":e.ariaLabel??e.gridId,children:jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(s.totalWidth||0)+xr(Ue,at,ze)||"100%"},role:"rowgroup",children:[jsx(Mr,{layout:s,centerColumns:Mt,leadingSpacer:Nt,trailingSpacer:Pt,depth:Kt,checkboxColumn:Ue,detailColumn:at,rowNumberColumn:ze,rowHeight:en,bandFold:vs}),jsx(Pr,{bandOffset:Kt*en,stickyInsets:on,layout:s,centerColumns:Mt,leadingSpacer:Nt,trailingSpacer:Pt,sort:u,sortable:w,onSort:xl,groupLevels:Ba,headerFilter:Ca,filteredColumns:Ol,onOpenFilter:Fl,filterIconMode:N,checkboxColumn:Ue,detailColumn:at,rowNumberColumn:ze,selectAllState:jl,selectAllDisabled:Wo===0&&Vo===0,onToggleSelectAll:Ql,draggable:h,reorderable:H,onReorder:Gl,resizable:M,onResize:Ml,onAutoFit:Do,onHeaderContextMenu:U===false?void 0:ps,onHeaderClick:re,getHeaderClassName:ve,renderHeaderLabel:Ne}),E&&jsx(Hr,{bandOffset:Kt*en,stickyInsets:on,layout:s,centerColumns:Mt,leadingSpacer:Nt,trailingSpacer:Pt,values:Mo,checkboxColumn:Ue,detailColumn:at,rowNumberColumn:ze,onChange:Pl,onCommit:Hl,periodSuggestions:Nl,periodListId:`${e.gridId}-filter-periods`,operators:No,onOperatorChange:Il,renderCustom:Ll}),bn&&jsx(po,{...Qa,position:"top",bandOffset:Kt*en,headerRowsBetween:qo}),zo.length>0&&jsx(mo,{gridId:e.gridId,side:"top",rows:zo,rowKeys:ts,onUserRowContextMenu:La,layout:s,columnModel:Xn,centerColumns:Mt,centerIndices:qn,stickyInsets:on,leadingSpacer:Nt,trailingSpacer:Pt,checkboxColumn:Ue,detailColumn:at,rowNumberColumn:ze,rowHeight:R,bandOffset:Kt*en,headerRowsBetween:qo+(bn?1:0),ariaRowBase:Uo}),i.hasStickyGroupHeaders()&&jsx(Ui,{controller:i,width:s.totalWidth,bandOffset:Kt*en,headerRowsBetween:qo+(bn?1:0),belowPinned:Un>0?Un*R+1:0,renderRow:(o,p,S)=>jsx(sn,{gridId:e.gridId,node:o,index:p,layout:s,columnModel:Xn,centerColumns:Mt,centerIndices:qn,stickyInsets:on,leadingSpacer:Nt,trailingSpacer:Pt,striped:false,selected:false,groupSelection:Ue&&Zt==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:_a,groupDisplay:Va,focusedColumnId:null,checkboxColumn:Ue,rowNumberColumn:ze,rowNumber:null,headerRowCount:zn,onToggleGroup:_=>{i.toggleGroup(_),i.scrollToRow(_);},revision:Ta,searchNeedle:Xa,findStamp:Jn,findKind:Jn?Za:void 0,summaryDefs:Wa,detailColumn:at,height:S,renderCellContent:et,getCellClassName:Fn})}),jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:fn.rows.totalHeight},onDragOver:Yt.bodyHandlers?.onDragOver,onDrop:Yt.bodyHandlers?.onDrop,onDragLeave:Yt.bodyHandlers?.onDragLeave,children:[jsx("div",{ref:Eo,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${fn.rows.offsetY}px)`},children:hs.map((o,p)=>o?jsx(sn,{gridId:e.gridId,node:o,index:rn+p,layout:s,columnModel:Xn,centerColumns:Mt,centerIndices:qn,stickyInsets:on,leadingSpacer:Nt,trailingSpacer:Pt,striped:y,selected:i.isRowSelected(o.key),ariaSelectable:Zt!=="none",selectable:Ue&&o.kind==="data"?i.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&Ue&&Zt==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:_a,groupDisplay:Va,focusedColumnId:nn?.rowKey===o.key?nn.columnId:null,rowFocused:z&&nn?.rowKey===o.key,rowDrag:Yt.handlers,dropSide:Yt.dropAt?.key===o.key?Yt.dropAt.side:null,renderRow:ne?xe:T,checkboxColumn:Ue,rowNumberColumn:ze,getSpan:ys?ks:void 0,resolveColSpans:Cs?Rs:void 0,getNote:tt?Kn:void 0,rowNumber:ze?Pi(rn+p,bs,ls):null,headerRowCount:zn,onRowClick:Vl,onRowMouseDown:Zt==="none"?void 0:Kl,onRowDoubleClick:Ul,onToggleSelect:_l,onCellMouseDown:Bl,onRowContextMenu:zl,onToggleGroup:as,onToggleTreeRow:ds,revision:Ta,searchNeedle:Xa,findStamp:Jn,findKind:Jn?Za:void 0,summaryDefs:Wa,detailColumn:at,detailExpanded:at&&i.isDetailExpanded(o.key),onToggleDetail:ss,renderDetail:O,renderEditForm:ge,height:ws(rn+p),renderCellContent:et,getCellClassName:Fn,onCellPointerDown:ue,onCellPointerEnter:Se,onCellDoubleClick:An},String(o.key)):(()=>{let S=rn+p,_=i.isRowLoadFailed(S);return jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${_?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":S+1+zn,"aria-busy":_?void 0:"true",children:jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:_?jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-load-failed-text",children:t.rowsLoadFailed}),jsx("button",{type:"button",className:"kanuni-datagrid-retry-button","data-retry-load":"",onClick:()=>i.retryFailedLoads(),children:t.retryLoad})]}):jsx("span",{className:"kanuni-datagrid-loading-bar"})})},`__loading-${S}`)})())}),ye?.()]}),Yo.length>0&&jsx(mo,{gridId:e.gridId,side:"bottom",rows:Yo,rowKeys:ns,onUserRowContextMenu:La,layout:s,columnModel:Xn,centerColumns:Mt,centerIndices:qn,stickyInsets:on,leadingSpacer:Nt,trailingSpacer:Pt,checkboxColumn:Ue,detailColumn:at,rowNumberColumn:ze,rowHeight:R,headerRowsBetween:tn&&!bn?1:0,ariaRowBase:zn+L}),tn&&!bn&&jsx(po,{...Qa,position:"bottom"})]})}),(xo==="noRows"||xo===null&&L===0)&&jsx("div",{className:"kanuni-datagrid-empty",children:b??t.noData}),V.active&&jsx(fr,{open:V.saveError!==null,title:t.editCannotSave,message:V.saveError?V.saveError.columnId?`${i.getColumnModel().getDef(V.saveError.columnId)?.headerName??V.saveError.columnId}: ${V.saveError.message}`:V.saveError.message:"",confirmLabel:t.ok,dark:l,onConfirm:V.clearSaveError,onCancel:V.clearSaveError}),B&&jsx(Qr,{controller:i,alwaysVisible:B==="always",onOpenBuilder:v,describeOptions:x}),G!==false&&jsx(la,{controller:i,delay:typeof G=="number"?G:void 0,forced:xo==="loading"}),i.isPaginated()&&jsx(Zr,{page:i.getPage(),pageCount:i.getPageCount(),pageSize:i.getPageSize(),pageSizes:Ee.pagination?.pageSizes,pageButtons:Ee.pagination?.pageButtons,maxPageButtons:Ee.pagination?.maxPageButtons,totalRows:L,onPage:o=>i.setPage(o),onNext:()=>i.nextPage(),onPrevious:()=>i.previousPage(),onPageSize:o=>i.setPageSize(o)}),m&&jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:fs}),hn&&jsx(aa,{anchor:hn.anchor,value:hn.text,dark:l,onCommit:Wl,onCancel:()=>Ao(null)}),Qt&&jsx(ho,{x:Qt.x,y:Qt.y,items:Qt.items,context:Qt.context,dark:l,onClose:$l}),$n&&jsx(it,{dark:l,children:jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:$n.x,top:$n.y},onClick:()=>Wn(null),children:$n.message})}),Ot&&jsx(ho,{x:Ot.x,y:Ot.y,items:Ot.items,context:Ot.context,dark:l,label:`${Ot.context.headerName} column`,onClose:()=>Bo(null)}),va&&jsx(pa,{state:va,dark:l}),Fa&&jsx(Jr,{controller:i,columns:i.getColumnStates(),anchor:Fa,dark:l,onClose:()=>_o(null)}),Jt&&jsx(_i,{controller:i,columnId:Jt.columnId,headerLabel:Jt.label,anchor:Jt.anchor,dark:l,onClose:()=>Lo(null)},Jt.columnId),Ve&&jsx(_r,{gridId:e.gridId,columnId:Ve.columnId,headerLabel:Ve.label,entries:Ve.entries,initialSelected:Ve.selected,anchor:Ve.anchor,loading:Ve.loading,truncated:Ve.truncated,onSearch:Ve.capped&&!i.isRemote()?o=>{let{entries:p,truncated:S}=i.searchDistinctValues(Ve.columnId,o);Gt(_=>_&&_.columnId===Ve.columnId?{..._,entries:p,truncated:S}:_);}:void 0,dark:l,onApply:Al,onClose:()=>Gt(null)},`${Ve.columnId}:${Ve.loading?"loading":"ready"}`)]})}function rp({defs:e,values:t,columnModel:n,rowCount:a,rowCountLabel:l}){let r=Te(),d=summaryTypeLabels(r);return e.length===0&&a===void 0?null:jsxs("div",{className:"kanuni-datagrid-summary-bar",role:"status","aria-label":r.summaryAria,children:[a!==void 0&&jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsx("strong",{children:a.toLocaleString()})," ",l??r.summaryRows]}),e.map(y=>{let b=t[summaryKey(y.columnId,y.type)],w=n.getDef(y.columnId),g=formatSummaryValue(y,b,w);return jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxs("span",{className:"kanuni-datagrid-summary-label",children:[summaryLabel(y,d)," ",w?.headerName??y.columnId,":"]}),jsx("strong",{children:g})]},summaryKey(y.columnId,y.type))})]})}var ap=memo(rp);function dp(e,t){return ya(e,t,t?.source,(n,a)=>n.computeChartData(a))}function up(e,t){return ya(e,t,t?.source,(n,a)=>n.computeChartXYData(a))}function cp(e,t){return ya(e,t,t?.source,(n,a)=>n.computeChartBoxData(a))}function ya(e,t,n,a){let[l,r]=useState(null);return useEffect(()=>{if(!e||!t){r(null);return}let d=n??"view",y=chartNeedsOrder(t),b=false,w=0,g=false,E=false,k=null,N=()=>{let G=++w;a(e,t).then(m=>{!b&&G===w&&r(m);},()=>{});},H=(G=false)=>{E||=G,!g&&(g=true,queueMicrotask(()=>{if(g=false,b)return;let m=e.chartBasis(d,y);!E&&m===k||(E=false,k=m,N());}));};k=e.chartBasis(d,y),N();let M=[e.events.on("contentReady",()=>H()),e.events.on("rowsChanged",()=>H()),e.events.on("dataUpdated",()=>H()),...d==="selection"?[e.events.on("selectionChanged",()=>H(true))]:[]];return ()=>{b=true,w++,M.forEach(G=>G());}},[e,t]),l}export{dn as BAND_ROW_HEIGHT,ml as DEFAULT_HEADER_MENU_LABELS,ep as DataGrid,pr as GridCellEditor,Jr as GridColumnChooser,ho as GridContextMenu,ur as GridDateEditor,fr as GridDialog,Qr as GridFilterPanel,Hr as GridFilterRow,po as GridFooterRow,zr as GridGroupPanel,Pr as GridHeader,Mr as GridHeaderBands,_r as GridHeaderFilterPopup,la as GridLoadingOverlay,sr as GridLookupEditor,aa as GridNoteEditor,Zr as GridPager,mo as GridPinnedRows,Ut as GridPopupPanel,it as GridPortal,sn as GridRow,ap as GridSummaryBar,rr as GridSurfaceProvider,Qo as GridTextProvider,Xr as GridToolbar,pa as GridTooltip,gr as PRINT_MAX_ROWS,yo as ROW_DRAG_MIME,Qi as SHORTCUT_COPY,ac as SHORTCUT_CUT,ic as SHORTCUT_PASTE,Yr as ToolbarIcon,na as buildCellMenuItems,ma as buildHeaderMenu,cn as copyToClipboard,Ro as headerMenuLabels,rd as matchOptions,bo as measureBestFitWidth,Lr as reconcileFilterInputs,Mn as runGridExport,br as useAlignedGrids,Wt as useAnchoredPopup,ca as useCellTooltip,Zo as useDataGrid,cp as useGridChartBoxData,dp as useGridChartData,up as useGridChartXYData,er as useGridEditing,Tt as useGridSurfaceClass,Te as useGridText,wr as usePrintLayout,ua as useRowDrag,sa as useStateStoring,lc as writeClipboardText};
|