@kanunilabs/datagrid-react 1.5.0 → 1.7.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.
Files changed (44) hide show
  1. package/README.md +12 -4
  2. package/dist/index.cjs +3 -2
  3. package/dist/index.d.cts +521 -13
  4. package/dist/index.d.ts +521 -13
  5. package/dist/index.js +3 -2
  6. package/dist/styles.css +699 -80
  7. package/dist/themes/all.css +1588 -0
  8. package/dist/themes/amber.css +41 -0
  9. package/dist/themes/aubergine.css +49 -0
  10. package/dist/themes/azure.css +41 -0
  11. package/dist/themes/burgundy.css +49 -0
  12. package/dist/themes/charcoal.css +49 -0
  13. package/dist/themes/contrast-dark.css +49 -0
  14. package/dist/themes/contrast-light.css +41 -0
  15. package/dist/themes/coral.css +41 -0
  16. package/dist/themes/corporate.css +41 -0
  17. package/dist/themes/deep-sea.css +49 -0
  18. package/dist/themes/editorial.css +41 -0
  19. package/dist/themes/ember.css +49 -0
  20. package/dist/themes/emerald.css +41 -0
  21. package/dist/themes/forest.css +49 -0
  22. package/dist/themes/glacier.css +41 -0
  23. package/dist/themes/graphite.css +49 -0
  24. package/dist/themes/indigo-night.css +49 -0
  25. package/dist/themes/indigo.css +41 -0
  26. package/dist/themes/ivory.css +41 -0
  27. package/dist/themes/lagoon.css +41 -0
  28. package/dist/themes/linen.css +41 -0
  29. package/dist/themes/midnight.css +49 -0
  30. package/dist/themes/mist.css +41 -0
  31. package/dist/themes/monochrome.css +41 -0
  32. package/dist/themes/onyx.css +49 -0
  33. package/dist/themes/orchid.css +41 -0
  34. package/dist/themes/porcelain.css +41 -0
  35. package/dist/themes/rose.css +41 -0
  36. package/dist/themes/sandstone.css +41 -0
  37. package/dist/themes/slate-night.css +49 -0
  38. package/dist/themes/slate.css +41 -0
  39. package/dist/themes/steel.css +49 -0
  40. package/dist/themes/stone.css +41 -0
  41. package/dist/themes/taupe.css +41 -0
  42. package/dist/themes/teal.css +41 -0
  43. package/dist/themes/terminal.css +49 -0
  44. package/package.json +10 -5
package/dist/index.cjs CHANGED
@@ -1,2 +1,3 @@
1
- 'use strict';var react=require('react'),datagridCore=require('@kanunilabs/datagrid-core'),reactDom=require('react-dom'),jsxRuntime=require('react/jsx-runtime');var Ci=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged"];function eo(t){let e=t.sorting?.postSort,n=react.useRef(e);react.useEffect(()=>{n.current=e;},[e]);let[r]=react.useState(()=>((G,N)=>n.current?.(G,N))),l=()=>new datagridCore.DataGridController(e?{...t,sorting:{...t.sorting,postSort:r}}:t),[a,s]=react.useState(l);react.useEffect(()=>{if(a.isDisposed()){s(l());return}return ()=>a.dispose()},[a]);let m=react.useRef(0),f=react.useCallback(G=>{let N=()=>{m.current++,G();},d=Ci.map(b=>a.events.on(b,N));return ()=>d.forEach(b=>b())},[a]),g=react.useCallback(()=>m.current,[]);react.useSyncExternalStore(f,g,g);let{dataSource:p,columns:y}=t,C=react.useRef(true);react.useEffect(()=>{if(C.current){C.current=false;return}Array.isArray(p)&&a.setData(p);},[a,p]);let k=react.useRef(true);react.useEffect(()=>{if(k.current){k.current=false;return}a.setColumns(y);},[a,y]);let v=t.pagination?t.pagination.enabled!==false:false;react.useEffect(()=>{a.setPaginationEnabled(v);},[a,v]);let P=t.rowHeight,M=react.useRef(true);react.useEffect(()=>{if(M.current){M.current=false;return}P!==void 0&&a.setRowHeight(P);},[a,P]);let x=t.selection?.mode??"none";react.useEffect(()=>{a.setSelectionMode(x);},[a,x]);let A=t.selection?.isRowSelectable,u=react.useRef(true);react.useEffect(()=>{if(u.current){u.current=false;return}a.setRowSelectable(A??null);},[a,A]);let L=e!==void 0,I=react.useRef(true);react.useEffect(()=>{if(I.current){I.current=false;return}a.setPostSort(L?r:null);},[a,L,r]);let F=t.grouping?.groupBy??null,$=JSON.stringify(F==null?[]:typeof F=="string"?[F]:F),h=react.useRef(true);return react.useEffect(()=>{if(h.current){h.current=false;return}a.groupBy(JSON.parse($));},[a,$]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var mn=0,to=5e3;function xi(t){if(t===void 0||t===false)return null;let e=t===true?{}:t;return {always:e.always??false,maxRows:e.maxRows??to}}function Ti(t,e){return t<=e}function no(t,e){let n=xi(e),r=n!==null,l=n?.always??false,a=n?.maxRows??to,[s,m]=react.useState(false),f=react.useCallback(()=>m(true),[]),g=react.useCallback(()=>m(false),[]);react.useEffect(()=>{if(!r||l||typeof window>"u"||typeof window.addEventListener!="function")return;let y=()=>{let k=t.getRows().length;if(!Ti(k,a)){t.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${k} rows exceeds maxRows (${a}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}reactDom.flushSync(()=>m(true));},C=()=>reactDom.flushSync(()=>m(false));return window.addEventListener("beforeprint",y),window.addEventListener("afterprint",C),()=>{window.removeEventListener("beforeprint",y),window.removeEventListener("afterprint",C);}},[r,l,a,t]);let p=l||s;return react.useEffect(()=>{if(!p||typeof document>"u")return;let y=document.documentElement;return mn++,y.classList.add("kanuni-datagrid-printing"),()=>{mn--,mn<=0&&(mn=0,y.classList.remove("kanuni-datagrid-printing"));}},[p]),{active:p,begin:f,end:g}}var gn=new Map,oo=new Set;function Lr(t,e){let n=gn.get(t);return n?[...n].filter(r=>r!==e):[]}function ro(t,e,n){let r=react.useRef(null);return react.useEffect(()=>{if(!e)return;let a={controller:t,scroller:()=>n.current};r.current=a;let s=gn.get(e)??new Set;s.add(a),gn.set(e,s);let m=t.events.on("columnStateChanged",()=>{if(oo.has(e))return;let f=Lr(e,a);if(f.length===0)return;let g=t.getColumnStates();oo.add(e);try{for(let p of f)p.controller.applyColumnStates(g);}finally{oo.delete(e);}});return ()=>{m(),s.delete(a),s.size===0&&gn.delete(e),r.current=null;}},[t,e,n]),{syncScroll:react.useCallback(a=>{let s=r.current;if(!e||!s)return;let m=Lr(e,s);if(m.length!==0)for(let f of m){let g=f.scroller();g&&g.scrollLeft!==a&&(g.scrollLeft=a);}},[e])}}function fn(t,e,n){return t==="left"?e:t==="center"?n.left+e:n.left+n.center+e}function Ir(t,e){let{start:n,end:r}=e.columns,l=t.centerOffsets,a=l[n]??0,s=(l[r]??0)-a,m=Math.max(0,t.centerWidth-a-s),f=a,g=t.center.slice(n,r),p=Array.from({length:g.length},(k,v)=>n+v),y=t.stickyIndices.filter(k=>k<n);if(y.length>0){let k=y.map(v=>t.center[v]);f-=k.reduce((v,P)=>v+P.state.width,0),g=[...k,...g],p=[...y,...p];}let C=new Map;for(let k of t.stickyIndices){let v=t.centerStickyOffsets[k];v!==null&&C.set(t.center[k].state.id,v);}return {centerColumns:g,centerIndices:p,leadingSpacer:Math.max(0,f),trailingSpacer:m,rowStart:e.rows.start,rowEnd:e.rows.end,stickyInsets:C}}function Hr(t){let e=[];for(let n=0;n<t.length;n++){let r=t[n];r&&r.kind!=="data"&&e.push(n);}return e.length>0?e:null}function Ar(t,e,n=0){if(!e)return n+t+1;let r=0,l=e.length;for(;r<l;){let a=r+l>>1;e[a]<t?r=a+1:l=a;}return n+t-r+1}var Fr=react.createContext(datagridCore.getGridDictionary("en"));function ao({locale:t,messages:e,children:n}){let r=react.useMemo(()=>datagridCore.getGridDictionary(t,e),[t,e]);return jsxRuntime.jsx(Fr.Provider,{value:r,children:n})}function ne(){return react.useContext(Fr)}var wn=36,bn=28,It=60,Ki=[["rowNumberColumn",It],["detailColumn",bn],["checkboxColumn",wn]];function mo(t,e,n=false){return je({checkboxColumn:t,detailColumn:e,rowNumberColumn:n}).total}function je(t){let e=new Map,n=new Map,r=0,l=0;for(let[a,s]of Ki)t[a]&&(e.set(a,r),n.set(a,++l),r+=s);return {total:r,count:l,inset:a=>e.get(a)??0,colIndex:a=>n.get(a)??1}}function so(t){return t?t.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function uo(t,e,n){return t?t.kind==="covered"?e?n():null:jsxRuntime.jsx("div",{className:"kanuni-datagrid-span-box",style:{height:t.height},children:n()}):n()}function co(t,e){let n=t??(e==="number"?"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 hn(t,e){if(e===""||t==="")return t;let n=datagridCore.foldText(t),r=n.indexOf(e);if(r===-1)return t;let l=[],a=0,s=0;for(;r!==-1;)r>a&&l.push(t.slice(a,r)),l.push(jsxRuntime.jsx("mark",{className:"kanuni-datagrid-highlight",children:t.slice(r,r+e.length)},s++)),a=r+e.length,r=n.indexOf(e,a);return a<t.length&&l.push(t.slice(a)),l}function _i(t,e,n,r=""){if(t.renderCell)return t.renderCell({value:e,row:n.data,node:n,column:t});let l=datagridCore.lookupLabel(t,e);if(l!==null)return hn(l,r);if(t.valueFormatter){let a=t.valueFormatter(e,n.data);return typeof a=="string"?hn(a,r):a}return t.dateFormat&&t.dataType==="date"?hn(datagridCore.formatDateValue(e,t.dateFormat),r):e==null?"":hn(String(e),r)}function $i({gridId:t,node:e,index:n,layout:r,columnModel:l,centerColumns:a,centerIndices:s,stickyInsets:m,leadingSpacer:f,trailingSpacer:g,striped:p,selected:y,ariaSelectable:C=true,selectable:k=true,groupSelection:v,onToggleGroupSelect:P,groupDisplay:M="fullWidth",focusedColumnId:x,rowFocused:A=false,renderRow:u,checkboxColumn:L,rowNumberColumn:I=false,rowNumber:F=null,getNote:$,getSpan:h,headerRowCount:G,onRowClick:N,onRowMouseDown:d,onRowDoubleClick:b,onToggleSelect:E,onCellMouseDown:te,onRowContextMenu:ie,searchNeedle:re="",onToggleGroup:Ye,summaryDefs:Se,detailColumn:pe=false,detailExpanded:Ee=false,onToggleDetail:Ne,onToggleTreeRow:Ce,renderDetail:Me,renderEditForm:tt,renderCellContent:Xe,getCellClassName:Fe,onCellPointerDown:Be,onCellPointerEnter:de,onCellDoubleClick:Ke,rowDrag:ue,dropSide:_e=null,height:be}){let w=ne();if(datagridCore.isDetailRow(e))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+G,"data-row-key":String(e.key),"data-detail-for":String(e.parentKey),style:{height:e.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-detail-cell",role:"gridcell","aria-colindex":1,children:Me?.(e.data)})});if(datagridCore.isEditFormRow(e))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+G,"data-row-key":String(e.key),"data-editform-for":e.parentKey===null?"":String(e.parentKey),style:{height:e.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-editform-cell",role:"gridcell","aria-colindex":1,children:e.parentKey===null?null:tt?.(e.parentKey,e.data)})});if(datagridCore.isFillerRow(e))return null;if(datagridCore.isGroupRow(e)&&M==="fullWidth"){let T=l.getDef(e.columnId),q=T?.headerName??e.columnId,V=datagridCore.lookupLabel(T,e.value)??e.display??(e.label===""?w.filterBlank:e.label),ee=e.aggregates??null;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${e.level}${x?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+G,"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:()=>Ye?.(String(e.key)),children:jsxRuntime.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:[v&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:v==="all",ref:O=>{O&&(O.indeterminate=v==="some");},"aria-label":datagridCore.fillText(w.selectGroupAria,{count:String(e.count),group:V}),onChange:()=>P?.(String(e.key)),onClick:O=>O.stopPropagation(),onMouseDown:O=>O.stopPropagation()}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:e.expanded?"\u25BE":"\u25B8"}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[q,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:V}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",e.count,")"]}),ee&&Se?.map(O=>jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[datagridCore.summaryLabel(O)," ",l.getDef(O.columnId)?.headerName??O.columnId,":"]})," ",datagridCore.formatSummaryValue(O,ee[datagridCore.summaryKey(O.columnId,O.type)],l.getDef(O.columnId))]},datagridCore.summaryKey(O.columnId,O.type)))]})})}let K=[],W=je({rowNumberColumn:I,detailColumn:pe,checkboxColumn:L}),S=W.count,D=(T,q)=>({node:e,columnId:T,rowIndex:n,columnIndex:q,value:U?void 0:l.getCellValue(e.data,T)}),X=(T,q)=>{let V=()=>D(T,q);return {role:"gridcell",id:`${t}-cell-${String(e.key)}-${T}`,"aria-colindex":S+q+1,"data-column-id":T,onMouseDown:ee=>{te?.(e,T),Be?.(V(),ee);},onMouseEnter:de?ee=>de(V(),ee):void 0,onDoubleClick:Ke?()=>Ke(V()):void 0}},oe=e.kind==="data"||e.kind==="treePath"?e.tree:void 0,_=e.kind==="treePath",U=datagridCore.isGroupRow(e)?e:null,ae=_||U!==null,ke=U?M==="column"?datagridCore.GROUP_COLUMN_ID:(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,me=()=>{let T=U,q=l.getDef(T.columnId),V=datagridCore.lookupLabel(q,T.value)??T.display??(T.label===""?w.filterBlank:T.label);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:T.level*16},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:T.expanded?"\u25BE":"\u25B8"}),M!=="column"&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[q?.headerName??T.columnId,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:V}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",T.count,")"]})]})},$e=(T,q)=>{let V=U.aggregates?Se?.find(ee=>ee.columnId===q):void 0;return V?jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:datagridCore.formatSummaryValue(V,U.aggregates[datagridCore.summaryKey(q,V.type)],T)}):null},ge=oe?(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,B=(T,q,V)=>{if(U)return q===ke?me():$e(T,q);if(Xe&&!_){let O=Xe(D(q,V));if(O!==void 0)return O}let ee=_?q===ge?jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-path-label",children:e.label}):null:_i(T,l.getCellValue(e.data,q),e,re);return oe&&q===ge?jsxRuntime.jsxs("span",{className:oe.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:oe.depth*16},children:[oe.hasChildren?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":oe.expanded,"aria-label":oe.expanded?w.collapseTreeRow:w.expandTreeRow,onClick:O=>{O.stopPropagation(),Ce?.(e.key);},children:oe.expanded?"\u25BE":"\u25B8"}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),ee]}):ee},nt=(T,q)=>{if(!Fe||U)return "";let V=Fe(D(T,q));return V?` ${V}`:""},i=T=>!$||e.kind!=="data"?"":$(e.key,T,e.data)?" kanuni-datagrid-cell--noted":"",ye=T=>h&&e.kind==="data"?h(n,T):null,gt=(T,q)=>{let V=T.autoHeight?" kanuni-datagrid-cell--wrap":"";return !T.cellClassName||ae?V:V+ce(T,q)},ce=(T,q)=>{let V=T.cellClassName;if(!V)return "";if(typeof V=="string")return ` ${V}`;let ee=e.data,O=V({value:l.getCellValue(ee,q),row:ee,node:e,column:T});return O?` ${O}`:""};if(I){let T=e.kind==="data"&&F!==null;K.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":W.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:It,insetInlineStart:W.inset("rowNumberColumn")},children:T?F:""},"__rownum"));}pe&&K.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":W.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:bn,insetInlineStart:W.inset("detailColumn")},children:ae?null:jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Ee,"aria-label":Ee?w.collapseDetails:w.expandDetails,onClick:T=>{T.stopPropagation(),Ne?.(e.key);},children:Ee?"\u25BE":"\u25B8"})},"__detail")),L&&K.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":W.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:wn,insetInlineStart:W.inset("checkboxColumn")},onMouseDown:T=>T.stopPropagation(),onClick:T=>{T.target.tagName!=="INPUT"&&(T.stopPropagation(),E?.(e));},children:U?v&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:v==="all",ref:T=>{T&&(T.indeterminate=v==="some");},"aria-label":datagridCore.fillText(w.selectGroupAria,{count:String(U.count),group:U.display??U.label}),onChange:()=>P?.(String(U.key)),onClick:T=>T.stopPropagation(),onMouseDown:T=>T.stopPropagation()}):_?null:jsxRuntime.jsx("input",{type:"checkbox",checked:y,disabled:!k,tabIndex:-1,"aria-label":datagridCore.fillText(w.selectRowAria,{row:String(e.key)}),onChange:()=>E?.(e),onClick:T=>T.stopPropagation(),onMouseDown:T=>T.stopPropagation()})},"__select"));let ft=W.total,ot=T=>x===T?" kanuni-datagrid-cell--focused":"",We={left:r.left.length,center:r.center.length};return r.left.forEach((T,q)=>{let V=T.def,ee=q===r.left.length-1,O=T.state.id,xe=fn("left",q,We);K.push(jsxRuntime.jsx("div",{...X(O,xe),className:`${co(V.align,V.dataType)} kanuni-datagrid-cell--pinned${ee?" kanuni-datagrid-pin-edge-left":""}${ot(O)}${gt(V,O)}${nt(O,xe)}${i(O)}${so(ye(O))}`,style:{width:T.state.width,insetInlineStart:r.leftOffsets[q]+ft},children:uo(ye(O),x===O,()=>B(V,O,xe))},O));}),f>0&&K.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:f}},"__lead")),a.forEach((T,q)=>{let V=T.def,ee=T.state.id,O=fn("center",s?.[q]??q,We),xe=m?.get(ee),Hn=xe===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky";K.push(jsxRuntime.jsx("div",{...X(ee,O),className:`${co(V.align,V.dataType)}${Hn}${ot(ee)}${gt(V,ee)}${nt(ee,O)}${i(ee)}${so(ye(ee))}`,style:xe===void 0?{width:T.state.width}:{width:T.state.width,insetInlineStart:xe+ft},children:uo(ye(ee),x===ee,()=>B(V,ee,O))},ee));}),g>0&&K.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:g}},"__trail")),r.right.forEach((T,q)=>{let V=T.def,ee=q===0,O=T.state.id,xe=fn("right",q,We);K.push(jsxRuntime.jsx("div",{...X(O,xe),className:`${co(V.align,V.dataType)} kanuni-datagrid-cell--pinned${ee?" kanuni-datagrid-pin-edge-right":""}${ot(O)}${gt(V,O)}${nt(O,xe)}${i(O)}${so(ye(O))}`,style:{width:T.state.width,insetInlineEnd:r.rightOffsets[q]},children:uo(ye(O),x===O,()=>B(V,O,xe))},O));}),jsxRuntime.jsxs("div",{className:`kanuni-datagrid-row${p&&n%2===1?" kanuni-datagrid-row--odd":""}${y?" kanuni-datagrid-row--selected":""}${A?" kanuni-datagrid-row--focused":""}${_?" kanuni-datagrid-row--tree-path":""}${U?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${U.level}`:""}${_e?` kanuni-datagrid-row--drop-${_e}`:""}`,role:"row","aria-rowindex":n+1+G,"aria-selected":U||!C?void 0:y,"aria-expanded":U?U.expanded:void 0,"aria-level":U?U.level+1:void 0,"data-row-key":String(e.key),"data-group-key":U?String(U.key):void 0,"data-group-level":U?U.level:void 0,style:be===void 0?void 0:{height:be},draggable:ue?.draggable&&!U?true:void 0,onDragStart:ue&&!U?T=>ue.onDragStart(e,T):void 0,onDragEnd:ue&&!U?()=>ue.onDragEnd():void 0,onDragOver:ue&&!U?T=>ue.onDragOver(e,T):void 0,onDrop:ue&&!U?T=>ue.onDrop(e,T):void 0,onMouseDown:d&&!U?T=>d(e,T):void 0,onClick:U?()=>Ye?.(String(U.key)):N?T=>N(e,n,T):void 0,onDoubleClick:b?T=>b(e,n,T):void 0,onContextMenu:ie?T=>ie(e,n,T):void 0,children:[ue&&!U&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:w.dragToReorder,onMouseEnter:()=>ue.setDraggable(true),onMouseLeave:()=>ue.setDraggable(false),children:jsxRuntime.jsx("svg",{width:"10",height:"14",viewBox:"0 0 10 14",focusable:"false",children:jsxRuntime.jsxs("g",{fill:"currentColor",children:[jsxRuntime.jsx("circle",{cx:"3",cy:"3",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"3",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"3",cy:"7",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"3",cy:"11",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"11",r:"1.2"})]})})}),u&&e.kind==="data"?u({row:e.data,node:e,rowIndex:n,selected:y,focused:A}):K]})}var Ht=react.memo($i);var At=26;function go(t,e){return datagridCore.computeHeaderBands(t,e)}function fo(t,e=""){return `kanuni-datagrid-band-cell${t.spacer?" kanuni-datagrid-band-cell--spacer":""}${e}`}function ho(t,e){let n=jsxRuntime.jsx("span",{className:"kanuni-datagrid-band-label",children:t.label});if(!e||t.spacer||t.columnIds.length===0)return n;let r=e.pathOf(t.columnIds[0]).slice(0,t.level+1);if(r.length!==t.level+1||!e.collapsible(r))return n;let l=e.collapsed(r);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.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:a=>{a.stopPropagation(),e.onToggle(r);},children:jsxRuntime.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[jsxRuntime.jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),jsxRuntime.jsx("path",{d:"M5 8h6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),l&&jsxRuntime.jsx("path",{d:"M8 5v6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}),n]})}function Vi({layout:t,centerColumns:e,leadingSpacer:n,trailingSpacer:r,depth:l,checkboxColumn:a=false,detailColumn:s=false,rowNumberColumn:m=false,rowHeight:f=At,bandFold:g}){if(l<=0)return null;let p=je({rowNumberColumn:m,detailColumn:s,checkboxColumn:a}).total,y=go(t.left,l),C=go(e,l),k=go(t.right,l),v=(P,M,x)=>{let A=x;for(let u=0;u<M;u++)A+=P[u].width;return A};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:l},(P,M)=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":M+1,style:{width:t.totalWidth+p,height:f,top:M*f},children:[p>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned",style:{width:p,insetInlineStart:0},"aria-hidden":"true"}),(y[M]??[]).map((x,A)=>jsxRuntime.jsx("div",{className:fo(x,` kanuni-datagrid-band-cell--pinned${A===(y[M]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:x.spacer?"presentation":"columnheader","aria-colspan":x.spacer?void 0:x.columnIds.length,style:{width:x.width,insetInlineStart:v(y[M]??[],A,p)},title:x.spacer?void 0:x.label,children:ho(x,g)},x.columnIds[0])),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(C[M]??[]).map(x=>jsxRuntime.jsx("div",{className:fo(x),role:x.spacer?"presentation":"columnheader","aria-colspan":x.spacer?void 0:x.columnIds.length,style:{width:x.width},title:x.spacer?void 0:x.label,children:ho(x,g)},x.columnIds[0])),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),(k[M]??[]).map((x,A)=>{let u=k[M]??[],L=0;for(let I=A+1;I<u.length;I++)L+=u[I].width;return jsxRuntime.jsx("div",{className:fo(x,` kanuni-datagrid-band-cell--pinned${A===0?" kanuni-datagrid-pin-edge-right":""}`),role:x.spacer?"presentation":"columnheader","aria-colspan":x.spacer?void 0:x.columnIds.length,style:{width:x.width,insetInlineEnd:L},title:x.spacer?void 0:x.label,children:ho(x,g)},x.columnIds[0])})]},M))})}var bo=react.memo(Vi);var Ji=()=>jsxRuntime.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.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 Zi(t,e){return t.renderHeader?t.renderHeader({column:t}):t.headerName??t.field??e}function ji({bandOffset:t=0,stickyInsets:e,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,sort:s,sortable:m,onSort:f,headerFilter:g=false,filteredColumns:p,onOpenFilter:y,filterIconMode:C="hover",checkboxColumn:k=false,detailColumn:v=false,rowNumberColumn:P=false,rowNumberHeader:M="#",selectAllState:x="none",selectAllDisabled:A=false,onToggleSelectAll:u,draggable:L=false,reorderable:I=false,onReorder:F,resizable:$=false,onResize:h,onAutoFit:G,onHeaderContextMenu:N,groupLevels:d}){let b=ne(),E=je({rowNumberColumn:P,detailColumn:v,checkboxColumn:k}),te=new Map(s.map((S,D)=>[S.columnId,{direction:S.direction,order:D}])),ie=new Set(p??[]),re=[...n.left.map(S=>S.state.id),...r.map(S=>S.state.id),...n.right.map(S=>S.state.id)],[Ye,Se]=react.useState(null),pe=react.useId(),Ee=Ye&&re.includes(Ye)?Ye:re[0],Ne=S=>{Se(S),document.querySelector(`[data-column-id="${S}"].kanuni-datagrid-header-cell`)?.focus();},Ce=S=>{let D=re.indexOf(Ee),X=Math.min(re.length-1,Math.max(0,D+S));X!==D&&Ne(re[X]);},Me=react.useRef(null),tt=react.useRef(false),[Xe,Fe]=react.useState(null),Be=re,de=S=>[...n.left,...n.center,...n.right].find(D=>D.state.id===S)?.state.pinned??null,Ke=(S,D)=>(tt.current?S>D.left+D.width/2:S<D.left+D.width/2)?"before":"after",ue=(S,D)=>{let X=Me.current;if(!I||!X||X===S||de(X)!==de(S))return;D.preventDefault(),D.dataTransfer.dropEffect="move";let oe=Ke(D.clientX,D.currentTarget.getBoundingClientRect());Fe(_=>_?.id===S&&_.side===oe?_:{id:S,side:oe});},_e=(S,D)=>{let X=Me.current;if(Fe(null),!I||!X||X===S||de(X)!==de(S))return;if(D.preventDefault(),D.stopPropagation(),Ke(D.clientX,D.currentTarget.getBoundingClientRect())==="before")F?.(X,S);else {let _=Be[Be.indexOf(S)+1];F?.(X,_===X?Be[Be.indexOf(S)+2]:_);}Me.current=null;},[be,w]=react.useState(null),K=(S,D)=>{if(!$)return;D.preventDefault(),D.stopPropagation();let X=D.currentTarget,oe=D.clientX,_=S.state.width,U=tt.current?-1:1,ae=S.state.id;w(ae),X.setPointerCapture(D.pointerId);let ke=_,me=false,$e=B=>{me=true,ke=_+(B.clientX-oe)*U,h?.(ae,ke,false);},ge=()=>{X.releasePointerCapture?.(D.pointerId),X.removeEventListener("pointermove",$e),X.removeEventListener("pointerup",ge),X.removeEventListener("pointercancel",ge),me&&h?.(ae,ke,true),w(null);};X.addEventListener("pointermove",$e),X.addEventListener("pointerup",ge),X.addEventListener("pointercancel",ge);},W=(S,D,X)=>{let oe=S.def,_=S.state.id,U=m&&oe.sortable!==false,ae=g&&oe.filterable!==false,ke=_===datagridCore.GROUP_COLUMN_ID,me=te.get(ke?d?.[0]??_:_),$e=L&&oe.groupable!==false||I&&oe.reorderable!==false,ge=Xe?.id===_?Xe.side:null;return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-header-cell${D}${U?" kanuni-datagrid-header-cell--sortable":""}${ge?` kanuni-datagrid-header-cell--drop-${ge}`:""}${be===_?" kanuni-datagrid-header-cell--resizing":""}`,style:X,role:"columnheader","aria-labelledby":`${pe}-${encodeURIComponent(_)}`,"aria-sort":me?me.direction==="asc"?"ascending":"descending":"none","data-column-id":_,tabIndex:_===Ee?0:-1,onFocus:()=>Se(_),draggable:$e&&be===null,onDragStart:B=>{B.dataTransfer.setData("text/x-kanuni-column",_),B.dataTransfer.effectAllowed="move",Me.current=_,tt.current=getComputedStyle(B.currentTarget).direction==="rtl";},onDragEnd:()=>{Me.current=null,Fe(null);},onDragOver:I?B=>ue(_,B):void 0,onDragLeave:I?()=>Fe(B=>B?.id===_?null:B):void 0,onDrop:I?B=>_e(_,B):void 0,onContextMenu:N&&!datagridCore.isChromeColumn(_)?B=>N(_,B):void 0,onClick:U?B=>f(_,B.shiftKey):void 0,onKeyDown:B=>{B.key==="ArrowRight"?(B.preventDefault(),Ce(1)):B.key==="ArrowLeft"?(B.preventDefault(),Ce(-1)):B.key==="Home"?(B.preventDefault(),Ne(re[0])):B.key==="End"?(B.preventDefault(),Ne(re[re.length-1])):ae&&B.altKey&&B.key==="ArrowDown"?(B.preventDefault(),y?.(_,B.currentTarget)):U&&(B.key==="Enter"||B.key===" ")&&(B.preventDefault(),f(_,B.shiftKey));},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-header-label",id:`${pe}-${encodeURIComponent(_)}`,children:Zi(oe,_)}),me&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:me.direction==="asc"?"\u25B2":"\u25BC"}),me&&s.length>1&&!ke&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:me.order+1}),g&&oe.filterable!==false&&jsxRuntime.jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${ie.has(_)?" kanuni-datagrid-filter-button--active":""}${C==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":datagridCore.fillText(b.filterColumnAria,{column:oe.headerName??_}),"aria-haspopup":"dialog","data-filter-button":_,tabIndex:-1,onClick:B=>{B.stopPropagation(),y?.(_,B.currentTarget);},children:jsxRuntime.jsx(Ji,{})}),$&&oe.resizable!==false&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":_,role:"presentation",onPointerDown:B=>K(S,B),onDoubleClick:B=>{B.stopPropagation(),G?.(_);},onClick:B=>B.stopPropagation()})]},_)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(t/At)+1,style:{width:n.totalWidth+E.total,top:t||void 0},children:[P&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":E.colIndex("rowNumberColumn"),"aria-label":b.rowNumberAria,style:{width:It,insetInlineStart:E.inset("rowNumberColumn")},children:M??""}),v&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":E.colIndex("detailColumn"),"aria-label":b.detailsAria,style:{width:bn,insetInlineStart:E.inset("detailColumn")}}),k&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":E.colIndex("checkboxColumn"),style:{width:wn,insetInlineStart:E.inset("checkboxColumn")},children:jsxRuntime.jsx("input",{type:"checkbox",checked:x==="all",ref:S=>{S&&(S.indeterminate=x==="some");},"aria-label":b.selectAllRows,disabled:A,onChange:()=>u?.()})}),n.left.map((S,D)=>W(S,` kanuni-datagrid-header-cell--pinned${D===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:S.state.width,insetInlineStart:n.leftOffsets[D]+E.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(S=>{let D=e?.get(S.state.id);return D===void 0?W(S,"",{width:S.state.width}):W(S," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:S.state.width,insetInlineStart:D+E.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((S,D)=>W(S,` kanuni-datagrid-header-cell--pinned${D===0?" kanuni-datagrid-pin-edge-right":""}`,{width:S.state.width,insetInlineEnd:n.rightOffsets[D]}))]})}var Ro=react.memo(ji);function Co(t,e,n=[]){let r=null,l=new Set,a=s=>{if(l.has(s)||(l.add(s),e.isPending(s)))return;let m=e.textFor(s);if(m===null)return;let f=t[s]??"";f!==m&&(f===""&&m===""||(r??={...t},r[s]=m));};for(let s of Object.keys(t))a(s);for(let s of n)a(s);return r??t}function el({bandOffset:t=0,stickyInsets:e,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,values:s,checkboxColumn:m=false,detailColumn:f=false,rowNumberColumn:g=false,placeholder:p,onChange:y,onCommit:C,periodSuggestions:k,periodListId:v}){let P=ne(),M=je({rowNumberColumn:g,detailColumn:f,checkboxColumn:m}),x=p??P.filterPlaceholder,A=(u,L,I)=>{let F=u.state.id,$=u.def.filterable!==false;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-filter-cell${L}`,style:I,"data-column-id":F,children:$&&jsxRuntime.jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:s[F]??"",placeholder:x,"aria-label":datagridCore.fillText(P.filterColumnAria,{column:u.def.headerName??F}),"data-filter-for":F,list:u.def.dataType==="date"&&v?v:void 0,onChange:h=>y(F,h.target.value),onKeyDown:h=>{h.key==="Enter"&&C?.(F,h.target.value);},onBlur:h=>C?.(F,h.target.value)})},F)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+M.total,"--dg-band-offset":`${t}px`},children:[v&&k&&k.length>0&&jsxRuntime.jsx("datalist",{id:v,children:k.map(u=>jsxRuntime.jsx("option",{value:u},u))}),M.total>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",style:{width:M.total,insetInlineStart:0}}),n.left.map((u,L)=>A(u,` kanuni-datagrid-filter-cell--pinned${L===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:u.state.width,insetInlineStart:n.leftOffsets[L]+M.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(u=>{let L=e?.get(u.state.id);return L===void 0?A(u,"",{width:u.state.width}):A(u," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:u.state.width,insetInlineStart:L+M.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((u,L)=>A(u,` kanuni-datagrid-filter-cell--pinned${L===0?" kanuni-datagrid-pin-edge-right":""}`,{width:u.state.width,insetInlineEnd:n.rightOffsets[L]}))]})}var ko=react.memo(el);var Wr=react.createContext("");function So({theme:t,density:e,palette:n,children:r}){let l=react.useMemo(()=>datagridCore.themeClassName(t,e,n),[t,e,n]);return jsxRuntime.jsx(Wr.Provider,{value:l,children:r})}function Eo(){return react.useContext(Wr)}function Ve({children:t,dark:e=false}){let[n,r]=react.useState(null),l=Eo();return react.useEffect(()=>{let a=document.createElement("div");return a.className=`kanuni-datagrid-root kanuni-datagrid-portal${e?" kanuni-datagrid-dark":""}${l}`,document.body.appendChild(a),r(a),()=>{a.remove();}},[e,l]),n?reactDom.createPortal(t,n):null}function Ut({anchor:t,onClose:e,margin:n=8,autoFocus:r=false}){let l=react.useRef(null),[a,s]=react.useState(t),m=react.useCallback(f=>{if(l.current=f,!f)return;let g=f.getBoundingClientRect(),p=t.top+g.height+n>window.innerHeight,y=t.top-g.height-n*2,C=p&&y>n?y:t.top;s({left:Math.max(n,Math.min(t.left,window.innerWidth-g.width-n)),top:Math.max(n,Math.min(C,window.innerHeight-g.height-n))}),r&&f.focus();},[t.left,t.top,n,r]);return react.useEffect(()=>{let f=y=>{let C=l.current;C&&!C.contains(y.target)&&e();},g=y=>{y.key==="Escape"&&e();},p=y=>{let C=l.current,k=y.target;C&&k instanceof Node&&C.contains(k)||e();};return document.addEventListener("mousedown",f),document.addEventListener("keydown",g),window.addEventListener("scroll",p,true),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("keydown",g),window.removeEventListener("scroll",p,true);}},[e]),{position:a,ref:m,elementRef:l}}var Cn=25,Vt=new Map,Ur=200,hl=200,Vr=8;function wl(t){let e=ne();return react.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 bl=react.memo(function({label:e,display:n,index:r,active:l,checked:a,onToggle:s,onFocus:m}){return jsxRuntime.jsxs("div",{role:"option","aria-selected":a,tabIndex:0,className:`kanuni-datagrid-filter-item${l?" kanuni-datagrid-filter-item--active":""}`,"data-value":e,"data-index":r,onFocus:()=>m(r),onClick:()=>s(e),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:a,tabIndex:-1}),jsxRuntime.jsx("span",{children:n})]})});function Lo({gridId:t,columnId:e,headerLabel:n,entries:r,initialSelected:l,anchor:a,loading:s=false,dark:m,onApply:f,onClose:g,truncated:p=false,onSearch:y,labels:C}){let k=wl(C),[v,P]=react.useState(""),[M,x]=react.useState(0),[A,u]=react.useState(()=>new Set(l??r.map(w=>w.label))),[L,I]=react.useState(false),F=react.useRef(null),$=react.useRef(null),[h,G]=react.useState(0),[N,d]=react.useState(240),b=`${t??""}:${e}`,E=Vt.get(b),te=react.useRef(E?.scrollTop??null),[ie,re]=react.useState(E&&E.width&&E.height?{width:E.width,height:E.height}:null),Ye=react.useCallback(w=>{F.current=w,w?.focus();},[]),Se=react.useRef(null),pe=react.useMemo(()=>{let w=datagridCore.foldText(v.trim());if(!w||p)return r;let K=Se.current;(!K||K.entries!==r)&&(K={entries:r,lowered:r.map(S=>datagridCore.foldText(S.label)),needle:"",result:[]},Se.current=K);let W=K.needle!==""&&w.includes(K.needle)?K.result.filter(S=>datagridCore.foldText(S.label).includes(w)):r.filter((S,D)=>K.lowered[D].includes(w));return K.needle=w,K.result=W,W},[r,v,p]);react.useEffect(()=>{if(!y)return;let w=setTimeout(()=>y(v),150);return ()=>clearTimeout(w)},[v,y]),react.useEffect(()=>{L||l||u(new Set(r.map(w=>w.label)));},[r,L,l]);let Ee=react.useCallback(w=>{$.current=w,w&&d(w.clientHeight||240);},[]);react.useEffect(()=>{let w=$.current;!w||te.current===null||s||w.scrollHeight<=w.clientHeight||(w.scrollTop=te.current,te.current=null,G(w.scrollTop));});let Ne=react.useMemo(()=>{let w=pe.length,K=Math.max(0,Math.floor(h/Cn)-Vr),W=Math.ceil(N/Cn)+Vr*2,S=Math.min(K,Math.max(0,w-1)),D=Math.min(w,S+W);return {start:S,end:D,count:w,rows:pe.slice(S,D)}},[pe,h,N]),Ce=Ut({anchor:a,onClose:g}),[Me,tt]=react.useState(null),Xe=(Me??Ce.position.left)+(ie?.width??260)+48<window.innerWidth?"right":"left",Fe=w=>{w.preventDefault(),w.stopPropagation();let K=Ce.elementRef.current;if(!K)return;let W=K.getBoundingClientRect(),S=Xe,D={x:w.clientX,y:w.clientY,w:W.width,h:W.height,left:W.left},X=null,oe=U=>{let ae=U.clientX-D.x,ke=U.clientY-D.y,me=window.innerHeight-W.top-12,$e=Math.min(me,Math.max(hl,D.h+ke));if(S==="right"){let ge=window.innerWidth-D.left-12;X={width:Math.min(ge,Math.max(Ur,D.w+ae)),height:$e},re(X);}else {let ge=D.left+D.w,B=ge-12,nt=Math.min(B,Math.max(Ur,D.w-ae));X={width:nt,height:$e},re(X),tt(ge-nt);}$.current&&d($.current.clientHeight);},_=()=>{if(window.removeEventListener("pointermove",oe),window.removeEventListener("pointerup",_),X){let U=Vt.get(b);Vt.set(b,{scrollTop:U?.scrollTop??$.current?.scrollTop??0,width:Math.round(X.width),height:Math.round(X.height)});}};window.addEventListener("pointermove",oe),window.addEventListener("pointerup",_);},Be=react.useCallback(w=>{I(true),u(K=>{let W=new Set(K);return W.has(w)?W.delete(w):W.add(w),W});},[]),de=react.useCallback(w=>x(w),[]),Ke=()=>{if(s)return;if(A.size===r.length){f(null);return}let w=r.filter(D=>A.has(D.label)),K=w.some(D=>D.value===null||D.value===void 0),W=w.filter(D=>D.value!==null&&D.value!==void 0),S;W.length===0?S={columnId:e,operator:"isnull"}:K?S={logic:"or",nodes:[{columnId:e,operator:"in",value:W.map(D=>D.value)},{columnId:e,operator:"isnull"}]}:S={columnId:e,operator:"in",value:W.map(D=>D.value)},f(S);},ue=w=>{let K=Math.max(0,Math.min(pe.length-1,w));x(K);let W=Ce.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${K}"]`);W?.focus(),W?.scrollIntoView({block:"nearest"});},_e=w=>w.key.length===1&&!w.ctrlKey&&!w.metaKey&&!w.altKey,be=w=>{let K=w.target===F.current;if(w.key==="Backspace"&&!K){w.preventDefault(),F.current?.focus(),P(W=>W.slice(0,-1)),x(0);return}if(w.key==="ArrowDown"){w.preventDefault(),ue(K?0:M+1);return}if(w.key==="ArrowUp"){w.preventDefault(),ue(K?pe.length-1:M-1);return}if(!K&&(w.key==="Home"||w.key==="End")){w.preventDefault(),ue(w.key==="Home"?0:pe.length-1);return}if(w.key===" "&&!K){w.preventDefault();let W=pe[M];W&&Be(W.label);return}if(w.key==="Enter"){w.preventDefault(),Ke();return}!K&&_e(w)&&w.key!==" "&&(w.preventDefault(),F.current?.focus(),P(W=>W+w.key),x(0));};return jsxRuntime.jsx(Ve,{dark:m,children:jsxRuntime.jsxs("div",{ref:Ce.ref,className:"kanuni-datagrid-filter-popup",style:{left:Me??Ce.position.left,top:Ce.position.top,...ie?{width:ie.width,height:ie.height,maxHeight:"none"}:null},role:"dialog","aria-label":`${n} filter`,onKeyDown:be,children:[jsxRuntime.jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${Xe}`,"data-testid":"dg-filter-resize",onPointerDown:Fe}),jsxRuntime.jsx("input",{ref:Ye,className:"kanuni-datagrid-filter-search",type:"search",placeholder:k.search,value:v,onChange:w=>{P(w.target.value),x(0);},"data-testid":"dg-filter-search"}),p&&jsxRuntime.jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:k.truncated}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>{I(true),u(new Set(r.map(w=>w.label)));},children:k.selectAll}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{I(true),u(new Set);},children:k.clear})]}),jsxRuntime.jsxs("div",{ref:Ee,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true","aria-busy":s||void 0,"aria-setsize":pe.length,onScroll:w=>{let K=w.target.scrollTop;G(K),te.current=null;let W=Vt.get(b);Vt.set(b,{...W,scrollTop:K});},children:[s&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:k.loading}),!s&&pe.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:k.noMatch}),Ne.count>0&&jsxRuntime.jsx("div",{style:{height:pe.length*Cn,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${Ne.start*Cn}px)`},children:Ne.rows.map((w,K)=>{let W=Ne.start+K;return jsxRuntime.jsx(bl,{label:w.label,display:w.label===""?k.blank:w.label,index:W,active:W===M,checked:A.has(w.label),onToggle:Be,onFocus:de},w.label)})})})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:g,children:k.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:Ke,disabled:s,"data-testid":"dg-filter-apply",children:k.apply})]})]})})}var Io="text/x-kanuni-column";function Cl({columns:t,levels:e,onSetLevels:n,maxLevels:r=1,onExpandAll:l,onCollapseAll:a,emptyText:s}){let m=ne(),f=s??m.groupPanelHint,[g,p]=react.useState(false),y=react.useRef(null),[C,k]=react.useState(null),v=h=>t.find(N=>N.state.id===h)?.def.headerName??h,P=h=>{if(!h||e.includes(h))return;let G=e.length>=r?e.slice(0,r-1):[...e];n([...G,h]);},M=h=>n(e.filter(G=>G!==h)),x=(h,G)=>{let N=e.filter(b=>b!==h),d=Math.max(0,Math.min(N.length,G));n([...N.slice(0,d),h,...N.slice(d)]);},A=(h,G,N)=>{if(h===G)return;let b=e.filter(E=>E!==h).indexOf(G);b<0||x(h,N==="before"?b:b+1);},u=(h,G)=>{let N=h+G;N<0||N>=e.length||A(e[h],e[N],G<0?"before":"after");},L=(h,G)=>h<G.top+G.height/2?"before":"after",I=(h,G)=>{G.preventDefault(),G.stopPropagation();let N=L(G.clientY,G.currentTarget.getBoundingClientRect());k(null),p(false);let d=y.current;if(y.current=null,d){A(d,e[h],N);return}let b=G.dataTransfer.getData(Io);if(!b||e.includes(b))return;if(e.length>=r){P(b);return}let E=N==="before"?h:h+1;n([...e.slice(0,E),b,...e.slice(E)]);},F=(h,G,N)=>{let d=N.ctrlKey||N.metaKey;d&&(N.key==="ArrowUp"||N.key==="ArrowLeft")?(N.preventDefault(),u(h,-1)):d&&(N.key==="ArrowDown"||N.key==="ArrowRight")?(N.preventDefault(),u(h,1)):(N.key==="Delete"||N.key==="Backspace")&&(N.preventDefault(),M(G));},$=t.filter(h=>!e.includes(h.state.id));return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-group-panel${g?" kanuni-datagrid-group-panel--over":""}`,onDragOver:h=>{h.preventDefault(),p(true);},onDragLeave:()=>p(false),onDrop:h=>{if(h.preventDefault(),p(false),k(null),y.current){y.current=null;return}P(h.dataTransfer.getData(Io));},children:[e.length>0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-group-levels",children:e.map((h,G)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-group-level${C?.index===G?` kanuni-datagrid-group-level--drop-${C.side}`:""}`,style:{"--dg-group-level":G},"data-group-level":G,onDragOver:N=>{N.preventDefault(),N.stopPropagation();let d=L(N.clientY,N.currentTarget.getBoundingClientRect());k(b=>b?.index===G&&b.side===d?b:{index:G,side:d});},onDragLeave:()=>k(N=>N?.index===G?null:N),onDrop:N=>I(G,N),children:jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:r>1&&e.length>1,tabIndex:0,role:"button","aria-label":`${datagridCore.fillText(m.groupLevelAria,{n:G+1})}: ${v(h)}`,onDragStart:N=>{y.current=h,N.dataTransfer.effectAllowed="move",N.dataTransfer.setData(Io,h);},onDragEnd:()=>{y.current=null,k(null);},onKeyDown:N=>F(G,h,N),children:[r>1&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-chip-level",children:G+1}),v(h),jsxRuntime.jsx("button",{type:"button","aria-label":datagridCore.fillText(m.groupRemoveAria,{column:v(h)}),onClick:()=>M(h),children:"\xD7"})]})},h))}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-panel-hint",children:f}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-group-panel-actions",children:[e.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:l,children:m.groupExpandAll}),jsxRuntime.jsx("button",{type:"button",onClick:a,children:m.groupCollapseAll})]}),jsxRuntime.jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-sr-only",children:r>1?m.groupAddLevel:m.groupByColumn}),r>1?jsxRuntime.jsxs("select",{value:"",disabled:$.length===0,onChange:h=>P(h.target.value),children:[jsxRuntime.jsx("option",{value:"",children:m.groupAddLevelButton}),$.map(h=>jsxRuntime.jsx("option",{value:h.state.id,children:h.def.headerName??h.state.id},h.state.id))]}):jsxRuntime.jsxs("select",{value:e[0]??"",onChange:h=>n(h.target.value?[h.target.value]:[]),children:[jsxRuntime.jsx("option",{value:"",children:m.groupNoGrouping}),t.map(h=>jsxRuntime.jsx("option",{value:h.state.id,children:h.def.headerName??h.state.id},h.state.id))]})]})]})]})}var Ho=react.memo(Cl);function Dl({layout:t,centerColumns:e,leadingSpacer:n,trailingSpacer:r,defs:l,values:a,checkboxColumn:s=false,detailColumn:m=false,rowNumberColumn:f=false,onPickSummary:g,emptyHint:p="",position:y="bottom",bandOffset:C=0,headerRowsBetween:k=0}){let v=ne(),P=datagridCore.summaryTypeLabels(v),M=new Map(l.map(u=>[u.columnId,u])),x=je({rowNumberColumn:f,detailColumn:m,checkboxColumn:s}).total,A=(u,L,I)=>{let F=u.state.id,$=M.get(F),h=$?a[datagridCore.summaryKey($.columnId,$.type)]:void 0,G=u.def.dataType==="number",N=datagridCore.isChromeColumn(F)?void 0:g;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-footer-cell${L}${G?" kanuni-datagrid-footer-cell--number":""}${$?" kanuni-datagrid-footer-cell--active":""}`,style:I,role:"gridcell","data-column-id":F,"data-summary-type":$?.type??"",title:$?`${datagridCore.summaryLabel($,P)} \u2014 ${u.def.headerName??F}`:void 0,onContextMenu:N?d=>N(F,d):void 0,onClick:N?d=>N(F,d):void 0,children:$?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-value",children:datagridCore.formatSummaryValue($,h,u.def)}):N?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-hint",children:p}):null},F)};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${y}`,role:"row","aria-label":v.columnTotalsAria,style:{width:t.totalWidth+x,"--dg-band-offset":`${C}px`,"--dg-pinned-gap":String(k)},children:[x>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:x,insetInlineStart:0}}),t.left.map((u,L)=>A(u,` kanuni-datagrid-footer-cell--pinned${L===t.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:u.state.width,insetInlineStart:t.leftOffsets[L]+x})),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),e.map(u=>A(u,"",{width:u.state.width})),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),t.right.map((u,L)=>A(u,` kanuni-datagrid-footer-cell--pinned${L===0?" kanuni-datagrid-pin-edge-right":""}`,{width:u.state.width,insetInlineEnd:t.rightOffsets[L]}))]})}var kn=react.memo(Dl);function El(t,e){return `__dg_pinned_${t}_${e}`}function Nl({gridId:t,side:e,rows:n,layout:r,columnModel:l,centerColumns:a,centerIndices:s,stickyInsets:m,leadingSpacer:f,trailingSpacer:g,checkboxColumn:p=false,detailColumn:y=false,rowNumberColumn:C=false,rowHeight:k,bandOffset:v=0,headerRowsBetween:P,ariaRowBase:M}){return n.length===0?null:jsxRuntime.jsx("div",{className:`kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--${e}`,role:"rowgroup",style:{width:r.totalWidth||"100%","--dg-band-offset":`${v}px`,"--dg-pinned-gap":String(P)},children:n.map((x,A)=>{let u={kind:"data",key:El(e,A),sourceIndex:-1,data:x};return jsxRuntime.jsx(Ht,{gridId:t,node:u,index:A,layout:r,columnModel:l,centerColumns:a,centerIndices:s,stickyInsets:m,leadingSpacer:f,trailingSpacer:g,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:p,detailColumn:y,rowNumberColumn:C,rowNumber:null,headerRowCount:M,height:k},u.key)})})}var xn=react.memo(Nl);function qr({controller:t,renderRow:e,width:n,bandOffset:r,headerRowsBetween:l,belowPinned:a}){let[,s]=react.useReducer(g=>g+1,0);react.useEffect(()=>{let g=[t.events.on("bodyScroll",s),t.events.on("contentReady",s),t.events.on("viewportChanged",s)];return ()=>g.forEach(p=>p())},[t]);let m=react.useRef(null);react.useLayoutEffect(()=>{m.current?.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(g=>g.setAttribute("tabindex","-1"));});let f=t.getStickyGroupRows();return f.length===0?null:jsxRuntime.jsx("div",{ref:m,className:"kanuni-datagrid-sticky-groups","aria-hidden":"true",style:{width:n||"100%","--dg-band-offset":`${r}px`,"--dg-pinned-gap":String(l),"--dg-sticky-below":`${a}px`},children:f.map((g,p)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-sticky-group${p===f.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:g.offset,height:g.height,zIndex:f.length-p},children:e(g.node,g.index,g.height)},String(g.node.key)))})}async function Yt(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 datagridCore.downloadBlob(n.blob,n.fileName),{completed:!0}}catch(n){return n instanceof datagridCore.ExportAbortedError?{completed:false}:{completed:false,error:n instanceof Error?n.message:String(n)}}}function xt({anchor:t,onClose:e,children:n,dark:r,className:l="",label:a,role:s="dialog"}){let m=Ut({anchor:t,onClose:e});return jsxRuntime.jsx(Ve,{dark:r,children:jsxRuntime.jsx("div",{ref:m.ref,className:`kanuni-datagrid-filter-popup ${l}`.trim(),style:{left:m.position.left,top:m.position.top},role:s,"aria-label":a,children:n})})}function Bl(t){let e=ne();return react.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 Kl=()=>jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.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 _l({controller:t,search:e=true,exportCsv:n=true,exportExcel:r=false,exportPdf:l=false,columnChooser:a=true,dark:s,onOpenColumnChooser:m,itemsBefore:f,itemsAfter:g,searchDebounce:p=200,labels:y}){let C=Bl(y),[k,v]=react.useState(t.getSearchText()),[P,M]=react.useState(null),[x,A]=react.useState(null),[u,L]=react.useState(null);react.useEffect(()=>{let h=setTimeout(()=>t.setSearchText(k),p);return ()=>clearTimeout(h)},[t,k,p]);let[I,F]=react.useState(()=>t.getSelectedCount());react.useEffect(()=>(F(t.getSelectedCount()),t.events.on("selectionChanged",()=>F(t.getSelectedCount()))),[t]);let $=async h=>{M(h),L(null);let G=await Yt(t,h);G.error?L(G.error):A(null),M(null);};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-toolbar",children:[f,e&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:C.search,value:k,"aria-label":C.search,"data-testid":"dg-toolbar-search",onChange:h=>v(h.target.value)}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxRuntime.jsx("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:h=>{let G=h.currentTarget.getBoundingClientRect();m?.({left:G.left,top:G.bottom+2});},children:C.columns}),(n&&t.canExportAll()||r||l)&&jsxRuntime.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:h=>{let G=h.currentTarget.getBoundingClientRect();A(x?null:{left:G.right-190,top:G.bottom+2});},children:P?jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsxRuntime.jsx(Kl,{})}),x&&jsxRuntime.jsxs(xt,{anchor:x,onClose:()=>A(null),dark:s,role:"menu",label:C.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&t.canExportAll()&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-csv",onClick:()=>$("csv"),children:P==="csv"?C.exporting:C.csv}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-excel",onClick:()=>$("excel"),children:P==="excel"?C.exporting:C.excel}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null||I===0,"data-testid":"dg-export-excel-selected",onClick:()=>$("excel-selected"),children:P==="excel-selected"?C.exporting:C.excelSelected}),l&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-pdf",onClick:()=>$("pdf"),children:P==="pdf"?C.exporting:C.pdf})]}),g,u&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:u})]})}var Ao=react.memo(_l);function Wl(t){let e=ne();return react.useMemo(()=>({title:e.hiddenColumns,empty:e.noHiddenColumns,showAll:e.showAll,ok:e.ok,...t}),[e,t])}function Oo({controller:t,columns:e,anchor:n,onClose:r,dark:l,labels:a}){let s=Wl(a),m=e.filter(f=>!f.visible);return jsxRuntime.jsxs(xt,{anchor:n,onClose:r,dark:l,label:s.title,className:"kanuni-datagrid-column-chooser",children:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-list",children:[m.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-empty",children:s.empty}),m.map(f=>{let g=t.getColumnModel().getDef(f.id);return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsxRuntime.jsx("input",{type:"checkbox",checked:false,"data-column-toggle":f.id,onChange:()=>t.setColumnVisible(f.id,true)}),jsxRuntime.jsx("span",{children:g?.headerName??f.id})]},f.id)})]}),m.length>0&&jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>m.forEach(f=>t.setColumnVisible(f.id,true)),children:s.showAll}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:r,children:s.ok})]})]})}function Xl(t){let e=ne();return react.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 ql({page:t,pageCount:e,pageSize:n,pageSizes:r=[25,50,100,250],totalRows:l,onPage:a,onNext:s,onPrevious:m,onPageSize:f,pageButtons:g=false,maxPageButtons:p,labels:y}){let C=Xl(y),k=t<=0,v=t>=e-1,P=l===0?0:t*n+1,M=Math.min(l,(t+1)*n),x=react.useRef(null),A=react.useRef(null);return react.useEffect(()=>{let u=A.current,L=x.current;if(!L||!(u instanceof HTMLButtonElement)||!u.disabled)return;let I=document.activeElement;if(I&&I!==document.body&&I!==u)return;let F=L.querySelector('[aria-current="page"]')??L.querySelector("button:not(:disabled)");F?.focus(),A.current=F;},[t,e]),jsxRuntime.jsxs("div",{ref:x,className:"kanuni-datagrid-pager",role:"navigation","aria-label":C.navigation,onFocus:u=>{A.current=u.target;},onBlur:u=>{let L=u.relatedTarget;L&&!x.current?.contains(L)&&(A.current=null);},children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsxRuntime.jsx("span",{children:C.rowsPerPage}),jsxRuntime.jsx("select",{value:n,"data-testid":"dg-page-size",onChange:u=>f(Number(u.target.value)),children:r.map(u=>jsxRuntime.jsx("option",{value:u,children:u},u))})]}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[P.toLocaleString(),"\u2013",M.toLocaleString()," ",C.of," ",l.toLocaleString()]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsxRuntime.jsx("button",{type:"button","aria-label":C.first,disabled:k,onClick:()=>a(0),children:"\xAB"}),jsxRuntime.jsx("button",{type:"button","aria-label":C.previous,disabled:k,"data-testid":"dg-page-prev",onClick:m,children:"\u2039"}),g?datagridCore.pageButtonItems(t,e,p).map(u=>typeof u=="number"?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":datagridCore.fillText(C.pageButton,{n:String(u+1)}),"aria-current":u===t?"page":void 0,onClick:()=>a(u),children:u+1},u):jsxRuntime.jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},u)):jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[C.page," ",t+1," ",C.of," ",e]}),jsxRuntime.jsx("button",{type:"button","aria-label":C.next,disabled:v,"data-testid":"dg-page-next",onClick:s,children:"\u203A"}),jsxRuntime.jsx("button",{type:"button","aria-label":C.last,disabled:v,onClick:()=>a(e-1),children:"\xBB"})]})]})}var Fo=react.memo(ql);function ns(t){let e=ne();return react.useMemo(()=>({clear:e.filterRemove,toggle:e.filterToggle,builder:e.filterEditBuilder,empty:e.filterNone,...t}),[e,t])}function os({controller:t,onOpenBuilder:e,alwaysVisible:n=false,describeOptions:r,labels:l}){let a=ns(l),s=ne(),[,m]=react.useState(0);react.useEffect(()=>t.events.on("filterChanged",()=>m(y=>y+1)),[t]);let f=t.getEffectiveFilter(),g=t.isFilterEnabled(),p=datagridCore.describeFilter(f,t.getColumnModel(),{...r,labels:{...datagridCore.filterLabels(s),...r?.labels}});return !f&&!n?null:jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-panel${g?"":" kanuni-datagrid-filter-panel--suspended"}`,"data-testid":"dg-filter-panel",role:"group","aria-label":a.toggle,children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-clear",title:a.clear,"aria-label":a.clear,disabled:!f,"data-testid":"dg-filter-panel-clear",onClick:()=>{t.setFilter(null),t.clearColumnFilters(),t.setFilterEnabled(true);},children:"\xD7"}),jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-filter-panel-toggle",checked:g,disabled:!f,title:a.toggle,"aria-label":a.toggle,"data-testid":"dg-filter-panel-toggle",onChange:y=>t.setFilterEnabled(y.target.checked)}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:p??void 0,"data-testid":"dg-filter-panel-text",children:p??a.empty}),e&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-builder",title:a.builder,"aria-label":a.builder,"data-testid":"dg-filter-panel-builder",onClick:e,children:"\u25BE"})]})}var Bo=react.memo(os);var Dn=t=>!t.separator&&!t.disabled;function Gn({x:t,y:e,items:n,context:r,onClose:l,dark:a=false,label:s}){let m=ne(),f=react.useRef(null),[g,p]=react.useState({left:t,top:e}),[y,C]=react.useState(()=>n.findIndex(Dn)),[k,v]=react.useState(null),[P,M]=react.useState(null),x=react.useRef(null),[A,u]=react.useState(null);react.useEffect(()=>M(null),[k]);let L=react.useCallback((d,b)=>{if(v(d),d===null||!b)return;let E=b.getBoundingClientRect();u({left:E.left,right:E.right,top:E.top});},[]),I=d=>f.current?.querySelector(`[data-item-index="${d}"]`)??null,F=react.useCallback(d=>{if(x.current=d,!d||!A)return;let b=8,E=d.getBoundingClientRect(),te=Math.max(b,Math.min(A.top-4,window.innerHeight-E.height-b)),re=A.right+E.width+b<=window.innerWidth?A.right:Math.max(b,A.left-E.width);M({left:re,top:te});},[A]),$=react.useCallback(d=>{if(f.current=d,!d)return;let b=d.getBoundingClientRect(),E=8;p({left:Math.max(E,Math.min(t,window.innerWidth-b.width-E)),top:Math.max(E,Math.min(e,window.innerHeight-b.height-E))}),d.focus();},[t,e]);react.useEffect(()=>{let d=E=>{let te=E.target;x.current?.contains(te)||f.current&&!f.current.contains(te)&&l();},b=()=>l();return document.addEventListener("mousedown",d),window.addEventListener("scroll",b,true),()=>{document.removeEventListener("mousedown",d),window.removeEventListener("scroll",b,true);}},[l]);let h=(d,b)=>{let E=n.length;for(let te=1;te<=E;te++){let ie=(d+b*te+E*E)%E;if(Dn(n[ie]))return ie}return d},G=d=>{let b=n[d];if(!(!b||!Dn(b))){if(b.items?.length){L(d,I(d));return}b.onSelect?.(r),l();}},N=d=>{switch(d.key){case "ArrowDown":C(b=>h(b,1));break;case "ArrowUp":C(b=>h(b,-1));break;case "Home":C(n.findIndex(Dn));break;case "End":C(h(0,-1));break;case "ArrowRight":if(n[y]?.items?.length)L(y,I(y));else return;break;case "ArrowLeft":if(k!==null)L(null);else return;break;case "Enter":case " ":G(y);break;case "Escape":l();break;case "Tab":l();return;default:return}d.preventDefault(),d.stopPropagation();};return jsxRuntime.jsxs(Ve,{dark:a,children:[jsxRuntime.jsx("div",{ref:$,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":s??m.rowActions,tabIndex:-1,style:{left:g.left,top:g.top},onKeyDown:N,children:n.map((d,b)=>d.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},d.id??`sep-${b}`):jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${b===y?" kanuni-datagrid-menu-item--active":""}`,disabled:d.disabled,"data-item-index":b,"aria-haspopup":d.items?.length?"menu":void 0,"aria-expanded":d.items?.length?k===b:void 0,onMouseEnter:E=>{C(b),L(d.items?.length?b:null,E.currentTarget);},onClick:()=>G(b),children:[d.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:d.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:d.label}),d.shortcut&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:d.shortcut}),d.items?.length?jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},d.id??b))}),k!==null&&n[k]?.items?.length?jsxRuntime.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((d,b)=>d.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},d.id??`sub-sep-${b}`):jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:d.disabled,onClick:()=>{d.onSelect?.(r),l();},children:[d.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:d.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:d.label})]},d.id??b))}):null]})}var as=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),$o=as?"\u2318":"Ctrl+",na=`${$o}C`,is=`${$o}X`,ls=`${$o}V`;function Ft(t,e={}){let n=t.getClipboardText(e);t.notifyClipboardGesture("copy",n?n.split(`
2
- `).length:0,()=>!n||!navigator.clipboard?.writeText?false:(oa(n),true));}function oa(t){navigator.clipboard?.writeText(t).catch(()=>{});}function ss(t){let e=t.getColumnModel();return t.getVisualColumnIds().some(n=>{let r=e.getDef(n)?.band;return typeof r=="string"?r!=="":Array.isArray(r)&&r.length>0})}function ds(t){return t===false?[]:Array.isArray(t)?t:["csv","excel","excel-selected","pdf"]}var us={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function Wo(t,e,n,r,l){if(n===false)return [];let a=n===true||n===void 0?{}:n,s=[];a.copy!==false&&s.push({id:"__dg-copy",label:e.menuCopy,shortcut:na,onSelect:()=>Ft(t)}),a.copyWithHeaders!==false&&s.push({id:"__dg-copy-headers",label:e.menuCopyWithHeaders,onSelect:()=>Ft(t,{includeHeaders:true})}),a.copyWithGroupHeaders!==false&&ss(t)&&s.push({id:"__dg-copy-group-headers",label:e.menuCopyWithGroupHeaders,onSelect:()=>Ft(t,{includeGroupHeaders:true})});let m=ds(a.export).filter(f=>f!=="csv"||t.canExportAll());if(m.length>0){let f=t.getSelectedCount()===0;s.push({id:"__dg-export",label:e.menuExport,items:m.map(g=>({id:`__dg-export-${g}`,label:e[us[g]],disabled:g==="excel-selected"&&f,onSelect:()=>{Yt(t,g).then(p=>{p.error&&l?.(p.error);});}}))});}return s.length>0&&r&&s.unshift({id:"__dg-sep-builtin",separator:true}),s}function Vo({anchor:t,value:e,dark:n,onCommit:r,onCancel:l}){let a=ne(),[s,m]=react.useState(e),f=react.useRef(null);react.useEffect(()=>{let p=f.current;p&&(p.focus(),p.select());},[]);let g=()=>{let p=s.trim();r(p===""?null:p);};return jsxRuntime.jsxs(xt,{anchor:t,onClose:l,dark:n,label:a.noteEditorAria,className:"kanuni-datagrid-note-editor",children:[jsxRuntime.jsx("textarea",{ref:f,className:"kanuni-datagrid-note-input",value:s,rows:4,"aria-label":a.noteEditorAria,placeholder:a.notePlaceholder,onChange:p=>m(p.target.value),onKeyDown:p=>{p.key==="Enter"&&(p.ctrlKey||p.metaKey)&&(p.preventDefault(),g()),p.key==="Escape"&&(p.preventDefault(),l());}}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-note-actions",children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-note-cancel",onClick:l,children:a.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-note-save",onClick:g,children:a.save})]})]})}function fs(t){let e=ne();return react.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 hs=new Set(["filtering","sorting","computing","encoding","exporting"]);function Yo({controller:t,delay:e=300,labels:n,cancellable:r=true,forced:l=false}){let[a,s]=react.useState(()=>t.getBusy()),[m,f]=react.useState(false);react.useEffect(()=>(s(t.getBusy()),t.events.on("busyChanged",v=>s(v))),[t]);let g=a.busy&&a.background!==true;react.useEffect(()=>{if(!g){f(false);return}let v=setTimeout(()=>f(true),e);return ()=>clearTimeout(v)},[g,e]);let p=fs(n);if(!l&&(!m||!g))return null;let y=a.phase?p[a.phase]:p.busy,C=a.progress===null?null:Math.max(0,Math.min(100,a.progress)),k=r&&a.phase!==null&&hs.has(a.phase)&&a.cancellable!==false;return jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-overlay",role:"status","aria-live":"polite","data-testid":"dg-loading-overlay","data-phase":a.phase??"busy","data-blocking":a.phase==="exporting"?"true":void 0,"aria-busy":"true",children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-card",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-spinner","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-label",children:y}),C!==null&&jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(C),"aria-valuemin":0,"aria-valuemax":100,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-track",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-fill",style:{width:`${C}%`}})}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(C),"%"]})]}),k&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>t.cancel(),"data-testid":"dg-loading-cancel",children:p.cancel})]})})}var sa=null;function ws(){return typeof document>"u"?null:(sa??=document.createElement("canvas"),sa.getContext("2d"))}function da(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 ys(t){let e=t.map(r=>[r.style.width,r.style.minWidth,r.style.maxWidth]);for(let r of t)r.style.width="max-content",r.style.minWidth="0",r.style.maxWidth="none";let n=0;for(let r of t){let l=Math.ceil(r.getBoundingClientRect().width);l>n&&(n=l);}return t.forEach((r,l)=>{[r.style.width,r.style.minWidth,r.style.maxWidth]=e[l];}),n}function Sn(t,e){let n=ws();if(!n)return null;let r=typeof CSS<"u"&&CSS.escape?CSS.escape(e):e.replace(/"/g,'\\"'),l=t.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${r}"]`),a=t.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${r}"]`);if(!l&&a.length===0)return null;let s=0;if(l){let m=l.querySelector(".kanuni-datagrid-header-label")??l;n.font=da(m),s=n.measureText(m.textContent??"").width+44;}if(a.length>0){n.font=da(a[0]);let m=[];for(let f=0;f<a.length;f++){if(bs(a[f])){m.push(a[f]);continue}let g=a[f].textContent??"";if(g==="")continue;let p=n.measureText(g).width+20;p>s&&(s=p);}m.length>0&&(s=Math.max(s,ys(m)));}return s===0?null:Math.round(Math.min(640,Math.max(48,s)))}function Xo(t,e){let n=react.useRef(e);n.current=e;let r=!!e?.enabled,l=e?.storageKey,a=e?.type;react.useEffect(()=>{if(r)return datagridCore.attachStateStoring(t,{...n.current,enabled:true})},[t,r,l,a]);}var En="application/x-kanuni-row";function Jo(t,e){let n=!!e?.enabled,r=e?.group??null,l=e?.allowReordering??true,a=e?.allowDropInsert??r!==null,[s,m]=react.useState(false),[f,g]=react.useState(null),p=react.useRef(null),y=react.useRef(false),C=react.useRef(null),k=react.useRef(null),v=react.useRef(e);v.current=e;let P=react.useCallback(d=>t.getRowByKey(d),[t]),M=(d,b)=>{let E=b.getBoundingClientRect();return d.clientY<E.top+E.height/2?"before":"after"},x=react.useCallback((d,b)=>{if(!datagridCore.isDataRow(d))return;k.current=d.key,C.current=d.key,y.current=false,p.current=null;let E={gridId:t.gridId,group:r,rowKey:d.key,row:d.data};b.dataTransfer.setData(En,JSON.stringify(E)),b.dataTransfer.setData("text/plain",String(d.key)),b.dataTransfer.effectAllowed="move",t.notifyRowDrag("enter",{rowKey:d.key}),b.stopPropagation();},[t,r]),A=react.useCallback(()=>{let d=C.current;d!==null&&t.notifyRowDragEnd({rowKey:d,dropped:y.current,overKey:p.current?.key??null,position:p.current?.side??null}),y.current=false,p.current=null,C.current=null,k.current=null,g(null),m(false);},[t]),u=react.useCallback(d=>d.dataTransfer.types.includes(En)?k.current!==null?l:a&&r!==null:false,[l,a,r]),L=react.useCallback((d,b)=>{if(!datagridCore.isDataRow(d)||!u(b))return;if(b.preventDefault(),b.dataTransfer.dropEffect="move",k.current===d.key){p.current=null,g(null);return}let E=M(b,b.currentTarget),te=p.current?.key!==d.key||p.current.side!==E;p.current={key:d.key,side:E},g(ie=>ie?.key===d.key&&ie.side===E?ie:{key:d.key,side:E}),te&&k.current!==null&&t.notifyRowDrag("move",{rowKey:k.current,overKey:d.key,position:E});},[u,t]),I=react.useCallback((d,b,E)=>{let te=null;try{let re=d.dataTransfer.getData(En);te=re?JSON.parse(re):null;}catch{te=null;}if(!te)return;if(te.gridId===t.gridId){if(!l)return;let re=v.current?.onReorder;if(re){re({dragKey:te.rowKey,targetKey:b,position:E,row:P(te.rowKey)});return}t.moveRow(te.rowKey,b,E);return}!a||r===null||te.group!==r||v.current?.onAdd?.({row:te.row,rowKey:te.rowKey,otherGridId:te.gridId,targetKey:b,position:E});},[t,l,a,r,P]),F=react.useCallback((d,b)=>{if(g(null),!datagridCore.isDataRow(d)||!u(b))return;b.preventDefault(),b.stopPropagation();let E=M(b,b.currentTarget);y.current=true,p.current={key:d.key,side:E},I(b,d.key,E),k.current=null;},[u,I]),$=react.useCallback(d=>{u(d)&&(d.preventDefault(),d.dataTransfer.dropEffect="move");},[u]),h=react.useCallback(d=>{g(null),u(d)&&(d.preventDefault(),y.current=true,p.current=null,I(d,null,"after"),k.current=null);},[u,I]),G=react.useCallback(d=>{let b=d.relatedTarget;b&&d.currentTarget.contains(b)||k.current!==null&&(p.current=null,g(null),t.notifyRowDrag("leave",{rowKey:k.current}));},[t]);return {handlers:n?{draggable:s,setDraggable:m,onDragStart:x,onDragEnd:A,onDragOver:L,onDrop:F}:void 0,dropAt:n?f:null,bodyHandlers:n?{onDragOver:$,onDrop:h,onDragLeave:G}:void 0}}var Ds=400;function ca(t){return t.scrollWidth>t.clientWidth+1||t.scrollHeight>t.clientHeight+1}function pa(t){return (t.textContent??"").trim()}function Gs(t){let{def:e,node:n,value:r,clipped:l,note:a}=t;if(a)return a;if(e&&n){if(typeof e.tooltip=="function"){let s=e.tooltip({value:r,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 Zo({rootRef:t,columnModel:e,getRowNode:n,getNote:r,config:l}){let a=l?.enabled!==false,s=l?.delay??Ds,m=l?.showOnTruncation!==false,[f,g]=react.useState(null),p=react.useRef({columnModel:e,getRowNode:n,getNote:r,showOnTruncation:m,delay:s});return p.current={columnModel:e,getRowNode:n,getNote:r,showOnTruncation:m,delay:s},react.useEffect(()=>{if(!a){g(null);return}let y=t.current;if(!y)return;let C=null,k=null,v=()=>{C!==null&&(clearTimeout(C),C=null),k=null,g(null);},P=(u,L)=>{let{columnModel:I,getRowNode:F,getNote:$,showOnTruncation:h}=p.current,G=I.getDef(L),N=u.closest("[data-row-key]")?.dataset.rowKey,d=N===void 0?void 0:F(N);return Gs({def:G,node:d,value:d?I.getCellValue(d.data,L):void 0,clipped:h&&ca(u)?pa(u):null,note:d&&$?$(d.key,L,d.data):null})},M=(u,L)=>{let I=p.current.columnModel.getDef(u);if(I?.headerTooltip)return I.headerTooltip;if(!p.current.showOnTruncation)return null;let F=L.querySelector(".kanuni-datagrid-header-label")??L;if(!ca(F))return null;let $=pa(F);return $.length>0?$:null},x=u=>{let I=u.target?.closest("[data-column-id]")??null;if(I===k||(v(),!I||!y.contains(I)))return;let F=I.dataset.columnId;if(!F)return;let $=I.classList.contains("kanuni-datagrid-header-cell");!$&&!I.closest("[data-row-key]")||(k=I,C=setTimeout(()=>{if(C=null,k!==I||!I.isConnected)return;let h=$?M(F,I):P(I,F);if(!h)return;let G=I.getBoundingClientRect();g({text:h,anchor:{top:G.top,left:G.left,width:G.width,height:G.height}});},p.current.delay));},A=u=>{let L=u.relatedTarget;k&&L&&k.contains(L)||v();};return y.addEventListener("mouseover",x),y.addEventListener("mouseout",A),y.addEventListener("mousedown",v),y.addEventListener("keydown",v),y.addEventListener("scroll",v,true),window.addEventListener("blur",v),()=>{v(),y.removeEventListener("mouseover",x),y.removeEventListener("mouseout",A),y.removeEventListener("mousedown",v),y.removeEventListener("keydown",v),y.removeEventListener("scroll",v,true),window.removeEventListener("blur",v);}},[a,t]),a?f:null}var ga=6,Kt=8;function jo({state:t,dark:e}){let[n,r]=react.useState(null),[l,a]=react.useState(null),{text:s,anchor:m}=t;return react.useLayoutEffect(()=>{if(!n)return;let{width:f,height:g}=n.getBoundingClientRect(),p=document.documentElement.clientWidth,y=document.documentElement.clientHeight,C=m.top+m.height+ga,k=m.top-g-ga,P=C+g+Kt<=y||k<Kt?C:k,M=Math.min(Math.max(Kt,m.left),Math.max(Kt,p-f-Kt));a({top:Math.min(P,y-g-Kt),left:M});},[n,s,m]),jsxRuntime.jsx(Ve,{dark:e,children:jsxRuntime.jsx("div",{ref:r,className:"kanuni-datagrid-tooltip",role:"tooltip",style:l?{top:l.top,left:l.left}:{top:0,left:0,visibility:"hidden"},children:s})})}function Nn(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 ha=Nn(datagridCore.getGridDictionary("en"));function Qo(t,e){let n={...ha,...e.labels},{controller:r,maxGroupLevels:l}=e,a=t.columnId,s=r.getColumnModel().getDef(a),m=r.getSort(),f=m.find(u=>u.columnId===a),g=r.getGroupLevels(),p=g.includes(a),y=s?.sortable!==false,C=r.getColumnStates().find(u=>u.id===a)?.pinned??null,k=s?.groupable!==false,v=r.canGroup(),P=[{id:"sort-asc",label:n.sortAsc,disabled:!y||f?.direction==="asc",onSelect:()=>r.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!y||f?.direction==="desc",onSelect:()=>r.setSort([{columnId:a,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!f,onSelect:()=>r.setSort(m.filter(u=>u.columnId!==a))},{id:"sep-1",separator:true}];v&&P.push({id:"group",label:p?n.ungroup:n.groupBy,disabled:!k,onSelect:()=>{p?r.groupBy(g.filter(u=>u!==a)):r.groupBy([...g,a].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:r.getColumnStates().filter(u=>u.visible).length<=1,onSelect:()=>r.setColumnVisible(a,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(a)},{id:"best-fit-all",label:n.bestFitAll,onSelect:e.onBestFitAll});let M=r.getColumnStates().filter(u=>u.visible&&u.pinned===C).map(u=>u.id),x=M.indexOf(a),A=s?.reorderable!==false&&x>=0;return P.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!A||x<=0,onSelect:()=>r.moveColumn(a,M[x-1])},{id:"move-right",label:n.moveRight,disabled:!A||x<0||x>=M.length-1,onSelect:()=>r.moveColumn(a,M[x+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:C==="left",onSelect:()=>r.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:C==="right",onSelect:()=>r.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:C==="sticky",onSelect:()=>r.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:C===null,onSelect:()=>r.setColumnPinned(a,null)}),P}var Qt=typeof window<"u"?react.useLayoutEffect:react.useEffect,Ra=1e8,Mn=null;function ka(){if(Mn!==null)return Mn;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=`${Ra}px`,t.appendChild(e),document.body.appendChild(t),t.scrollTop=Ra;let n=t.scrollTop;return or=e.offsetHeight>0?e.offsetHeight:null,t.remove(),n>0&&(Mn=n),Mn}var or=null;function Us(){return or===null&&ka(),or}function tr(t){return Math.abs(t)}function Ca(t,e){return getComputedStyle(e).direction==="rtl"?-t:t}function Ln(t,e){if(e)return t;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,Ln(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(m=>m.spanRows?{...m,spanRows:void 0}:m)};return Ln(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,Ln(s,e)}if(!t.grouping)return t.masterDetail?nr(t):t;let{groupBy:n,groupSummaries:r}=t.grouping,l=n==null?[]:typeof n=="string"?[n]:n;if(l.length<=1&&!r)return t.masterDetail?nr(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 a={...t,grouping:{...t.grouping,groupBy:l.slice(0,1),groupSummaries:false}};return t.masterDetail?nr(a):a}function nr(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 Vs(t){return jsxRuntime.jsx(ao,{locale:t.locale,messages:t.messages,children:jsxRuntime.jsx(So,{theme:t.theme,density:t.density,palette:t.palette,children:jsxRuntime.jsx(zs,{...t})})})}function zs(t){let e=ne(),{className:n,style:r,dark:l=false,theme:a,palette:s,striped:m=true,emptyText:f,sortable:g=true,filterRow:p=false,headerFilter:y=false,filterIconMode:C="hover",columnReorder:k=true,columnResize:v=true,loadingOverlay:P=true,announcements:M=true,groupPanel:x=false,showRowCount:A=false,toolbar:u=false,toolbarExcel:L=false,toolbarPdf:I=false,filterPanel:F=false,filterPanelLabels:$,onOpenFilterBuilder:h,toolbarItemsBefore:G,toolbarItemsAfter:N,renderRow:d,stateStoring:b,headerMenu:E=true,focusedRow:te=false,focusedRowKey:ie,onFocusedRowChanged:re,footer:Ye,footerMenu:Se=true,onRowClick:pe,onRowActivate:Ee,onReady:Ne,renderCellContent:Ce,getCellClassName:Me,renderOverlay:tt,onCellPointerDown:Xe,onCellPointerEnter:Fe,onCellDoubleClick:Be,enterpriseEdition:de=false,renderDetail:Ke,renderEditForm:ue,density:_e,rowMenu:be,cellMenu:w,autoColumns:K,rowDrag:W,tooltip:S,pinnedTopRows:D,pinnedBottomRows:X,footerPosition:oe="bottom",autoSizeStrategy:_="none",highlightSearch:U=true,...ae}=t,ke=react.useMemo(()=>{let o=ae.columns;if(o&&o.length>0)return o;let c=ae.dataSource;if(!Array.isArray(c)||c.length===0)return o??[];let R=typeof K=="object"?K:void 0;return K===false?o??[]:datagridCore.inferColumns(c,R)},[ae.columns,ae.dataSource,K]),me={...ae,columns:ke},$e=datagridCore.isPackagedTheme(a)?datagridCore.THEME_ROW_HEIGHT[a][_e??"normal"]:_e?datagridCore.DENSITY_ROW_HEIGHT[_e]:datagridCore.DEFAULT_ROW_HEIGHT,ge=me.rowHeight===void 0?{...me,rowHeight:$e}:me,B=de?Number.POSITIVE_INFINITY:1,nt=Ln(ge,de),{controller:i,rows:ye,window:gt,layout:ce,sort:ft,rowHeight:ot,visibleCount:We}=eo(nt),T=no(i,t.printLayout),q=T.active?{...gt,rows:{...gt.rows,start:0,end:ye.length,offsetY:0,totalHeight:0}}:gt,V=react.useMemo(()=>ke.some(o=>o.autoHeight===true),[ke]),ee=y&&i.canListDistinctValues();y&&!ee&&ae.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 O=react.useRef(null);Qt(()=>{i.setEnterpriseEdition(de);},[i,de]),react.useEffect(()=>{Ne?.(i);},[i,Ne]),Qt(()=>{let o=ka();o!==null&&o<datagridCore.DEFAULT_MAX_SCROLL_OFFSET&&i.setMaxScrollOffset(o);let c=Us();c!==null&&i.setMaxCanvasHeight(c);},[i]),Qt(()=>{let o=O.current;if(!o)return;let c=()=>{i.setViewportSize(o.clientWidth,o.clientHeight),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let Z=o.querySelector(".kanuni-datagrid-rows"),z=o.querySelector(".kanuni-datagrid-canvas");if(Z&&z){let Y=Z.getBoundingClientRect(),le=z.getBoundingClientRect();i.setChromeOffsets(Y.top-le.top,le.bottom-Y.bottom);}datagridCore.calibrateMaxScrollOffset(o,i);};if(c(),typeof ResizeObserver>"u")return;let R=new ResizeObserver(c);R.observe(o);let H=o.querySelector(".kanuni-datagrid-canvas");return H&&R.observe(H),()=>R.disconnect()},[i]),Qt(()=>{if(!V)return;let o=O.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let c=i.getVirtualWindow(),R=i.getRows(),H=new Map(i.getMeasuredRowHeights()),Z=false;for(let z=c.rows.start;z<c.rows.end;z++){let Y=R[z];if(!Y||Y.kind!=="data")continue;let le=o.querySelector(`[data-row-key="${CSS.escape(String(Y.key))}"]`);if(!le)continue;let se=le.getBoundingClientRect().height;se>0&&H.get(Y.key)!==se&&(H.set(Y.key,se),Z=true);}Z&&i.setMeasuredRowHeights(H);}),react.useEffect(()=>{if(V)return i.events.on("columnStateChanged",()=>{i.clearMeasuredRowHeights();})},[i,V]),react.useEffect(()=>i.events.on("scrollRequested",o=>{let c=O.current;if(!c)return;o.scrollTop!==void 0&&(c.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(c.scrollLeft=Ca(o.scrollLeft,c)),i.setScroll(c.scrollTop,tr(c.scrollLeft));let R=o.scrollTop;R===void 0||Math.abs(c.scrollTop-R)<=1||setTimeout(()=>{let H=O.current;!H||Math.abs(H.scrollTop-R)<=1||(H.scrollTop=R,i.setScroll(H.scrollTop,tr(H.scrollLeft)));},0);}),[i]);let xe=ro(i,t.alignedGrids,O),Hn=react.useCallback(o=>{let c=o.currentTarget;i.setScroll(c.scrollTop,tr(c.scrollLeft)),xe.syncScroll(c.scrollLeft);},[i,xe]),va=react.useCallback((o,c)=>i.toggleSort(o,c),[i]);Xo(i,b);let Tt=Jo(i,W);react.useEffect(()=>{ie!=null&&i.getFocusedRowKey()!==ie&&i.focusRow(ie);},[i,ie]),react.useEffect(()=>{if(re)return i.events.on("focusedRowChanged",o=>re({rowKey:o.rowKey,row:o.row}))},[i,re]);let qe=react.useRef(null),[An,Da]=react.useState(null);react.useEffect(()=>i.events.on("overlayChanged",o=>{Da(o.manual?o.overlay:null);}),[i]);let Ga=react.useCallback(o=>{let c=i.getDataRowNode(o);if(c)return c;if(o==="")return;let R=Number(o);return Number.isNaN(R)?void 0:i.getDataRowNode(R)},[i]),Te=de?t.notes:void 0;!de&&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 en=!!Te?.onChange&&Te.menu!==false,tn=react.useCallback((o,c,R)=>Te?Te.get({rowKey:o,columnId:c,row:R})??null:null,[Te]),ar=Zo({rootRef:qe,columnModel:i.getColumnModel(),getRowNode:Ga,getNote:Te?tn:void 0,config:S}),[ir,Sa]=react.useState(0);react.useEffect(()=>{let o=new Set,c=[i.events.on("cellsFlashed",({rowKeys:R,columnIds:H,duration:Z})=>{let z=qe.current;if(!z)return;let Y=R.length?R.map(ve=>`[data-row-key="${CSS.escape(String(ve))}"]`).join(","):".kanuni-datagrid-row",le=H.length?H.map(ve=>`[data-column-id="${CSS.escape(ve)}"]`).join(","):"[data-column-id]",se=[];z.querySelectorAll(Y).forEach(ve=>{ve.querySelectorAll(le).forEach(Lt=>se.push(Lt));});for(let ve of se)ve.classList.remove("kanuni-datagrid-cell--flash");z.offsetWidth;for(let ve of se)ve.classList.add("kanuni-datagrid-cell--flash");let Je=setTimeout(()=>{for(let ve of se)ve.classList.remove("kanuni-datagrid-cell--flash");o.delete(Je);},Z);o.add(Je);}),i.events.on("cellsRefreshed",({revision:R})=>Sa(R))];return ()=>{c.forEach(R=>R()),o.forEach(clearTimeout);}},[i]);let Ea=react.useCallback((o,c)=>i.moveColumn(o,c),[i]),Na=react.useCallback((o,c,R)=>i.setColumnWidth(o,c,R??true),[i]),On=react.useCallback(o=>{if(!qe.current)return;let c=Sn(qe.current,o);c!==null&&i.setColumnWidth(o,c);},[i]),Fn=react.useCallback(()=>{let o=qe.current;if(o)for(let c of i.getColumnStates()){if(!c.visible)continue;let R=Sn(o,c.id);R!==null&&i.setColumnWidth(c.id,R);}},[i]);react.useEffect(()=>{if(_!=="fitGrid")return;let o=()=>i.sizeColumnsToFit();return o(),i.events.on("gridSizeChanged",o)},[i,_]);let Bn=react.useRef(null);Qt(()=>{if(_!=="fitCells"){Bn.current=null;return}Bn.current!==i&&qe.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(Bn.current=i,Fn());});let[Ma,lr]=react.useState({}),sr=t.filterDebounce??(i.isRemote()?200:0),Kn=react.useRef(false),nn=react.useMemo(()=>datagridCore.datePeriodLabels(e),[e]),_n=react.useRef(nn);_n.current=nn;let Pa=react.useMemo(()=>datagridCore.periodSuggestionList(nn),[nn]),on=react.useCallback((o,c)=>{let R=i.getColumnModel().getDataType(o);Kn.current=true;try{i.setColumnFilter(o,datagridCore.parseFilterInput(o,c,R,_n.current),datagridCore.FILTER_PART_ROW);}finally{Kn.current=false;}},[i]),at=react.useMemo(()=>datagridCore.createDebouncedCommit(sr),[sr]);react.useEffect(()=>()=>at.cancelAll(),[at]);let La=react.useCallback((o,c)=>{lr(R=>({...R,[o]:c})),at.schedule(o,()=>on(o,c));},[on,at]),Ia=react.useCallback((o,c)=>{at.cancel(o),on(o,c);},[on,at]);react.useEffect(()=>i.events.on("filterChanged",()=>{if(Kn.current)return;let o=i.getColumnModel();lr(c=>Co(c,{isPending:R=>at.isPending(R),textFor:R=>{let H=i.getColumnFilter(R,datagridCore.FILTER_PART_ROW);return H?datagridCore.filterInputFromNode(R,H,o.getDataType(R),_n.current):""}},o.getOrder()));}),[i,at]);let[fe,ht]=react.useState(null),rn=react.useRef(0),$n=react.useRef(null),it=react.useCallback(()=>{let o=document.activeElement instanceof HTMLElement?document.activeElement:null;o?.closest(".kanuni-datagrid-portal")||($n.current={el:o,columnId:o?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??null});},[]),Ha=react.useCallback((o,c)=>{it();let R=c.getBoundingClientRect(),H=i.getColumnModel().getDef(o),Z={left:R.left,top:R.bottom+2},z=H?.headerName??o,Y=i.getColumnFilter(o,datagridCore.FILTER_PART_SET)??i.getColumnFilter(o,datagridCore.FILTER_PART_DEFAULT);if(!i.isRemote()){let se=++rn.current;ht({columnId:o,label:z,entries:[],selected:null,anchor:Z,loading:true}),i.getDistinctValueSetAsync(o).then(({entries:Je,truncated:ve})=>{rn.current===se&&ht(Lt=>Lt&&Lt.columnId===o?{...Lt,entries:Je,truncated:ve,capped:ve,selected:datagridCore.selectedLabelsFromFilter(Y,Je),loading:false}:Lt);});return}let le=++rn.current;ht({columnId:o,label:z,entries:[],selected:null,anchor:Z,loading:true}),i.getDistinctValuesAsync(o).then(se=>{rn.current===le&&ht(Je=>Je&&Je.columnId===o?{...Je,entries:se,selected:datagridCore.selectedLabelsFromFilter(Y,se),loading:false}:Je);});},[i,it]),Aa=react.useCallback(o=>{fe&&(i.setColumnFilter(fe.columnId,o,datagridCore.FILTER_PART_SET),ht(null));},[i,fe]),Oa=Object.keys(i.getColumnStates().reduce((o,c)=>(i.getColumnFilter(c.id)&&(o[c.id]=true),o),{})),vt=i.getSelectionMode(),he=vt!=="none"&&(ae.selection?.checkboxColumn??false),dr=(ae.selection?.rowClick??(he?"toggle":"replace"))==="toggle",Fa=react.useCallback((o,c)=>{i.handleRowClick(o.key,{ctrlKey:c.ctrlKey||dr&&!c.shiftKey,metaKey:c.metaKey,shiftKey:c.shiftKey});},[i,dr]),Ba=react.useCallback((o,c)=>i.focusCell(o.key,c),[i]),Ka=react.useCallback(o=>i.toggleRow(o.key),[i]),[Dt,ur]=react.useState(null),_a=react.useCallback(()=>ur(null),[]),[_t,Wn]=react.useState(null),cr=react.useCallback((o,c)=>{let H=(qe.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(c)}"]`)??qe.current)?.getBoundingClientRect();return {left:H?.left??0,top:(H?.bottom??0)+2}},[]),$a=react.useCallback(o=>{let c=_t;Wn(null),!(!c||!Te?.onChange)&&Te.onChange({rowKey:c.rowKey,columnId:c.columnId,row:c.row,text:o});},[_t,Te]),pr=react.useCallback((o,c)=>{if(!Te?.onChange||Te.menu===false)return [];let R=o.columnId;if(!R)return [];let H=i.getRowKey(o.row),Z=tn(H,R,o.row),z=()=>Wn({rowKey:H,columnId:R,row:o.row,text:Z??"",anchor:cr(H,R)}),Y=[];return c&&Y.push({separator:true,id:"__note-sep"}),Y.push({id:"__note-edit",label:Z?e.editNote:e.addNote,onSelect:z}),Z&&Y.push({id:"__note-delete",label:e.deleteNote,onSelect:()=>Te.onChange?.({rowKey:H,columnId:R,row:o.row,text:null})}),Y},[Te,i,tn,cr,e]),[an,Un]=react.useState(null),mr=react.useRef({x:0,y:0}),gr=react.useCallback(o=>Wo(i,e,w,o,c=>{Un({message:c,...mr.current}),console.error("[datagrid] export failed:",c);}),[i,e,w]),ln=react.useCallback((o,c,R,H,Z)=>{if(R.kind!=="data")return;it();let z={row:R.data,node:R,rowIndex:H,columnId:Z,selectedKeys:i.getSelectedKeys()},Y=(typeof be=="function"?be(z):be)??[],le=pr(z,Y.length>0),se=[...Y,...le,...gr(Y.length+le.length>0)];se.length!==0&&(mr.current={x:o,y:c},Un(null),ur({x:o,y:c,items:se,context:z}));},[be,i,pr,gr,it]),fr=react.useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),Gt=react.useCallback((o,c,R,H,Z)=>{let z=H??-1;o&&i.notifyRow(o,R,z);let Y=fr(Z);Y!==null&&i.notifyCell(c,R,z,Y);},[i,fr]),Wa=react.useCallback((o,c,R)=>{pe?.(o),Gt("rowClicked","cellClicked",o,c,R);},[pe,Gt]),Ua=react.useCallback((o,c,R)=>{Ee?.(o),Gt("rowDoubleClicked","cellDoubleClicked",o,c,R);},[Ee,Gt]),Va=react.useCallback((o,c,R)=>{if(Gt(null,"cellContextMenu",o,c,R),!be&&!en&&w===false||o.kind!=="data")return;R.preventDefault(),i.isRowSelected(o.key)||i.handleRowClick(o.key,{});let H=R.target.closest("[data-column-id]")?.dataset.columnId??null;ln(R.clientX,R.clientY,o,c,H);},[be,en,w,i,ln,Gt]),[za,Ya]=react.useState(null),[Xa,qa]=react.useState(null),[Vn,Ja]=react.useState(()=>ae.grouping?.groupSummaries??false),[wt,zn]=react.useState(null),[hr,Yn]=react.useState(null),Xn=Dt!==null||wt!==null||fe!==null,wr=react.useRef(false);react.useEffect(()=>{if(wr.current&&!Xn){let o=$n.current;$n.current=null;let c=o?.el?.isConnected?o.el:o?.columnId?qe.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,R=!document.activeElement||document.activeElement===document.body;c&&R&&c.focus({preventScroll:true});}wr.current=Xn;},[Xn]);let Za=react.useCallback(()=>{i.getSelectedCount()>0?i.clearSelection():i.selectAll();},[i]),qn=he?i.getSelectableCount():We,Jn=i.getSelectedCount(),ja=qn>0&&Jn>=qn?"all":Jn>0?"some":"none",Qa=react.useCallback(o=>{let c=o.target;if(c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.isContentEditable)return;if((be||en||w!==false)&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let Z=i.getFocus(),z=Z?ye.findIndex(le=>le.key===Z.rowKey):-1,Y=z>=0?ye[z]:void 0;if(Y){let se=O.current?.querySelector(`[data-row-key="${CSS.escape(String(Y.key))}"]`)?.getBoundingClientRect();ln(se?se.left+16:0,se?se.bottom:0,Y,z,Z?.columnId??null),o.preventDefault();}return}let R=datagridCore.resolveGridCommand({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!R)return;if(R.type==="copy"){Ft(i);return}if(R.type==="activate"){let Z=i.getFocus(),z=Z?ye.find(Y=>Y.key===Z.rowKey):void 0;z&&Ee?.(z),R.preventDefault&&o.preventDefault();return}i.executeCommand(R),R.preventDefault&&o.preventDefault();let H=i.getFocusIndices();if(H&&O.current){let z=i.getColumnLayout().center.findIndex(le=>le.state.id===i.getFocus()?.columnId),Y=i.ensureVisible(H.rowIndex,z===-1?void 0:z);if(Y){let le=O.current;Y.scrollTop!==void 0&&(le.scrollTop=Y.scrollTop),Y.scrollLeft!==void 0&&(le.scrollLeft=Ca(Y.scrollLeft,le)),i.setScroll(le.scrollTop,le.scrollLeft);}}},[i,ye,Ee,be,en,w,ln]),bt=react.useMemo(()=>datagridCore.bandDepth([...ce.left,...ce.center,...ce.right]),[ce]),St=At,Zn=(p?2:1)+bt,sn=D?.length??0,ei=X?.length??0,dn=Zn+sn,un=za??ae.grouping?.panel??x,br=i.getGroupLevels(),ti=react.useCallback(o=>i.groupBy(o.slice(0,B)),[i,B]),ni=react.useCallback(o=>i.toggleGroup(o),[i]),yr=react.useCallback(o=>i.toggleGroupSelection(o),[i]),oi=i.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),Pe=i.hasMasterDetail()&&!!Ke,we=t.rowNumbers??false,ri=we&&i.isPaginated()?i.getPage()*i.getPageSize():0;react.useEffect(()=>{i.setLeadWidth(mo(he,Pe,we));},[i,he,Pe,we]);let ai=react.useCallback(o=>i.toggleDetail(o),[i]),ii=react.useCallback(o=>i.toggleTreeRow(o),[i]),Rr=i.getSummaryDefs(),li=i.getSummaries(),Et=Xa??Ye??Rr.length>0,$t=Et&&oe==="top",jn=p?2:1,Cr=nt.grouping?.groupSummaries&&Vn?ae.summaries:void 0,kr=i.getGroupDisplay(),xr=react.useCallback(()=>{Ja(o=>(i.setGroupSummaries(!o),!o));},[i]),si=react.useCallback((o,c)=>{if(!Se)return;c.preventDefault();let R=i.getColumnModel().getDef(o),H=i.getColumnSummary(o),Z={columnId:o,headerName:R?.headerName??R?.field??o},z=[{id:"none",label:e.noTotal,disabled:H===null,onSelect:()=>i.setColumnSummary(o,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(R?.dataType).map(Y=>({id:Y,label:datagridCore.summaryTypeLabels(e)[Y],disabled:H?.type===Y,onSelect:()=>i.setColumnSummary(o,Y)}))];it(),zn({x:c.clientX,y:c.clientY,items:z,context:Z});},[i,Se,it]),di=react.useCallback((o,c)=>{if(E===false)return;c.preventDefault();let R=i.getColumnModel().getDef(o),H={columnId:o,headerName:R?.headerName??R?.field??o},Z=Qo(H,{controller:i,groupPanelVisible:un,footerVisible:Et,groupFootersAvailable:de,groupFootersVisible:Vn,onToggleGroupPanel:()=>Ya(!un),onToggleFooter:()=>qa(!Et),onToggleGroupFooters:xr,onOpenFieldChooser:()=>Yn({left:c.clientX,top:c.clientY}),onBestFit:On,onBestFitAll:Fn,maxGroupLevels:B,labels:Nn(e)}),z=typeof E=="function"?E(H,Z):Z;!z||z.length===0||(it(),zn({x:c.clientX,y:c.clientY,items:z,context:H}));},[E,i,un,Et,de,Vn,xr,On,Fn,B,e,it]),Nt=i.getFocus(),ui=Nt?`${t.gridId}-cell-${String(Nt.rowKey)}-${Nt.columnId}`:void 0,Qn=i.getSelectedCount(),ci=react.useMemo(()=>{let o=[datagridCore.fillText(e.announceRows,{n:We})];if(ft.length>0){let c=ft.map(R=>{let H=i.getColumnModel().getDef(R.columnId),Z=String(H?.headerName??H?.field??R.columnId),z=R.direction==="desc"?e.announceDescending:e.announceAscending;return `${Z} ${z}`}).join(", ");o.push(datagridCore.fillText(e.announceSortedBy,{columns:c}));}return Qn>0&&o.push(datagridCore.fillText(e.announceSelected,{n:Qn})),o.join(", ")},[i,We,ft,Qn,e]),{centerColumns:lt,centerIndices:cn,stickyInsets:Mt,leadingSpacer:st,trailingSpacer:dt,rowStart:pi,rowEnd:Tr}=Ir(ce,q),pn=i.getColumnModel(),Pt=pi,mi=o=>{if(V)return;let c=i.getRowHeightAt(o);return c===ot?void 0:c},gi=Array.from(ye.slice(Pt,Tr)),fi=react.useMemo(()=>!we||i.getGroupLevels().length===0&&!i.hasMasterDetail()&&!i.hasTreePathRows()?null:Hr(ye),[we,i,ye]),hi=i.hasCellSpans(),vr=react.useRef({start:0,end:0});vr.current={start:Pt,end:Tr-1};let wi=react.useCallback((o,c)=>{let R=i.getCellSpans(c);if(R.length===0)return null;let{start:H,end:Z}=vr.current,z=datagridCore.spanRoleAt(R,o,H,Z);if(!z)return null;if(z.role==="covered")return {kind:"covered"};let Y=i.getRowOffset(z.drawStart);return {kind:"draw",height:i.getRowOffset(z.drawEnd)+i.getRowHeightAt(z.drawEnd)-Y,offset:0}},[i]),Dr=U?datagridCore.normalizeSearch(i.getSearchText()):"",bi={pathOf:o=>datagridCore.bandPath(i.getColumnModel().getDef(o)),collapsible:o=>i.isBandCollapsible(o),collapsed:o=>i.isBandCollapsed(o),onToggle:o=>i.toggleBand(o),labels:{expand:e.expandColumnGroup,collapse:e.collapseColumnGroup}},Gr={layout:ce,centerColumns:lt,leadingSpacer:st,trailingSpacer:dt,defs:Rr,values:li,checkboxColumn:he,detailColumn:Pe,rowNumberColumn:we,onPickSummary:Se?si:void 0,emptyHint:Se?"\xB7":""};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${T.active?" kanuni-datagrid-print":""}${datagridCore.themeClassName(a,_e,s)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${ot}px`,"--dg-grip-inset":we?`${It}px`:"0px",...r},dir:datagridCore.isRtlLocale(t.locale)?"rtl":void 0,"data-grid-id":t.gridId,"data-theme":a,"data-palette":s,"data-auto-height":V?"":void 0,ref:qe,children:[u&&jsxRuntime.jsx(Ao,{controller:i,dark:l,columnChooser:t.toolbarColumnChooser??true,exportExcel:de&&L,exportPdf:de&&I,itemsBefore:G,itemsAfter:N,onOpenColumnChooser:o=>Yn(c=>c?null:o)}),un&&jsxRuntime.jsx(Ho,{columns:oi,levels:br,onSetLevels:ti,maxLevels:B,onExpandAll:()=>i.expandAllGroups(),onCollapseAll:()=>i.collapseAllGroups()}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-scroller",ref:O,onScroll:Hn,onKeyDown:Qa,tabIndex:0,role:"grid","aria-rowcount":We+Zn+sn+ei,"aria-colcount":ce.left.length+ce.center.length+ce.right.length+(he?1:0)+(Pe?1:0)+(we?1:0),"aria-multiselectable":vt==="multiple"||void 0,"aria-activedescendant":ui,"aria-label":t.ariaLabel??t.gridId,children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(ce.totalWidth||0)+mo(he,Pe,we)||"100%"},role:"rowgroup",children:[jsxRuntime.jsx(bo,{layout:ce,centerColumns:lt,leadingSpacer:st,trailingSpacer:dt,depth:bt,checkboxColumn:he,detailColumn:Pe,rowNumberColumn:we,rowHeight:St,bandFold:bi}),jsxRuntime.jsx(Ro,{bandOffset:bt*St,stickyInsets:Mt,layout:ce,centerColumns:lt,leadingSpacer:st,trailingSpacer:dt,sort:ft,sortable:g,onSort:va,groupLevels:br,headerFilter:ee,filteredColumns:Oa,onOpenFilter:Ha,filterIconMode:C,checkboxColumn:he,detailColumn:Pe,rowNumberColumn:we,selectAllState:ja,selectAllDisabled:qn===0&&Jn===0,onToggleSelectAll:Za,draggable:x,reorderable:k,onReorder:Ea,resizable:v,onResize:Na,onAutoFit:On,onHeaderContextMenu:E===false?void 0:di}),p&&jsxRuntime.jsx(ko,{bandOffset:bt*St,stickyInsets:Mt,layout:ce,centerColumns:lt,leadingSpacer:st,trailingSpacer:dt,values:Ma,checkboxColumn:he,detailColumn:Pe,rowNumberColumn:we,onChange:La,onCommit:Ia,periodSuggestions:Pa,periodListId:`${t.gridId}-filter-periods`}),$t&&jsxRuntime.jsx(kn,{...Gr,position:"top",bandOffset:bt*St,headerRowsBetween:jn}),D&&D.length>0&&jsxRuntime.jsx(xn,{gridId:t.gridId,side:"top",rows:D,layout:ce,columnModel:pn,centerColumns:lt,centerIndices:cn,stickyInsets:Mt,leadingSpacer:st,trailingSpacer:dt,checkboxColumn:he,detailColumn:Pe,rowNumberColumn:we,rowHeight:ot,bandOffset:bt*St,headerRowsBetween:jn+($t?1:0),ariaRowBase:Zn}),i.hasStickyGroupHeaders()&&jsxRuntime.jsx(qr,{controller:i,width:ce.totalWidth,bandOffset:bt*St,headerRowsBetween:jn+($t?1:0),belowPinned:sn>0?sn*ot+1:0,renderRow:(o,c,R)=>jsxRuntime.jsx(Ht,{gridId:t.gridId,node:o,index:c,layout:ce,columnModel:pn,centerColumns:lt,centerIndices:cn,stickyInsets:Mt,leadingSpacer:st,trailingSpacer:dt,striped:false,selected:false,groupSelection:he&&vt==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:yr,groupDisplay:kr,focusedColumnId:null,checkboxColumn:he,rowNumberColumn:we,rowNumber:null,headerRowCount:dn,onToggleGroup:H=>{i.toggleGroup(H),i.scrollToRow(H);},revision:ir,searchNeedle:Dr,summaryDefs:Cr,detailColumn:Pe,height:R,renderCellContent:Ce,getCellClassName:Me})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:q.rows.totalHeight},onDragOver:Tt.bodyHandlers?.onDragOver,onDrop:Tt.bodyHandlers?.onDrop,onDragLeave:Tt.bodyHandlers?.onDragLeave,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-viewport",style:{transform:`translateY(${q.rows.offsetY}px)`},children:gi.map((o,c)=>o?jsxRuntime.jsx(Ht,{gridId:t.gridId,node:o,index:Pt+c,layout:ce,columnModel:pn,centerColumns:lt,centerIndices:cn,stickyInsets:Mt,leadingSpacer:st,trailingSpacer:dt,striped:m,selected:i.isRowSelected(o.key),ariaSelectable:vt!=="none",selectable:he&&o.kind==="data"?i.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&he&&vt==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:yr,groupDisplay:kr,focusedColumnId:Nt?.rowKey===o.key?Nt.columnId:null,rowFocused:te&&Nt?.rowKey===o.key,rowDrag:Tt.handlers,dropSide:Tt.dropAt?.key===o.key?Tt.dropAt.side:null,renderRow:d,checkboxColumn:he,rowNumberColumn:we,getSpan:hi?wi:void 0,getNote:Te?tn:void 0,rowNumber:we?Ar(Pt+c,fi,ri):null,headerRowCount:dn,onRowClick:Wa,onRowMouseDown:vt==="none"?void 0:Fa,onRowDoubleClick:Ua,onToggleSelect:Ka,onCellMouseDown:Ba,onRowContextMenu:Va,onToggleGroup:ni,onToggleTreeRow:ii,revision:ir,searchNeedle:Dr,summaryDefs:Cr,detailColumn:Pe,detailExpanded:Pe&&i.isDetailExpanded(o.key),onToggleDetail:ai,renderDetail:Ke,renderEditForm:ue,height:mi(Pt+c),renderCellContent:Ce,getCellClassName:Me,onCellPointerDown:Xe,onCellPointerEnter:Fe,onCellDoubleClick:Be},String(o.key)):(()=>{let R=Pt+c,H=i.isRowLoadFailed(R);return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${H?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":R+1+dn,"aria-busy":H?void 0:"true",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:H?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-load-failed-text",children:e.rowsLoadFailed}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-retry-button","data-retry-load":"",onClick:()=>i.retryFailedLoads(),children:e.retryLoad})]}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-bar"})})},`__loading-${R}`)})())}),tt?.()]}),X&&X.length>0&&jsxRuntime.jsx(xn,{gridId:t.gridId,side:"bottom",rows:X,layout:ce,columnModel:pn,centerColumns:lt,centerIndices:cn,stickyInsets:Mt,leadingSpacer:st,trailingSpacer:dt,checkboxColumn:he,detailColumn:Pe,rowNumberColumn:we,rowHeight:ot,headerRowsBetween:Et&&!$t?1:0,ariaRowBase:dn+We}),Et&&!$t&&jsxRuntime.jsx(kn,{...Gr,position:"bottom"})]})}),(An==="noRows"||An===null&&We===0)&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-empty",children:f??e.noData}),F&&jsxRuntime.jsx(Bo,{controller:i,alwaysVisible:F==="always",onOpenBuilder:h,describeOptions:$}),P!==false&&jsxRuntime.jsx(Yo,{controller:i,delay:typeof P=="number"?P:void 0,forced:An==="loading"}),i.isPaginated()&&jsxRuntime.jsx(Fo,{page:i.getPage(),pageCount:i.getPageCount(),pageSize:i.getPageSize(),pageSizes:ae.pagination?.pageSizes,pageButtons:ae.pagination?.pageButtons,maxPageButtons:ae.pagination?.maxPageButtons,totalRows:We,onPage:o=>i.setPage(o),onNext:()=>i.nextPage(),onPrevious:()=>i.previousPage(),onPageSize:o=>i.setPageSize(o)}),M&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:ci}),_t&&jsxRuntime.jsx(Vo,{anchor:_t.anchor,value:_t.text,dark:l,onCommit:$a,onCancel:()=>Wn(null)}),Dt&&jsxRuntime.jsx(Gn,{x:Dt.x,y:Dt.y,items:Dt.items,context:Dt.context,dark:l,onClose:_a}),an&&jsxRuntime.jsx(Ve,{dark:l,children:jsxRuntime.jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:an.x,top:an.y},onClick:()=>Un(null),children:an.message})}),wt&&jsxRuntime.jsx(Gn,{x:wt.x,y:wt.y,items:wt.items,context:wt.context,dark:l,label:`${wt.context.headerName} column`,onClose:()=>zn(null)}),ar&&jsxRuntime.jsx(jo,{state:ar,dark:l}),hr&&jsxRuntime.jsx(Oo,{controller:i,columns:i.getColumnStates(),anchor:hr,dark:l,onClose:()=>Yn(null)}),fe&&jsxRuntime.jsx(Lo,{gridId:t.gridId,columnId:fe.columnId,headerLabel:fe.label,entries:fe.entries,initialSelected:fe.selected,anchor:fe.anchor,loading:fe.loading,truncated:fe.truncated,onSearch:fe.capped&&!i.isRemote()?o=>{let{entries:c,truncated:R}=i.searchDistinctValues(fe.columnId,o);ht(H=>H&&H.columnId===fe.columnId?{...H,entries:c,truncated:R}:H);}:void 0,dark:l,onApply:Aa,onClose:()=>ht(null)},`${fe.columnId}:${fe.loading?"loading":"ready"}`)]})}function qs({defs:t,values:e,columnModel:n,rowCount:r,rowCountLabel:l}){let a=ne(),s=datagridCore.summaryTypeLabels(a);return t.length===0&&r===void 0?null:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-summary-bar",role:"status","aria-label":a.summaryAria,children:[r!==void 0&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsx("strong",{children:r.toLocaleString()})," ",l??a.summaryRows]}),t.map(m=>{let f=e[datagridCore.summaryKey(m.columnId,m.type)],g=n.getDef(m.columnId),p=datagridCore.formatSummaryValue(m,f,g);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-label",children:[datagridCore.summaryLabel(m,s)," ",g?.headerName??m.columnId,":"]}),jsxRuntime.jsx("strong",{children:p})]},datagridCore.summaryKey(m.columnId,m.type))})]})}var Js=react.memo(qs);function ed(t,e){return rr(t,e,e?.source,(n,r)=>n.computeChartData(r))}function td(t,e){return rr(t,e,e?.source,(n,r)=>n.computeChartXYData(r))}function nd(t,e){return rr(t,e,e?.source,(n,r)=>n.computeChartBoxData(r))}function rr(t,e,n,r){let[l,a]=react.useState(null);return react.useEffect(()=>{if(!t||!e){a(null);return}let s=n??"view",m=datagridCore.chartNeedsOrder(e),f=false,g=0,p=false,y=false,C=null,k=()=>{let M=++g;r(t,e).then(x=>{!f&&M===g&&a(x);},()=>{});},v=(M=false)=>{y||=M,!p&&(p=true,queueMicrotask(()=>{if(p=false,f)return;let x=t.chartBasis(s,m);!y&&x===C||(y=false,C=x,k());}));};C=t.chartBasis(s,m),k();let P=[t.events.on("contentReady",()=>v()),t.events.on("rowsChanged",()=>v()),t.events.on("dataUpdated",()=>v()),...s==="selection"?[t.events.on("selectionChanged",()=>v(true))]:[]];return ()=>{f=true,g++,P.forEach(M=>M());}},[t,e]),l}Object.defineProperty(exports,"ClientRowModel",{enumerable:true,get:function(){return datagridCore.ClientRowModel}});Object.defineProperty(exports,"ColumnModel",{enumerable:true,get:function(){return datagridCore.ColumnModel}});Object.defineProperty(exports,"DEFAULT_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DEFAULT_ROW_HEIGHT}});Object.defineProperty(exports,"DENSITY_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DENSITY_ROW_HEIGHT}});Object.defineProperty(exports,"DataGridController",{enumerable:true,get:function(){return datagridCore.DataGridController}});Object.defineProperty(exports,"GRID_PALETTES",{enumerable:true,get:function(){return datagridCore.GRID_PALETTES}});Object.defineProperty(exports,"GRID_THEMES",{enumerable:true,get:function(){return datagridCore.GRID_THEMES}});Object.defineProperty(exports,"GridStateStore",{enumerable:true,get:function(){return datagridCore.GridStateStore}});Object.defineProperty(exports,"SUMMARY_TYPE_LABEL",{enumerable:true,get:function(){return datagridCore.SUMMARY_TYPE_LABEL}});Object.defineProperty(exports,"THEME_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.THEME_ROW_HEIGHT}});Object.defineProperty(exports,"VirtualWindowEngine",{enumerable:true,get:function(){return datagridCore.VirtualWindowEngine}});Object.defineProperty(exports,"allowedSummaryTypes",{enumerable:true,get:function(){return datagridCore.allowedSummaryTypes}});Object.defineProperty(exports,"andFilters",{enumerable:true,get:function(){return datagridCore.andFilters}});Object.defineProperty(exports,"attachStateStoring",{enumerable:true,get:function(){return datagridCore.attachStateStoring}});Object.defineProperty(exports,"bandDepth",{enumerable:true,get:function(){return datagridCore.bandDepth}});Object.defineProperty(exports,"bandPath",{enumerable:true,get:function(){return datagridCore.bandPath}});Object.defineProperty(exports,"computeColumnLayout",{enumerable:true,get:function(){return datagridCore.computeColumnLayout}});Object.defineProperty(exports,"computeHeaderBands",{enumerable:true,get:function(){return datagridCore.computeHeaderBands}});Object.defineProperty(exports,"createRestDataSource",{enumerable:true,get:function(){return datagridCore.createRestDataSource}});Object.defineProperty(exports,"describeFilter",{enumerable:true,get:function(){return datagridCore.describeFilter}});Object.defineProperty(exports,"downloadBlob",{enumerable:true,get:function(){return datagridCore.downloadBlob}});Object.defineProperty(exports,"fillText",{enumerable:true,get:function(){return datagridCore.fillText}});Object.defineProperty(exports,"filterInputFromNode",{enumerable:true,get:function(){return datagridCore.filterInputFromNode}});Object.defineProperty(exports,"formatSummaryValue",{enumerable:true,get:function(){return datagridCore.formatSummaryValue}});Object.defineProperty(exports,"humanizeField",{enumerable:true,get:function(){return datagridCore.humanizeField}});Object.defineProperty(exports,"importCsv",{enumerable:true,get:function(){return datagridCore.importCsv}});Object.defineProperty(exports,"inferColumns",{enumerable:true,get:function(){return datagridCore.inferColumns}});Object.defineProperty(exports,"isDataRow",{enumerable:true,get:function(){return datagridCore.isDataRow}});Object.defineProperty(exports,"isDataSource",{enumerable:true,get:function(){return datagridCore.isDataSource}});Object.defineProperty(exports,"isFilterGroup",{enumerable:true,get:function(){return datagridCore.isFilterGroup}});Object.defineProperty(exports,"isGroupRow",{enumerable:true,get:function(){return datagridCore.isGroupRow}});Object.defineProperty(exports,"isPackagedTheme",{enumerable:true,get:function(){return datagridCore.isPackagedTheme}});Object.defineProperty(exports,"lookupLabel",{enumerable:true,get:function(){return datagridCore.lookupLabel}});Object.defineProperty(exports,"moveRowInArray",{enumerable:true,get:function(){return datagridCore.moveRowInArray}});Object.defineProperty(exports,"parseCsv",{enumerable:true,get:function(){return datagridCore.parseCsv}});Object.defineProperty(exports,"parseFilterInput",{enumerable:true,get:function(){return datagridCore.parseFilterInput}});Object.defineProperty(exports,"sniffDelimiter",{enumerable:true,get:function(){return datagridCore.sniffDelimiter}});Object.defineProperty(exports,"summaryKey",{enumerable:true,get:function(){return datagridCore.summaryKey}});Object.defineProperty(exports,"summaryLabel",{enumerable:true,get:function(){return datagridCore.summaryLabel}});Object.defineProperty(exports,"summaryTypeLabels",{enumerable:true,get:function(){return datagridCore.summaryTypeLabels}});Object.defineProperty(exports,"themeClassName",{enumerable:true,get:function(){return datagridCore.themeClassName}});exports.BAND_ROW_HEIGHT=At;exports.DEFAULT_HEADER_MENU_LABELS=ha;exports.DataGrid=Vs;exports.GridColumnChooser=Oo;exports.GridContextMenu=Gn;exports.GridFilterPanel=Bo;exports.GridFilterRow=ko;exports.GridFooterRow=kn;exports.GridGroupPanel=Ho;exports.GridHeader=Ro;exports.GridHeaderBands=bo;exports.GridHeaderFilterPopup=Lo;exports.GridLoadingOverlay=Yo;exports.GridNoteEditor=Vo;exports.GridPager=Fo;exports.GridPinnedRows=xn;exports.GridPopupPanel=xt;exports.GridPortal=Ve;exports.GridRow=Ht;exports.GridSummaryBar=Js;exports.GridSurfaceProvider=So;exports.GridTextProvider=ao;exports.GridToolbar=Ao;exports.GridTooltip=jo;exports.PRINT_MAX_ROWS=to;exports.ROW_DRAG_MIME=En;exports.SHORTCUT_COPY=na;exports.SHORTCUT_CUT=is;exports.SHORTCUT_PASTE=ls;exports.buildCellMenuItems=Wo;exports.buildHeaderMenu=Qo;exports.copyToClipboard=Ft;exports.headerMenuLabels=Nn;exports.measureBestFitWidth=Sn;exports.reconcileFilterInputs=Co;exports.runGridExport=Yt;exports.useAlignedGrids=ro;exports.useAnchoredPopup=Ut;exports.useCellTooltip=Zo;exports.useDataGrid=eo;exports.useGridChartBoxData=nd;exports.useGridChartData=ed;exports.useGridChartXYData=td;exports.useGridSurfaceClass=Eo;exports.useGridText=ne;exports.usePrintLayout=no;exports.useRowDrag=Jo;exports.useStateStoring=Xo;exports.writeClipboardText=oa;
1
+ 'use strict';var react=require('react'),datagridCore=require('@kanunilabs/datagrid-core'),jsxRuntime=require('react/jsx-runtime'),reactDom=require('react-dom');var Ts=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],ja=new WeakMap;function Jo(e){let t=ja.get(e);if(!t){let n={version:0,listeners:new Set},a=()=>{n.version++,n.listeners.forEach(l=>l());};for(let l of Ts)e.events.on(l,a);ja.set(e,n),t=n;}return t}function Zo(e){let t=e.sorting?.postSort,n=react.useRef(t);react.useEffect(()=>{n.current=t;},[t]);let[a]=react.useState(()=>((v,L)=>n.current?.(v,L))),l=()=>{let v=new datagridCore.DataGridController(t?{...e,sorting:{...e.sorting,postSort:a}}:e);return Jo(v),v},[r,d]=react.useState(l);react.useEffect(()=>{if(r.isDisposed()){d(l());return}return ()=>r.dispose()},[r]);let y=react.useCallback(v=>{let{listeners:L}=Jo(r);return L.add(v),()=>{L.delete(v);}},[r]),c=react.useCallback(()=>Jo(r).version,[r]);react.useSyncExternalStore(y,c,c);let{dataSource:w,columns:b}=e,G=react.useRef(true);react.useEffect(()=>{if(G.current){G.current=false;return}Array.isArray(w)&&r.setData(w);},[r,w]);let k=react.useRef(true);react.useEffect(()=>{if(k.current){k.current=false;return}r.setColumns(b);},[r,b]);let M=e.pagination?e.pagination.enabled!==false:false;react.useEffect(()=>{r.setPaginationEnabled(M);},[r,M]);let H=e.rowHeight,K=react.useRef(true);react.useEffect(()=>{if(K.current){K.current=false;return}H!==void 0&&r.setRowHeight(H);},[r,H]);let E=e.selection?.mode??"none";react.useEffect(()=>{r.setSelectionMode(E);},[r,E]);let f=e.rowPinning;react.useEffect(()=>{r.setRowPinning(f);},[r,f]);let h=e.selection?.isRowSelectable,g=react.useRef(true);react.useEffect(()=>{if(g.current){g.current=false;return}r.setRowSelectable(h??null);},[r,h]);let O=t!==void 0,Y=react.useRef(true);react.useEffect(()=>{if(Y.current){Y.current=false;return}r.setPostSort(O?a:null);},[r,O,a]);let N=e.grouping?.groupBy??null,B=JSON.stringify(N==null?[]:typeof N=="string"?[N]:N),x=react.useRef(true);return react.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 ti=react.createContext(datagridCore.getGridDictionary("en"));function Qo({locale:e,messages:t,children:n}){let a=react.useMemo(()=>datagridCore.getGridDictionary(e,t),[e,t]);return jsxRuntime.jsx(ti.Provider,{value:a,children:n})}function Te(){return react.useContext(ti)}var Ws=1e5,Vs=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function Us(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 zs(t?e:Us(e))}function zs({controller:e,mode:t="batch",rules:n,onSave:a,crud:l,allowAdding:r,allowUpdating:d,allowDeleting:y,onInitNewRow:c,onRowInserted:w,onRowUpdated:b,onRowRemoved:G,editOnKeyPress:k,confirmDelete:M,confirmDeleteMessage:H,insertKey:K,appendOnArrowDown:E,newRowPosition:f,focusCellOnTab:h,focusCellOnCycle:g,keepEditingOnTab:O,enabled:Y=true,range:N=true,history:B=true,canEditColumn:x}){let v=Te(),[L,p]=react.useState(0),T=react.useCallback(()=>p(s=>s+1),[]),F=react.useMemo(()=>new datagridCore.RangeSelectionEngine,[]),U=react.useMemo(()=>({start(s,u){F.start(s,u),T();},add(s,u){F.add(s,u),T();},extend(s,u){F.extend(s,u)&&T();},finish(){F.finish(),T(),e?.notifyViewStateChanged();},clear(){F.clear()&&(T(),e?.notifyViewStateChanged());},contains:(s,u)=>F.contains(s,u),isAnchor:(s,u)=>F.isAnchor(s,u),getRange:()=>F.getRange(),getBounds:()=>F.getBounds(),toTsv:s=>F.toTsv(s),selectColumn(s,u,R){return F.selectColumn(s,u,R)?(T(),e?.notifyViewStateChanged(),true):false},fullColumns:s=>F.fullColumns(s)}),[F,T,e]),z=react.useRef(null);react.useEffect(()=>{if(!(!e||!N))return e.registerViewStatePart("ranges",{session:true,get:()=>datagridCore.rangesToSaved(F.getRanges(),e.getVisualColumnIds()),apply:s=>{F.setRanges(datagridCore.rangesFromSaved(s,e.getVisualColumnIds())),T();}})},[e,N,F,T]);let[we,Oe]=react.useState(null),pe=react.useRef({onSave:a,crud:l,allowAdding:r,allowUpdating:d,allowDeleting:y,onInitNewRow:c,onRowInserted:w,onRowUpdated:b,onRowRemoved:G,editOnKeyPress:k,confirmDelete:M,confirmDeleteMessage:H,insertKey:K,appendOnArrowDown:E,newRowPosition:f,focusCellOnTab:h,focusCellOnCycle:g,keepEditingOnTab:O,canEditColumn:x});pe.current={onSave:a,crud:l,allowAdding:r,allowUpdating:d,allowDeleting:y,onInitNewRow:c,onRowInserted:w,onRowUpdated:b,onRowRemoved:G,editOnKeyPress:k,confirmDelete:M,confirmDeleteMessage:H,insertKey:K,appendOnArrowDown:E,newRowPosition:f,focusCellOnTab:h,focusCellOnCycle:g,keepEditingOnTab:O,canEditColumn:x};let ke=react.useRef(null),C=react.useMemo(()=>{if(!e||!Y)return null;let s=u=>e.getRowByKey(u);return new datagridCore.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 P=s(u);return P?e.getColumnModel().getStoredValue(P,R):void 0},formatForEdit:(u,R,P)=>e.formatCellForEdit(R,P),parseFromEdit:(u,R,P)=>e.parseCellFromEdit(R,P,u),readRow:s,editableColumns:u=>{let R=e.getColumnLayout(),P=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(P,q):te})},isColumnEditable:u=>e.getColumnModel().getDef(u)?.editable!==false&&(pe.current.canEditColumn?.(u)??true),applyValue:(u,R,P)=>e.writeCellValue(u,R,P),storedValue:(u,R,P)=>e.valueAfterWrite(u,R,P),insertRow:(u,R,P,q)=>{let te=e.getRowKeyField(),Q={...R};te&&(Q[te]=u),e.applyTransaction({add:[Q],addPosition:P,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 P=pe.current.allowUpdating;return P===void 0?true:typeof P=="function"?P(u,R):P},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,P)=>pe.current.onRowUpdated?.(u,R,P),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,P,q)=>u(R,P,q))},get remove(){let u=pe.current.crud?.remove;return u&&((R,P)=>u(R,P))}},onSave:u=>pe.current.onSave?.(u)})},[e,Y]);react.useEffect(()=>{C?.setMessages(v);},[C,v]),react.useEffect(()=>{C?.setMode(t);},[C,t]),react.useEffect(()=>{if(!e||!C)return;let s=false,u=e.events.on("rowsChanged",P=>{s=P.removed===0;}),R=e.events.on("dataUpdated",()=>{let P=s;s=false,!P&&C.retainKeys(new Set(e.getDataRows().map(q=>q.key)));});return ()=>{u(),R();}},[e,C]),react.useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>U.clear())},[e,U]),react.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]),react.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=react.useMemo(()=>datagridCore.createDebouncedCommit(150),[]);react.useEffect(()=>()=>W.cancelAll(),[W]);let Ge=react.useRef(L);react.useEffect(()=>{!e||!C||L===Ge.current||(Ge.current=L,W.schedule("footer",()=>e.refreshSummaries()));},[e,C,L,W]);let Me=react.useCallback(s=>{let u=e?.getRows()[s];return u&&u.kind==="data"?u.key:null},[e]),ee=react.useCallback(s=>e?.getColumnIdAt(s)??null,[e]),ye=react.useCallback((s,u)=>{e?.scrollToCell(s,u),C?.beginEdit(s,u);},[C,e]),ue=react.useCallback((s={},u)=>{let R=C?.addRow(s,u)??null;if(R===null||!e)return R;if(datagridCore.isRowEditMode(t))return e.revealRow(R),R;let P=e.getRowKeyField(),q=e.getColumnModel().runtime().find(te=>te.state.visible&&te.def.editable!==false&&(P===null||(te.def.field??te.state.id)!==P));return e.revealRow(R),q&&(e.focusCell(R,q.state.id),C?.beginEdit(R,q.state.id)),R},[C,e]),Se=react.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 P=u(s,R);return typeof P=="boolean"?P?C.removeRow(s):false:(P.then(q=>{q&&C.removeRow(s);}),false)},[C,e]),D=react.useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),re=react.useCallback((s,u={})=>{if(!C||!e)return false;let R=C.getSession(),P=R?{rowKey:R.rowKey,columnId:R.columnId}:e.getFocus();if(!P||!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(datagridCore.edgeEditableColumn(te,q,1)===null)return false;let Q=e.getRows(),ne=Q.findIndex(Fe=>Fe.key===P.rowKey);if(ne<0)return false;let be=datagridCore.nextEditableColumn(te,q,P.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=datagridCore.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=react.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 P=e.getColumnModel().getEditorDataType(u.columnId);if(P==="boolean"||P==="date")return false;let q=P==="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]=react.useState(null),[A,ge]=react.useState(null),Z=react.useCallback(s=>{let u=A;ge(null),s&&u&&C&&C.removeRow(u.rowKey);},[A,C]),he=react.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=react.useCallback(async()=>{if(!C)return;le(null);let s=await C.saveChanges();s.saved||s.superseded||he(s);},[C,he]),Ke=react.useCallback(()=>le(null),[]),X=react.useCallback(()=>{le(null),C?.cancelChanges();},[C]);react.useEffect(()=>{(C?.getSession()||C?.isEditingRow())&&le(null);},[L,C]);let ae=react.useMemo(()=>{if(!e||!F.getRange())return null;let s=F.cellCount();if(s>Ws)return {cells:s,truncated:true,numeric:null};let u=e.getColumnModel(),R=e.getVisualColumnIds(),P=e.getRows(),q=F.getStats((te,Q)=>{let ne=P[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,F,C,L]),se=react.useCallback((s,u)=>!!C&&!datagridCore.isChromeColumn(u)&&C.canUpdate(s,u),[C]),Ie=react.useCallback((s,u)=>{let R=U.getRange();z.current=R??{startRow:s,startColumn:u,endRow:s,endColumn:u},Oe(null);},[U]),$=react.useCallback((s,u)=>{let R=z.current;if(!R)return;let P=datagridCore.computeFillTarget(R,s,u);Oe(P?{startRow:P.bounds.minRow,startColumn:P.bounds.minColumn,endRow:P.bounds.maxRow,endColumn:P.bounds.maxColumn}:null);},[]),Be=react.useCallback((s,u)=>{if(!C||!e)return 0;let P=datagridCore.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",P.length,()=>P.length===0?false:(C.applyEdits(P,datagridCore.fillText(v.editFillUndo,{count:P.length}),"fill"),true)),P.length},[C,e,Me,ee,se,v]),je=react.useCallback(()=>{let s=z.current,u=we;if(z.current=null,Oe(null),!s||!u||!C||!e)return;let R=datagridCore.computeFillTarget(s,u.endRow,u.endColumn);R&&Be(s,R);},[we,C,e,Be]),Ee=react.useCallback((s,u)=>{if(!e)return "";let R=e.getRows()[s],P=e.getColumnIdAt(u);if(!R||R.kind!=="data"||!P)return "";let q=e.getColumnModel(),te=C?C.effectiveValue(R.key,P):q.getCellValue(R.data,P),Q=datagridCore.cellDisplayText(q.getDef(P),te,R.data);return e.clipboardCellText(R,P,te,Q).replace(/[\t\r\n]+/g," ")},[e,C]),Ae=react.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=react.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 P=[];if(u)F.forEachCell((Q,ne)=>P.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;P.push([Q,ne]);}let q=e.getRows(),te=[];for(let[Q,ne]of P){let be=q[Q];if(!be||be.kind!=="data")continue;let Re=e.getColumnIdAt(ne);!Re||datagridCore.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,datagridCore.fillText(v.editCutUndo,{count:te.length}),"cut"),true)),true},[e,C,U,F,Ae,Ee,v]),We=react.useCallback(async s=>{if(!C||!e)return;let u="";try{u=await navigator.clipboard.readText();}catch{return}if(!u)return;let R=e.processPastedTable(datagridCore.parseClipboardTable(u));if(!R)return;let P=U.getBounds(),q,te;if(P)q=P.minRow,te=P.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=datagridCore.computePasteCells(R,q,te,{target:P,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,datagridCore.coercePastedValue(Re.text,ne.getEditorDataType(ct)))}}).filter(Re=>Re!==null);e.notifyClipboardGesture("paste",be.length,()=>be.length===0?false:(C.applyEdits(be,datagridCore.fillText(v.editPasteUndo,{count:be.length}),"paste"),true));},[C,e,U,Me,ee,se,v]),[lt,J]=react.useState(null),ut=react.useCallback(s=>C?(J(null),C.beginRowEdit(s)):false,[C]),i=react.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=react.useCallback(()=>{C&&(J(null),C.cancelRowEdit(),D());},[C,D]);react.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=>!datagridCore.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=react.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(N&&u&&(s.key==="v"||s.key==="V"))return s.preventDefault(),We(),true;if(N&&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(N&&s.shiftKey&&!s.altKey&&!C.getSession()&&datagridCore.RANGE_KEY_DIRECTIONS[s.key]){let R=e.getFocus(),P=e.getVisualColumnIds(),q=P.flatMap((ne,be)=>datagridCore.isChromeColumn(ne)?[]:[be]),te=R?e.getRowIndex(R.rowKey):-1,Q=R?P.indexOf(R.columnId):-1;if(te>=0&&Q>=0&&q.length>0){s.preventDefault(),s.stopPropagation();let ne=e.getRows(),be=datagridCore.extendRangeByKey(U.getRange(),{row:te,column:Q},datagridCore.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,P[be.endColumn]),true}}if(N&&u&&!s.shiftKey&&!s.altKey&&!C.getSession()&&(s.key==="d"||s.key==="D"||s.key==="r"||s.key==="R")){let R=e.getFocus(),P=e.getVisualColumnIds(),q=P.findIndex(Re=>!datagridCore.isChromeColumn(Re)),te=R?e.getRowIndex(R.rowKey):-1,Q=R?P.indexOf(R.columnId):-1,ne=U.getRange()??(te>=0&&Q>=0?{startRow:te,startColumn:Q,endRow:te,endColumn:Q}:null),be=ne?datagridCore.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()&&Vs.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(),P=e.getRows(),q=P.length>0?P[P.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,N,B,We,_e,Ae,ve,re,ue,i,qe,Be]);return {engine:C,range:U,version:L,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:A,resolveDelete:Z,fillPreview:we,startFillDrag:Ie,moveFillDrag:$,endFillDrag:je,isDraggingFill:z.current!==null}}var ai=react.createContext("");function rr({theme:e,density:t,palette:n,children:a}){let l=react.useMemo(()=>datagridCore.themeClassName(e,t,n),[e,t,n]);return jsxRuntime.jsx(ai.Provider,{value:l,children:a})}function Tt(){return react.useContext(ai)}var lr=8,xt=26,si=4;function di(e,t,n){let a=datagridCore.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 nd(e,t,n){let a=e.map(r=>datagridCore.foldText(r.label)),l=di(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:c,onChange:w,onCommit:b,commitOnPick:G=true,onCancel:k,onTab:M}){let H=Te(),K=Tt(),E=react.useRef(null),f=react.useRef(null),[h,g]=react.useState(null),[O,Y]=react.useState(false),[N,B]=react.useState(0),[x,v]=react.useState(0),[L,p]=react.useState(null),T=react.useMemo(()=>e.map(D=>datagridCore.foldText(D.label)),[e]),F=react.useMemo(()=>{let D=e.find(re=>re.value===t);return D?D.label:t==null||t===""?"":String(t)},[e,t]),U=react.useMemo(()=>h===null?null:di(T,h,n),[T,h,n]),z=U===null?e.length:U.length,we=D=>e[U===null?D:U[D]],Oe=h??F;react.useEffect(()=>{B(D=>D<z?D:0);},[z]),react.useLayoutEffect(()=>{r&&(E.current?.focus({preventScroll:true}),E.current?.select());},[]);let pe=()=>{let D=E.current;if(!D)return;let re=D.getBoundingClientRect(),ve=datagridCore.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});p({left:ve.left,top:ve.top,width:re.width});};react.useLayoutEffect(()=>{O&&pe();},[O,z]),react.useEffect(()=>{if(!O)return;let D=()=>pe();return window.addEventListener("scroll",D,true),window.addEventListener("resize",D),()=>{window.removeEventListener("scroll",D,true),window.removeEventListener("resize",D);}},[O]),react.useLayoutEffect(()=>{let D=f.current;if(!D||!O||z===0)return;let re=N*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));},[N,O,z]);let ke=Math.min(Math.max(z,1),lr)*xt,C=Math.max(0,Math.floor(x/xt)-si),W=Math.min(z,Math.ceil((x+ke)/xt)+si),Ge=D=>{w(D.value),g(null),Y(false),G&&b();},Me=()=>{O||(Y(true),v(0),f.current&&(f.current.scrollTop=0));},ee=()=>{if(h===null)return true;let D=h.trim();if(D==="")return a&&w(""),true;let re=datagridCore.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(),!O){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(!O||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(!O||z===0)return;D.preventDefault(),D.stopPropagation(),B(D.key==="Home"?0:z-1);return}if(D.key==="Enter"){if(D.preventDefault(),D.stopPropagation(),O&&z>0){Ge(we(N));return}ee()?b():Me();return}if(D.key==="Escape"){if(D.preventDefault(),D.stopPropagation(),O){Y(false);return}g(null),k();return}if(D.key==="Tab"){if(!ee()){D.preventDefault(),D.stopPropagation(),Me();return}Y(false),M&&(D.preventDefault(),D.stopPropagation(),M(D.shiftKey));return}D.stopPropagation();}},ue=[];for(let D=C;D<W;D++){let re=we(D);ue.push(jsxRuntime.jsx("div",{role:"option","aria-selected":D===N,"aria-posinset":D+1,"aria-setsize":z,className:`kanuni-datagrid-lookup-item${D===N?" 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=O&&L?reactDom.createPortal(jsxRuntime.jsx("div",{ref:f,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${K}`,role:"listbox","aria-label":c,"data-testid":d?`${d}-list`:void 0,style:{left:L.left,top:L.top,width:L.width,height:ke},onScroll:D=>v(D.currentTarget.scrollTop),onMouseDown:D=>D.preventDefault(),children:z===0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-lookup-empty",children:H.editNoMatch}):jsxRuntime.jsx("div",{style:{position:"relative",height:z*xt},children:ue})}),document.body):null;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{ref:E,type:"text",role:"combobox","aria-expanded":O,"aria-autocomplete":"list","aria-label":c,"data-testid":d,"data-column-id":y,className:`kanuni-datagrid-editor${l?" kanuni-datagrid-editor--invalid":""}`,value:Oe,onChange:D=>{g(D.target.value),B(0),v(0),f.current&&(f.current.scrollTop=0),Y(true);},onFocus:Me,onClick:Me,onKeyDown:ye,onBlur:()=>{h!==null&&!ee()&&g(null),Y(false);}}),Se]})}function md(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=wi(e);return [...t.slice(n),...t.slice(0,n)]}function wi(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function fd(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 gd(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function ur({value:e,format:t=datagridCore.DEFAULT_DATE_FORMAT,invalid:n,disabled:a,autoFocus:l=true,testId:r,columnId:d,ariaLabel:y,onChange:c,onCommit:w,onCancel:b,onTab:G}){let k=Te(),M=Tt(),H=react.useMemo(()=>fd(k),[k]),K=react.useMemo(()=>md(k),[k]),E=react.useRef(null),[f,h]=react.useState(null),[g,O]=react.useState(false),[Y,N]=react.useState(null),B=react.useMemo(()=>datagridCore.toDate(e),[e]),x=f===null?datagridCore.formatDateValue(e,t):datagridCore.maskDate(f,t),v=f===null?null:datagridCore.parseDateValue(x,t),L=f!==null&&f.length===datagridCore.dateDigitCount(t)&&v===null,[p,T]=react.useState(()=>B??new Date);react.useEffect(()=>{g&&T(v??B??new Date);},[g]),react.useLayoutEffect(()=>{l&&(E.current?.focus({preventScroll:true}),E.current?.select());},[]);let F=react.useRef(null),U=react.useCallback(()=>{let W=E.current;if(!W)return;let Ge=W.getBoundingClientRect(),Me=datagridCore.placeAnchoredLayer({anchor:{left:Ge.left,top:Ge.top,bottom:Ge.bottom},width:F.current?.offsetWidth??0,height:F.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});N({left:Me.left,top:Me.top});},[]),z=react.useCallback(W=>{F.current=W,W&&U();},[U]);react.useLayoutEffect(()=>{g&&U();},[g,U]),react.useEffect(()=>{if(!g)return;let W=()=>U();return window.addEventListener("scroll",W,true),window.addEventListener("resize",W),()=>{window.removeEventListener("scroll",W,true),window.removeEventListener("resize",W);}},[g,U]);let we=react.useCallback(W=>{if(W===null){c(null);return}c(e instanceof Date?W:datagridCore.toIsoDate(W));},[c,e]),Oe=W=>{h(null),O(false),we(W),E.current?.focus({preventScroll:true});},pe=react.useCallback(()=>{if(f!==null){if(f.length===0){we(null),h(null);return}v&&we(v),h(null);}},[f,v,we]),ke=W=>{if(W.key==="Escape"){if(W.preventDefault(),W.stopPropagation(),g){O(false);return}h(null),b();return}if(g){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(datagridCore.dateDigits(datagridCore.formatDateValue(ee,t),t)),T(ee);return}if(W.key==="Enter"){W.preventDefault(),W.stopPropagation(),O(false),v&&Oe(v);return}}if(W.key==="Enter"){W.preventDefault(),W.stopPropagation(),pe(),w();return}if(W.key==="Tab"){pe(),O(false),G&&(W.preventDefault(),W.stopPropagation(),G(W.shiftKey));return}if(W.key.length===1&&!W.ctrlKey&&!W.metaKey&&!/\d/.test(W.key)){W.preventDefault();return}W.stopPropagation();},C=g&&Y?reactDom.createPortal(jsxRuntime.jsxs("div",{ref:z,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${M}`,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:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsxRuntime.jsx("button",{type:"button","aria-label":k.datePreviousMonth,"data-testid":"dg-date-prev",onClick:()=>T(new Date(p.getFullYear(),p.getMonth()-1,1)),children:"\u2039"}),jsxRuntime.jsxs("span",{"data-testid":"dg-date-title",children:[H[p.getMonth()]," ",p.getFullYear()]}),jsxRuntime.jsx("button",{type:"button","aria-label":k.dateNextMonth,"data-testid":"dg-date-next",onClick:()=>T(new Date(p.getFullYear(),p.getMonth()+1,1)),children:"\u203A"})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[K.map(W=>jsxRuntime.jsx("span",{className:"kanuni-datagrid-date-weekday",role:"columnheader",children:W},W)),(()=>{let Ge=(new Date(p.getFullYear(),p.getMonth(),1).getDay()-wi(k)+7)%7,Me=datagridCore.daysInMonth(p.getFullYear(),p.getMonth()+1),ee=[];for(let ye=0;ye<42;ye++){let ue=ye-Ge+1,Se=new Date(p.getFullYear(),p.getMonth(),ue),D=ue<1||ue>Me,re=gd(Se,v??B);ee.push(jsxRuntime.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":datagridCore.toIsoDate(Se),onClick:()=>Oe(Se),children:Se.getDate()},ye));}return ee})()]})]}),document.body):null;return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsxRuntime.jsx("input",{ref:E,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":y,"aria-invalid":L||n?true:void 0,"data-testid":r,"data-column-id":d,disabled:a,className:`kanuni-datagrid-editor${L||n?" kanuni-datagrid-editor--invalid":""}`,value:x,onChange:W=>{h(datagridCore.dateDigits(W.target.value,t));},onKeyDown:ke,onBlur:()=>{g||pe();}}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-date-button","aria-label":y?`${y} \u2014 ${k.dateOpenCalendar}`:k.dateOpenCalendar,"aria-expanded":g,"data-testid":"dg-date-open",disabled:a,tabIndex:-1,onMouseDown:W=>W.preventDefault(),onClick:()=>{O(W=>!W),E.current?.focus({preventScroll:true});},children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.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:c,onChange:w,onCommit:b,onTab:G,onCancel:k}){let M=react.useRef(null),H=react.useRef(false);react.useEffect(()=>{let h=M.current;if(h&&(h.focus({preventScroll:true}),!(!(h instanceof HTMLInputElement)||h.type==="checkbox")))if(a){if(h.type==="text"||h.type==="search"){let g=h.value.length;h.setSelectionRange(g,g);}}else h.select();},[]);let E={ref:M,onKeyDown:h=>{h.nativeEvent.isComposing||h.keyCode===229||(h.key==="Enter"?(h.preventDefault(),h.stopPropagation(),b(h.shiftKey?"none":"down")):h.key==="Tab"?(h.preventDefault(),h.stopPropagation(),H.current=true,G(h.shiftKey?-1:1)):h.key==="Escape"?(h.preventDefault(),h.stopPropagation(),k()):h.stopPropagation());},onBlur:()=>{H.current||b("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"},f;return l===null?f=jsxRuntime.jsx("input",{...E,type:"text",value:"\u2026",readOnly:true,disabled:true}):l&&l.length>0?f=r?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{...E,type:"text",list:`${E["data-testid"]}-list`,value:cr(e,t),onChange:h=>{let g=l.find(O=>O.label===h.target.value);w(g?g.value:h.target.value);}}),jsxRuntime.jsx("datalist",{id:`${E["data-testid"]}-list`,children:l.map(h=>jsxRuntime.jsx("option",{value:h.label},String(h.value)))})]}):jsxRuntime.jsx(sr,{options:l,value:e,matchMode:d,allowCustom:false,invalid:!!n,testId:E["data-testid"],ariaLabel:y,onChange:w,onCommit:()=>b("none"),onCancel:k,onTab:h=>{H.current=true,G(h?-1:1);}}):t==="boolean"?f=jsxRuntime.jsx("input",{...E,type:"checkbox",checked:e===true,onChange:h=>w(h.target.checked)}):t==="number"?f=jsxRuntime.jsx("input",{...E,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"?f=jsxRuntime.jsx(ur,{value:e,format:c,invalid:!!n,testId:E["data-testid"],ariaLabel:y,onChange:w,onCommit:()=>b("none"),onCancel:k,onTab:h=>{H.current=true,G(h?-1:1);}}):f=jsxRuntime.jsx("input",{...E,type:"text",value:cr(e,t),onChange:h=>w(h.target.value)}),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[f,n&&jsxRuntime.jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function Ri(e,t,n,a,l=false){let r=!n&&t!==void 0&&t.enabled!==false,d=r&&!l,y=react.useCallback(N=>{let B=e?.getColumnModel().getDef(N);return !B?.lookup&&!B?.renderEditor&&B?.allowFormulas!==true},[e]),{engine:c,version:w,handleKeyDown:b,editAdjacentCell:G,focusScroller:k,saveError:M,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:K,getCellClassName:E,onCellDoubleClick:f}=a,h=react.useCallback(N=>{if(!r||!c||N.node.kind!=="data"||!c.isEditing(N.node.key,N.columnId))return K?.(N);let B=c.getSession(),x=e.getColumnModel(),v=x.getDef(N.columnId);return jsxRuntime.jsx(pr,{value:B.value,dataType:x.getEditorDataType(N.columnId),ariaLabel:v?.headerName??N.columnId,dateFormat:v?.dateFormat,error:B.validation.message,seeded:B.seeded,onChange:L=>c.setEditValue(L),onCommit:L=>{c.commitEdit()&&(L==="down"&&e?.moveFocus("down"),k());},onTab:L=>{if(t?.focusCellOnTab===false){c.commitEdit();return}G(L,{open:false,cycle:t?.focusCellOnCycle!==false}),k();},onCancel:()=>{c.cancelEdit(),k();}})},[r,c,e,w,K,G,k,t?.focusCellOnTab,t?.focusCellOnCycle]),g=react.useCallback(N=>{let B=E?.(N);return !r||!c||N.node.kind!=="data"||!c.isEditing(N.node.key,N.columnId)?B:B?`${B} kanuni-datagrid-cell--editing`:"kanuni-datagrid-cell--editing"},[r,c,w,E]),O=react.useCallback(N=>{f?.(N),!(!r||!c||N.node.kind!=="data")&&c.beginEdit(N.node.key,N.columnId);},[r,c,f]),Y=react.useCallback(N=>d?b(N):false,[d,b]);return {active:r,renderCellContent:d?h:K,getCellClassName:d?g:E,onCellDoubleClick:d?O:f,handleKeyDown:Y,saveError:r?M:null,clearSaveError:H}}function fr({open:e,title:t,message:n,cancelLabel:a,confirmLabel:l,danger:r,dark:d,onConfirm:y,onCancel:c}){let w=react.useRef(null),b=react.useRef(null),G=react.useId(),k=react.useId(),M=Tt();return react.useEffect(()=>{if(!e)return;let H=document.activeElement;w.current?.focus();let K=b.current;return ()=>{let E=document.activeElement;K&&(K.contains(E)||E===document.body||E===null)&&H?.isConnected&&H.focus({preventScroll:true});}},[e]),react.useEffect(()=>{if(!e)return;let H=K=>{if(K.key==="Escape"){K.stopPropagation(),c();return}if(K.key==="Tab"&&b.current){let E=Array.from(b.current.querySelectorAll("button:not([disabled])"));if(E.length===0)return;let f=E.indexOf(document.activeElement),h=K.shiftKey?f<=0?E.length-1:f-1:f===E.length-1?0:f+1;K.preventDefault(),K.stopPropagation(),E[h].focus();}};return document.addEventListener("keydown",H,true),()=>document.removeEventListener("keydown",H,true)},[e,c]),!e||typeof document>"u"?null:reactDom.createPortal(jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${d?" kanuni-datagrid-dark":""}${M}`,role:"presentation",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:c}),jsxRuntime.jsxs("div",{ref:b,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":G,"aria-describedby":k,"data-testid":"dg-dialog",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-title",id:G,children:t}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-message",id:k,children:n}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-dialog-actions",children:[a!==void 0&&jsxRuntime.jsx("button",{type:"button","data-testid":"dg-dialog-cancel",onClick:c,children:a}),jsxRuntime.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 Rd(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??gr}}function Cd(e,t){return e<=t}function wr(e,t){let n=Rd(t),a=n!==null,l=n?.always??false,r=n?.maxRows??gr,[d,y]=react.useState(false),c=react.useCallback(()=>y(true),[]),w=react.useCallback(()=>y(false),[]);react.useEffect(()=>{if(!a||l||typeof window>"u"||typeof window.addEventListener!="function")return;let G=()=>{let M=e.getRows().length;if(!Cd(M,r)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${M} rows exceeds maxRows (${r}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}reactDom.flushSync(()=>y(true));},k=()=>reactDom.flushSync(()=>y(false));return window.addEventListener("beforeprint",G),window.addEventListener("afterprint",k),()=>{window.removeEventListener("beforeprint",G),window.removeEventListener("afterprint",k);}},[a,l,r,e]);let b=l||d;return react.useEffect(()=>{if(!b||typeof document>"u")return;let G=document.documentElement;return to++,G.classList.add("kanuni-datagrid-printing"),()=>{to--,to<=0&&(to=0,G.classList.remove("kanuni-datagrid-printing"));}},[b]),{active:b,begin:c,end:w}}var no=new Map,hr=new Set;function Si(e,t){let n=no.get(e);return n?[...n].filter(a=>a!==t):[]}function br(e,t,n){let a=react.useRef(null);return react.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 c=Si(t,r);if(c.length===0)return;let w=e.getColumnStates();hr.add(t);try{for(let b of c)b.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:react.useCallback(r=>{let d=a.current;if(!t||!d)return;let y=Si(t,d);if(y.length!==0)for(let c of y){let w=c.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 Ei(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),c=r,w=e.center.slice(n,a),b=Array.from({length:w.length},(M,H)=>n+H),G=e.stickyIndices.filter(M=>M<n);if(G.length>0){let M=G.map(H=>e.center[H]);c-=M.reduce((H,K)=>H+K.state.width,0),w=[...M,...w],b=[...G,...b];}let k=new Map;for(let M of e.stickyIndices){let H=e.centerStickyOffsets[M];H!==null&&k.set(e.center[M].state.id,H);}return {centerColumns:w,centerIndices:b,leadingSpacer:Math.max(0,c),trailingSpacer:y,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:k}}function Gi(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 Mi(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,an=60,Id=[["rowNumberColumn",an],["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 Id)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:jsxRuntime.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=datagridCore.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(jsxRuntime.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)),l}function Ld(e,t,n,a=""){if(e.renderCell)return e.renderCell({value:t,row:n.data,node:n,column:e});let l=datagridCore.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(datagridCore.formatDateValue(t,e.dateFormat),a):t==null?"":ro(String(t),a)}function Hd({gridId:e,node:t,index:n,layout:a,columnModel:l,centerColumns:r,centerIndices:d,stickyInsets:y,leadingSpacer:c,trailingSpacer:w,striped:b,selected:G,ariaSelectable:k=true,selectable:M=true,groupSelection:H,onToggleGroupSelect:K,groupDisplay:E="fullWidth",focusedColumnId:f,rowFocused:h=false,renderRow:g,checkboxColumn:O,rowNumberColumn:Y=false,rowNumber:N=null,getNote:B,getSpan:x,resolveColSpans:v,findKind:L,headerRowCount:p,onRowClick:T,onRowMouseDown:F,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:A=null,height:ge}){let Z=Te();if(datagridCore.isDetailRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+p,"data-row-key":String(t.key),"data-detail-for":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-detail-cell",role:"gridcell","aria-colindex":1,children:ye?.(t.data)})});if(datagridCore.isEditFormRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+p,"data-row-key":String(t.key),"data-editform-for":t.parentKey===null?"":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-editform-cell",role:"gridcell","aria-colindex":1,children:t.parentKey===null?null:ue?.(t.parentKey,t.data)})});if(datagridCore.isFillerRow(t))return null;if(datagridCore.isGroupRow(t)&&E==="fullWidth"){let I=l.getDef(t.columnId),ie=I?.headerName??t.columnId,de=datagridCore.lookupLabel(I,t.value)??t.display??(t.label===""?Z.filterBlank:t.label),xe=t.aggregates??null;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${f?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+p,"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:jsxRuntime.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&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:H==="all",ref:V=>{V&&(V.indeterminate=H==="some");},"aria-label":datagridCore.fillText(Z.selectGroupAria,{count:String(t.count),group:de}),onChange:()=>K?.(String(t.key)),onClick:V=>V.stopPropagation(),onMouseDown:V=>V.stopPropagation()}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:t.expanded?"\u25BE":"\u25B8"}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[ie,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:de}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),xe&&C?.map(V=>jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[datagridCore.summaryLabel(V)," ",l.getDef(V.columnId)?.headerName??V.columnId,":"]})," ",datagridCore.formatSummaryValue(V,xe[datagridCore.summaryKey(V.columnId,V.type)],l.getDef(V.columnId))]},datagridCore.summaryKey(V.columnId,V.type)))]})})}let he=[],me=Ct({rowNumberColumn:Y,detailColumn:W,checkboxColumn:O}),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",$=datagridCore.isGroupRow(t)?t:null,Be=Ie||$!==null,je=$?E==="column"?datagridCore.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=datagridCore.lookupLabel(ie,I.value)??I.display??(I.label===""?Z.filterBlank:I.label);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:I.level*16},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:I.expanded?"\u25BE":"\u25B8"}),E!=="column"&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[ie?.headerName??I.columnId,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:de}),jsxRuntime.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?jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:datagridCore.formatSummaryValue(de,$.aggregates[datagridCore.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?jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:Ld(I,l.getCellValue(t.data,ie),t,pe);return se&&ie===_e?jsxRuntime.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?jsxRuntime.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"}):jsxRuntime.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"&&N!==null;he.push(jsxRuntime.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:an,insetInlineStart:me.inset("rowNumberColumn")},children:I?N:""},"__rownum"));}W&&he.push(jsxRuntime.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:jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Ge,"aria-label":Ge?Z.collapseDetails:Z.expandDetails,onClick:I=>{I.stopPropagation(),Me?.(t.key);},children:Ge?"\u25BE":"\u25B8"})},"__detail")),O&&he.push(jsxRuntime.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&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:H==="all",ref:I=>{I&&(I.indeterminate=H==="some");},"aria-label":datagridCore.fillText(Z.selectGroupAria,{count:String($.count),group:$.display??$.label}),onChange:()=>K?.(String($.key)),onClick:I=>I.stopPropagation(),onMouseDown:I=>I.stopPropagation()}):Ie?null:jsxRuntime.jsx("input",{type:"checkbox",checked:G,disabled:!M,tabIndex:-1,"aria-label":datagridCore.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=>f===I?" kanuni-datagrid-cell--focused":"",u=I=>{let ie=L&&t.kind==="data"?L(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},P=t.kind==="data"&&v?v(t):null,q=I=>P?.widths.get(I.state.id)??I.state.width,te=I=>{let ie=P?.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(P?.covered.has(V))return;let et=oo("left",ie,R);he.push(jsxRuntime.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),f===V,()=>We(de,V,et))},V));});let Q=P?.lead??null,ne=c-(P?.leadingDelta??0),be=w-(P?.trailingDelta??0);ne>0&&he.push(jsxRuntime.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 jsxRuntime.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),f===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),!P?.covered.has(I.state.id)&&he.push(Re(I,de));}),ct||he.push(Re(Q.column,Fe)),be>0&&he.push(jsxRuntime.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(P?.covered.has(V))return;let et=oo("right",ie,R);he.push(jsxRuntime.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),f===V,()=>We(de,V,et))},V));}),jsxRuntime.jsxs("div",{className:`kanuni-datagrid-row${b&&n%2===1?" kanuni-datagrid-row--odd":""}${G?" 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}`:""}${A?` kanuni-datagrid-row--drop-${A}`:""}`,role:"row","aria-rowindex":n+1+p,"aria-selected":$||!k?void 0:G,"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:F&&!$?I=>F(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&&!$&&jsxRuntime.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:jsxRuntime.jsx("svg",{width:"10",height:"14",viewBox:"0 0 10 14",focusable:"false",children:jsxRuntime.jsxs("g",{fill:"currentColor",children:[jsxRuntime.jsx("circle",{cx:"3",cy:"3",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"3",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"3",cy:"7",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"3",cy:"11",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"11",r:"1.2"})]})})}),g&&t.kind==="data"?g({row:t.data,node:t,rowIndex:n,selected:G,focused:h}):he]})}var ln=react.memo(Hd);var sn=26;function Dr(e,t){return datagridCore.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=jsxRuntime.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 jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.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:jsxRuntime.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[jsxRuntime.jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),jsxRuntime.jsx("path",{d:"M5 8h6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),l&&jsxRuntime.jsx("path",{d:"M8 5v6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}),n]})}function Od({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:a,depth:l,checkboxColumn:r=false,detailColumn:d=false,rowNumberColumn:y=false,rowHeight:c=sn,bandFold:w}){if(l<=0)return null;let b=Ct({rowNumberColumn:y,detailColumn:d,checkboxColumn:r}).total,G=Dr(e.left,l),k=Dr(t,l),M=Dr(e.right,l),H=(K,E,f)=>{let h=f;for(let g=0;g<E;g++)h+=K[g].width;return h};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:l},(K,E)=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":E+1,style:{width:e.totalWidth+b,height:c,top:E*c},children:[b>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned",style:{width:b,insetInlineStart:0},"aria-hidden":"true"}),(G[E]??[]).map((f,h)=>jsxRuntime.jsx("div",{className:Sr(f,` kanuni-datagrid-band-cell--pinned${h===(G[E]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:f.spacer?"presentation":"columnheader","aria-colspan":f.spacer?void 0:f.columnIds.length,style:{width:f.width,insetInlineStart:H(G[E]??[],h,b)},title:f.spacer?void 0:f.label,children:Er(f,w)},f.columnIds[0])),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(k[E]??[]).map(f=>jsxRuntime.jsx("div",{className:Sr(f),role:f.spacer?"presentation":"columnheader","aria-colspan":f.spacer?void 0:f.columnIds.length,style:{width:f.width},title:f.spacer?void 0:f.label,children:Er(f,w)},f.columnIds[0])),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),(M[E]??[]).map((f,h)=>{let g=M[E]??[],O=0;for(let Y=h+1;Y<g.length;Y++)O+=g[Y].width;return jsxRuntime.jsx("div",{className:Sr(f,` kanuni-datagrid-band-cell--pinned${h===0?" kanuni-datagrid-pin-edge-right":""}`),role:f.spacer?"presentation":"columnheader","aria-colspan":f.spacer?void 0:f.columnIds.length,style:{width:f.width,insetInlineEnd:O},title:f.spacer?void 0:f.label,children:Er(f,w)},f.columnIds[0])})]},E))})}var Mr=react.memo(Od);var Wd=()=>jsxRuntime.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.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 Vd(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function Ud({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:a,leadingSpacer:l,trailingSpacer:r,sort:d,sortable:y,onSort:c,headerFilter:w=false,filteredColumns:b,onOpenFilter:G,filterIconMode:k="hover",checkboxColumn:M=false,detailColumn:H=false,rowNumberColumn:K=false,rowNumberHeader:E="#",selectAllState:f="none",selectAllDisabled:h=false,onToggleSelectAll:g,draggable:O=false,reorderable:Y=false,onReorder:N,resizable:B=false,onResize:x,onAutoFit:v,onHeaderContextMenu:L,groupLevels:p,onHeaderClick:T,getHeaderClassName:F,renderHeaderLabel:U}){let z=Te(),we=Ct({rowNumberColumn:K,detailColumn:H,checkboxColumn:M}),Oe=new Map(d.map((X,ae)=>[X.columnId,{direction:X.direction,order:ae}])),pe=new Set(b??[]),ke=[...n.left.map(X=>X.state.id),...a.map(X=>X.state.id),...n.right.map(X=>X.state.id)],[C,W]=react.useState(null),Ge=react.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=react.useRef(null),Se=react.useRef(false),[D,re]=react.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",A=(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")N?.(se,X);else {let $=ve[ve.indexOf(X)+1];N?.(se,$===se?ve[ve.indexOf(X)+2]:$);}ue.current=null;},[Z,he]=react.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=$===datagridCore.GROUP_COLUMN_ID,Ae=Oe.get(Ee?p?.[0]??$:$),_e=O&&Ie.groupable!==false||Y&&Ie.reorderable!==false,We=D?.id===$?D.side:null,lt=F?.($);return jsxRuntime.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=>A($,J):void 0,onDragLeave:Y?()=>re(J=>J?.id===$?null:J):void 0,onDrop:Y?J=>ge($,J):void 0,onContextMenu:L&&!datagridCore.isChromeColumn($)?J=>L($,J):void 0,onClick:Be||T?J=>{T?.($,J)||Be&&c($,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(),G?.($,J.currentTarget)):Be&&(J.key==="Enter"||J.key===" ")&&(J.preventDefault(),c($,J.shiftKey));},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-header-label",id:`${Ge}-${encodeURIComponent($)}`,children:U?.($)??Vd(Ie,$)}),Ae&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:Ae.direction==="asc"?"\u25B2":"\u25BC"}),Ae&&d.length>1&&!Ee&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:Ae.order+1}),w&&Ie.filterable!==false&&jsxRuntime.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":datagridCore.fillText(z.filterColumnAria,{column:Ie.headerName??$}),"aria-haspopup":"dialog","data-filter-button":$,tabIndex:-1,onClick:J=>{J.stopPropagation(),G?.($,J.currentTarget);},children:jsxRuntime.jsx(Wd,{})}),B&&Ie.resizable!==false&&jsxRuntime.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 jsxRuntime.jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/sn)+1,style:{width:n.totalWidth+we.total,top:e||void 0},children:[K&&jsxRuntime.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:an,insetInlineStart:we.inset("rowNumberColumn")},children:E??""}),H&&jsxRuntime.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")}}),M&&jsxRuntime.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:jsxRuntime.jsx("input",{type:"checkbox",checked:f==="all",ref:X=>{X&&(X.indeterminate=f==="some");},"aria-label":z.selectAllRows,disabled:h,onChange:()=>g?.()})}),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&&jsxRuntime.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&&jsxRuntime.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=react.memo(Ud);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 c=e[d]??"";c!==y&&(c===""&&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 qd({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:a,leadingSpacer:l,trailingSpacer:r,values:d,checkboxColumn:y=false,detailColumn:c=false,rowNumberColumn:w=false,placeholder:b,onChange:G,onCommit:k,periodSuggestions:M,periodListId:H,operators:K,onOperatorChange:E,renderCustom:f}){let h=Te(),g=Ct({rowNumberColumn:w,detailColumn:c,checkboxColumn:y}),O=b??h.filterPlaceholder,Y=(N,B,x)=>{let v=N.state.id,L=N.def.filterable!==false,p=L?f?.(v):void 0,T=L&&p===void 0?datagridCore.customFilterOperators(N.def):[],F=T.some(z=>z.id===K?.[v])?K[v]:"",U=T.find(z=>z.id===F)?.operandType==="none";return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-cell${B}`,role:"gridcell",style:x,"data-column-id":v,children:[L&&p!==void 0&&p,L&&p===void 0&&T.length>0&&jsxRuntime.jsxs("select",{className:"kanuni-datagrid-filter-operator",value:F,"aria-label":datagridCore.fillText(h.filterOperatorAria,{column:N.def.headerName??v}),"data-filter-operator-for":v,onChange:z=>E?.(v,z.target.value),children:[jsxRuntime.jsx("option",{value:"",children:h.filterOperatorDefault}),T.map(z=>jsxRuntime.jsx("option",{value:z.id,children:z.label},z.id))]}),L&&p===void 0&&jsxRuntime.jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:d[v]??"",placeholder:O,"aria-label":datagridCore.fillText(h.filterColumnAria,{column:N.def.headerName??v}),"data-filter-for":v,disabled:U||void 0,list:N.def.dataType==="date"&&H&&F===""?H:void 0,onChange:z=>G(v,z.target.value),onKeyDown:z=>{z.key==="Enter"&&k?.(v,z.target.value);},onBlur:z=>k?.(v,z.target.value)})]},v)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+g.total,"--dg-band-offset":`${e}px`},children:[H&&M&&M.length>0&&jsxRuntime.jsx("datalist",{id:H,children:M.map(N=>jsxRuntime.jsx("option",{value:N},N))}),g.total>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",role:"gridcell",style:{width:g.total,insetInlineStart:0}}),n.left.map((N,B)=>Y(N,` kanuni-datagrid-filter-cell--pinned${B===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:N.state.width,insetInlineStart:n.leftOffsets[B]+g.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),a.map(N=>{let B=t?.get(N.state.id);return B===void 0?Y(N,"",{width:N.state.width}):Y(N," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:N.state.width,insetInlineStart:B+g.total})}),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),n.right.map((N,B)=>Y(N,` kanuni-datagrid-filter-cell--pinned${B===0?" kanuni-datagrid-pin-edge-right":""}`,{width:N.state.width,insetInlineEnd:n.rightOffsets[B]}))]})}var Hr=react.memo(qd);function at({children:e,dark:t=false}){let[n,a]=react.useState(null),l=Tt();return react.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?reactDom.createPortal(e,n):null}function Wt({anchor:e,onClose:t,margin:n=8,autoFocus:a=false}){let l=react.useRef(null),[r,d]=react.useState(e),y=react.useCallback(c=>{if(l.current=c,!c)return;let w=c.getBoundingClientRect(),b=e.top+w.height+n>window.innerHeight,G=e.top-w.height-n*2,k=b&&G>n?G: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&&c.focus();},[e.left,e.top,n,a]);return react.useEffect(()=>{let c=G=>{let k=l.current;k&&!k.contains(G.target)&&t();},w=G=>{G.key==="Escape"&&t();},b=G=>{let k=l.current,M=G.target;k&&M instanceof Node&&k.contains(M)||t();};return document.addEventListener("mousedown",c),document.addEventListener("keydown",w),window.addEventListener("scroll",b,true),()=>{document.removeEventListener("mousedown",c),document.removeEventListener("keydown",w),window.removeEventListener("scroll",b,true);}},[t]),{position:r,ref:y,elementRef:l}}var uo=25,Sn=new Map,Hi=200,ou=200,Fi=8;function ru(e){let t=Te();return react.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 au=react.memo(function({label:t,display:n,index:a,active:l,checked:r,onToggle:d,onFocus:y}){return jsxRuntime.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:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:r,tabIndex:-1}),jsxRuntime.jsx("span",{children:n})]})});function _r({gridId:e,columnId:t,headerLabel:n,entries:a,initialSelected:l,anchor:r,loading:d=false,dark:y,onApply:c,onClose:w,truncated:b=false,onSearch:G,labels:k}){let M=ru(k),[H,K]=react.useState(""),[E,f]=react.useState(0),[h,g]=react.useState(()=>new Set(l??a.map(A=>A.label))),[O,Y]=react.useState(false),N=react.useRef(null),B=react.useRef(null),[x,v]=react.useState(0),[L,p]=react.useState(240),T=`${e??""}:${t}`,F=Sn.get(T),U=react.useRef(F?.scrollTop??null),[z,we]=react.useState(F&&F.width&&F.height?{width:F.width,height:F.height}:null),Oe=react.useCallback(A=>{N.current=A,A?.focus();},[]),pe=react.useRef(null),ke=react.useMemo(()=>{let A=datagridCore.foldText(H.trim());if(!A||b)return a;let ge=pe.current;(!ge||ge.entries!==a)&&(ge={entries:a,lowered:a.map(he=>datagridCore.foldText(he.label)),needle:"",result:[]},pe.current=ge);let Z=ge.needle!==""&&A.includes(ge.needle)?ge.result.filter(he=>datagridCore.foldText(he.label).includes(A)):a.filter((he,me)=>ge.lowered[me].includes(A));return ge.needle=A,ge.result=Z,Z},[a,H,b]);react.useEffect(()=>{if(!G)return;let A=setTimeout(()=>G(H),150);return ()=>clearTimeout(A)},[H,G]),react.useEffect(()=>{O||l||g(new Set(a.map(A=>A.label)));},[a,O,l]);let C=react.useCallback(A=>{B.current=A,A&&p(A.clientHeight||240);},[]);react.useEffect(()=>{let A=B.current;!A||U.current===null||d||A.scrollHeight<=A.clientHeight||(A.scrollTop=U.current,U.current=null,v(A.scrollTop));});let W=react.useMemo(()=>{let A=ke.length,ge=Math.max(0,Math.floor(x/uo)-Fi),Z=Math.ceil(L/uo)+Fi*2,he=Math.min(ge,Math.max(0,A-1)),me=Math.min(A,he+Z);return {start:he,end:me,count:A,rows:ke.slice(he,me)}},[ke,x,L]),Ge=Wt({anchor:r,onClose:w}),[Me,ee]=react.useState(null),ye=(Me??Ge.position.left)+(z?.width??260)+48<window.innerWidth?"right":"left",ue=A=>{A.preventDefault(),A.stopPropagation();let ge=Ge.elementRef.current;if(!ge)return;let Z=ge.getBoundingClientRect(),he=ye,me={x:A.clientX,y:A.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(ou,me.h+$));if(he==="right"){let Ee=window.innerWidth-me.left-12;Ke={width:Math.min(Ee,Math.max(Hi,me.w+Ie)),height:je},we(Ke);}else {let Ee=me.left+me.w,Ae=Ee-12,_e=Math.min(Ae,Math.max(Hi,me.w-Ie));Ke={width:_e,height:je},we(Ke),ee(Ee-_e);}B.current&&p(B.current.clientHeight);},ae=()=>{if(window.removeEventListener("pointermove",X),window.removeEventListener("pointerup",ae),Ke){let se=Sn.get(T);Sn.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=react.useCallback(A=>{Y(true),g(ge=>{let Z=new Set(ge);return Z.has(A)?Z.delete(A):Z.add(A),Z});},[]),D=react.useCallback(A=>f(A),[]),re=()=>{if(d)return;if(h.size===a.length){c(null);return}let A=a.filter(me=>h.has(me.label)),ge=A.some(me=>me.value===null||me.value===void 0),Z=A.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)},c(he);},ve=A=>{let ge=Math.max(0,Math.min(ke.length-1,A));f(ge);let Z=Ge.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${ge}"]`);Z?.focus(),Z?.scrollIntoView({block:"nearest"});},Ne=A=>A.key.length===1&&!A.ctrlKey&&!A.metaKey&&!A.altKey,le=A=>{let ge=A.target===N.current;if(A.key==="Backspace"&&!ge){A.preventDefault(),N.current?.focus(),K(Z=>Z.slice(0,-1)),f(0);return}if(A.key==="ArrowDown"){A.preventDefault(),ve(ge?0:E+1);return}if(A.key==="ArrowUp"){A.preventDefault(),ve(ge?ke.length-1:E-1);return}if(!ge&&(A.key==="Home"||A.key==="End")){A.preventDefault(),ve(A.key==="Home"?0:ke.length-1);return}if(A.key===" "&&!ge){A.preventDefault();let Z=ke[E];Z&&Se(Z.label);return}if(A.key==="Enter"){A.preventDefault(),re();return}!ge&&Ne(A)&&A.key!==" "&&(A.preventDefault(),N.current?.focus(),K(Z=>Z+A.key),f(0));};return jsxRuntime.jsx(at,{dark:y,children:jsxRuntime.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:[jsxRuntime.jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${ye}`,"data-testid":"dg-filter-resize",onPointerDown:ue}),jsxRuntime.jsx("input",{ref:Oe,className:"kanuni-datagrid-filter-search",type:"search",placeholder:M.search,value:H,onChange:A=>{K(A.target.value),f(0);},"data-testid":"dg-filter-search"}),b&&jsxRuntime.jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:M.truncated}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>{Y(true),g(new Set(a.map(A=>A.label)));},children:M.selectAll}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{Y(true),g(new Set);},children:M.clear})]}),jsxRuntime.jsxs("div",{ref:C,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true","aria-busy":d||void 0,"aria-setsize":ke.length,onScroll:A=>{let ge=A.target.scrollTop;v(ge),U.current=null;let Z=Sn.get(T);Sn.set(T,{...Z,scrollTop:ge});},children:[d&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:M.loading}),!d&&ke.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:M.noMatch}),W.count>0&&jsxRuntime.jsx("div",{style:{height:ke.length*uo,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${W.start*uo}px)`},children:W.rows.map((A,ge)=>{let Z=W.start+ge;return jsxRuntime.jsx(au,{label:A.label,display:A.label===""?M.blank:A.label,index:Z,active:Z===E,checked:h.has(A.label),onToggle:Se,onFocus:D},A.label)})})})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:w,children:M.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:re,disabled:d,"data-testid":"dg-filter-apply",children:M.apply})]})]})})}function $r(e,t,n){return n==="row"?e.getColumnFilter(t,datagridCore.FILTER_PART_ROW):e.getColumnFilter(t,datagridCore.FILTER_PART_SET)??e.getColumnFilter(t,datagridCore.FILTER_PART_DEFAULT)}function Vr({controller:e,columnId:t,surface:n,close:a}){let[l,r]=react.useState(()=>$r(e,t,n));react.useEffect(()=>(r($r(e,t,n)),e.events.on("filterChanged",()=>{r($r(e,t,n));})),[e,t,n]);let d=react.useCallback(w=>{e.setColumnFilter(t,w,n==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET);},[e,t,n]),y=react.useCallback(()=>{},[]),c=e.getColumnModel().getDef(t);return c?.renderFilter?jsxRuntime.jsx(jsxRuntime.Fragment,{children:c.renderFilter({columnId:t,column:c,surface:n,value:l,setValue:d,close:a??y})}):null}var uu='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function Ki({controller:e,columnId:t,headerLabel:n,anchor:a,dark:l,onClose:r}){let d=Wt({anchor:a,onClose:r}),y=react.useRef(false),c=d.ref,w=react.useCallback(b=>{c(b),!(!b||y.current)&&(y.current=true,(b.querySelector(uu)??b).focus({preventScroll:true}));},[c]);return jsxRuntime.jsx(at,{dark:l,children:jsxRuntime.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:jsxRuntime.jsx(Vr,{controller:e,columnId:t,surface:"popup",close:r})})})}var Ur="text/x-kanuni-column";function fu({columns:e,levels:t,onSetLevels:n,maxLevels:a=1,onExpandAll:l,onCollapseAll:r,emptyText:d}){let y=Te(),c=d??y.groupPanelHint,[w,b]=react.useState(false),G=react.useRef(null),[k,M]=react.useState(null),H=x=>e.find(L=>L.state.id===x)?.def.headerName??x,K=x=>{if(!x||t.includes(x))return;let v=t.length>=a?t.slice(0,a-1):[...t];n([...v,x]);},E=x=>n(t.filter(v=>v!==x)),f=(x,v)=>{let L=t.filter(T=>T!==x),p=Math.max(0,Math.min(L.length,v));n([...L.slice(0,p),x,...L.slice(p)]);},h=(x,v,L)=>{if(x===v)return;let T=t.filter(F=>F!==x).indexOf(v);T<0||f(x,L==="before"?T:T+1);},g=(x,v)=>{let L=x+v;L<0||L>=t.length||h(t[x],t[L],v<0?"before":"after");},O=(x,v)=>x<v.top+v.height/2?"before":"after",Y=(x,v)=>{v.preventDefault(),v.stopPropagation();let L=O(v.clientY,v.currentTarget.getBoundingClientRect());M(null),b(false);let p=G.current;if(G.current=null,p){h(p,t[x],L);return}let T=v.dataTransfer.getData(Ur);if(!T||t.includes(T))return;if(t.length>=a){K(T);return}let F=L==="before"?x:x+1;n([...t.slice(0,F),T,...t.slice(F)]);},N=(x,v,L)=>{let p=L.ctrlKey||L.metaKey;p&&(L.key==="ArrowUp"||L.key==="ArrowLeft")?(L.preventDefault(),g(x,-1)):p&&(L.key==="ArrowDown"||L.key==="ArrowRight")?(L.preventDefault(),g(x,1)):(L.key==="Delete"||L.key==="Backspace")&&(L.preventDefault(),E(v));},B=e.filter(x=>!t.includes(x.state.id));return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-group-panel${w?" kanuni-datagrid-group-panel--over":""}`,onDragOver:x=>{x.preventDefault(),b(true);},onDragLeave:()=>b(false),onDrop:x=>{if(x.preventDefault(),b(false),M(null),G.current){G.current=null;return}K(x.dataTransfer.getData(Ur));},children:[t.length>0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((x,v)=>jsxRuntime.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:L=>{L.preventDefault(),L.stopPropagation();let p=O(L.clientY,L.currentTarget.getBoundingClientRect());M(T=>T?.index===v&&T.side===p?T:{index:v,side:p});},onDragLeave:()=>M(L=>L?.index===v?null:L),onDrop:L=>Y(v,L),children:jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:a>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${datagridCore.fillText(y.groupLevelAria,{n:v+1})}: ${H(x)}`,onDragStart:L=>{G.current=x,L.dataTransfer.effectAllowed="move",L.dataTransfer.setData(Ur,x);},onDragEnd:()=>{G.current=null,M(null);},onKeyDown:L=>N(v,x,L),children:[a>1&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-chip-level",children:v+1}),H(x),jsxRuntime.jsx("button",{type:"button","aria-label":datagridCore.fillText(y.groupRemoveAria,{column:H(x)}),onClick:()=>E(x),children:"\xD7"})]})},x))}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-panel-hint",children:c}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-group-panel-actions",children:[t.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:l,children:y.groupExpandAll}),jsxRuntime.jsx("button",{type:"button",onClick:r,children:y.groupCollapseAll})]}),jsxRuntime.jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-sr-only",children:a>1?y.groupAddLevel:y.groupByColumn}),a>1?jsxRuntime.jsxs("select",{value:"",disabled:B.length===0,onChange:x=>K(x.target.value),children:[jsxRuntime.jsx("option",{value:"",children:y.groupAddLevelButton}),B.map(x=>jsxRuntime.jsx("option",{value:x.state.id,children:x.def.headerName??x.state.id},x.state.id))]}):jsxRuntime.jsxs("select",{value:t[0]??"",onChange:x=>n(x.target.value?[x.target.value]:[]),children:[jsxRuntime.jsx("option",{value:"",children:y.groupNoGrouping}),e.map(x=>jsxRuntime.jsx("option",{value:x.state.id,children:x.def.headerName??x.state.id},x.state.id))]})]})]})]})}var zr=react.memo(fu);function yu({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:a,defs:l,values:r,checkboxColumn:d=false,detailColumn:y=false,rowNumberColumn:c=false,onPickSummary:w,emptyHint:b="",position:G="bottom",bandOffset:k=0,headerRowsBetween:M=0}){let H=Te(),K=datagridCore.summaryTypeLabels(H),E=new Map(l.map(g=>[g.columnId,g])),f=Ct({rowNumberColumn:c,detailColumn:y,checkboxColumn:d}).total,h=(g,O,Y)=>{let N=g.state.id,B=E.get(N),x=B?r[datagridCore.summaryKey(B.columnId,B.type)]:void 0,v=g.def.dataType==="number"||g.def.dataType==="bigint",L=datagridCore.isChromeColumn(N)?void 0:w;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-footer-cell${O}${v?" kanuni-datagrid-footer-cell--number":""}${B?" kanuni-datagrid-footer-cell--active":""}`,style:Y,role:"gridcell","data-column-id":N,"data-summary-type":B?.type??"",title:B?`${datagridCore.summaryLabel(B,K)} \u2014 ${g.def.headerName??N}`:void 0,onContextMenu:L?p=>L(N,p):void 0,onClick:L?p=>L(N,p):void 0,children:B?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-value",children:datagridCore.formatSummaryValue(B,x,g.def)}):L?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-hint",children:b}):null},N)};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${G}`,role:"row","aria-label":H.columnTotalsAria,style:{width:e.totalWidth+f,"--dg-band-offset":`${k}px`,"--dg-pinned-gap":String(M)},children:[f>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:f,insetInlineStart:0}}),e.left.map((g,O)=>h(g,` kanuni-datagrid-footer-cell--pinned${O===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:g.state.width,insetInlineStart:e.leftOffsets[O]+f})),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(g=>h(g,"",{width:g.state.width})),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),e.right.map((g,O)=>h(g,` kanuni-datagrid-footer-cell--pinned${O===0?" kanuni-datagrid-pin-edge-right":""}`,{width:g.state.width,insetInlineEnd:e.rightOffsets[O]}))]})}var po=react.memo(yu);function ku(e,t){return `__dg_pinned_${e}_${t}`}function vu({gridId:e,side:t,rows:n,rowKeys:a,onUserRowContextMenu:l,layout:r,columnModel:d,centerColumns:y,centerIndices:c,stickyInsets:w,leadingSpacer:b,trailingSpacer:G,checkboxColumn:k=false,detailColumn:M=false,rowNumberColumn:H=false,rowHeight:K,bandOffset:E=0,headerRowsBetween:f,ariaRowBase:h}){return n.length===0?null:jsxRuntime.jsx("div",{className:`kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--${t}`,role:"rowgroup",style:{width:r.totalWidth||"100%","--dg-band-offset":`${E}px`,"--dg-pinned-gap":String(f)},children:n.map((g,O)=>{let Y=a?.[O]??null,N={kind:"data",key:ku(t,O),sourceIndex:-1,data:g};return jsxRuntime.jsx(ln,{gridId:e,node:N,index:O,layout:r,columnModel:d,centerColumns:y,centerIndices:c,stickyInsets:w,leadingSpacer:b,trailingSpacer:G,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:k,detailColumn:M,rowNumberColumn:H,rowNumber:null,headerRowCount:h,height:K,onRowContextMenu:Y!==null&&l?(B,x,v)=>l(Y,g,v):void 0},N.key)})})}var mo=react.memo(vu);function Wi({controller:e,renderRow:t,width:n,bandOffset:a,headerRowsBetween:l,belowPinned:r}){let[,d]=react.useReducer(w=>w+1,0);react.useEffect(()=>{let w=[e.events.on("bodyScroll",d),e.events.on("contentReady",d),e.events.on("viewportChanged",d)];return ()=>w.forEach(b=>b())},[e]);let y=react.useRef(null);react.useLayoutEffect(()=>{y.current?.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(w=>w.setAttribute("tabindex","-1"));});let c=e.getStickyGroupRows();return c.length===0?null:jsxRuntime.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:c.map((w,b)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-sticky-group${b===c.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:w.offset,height:w.height,zIndex:c.length-b},children:t(w.node,w.index,w.height)},String(w.node.key)))})}async function Gn(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 datagridCore.downloadBlob(n.blob,n.fileName),{completed:!0}}catch(n){return n instanceof datagridCore.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 jsxRuntime.jsx(at,{dark:a,children:jsxRuntime.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 Pu(e){let t=Te();return react.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 Iu=()=>jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.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 Lu({controller:e,search:t=true,exportCsv:n=true,exportExcel:a=false,exportPdf:l=false,columnChooser:r=true,dark:d,onOpenColumnChooser:y,itemsBefore:c,itemsAfter:w,searchDebounce:b=200,labels:G}){let k=Pu(G),[M,H]=react.useState(e.getSearchText()),[K,E]=react.useState(null),[f,h]=react.useState(null),[g,O]=react.useState(null);react.useEffect(()=>{let x=setTimeout(()=>e.setSearchText(M),b);return ()=>clearTimeout(x)},[e,M,b]);let[Y,N]=react.useState(()=>e.getSelectedCount());react.useEffect(()=>(N(e.getSelectedCount()),e.events.on("selectionChanged",()=>N(e.getSelectedCount()))),[e]);let B=async x=>{E(x),O(null);let v=await Gn(e,x);v.error?O(v.error):h(null),E(null);};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-toolbar",children:[c,t&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:k.search,value:M,"aria-label":k.search,"data-testid":"dg-toolbar-search",onChange:x=>H(x.target.value)}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),r&&jsxRuntime.jsx("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:k.columns}),(n&&e.canExportAll()||a||l)&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":k.exportMenu,title:k.exportMenu,disabled:K!==null,"data-testid":"dg-export-menu",onClick:x=>{let v=x.currentTarget.getBoundingClientRect();h(f?null:{left:v.right-190,top:v.bottom+2});},children:K?jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsxRuntime.jsx(Iu,{})}),f&&jsxRuntime.jsxs(Ut,{anchor:f,onClose:()=>h(null),dark:d,role:"menu",label:k.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:K!==null,"data-testid":"dg-export-csv",onClick:()=>B("csv"),children:K==="csv"?k.exporting:k.csv}),a&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:K!==null,"data-testid":"dg-export-excel",onClick:()=>B("excel"),children:K==="excel"?k.exporting:k.excel}),a&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:K!==null||Y===0,"data-testid":"dg-export-excel-selected",onClick:()=>B("excel-selected"),children:K==="excel-selected"?k.exporting:k.excelSelected}),l&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:K!==null,"data-testid":"dg-export-pdf",onClick:()=>B("pdf"),children:K==="pdf"?k.exporting:k.pdf})]}),w,g&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:g})]})}var Yr=react.memo(Lu);function Fu(e){let t=Te();return react.useMemo(()=>({title:t.hiddenColumns,empty:t.noHiddenColumns,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function qr({controller:e,columns:t,anchor:n,onClose:a,dark:l,labels:r}){let d=Fu(r),y=t.filter(c=>!c.visible);return jsxRuntime.jsxs(Ut,{anchor:n,onClose:a,dark:l,label:d.title,className:"kanuni-datagrid-column-chooser",children:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-list",children:[y.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-empty",children:d.empty}),y.map(c=>{let w=e.getColumnModel().getDef(c.id);return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsxRuntime.jsx("input",{type:"checkbox",checked:false,"data-column-toggle":c.id,onChange:()=>e.setColumnVisible(c.id,true)}),jsxRuntime.jsx("span",{children:w?.headerName??c.id})]},c.id)})]}),y.length>0&&jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>y.forEach(c=>e.setColumnVisible(c.id,true)),children:d.showAll}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:a,children:d.ok})]})]})}function _u(e){let t=Te();return react.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 $u({page:e,pageCount:t,pageSize:n,pageSizes:a=[25,50,100,250],totalRows:l,onPage:r,onNext:d,onPrevious:y,onPageSize:c,pageButtons:w=false,maxPageButtons:b,labels:G}){let k=_u(G),M=e<=0,H=e>=t-1,K=l===0?0:e*n+1,E=Math.min(l,(e+1)*n),f=react.useRef(null),h=react.useRef(null);return react.useEffect(()=>{let g=h.current,O=f.current;if(!O||!(g instanceof HTMLButtonElement)||!g.disabled)return;let Y=document.activeElement;if(Y&&Y!==document.body&&Y!==g)return;let N=O.querySelector('[aria-current="page"]')??O.querySelector("button:not(:disabled)");N?.focus(),h.current=N;},[e,t]),jsxRuntime.jsxs("div",{ref:f,className:"kanuni-datagrid-pager",role:"navigation","aria-label":k.navigation,onFocus:g=>{h.current=g.target;},onBlur:g=>{let O=g.relatedTarget;O&&!f.current?.contains(O)&&(h.current=null);},children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsxRuntime.jsx("span",{children:k.rowsPerPage}),jsxRuntime.jsx("select",{value:n,"data-testid":"dg-page-size",onChange:g=>c(Number(g.target.value)),children:a.map(g=>jsxRuntime.jsx("option",{value:g,children:g},g))})]}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[K.toLocaleString(),"\u2013",E.toLocaleString()," ",k.of," ",l.toLocaleString()]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsxRuntime.jsx("button",{type:"button","aria-label":k.first,disabled:M,onClick:()=>r(0),children:"\xAB"}),jsxRuntime.jsx("button",{type:"button","aria-label":k.previous,disabled:M,"data-testid":"dg-page-prev",onClick:y,children:"\u2039"}),w?datagridCore.pageButtonItems(e,t,b).map(g=>typeof g=="number"?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":datagridCore.fillText(k.pageButton,{n:String(g+1)}),"aria-current":g===e?"page":void 0,onClick:()=>r(g),children:g+1},g):jsxRuntime.jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},g)):jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[k.page," ",e+1," ",k.of," ",t]}),jsxRuntime.jsx("button",{type:"button","aria-label":k.next,disabled:H,"data-testid":"dg-page-next",onClick:d,children:"\u203A"}),jsxRuntime.jsx("button",{type:"button","aria-label":k.last,disabled:H,onClick:()=>r(t-1),children:"\xBB"})]})]})}var Xr=react.memo($u);function Xu(e){let t=Te();return react.useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function Ju({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:a,labels:l}){let r=Xu(l),d=Te(),[,y]=react.useState(0);react.useEffect(()=>e.events.on("filterChanged",()=>y(G=>G+1)),[e]);let c=e.getEffectiveFilter(),w=e.isFilterEnabled(),b=datagridCore.describeFilter(c,e.getColumnModel(),{...a,labels:{...datagridCore.filterLabels(d),...a?.labels}});return !c&&!n?null:jsxRuntime.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:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-clear",title:r.clear,"aria-label":r.clear,disabled:!c,"data-testid":"dg-filter-panel-clear",onClick:()=>{e.setFilter(null),e.clearColumnFilters(),e.setFilterEnabled(true);},children:"\xD7"}),jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-filter-panel-toggle",checked:w,disabled:!c,title:r.toggle,"aria-label":r.toggle,"data-testid":"dg-filter-panel-toggle",onChange:G=>e.setFilterEnabled(G.target.checked)}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:b??void 0,"data-testid":"dg-filter-panel-text",children:b??r.empty}),t&&jsxRuntime.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 Jr=react.memo(Ju);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(),c=react.useRef(null),[w,b]=react.useState({left:e,top:t}),[G,k]=react.useState(()=>n.findIndex(wo)),[M,H]=react.useState(null),[K,E]=react.useState(null),f=react.useRef(null),[h,g]=react.useState(null);react.useEffect(()=>E(null),[M]);let O=react.useCallback((p,T)=>{if(H(p),p===null||!T)return;let F=T.getBoundingClientRect();g({left:F.left,right:F.right,top:F.top});},[]),Y=p=>c.current?.querySelector(`[data-item-index="${p}"]`)??null,N=react.useCallback(p=>{if(f.current=p,!p||!h)return;let T=8,F=p.getBoundingClientRect(),U=Math.max(T,Math.min(h.top-4,window.innerHeight-F.height-T)),we=h.right+F.width+T<=window.innerWidth?h.right:Math.max(T,h.left-F.width);E({left:we,top:U});},[h]),B=react.useCallback(p=>{if(c.current=p,!p)return;let T=p.getBoundingClientRect(),F=8;b({left:Math.max(F,Math.min(e,window.innerWidth-T.width-F)),top:Math.max(F,Math.min(t,window.innerHeight-T.height-F))}),p.focus();},[e,t]);react.useEffect(()=>{let p=F=>{let U=F.target;f.current?.contains(U)||c.current&&!c.current.contains(U)&&l();},T=()=>l();return document.addEventListener("mousedown",p),window.addEventListener("scroll",T,true),()=>{document.removeEventListener("mousedown",p),window.removeEventListener("scroll",T,true);}},[l]);let x=(p,T)=>{let F=n.length;for(let U=1;U<=F;U++){let z=(p+T*U+F*F)%F;if(wo(n[z]))return z}return p},v=p=>{let T=n[p];if(!(!T||!wo(T))){if(T.items?.length){O(p,Y(p));return}T.onSelect?.(a),l();}},L=p=>{switch(p.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[G]?.items?.length)O(G,Y(G));else return;break;case "ArrowLeft":if(M!==null)O(null);else return;break;case "Enter":case " ":v(G);break;case "Escape":l();break;case "Tab":l();return;default:return}p.preventDefault(),p.stopPropagation();};return jsxRuntime.jsxs(at,{dark:r,children:[jsxRuntime.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:L,children:n.map((p,T)=>p.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},p.id??`sep-${T}`):jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${T===G?" kanuni-datagrid-menu-item--active":""}`,disabled:p.disabled,"data-item-index":T,"aria-haspopup":p.items?.length?"menu":void 0,"aria-expanded":p.items?.length?M===T:void 0,onMouseEnter:F=>{k(T),O(p.items?.length?T:null,F.currentTarget);},onClick:()=>v(T),children:[p.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:p.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:p.label}),p.shortcut&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:p.shortcut}),p.items?.length?jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},p.id??T))}),M!==null&&n[M]?.items?.length?jsxRuntime.jsx("div",{ref:N,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:K?{left:K.left,top:K.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[M].items.map((p,T)=>p.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},p.id??`sub-sep-${T}`):jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:p.disabled,onClick:()=>{p.onSelect?.(a),l();},children:[p.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:p.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:p.label})]},p.id??T))}):null]})}var Qu=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),jr=Qu?"\u2318":"Ctrl+",Ji=`${jr}C`,ju=`${jr}X`,ec=`${jr}V`;function un(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
3
+ `).length:0,()=>e.writeClipboard(n,"copy"));}function tc(e){navigator.clipboard?.writeText(e).catch(()=>{});}function nc(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 oc(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var rc={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function ea(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:Ji,onSelect:()=>un(e)}),r.copyWithHeaders!==false&&d.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>un(e,{includeHeaders:true})}),r.copyWithGroupHeaders!==false&&nc(e)&&d.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>un(e,{includeGroupHeaders:true})});let y=oc(r.export).filter(c=>c!=="csv"||e.canExportAll());if(y.length>0){let c=e.getSelectedCount()===0;d.push({id:"__dg-export",label:t.menuExport,items:y.map(w=>({id:`__dg-export-${w}`,label:t[rc[w]],disabled:w==="excel-selected"&&c,onSelect:()=>{Gn(e,w).then(b=>{b.error&&l?.(b.error);});}}))});}return d.length>0&&a&&d.unshift({id:"__dg-sep-builtin",separator:true}),d}function ta(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 oa({anchor:e,value:t,dark:n,onCommit:a,onCancel:l}){let r=Te(),[d,y]=react.useState(t),c=react.useRef(null);react.useEffect(()=>{let b=c.current;b&&(b.focus(),b.select());},[]);let w=()=>{let b=d.trim();a(b===""?null:b);};return jsxRuntime.jsxs(Ut,{anchor:e,onClose:l,dark:n,label:r.noteEditorAria,className:"kanuni-datagrid-note-editor",children:[jsxRuntime.jsx("textarea",{ref:c,className:"kanuni-datagrid-note-input",value:d,rows:4,"aria-label":r.noteEditorAria,placeholder:r.notePlaceholder,onChange:b=>y(b.target.value),onKeyDown:b=>{b.key==="Enter"&&(b.ctrlKey||b.metaKey)&&(b.preventDefault(),w()),b.key==="Escape"&&(b.preventDefault(),l());}}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-note-actions",children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-note-cancel",onClick:l,children:r.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-note-save",onClick:w,children:r.save})]})]})}function dc(e){let t=Te();return react.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 uc=new Set(["filtering","sorting","computing","encoding","exporting"]);function aa({controller:e,delay:t=300,labels:n,cancellable:a=true,forced:l=false}){let[r,d]=react.useState(()=>e.getBusy()),[y,c]=react.useState(false);react.useEffect(()=>(d(e.getBusy()),e.events.on("busyChanged",H=>d(H))),[e]);let w=r.busy&&r.background!==true;react.useEffect(()=>{if(!w){c(false);return}let H=setTimeout(()=>c(true),t);return ()=>clearTimeout(H)},[w,t]);let b=dc(n);if(!l&&(!y||!w))return null;let G=r.phase?b[r.phase]:b.busy,k=r.progress===null?null:Math.max(0,Math.min(100,r.progress)),M=a&&r.phase!==null&&uc.has(r.phase)&&r.cancellable!==false;return jsxRuntime.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:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-card",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-spinner","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-label",children:G}),k!==null&&jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(k),"aria-valuemin":0,"aria-valuemax":100,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-track",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-fill",style:{width:`${k}%`}})}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(k),"%"]})]}),M&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:b.cancel})]})})}function tl({fields:e}){let[t,...n]=e;return jsxRuntime.jsxs("div",{role:"gridcell",className:"kanuni-datagrid-card",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-card-title",children:t?.text}),n.length>0&&jsxRuntime.jsx("dl",{className:"kanuni-datagrid-card-fields",children:n.map(a=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-card-field",children:[jsxRuntime.jsx("dt",{children:a.label}),jsxRuntime.jsx("dd",{children:a.text})]},a.columnId))})]})}function nl({controller:e,sort:t,columns:n,text:a}){if(n.length===0)return null;let l=t[0],r=l?.direction==="desc";return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-cardbar",children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-cardbar-label",children:[jsxRuntime.jsx("span",{children:a.cardSortBy}),jsxRuntime.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:[jsxRuntime.jsx("option",{value:"",children:a.none}),n.map(d=>jsxRuntime.jsx("option",{value:d.id,children:d.label},d.id))]})]}),l&&jsxRuntime.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:jsxRuntime.jsx("span",{"aria-hidden":"true",children:r?"\u2193":"\u2191"})})]})}var ol=null;function cc(){return typeof document>"u"?null:(ol??=document.createElement("canvas"),ol.getContext("2d"))}function rl(e){let t=getComputedStyle(e);return `${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function pc(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function mc(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=cc();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=rl(y),d=n.measureText(y.textContent??"").width+44;}if(r.length>0){n.font=rl(r[0]);let y=[];for(let c=0;c<r.length;c++){if(pc(r[c])){y.push(r[c]);continue}let w=r[c].textContent??"";if(w==="")continue;let b=n.measureText(w).width+20;b>d&&(d=b);}y.length>0&&(d=Math.max(d,mc(y)));}return d===0?null:Math.round(Math.min(640,Math.max(48,d)))}function ia(e,t){let n=react.useRef(t);n.current=t;let a=!!t?.enabled,l=t?.storageKey,r=t?.type;react.useEffect(()=>{if(a)return datagridCore.attachStateStoring(e,{...n.current,enabled:true})},[e,a,l,r]);}var yo="application/x-kanuni-row";function sa(e,t){let n=!!t?.enabled,a=t?.group??null,l=t?.allowReordering??true,r=t?.allowDropInsert??a!==null,[d,y]=react.useState(false),[c,w]=react.useState(null),b=react.useRef(null),G=react.useRef(false),k=react.useRef(null),M=react.useRef(null),H=react.useRef(t);H.current=t;let K=react.useCallback(p=>e.getRowByKey(p),[e]),E=(p,T)=>{let F=T.getBoundingClientRect();return p.clientY<F.top+F.height/2?"before":"after"},f=react.useCallback((p,T)=>{if(!datagridCore.isDataRow(p))return;M.current=p.key,k.current=p.key,G.current=false,b.current=null;let F={gridId:e.gridId,group:a,rowKey:p.key,row:p.data};T.dataTransfer.setData(yo,JSON.stringify(F)),T.dataTransfer.setData("text/plain",String(p.key)),T.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:p.key}),T.stopPropagation();},[e,a]),h=react.useCallback(()=>{let p=k.current;p!==null&&e.notifyRowDragEnd({rowKey:p,dropped:G.current,overKey:b.current?.key??null,position:b.current?.side??null}),G.current=false,b.current=null,k.current=null,M.current=null,w(null),y(false);},[e]),g=react.useCallback(p=>p.dataTransfer.types.includes(yo)?M.current!==null?l:r&&a!==null:false,[l,r,a]),O=react.useCallback((p,T)=>{if(!datagridCore.isDataRow(p)||!g(T))return;if(T.preventDefault(),T.dataTransfer.dropEffect="move",M.current===p.key){b.current=null,w(null);return}let F=E(T,T.currentTarget),U=b.current?.key!==p.key||b.current.side!==F;b.current={key:p.key,side:F},w(z=>z?.key===p.key&&z.side===F?z:{key:p.key,side:F}),U&&M.current!==null&&e.notifyRowDrag("move",{rowKey:M.current,overKey:p.key,position:F});},[g,e]),Y=react.useCallback((p,T,F)=>{let U=null;try{let we=p.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:F,row:K(U.rowKey)});return}e.moveRow(U.rowKey,T,F);return}!r||a===null||U.group!==a||H.current?.onAdd?.({row:U.row,rowKey:U.rowKey,otherGridId:U.gridId,targetKey:T,position:F});},[e,l,r,a,K]),N=react.useCallback((p,T)=>{if(w(null),!datagridCore.isDataRow(p)||!g(T))return;T.preventDefault(),T.stopPropagation();let F=E(T,T.currentTarget);G.current=true,b.current={key:p.key,side:F},Y(T,p.key,F),M.current=null;},[g,Y]),B=react.useCallback(p=>{g(p)&&(p.preventDefault(),p.dataTransfer.dropEffect="move");},[g]),x=react.useCallback(p=>{w(null),g(p)&&(p.preventDefault(),G.current=true,b.current=null,Y(p,null,"after"),M.current=null);},[g,Y]),v=react.useCallback(p=>{let T=p.relatedTarget;T&&p.currentTarget.contains(T)||M.current!==null&&(b.current=null,w(null),e.notifyRowDrag("leave",{rowKey:M.current}));},[e]);return {handlers:n?{draggable:d,setDraggable:y,onDragStart:f,onDragEnd:h,onDragOver:O,onDrop:N}:void 0,dropAt:n?c:null,bodyHandlers:n?{onDragOver:B,onDrop:x,onDragLeave:v}:void 0}}var Rc=400;function il(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function ll(e){return (e.textContent??"").trim()}function Cc(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 da({rootRef:e,columnModel:t,getRowNode:n,getNote:a,config:l,controller:r,gridId:d}){let y=l?.enabled!==false,c=l?.delay??Rc,w=l?.showOnTruncation!==false,b=l?.trigger??"hover",G=b!=="focus",k=b!=="hover"&&!!r&&!!d,M=l?.interactive===true,[H,K]=react.useState(null),E=react.useRef({columnModel:t,getRowNode:n,getNote:a,showOnTruncation:w,delay:c});return E.current={columnModel:t,getRowNode:n,getNote:a,showOnTruncation:w,delay:c},react.useEffect(()=>{if(!y){K(null);return}let f=e.current;if(!f)return;let h=null,g=null,O=null,Y=null,N=d?`${d}-tooltip`:void 0,B=()=>{Y?.removeAttribute("aria-describedby"),Y=null;},x=()=>{h!==null&&(clearTimeout(h),h=null),g!==null&&(clearTimeout(g),g=null),O=null,B(),K(null);},v=()=>{g!==null&&(clearTimeout(g),g=null);},L=()=>{g=null,B(),K(null);},p=()=>{v(),h!==null&&(clearTimeout(h),h=null);},T=()=>{if(!M){x();return}g!==null&&clearTimeout(g),g=setTimeout(L,150);},F=(ee,ye)=>{let{columnModel:ue,getRowNode:Se,getNote:D}=E.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:F(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&&N&&(ee.setAttribute("aria-describedby",N),Y=ee),K({text:re??"",...D?{content:D.content}:{},anchor:{top:ve.top,left:ve.left,width:ve.width,height:ve.height},...M?{interactive:true,hold:p,release:x}:{},...N?{id:N}:{}});},z=(ee,ye)=>{let{columnModel:ue,getRowNode:Se,getNote:D,showOnTruncation:re}=E.current,ve=ue.getDef(ye),Ne=ee.closest("[data-row-key]")?.dataset.rowKey,le=Ne===void 0?void 0:Se(Ne);return Cc({def:ve,node:le,value:le?ue.getCellValue(le.data,ye):void 0,clipped:re&&il(ee)?ll(ee):null,note:le&&D?D(le.key,ye,le.data):null})},we=(ee,ye)=>{let ue=E.current.columnModel.getDef(ee);if(ue?.headerTooltip)return ue.headerTooltip;if(!E.current.showOnTruncation)return null;let Se=ye.querySelector(".kanuni-datagrid-header-label")??ye;if(!il(Se))return null;let D=ll(Se);return D.length>0?D:null},Oe=ee=>{if(!G)return;let ue=ee.target?.closest("[data-column-id]")??null;if(ue===O){v();return}if(M&&g!==null?(h!==null&&(clearTimeout(h),h=null),O=null):x(),!ue||!f.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]")||(O=ue,h=setTimeout(()=>{h=null,!(O!==ue||!ue.isConnected)&&U(ue,Se,D,false);},E.current.delay));},pe=ee=>{if(!G)return;let ye=ee.relatedTarget;O&&ye&&O.contains(ye)||T();},ke=-1/0,C=()=>{ke=Date.now();},W=()=>{x();let ee=r?.getFocus();!ee||!d||(h=setTimeout(()=>{if(h=null,!f.contains(document.activeElement)&&Date.now()-ke>1500)return;let ye=document.getElementById(`${d}-cell-${String(ee.rowKey)}-${ee.columnId}`);!ye||!f.contains(ye)||(O=ye,U(ye,ee.columnId,false,true));},E.current.delay));},Ge=k?r.events.on("focusChanged",W):null,Me=ee=>{(!k||ee.key==="Escape")&&x();};return f.addEventListener("mouseover",Oe),f.addEventListener("mouseout",pe),f.addEventListener("mousedown",x),f.addEventListener("pointerdown",C),f.addEventListener("keydown",Me),f.addEventListener("scroll",x,true),window.addEventListener("blur",x),()=>{x(),Ge?.(),f.removeEventListener("mouseover",Oe),f.removeEventListener("mouseout",pe),f.removeEventListener("mousedown",x),f.removeEventListener("pointerdown",C),f.removeEventListener("keydown",Me),f.removeEventListener("scroll",x,true),window.removeEventListener("blur",x);}},[y,e,G,k,M,r,d]),y?H:null}var dl=6,pn=8;function ua({state:e,dark:t}){let[n,a]=react.useState(null),[l,r]=react.useState(null),{text:d,anchor:y,content:c,interactive:w,hold:b,release:G,id:k}=e;return react.useLayoutEffect(()=>{if(!n)return;let{width:M,height:H}=n.getBoundingClientRect(),K=document.documentElement.clientWidth,E=document.documentElement.clientHeight,f=y.top+y.height+dl,h=y.top-H-dl,O=f+H+pn<=E||h<pn?f:h,Y=Math.min(Math.max(pn,y.left),Math.max(pn,K-M-pn));r({top:Math.min(O,E-H-pn),left:Y});},[n,d,c,y]),jsxRuntime.jsx(at,{dark:t,children:jsxRuntime.jsx("div",{ref:a,id:k,className:w?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:w?b:void 0,onMouseLeave:w?G:void 0,style:l?{top:l.top,left:l.left}:{top:0,left:0,visibility:"hidden"},children:c??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 cl=Ro(datagridCore.getGridDictionary("en"));function ca(e,t){let n={...cl,...t.labels},{controller:a,maxGroupLevels:l}=t,r=e.columnId,d=a.getColumnModel().getDef(r),y=a.getSort(),c=y.find(g=>g.columnId===r),w=a.getGroupLevels(),b=w.includes(r),G=d?.sortable!==false,k=a.getColumnStates().find(g=>g.id===r)?.pinned??null,M=d?.groupable!==false,H=a.canGroup(),K=[{id:"sort-asc",label:n.sortAsc,disabled:!G||c?.direction==="asc",onSelect:()=>a.setSort([{columnId:r,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!G||c?.direction==="desc",onSelect:()=>a.setSort([{columnId:r,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!c,onSelect:()=>a.setSort(y.filter(g=>g.columnId!==r))},{id:"sep-1",separator:true}];H&&K.push({id:"group",label:b?n.ungroup:n.groupBy,disabled:!M,onSelect:()=>{b?a.groupBy(w.filter(g=>g!==r)):a.groupBy([...w,r].slice(-l));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&K.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),K.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(g=>g.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 E=a.getColumnStates().filter(g=>g.visible&&g.pinned===k).map(g=>g.id),f=E.indexOf(r),h=d?.reorderable!==false&&f>=0;return K.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!h||f<=0,onSelect:()=>a.moveColumn(r,E[f-1])},{id:"move-right",label:n.moveRight,disabled:!h||f<0||f>=E.length-1,onSelect:()=>a.moveColumn(r,E[f+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)}),K}var At=typeof window<"u"?react.useLayoutEffect:react.useEffect,hl=1e8,Co=null;function yl(){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=`${hl}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=hl;let n=e.scrollTop;return wa=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(Co=n),Co}var wa=null;function Yc(){return wa===null&&yl(),wa}function fa(e){return Math.abs(e)}function bl(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?ga(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?ga(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?ga(r):r}function ga(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 qc(e){return jsxRuntime.jsx(Qo,{locale:e.locale,messages:e.messages,children:jsxRuntime.jsx(rr,{theme:e.theme,density:e.density,palette:e.palette,children:jsxRuntime.jsx(Xc,{...e})})})}function Xc(e){let t=Te(),{className:n,style:a,dark:l=false,theme:r,palette:d,striped:y=true,emptyText:c,sortable:w=true,autoHeaderHeight:b=false,filterRow:G=false,headerFilter:k=false,filterIconMode:M="hover",columnReorder:H=true,columnResize:K=true,loadingOverlay:E=true,announcements:f=true,groupPanel:h=false,showRowCount:g=false,toolbar:O=false,toolbarExcel:Y=false,toolbarPdf:N=false,filterPanel:B=false,filterPanelLabels:x,onOpenFilterBuilder:v,toolbarItemsBefore:L,toolbarItemsAfter:p,renderRow:T,stateStoring:F,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:A,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=react.useMemo(()=>{let o=Ee.columns;if(o&&o.length>0)return o;let m=Ee.dataSource;if(!Array.isArray(m)||m.length===0)return o??[];let S=typeof Ke=="object"?Ke:void 0;return Ke===false?o??[]:datagridCore.inferColumns(m,S)},[Ee.columns,Ee.dataSource,Ke]),_e={...Ee,columns:Ae},We=datagridCore.isPackagedTheme(r)?datagridCore.THEME_ROW_HEIGHT[r][Z??"normal"]:Z?datagridCore.DENSITY_ROW_HEIGHT[Z]:datagridCore.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:P}=Zo(ut),q=e.cardView,te=q?q===true?"on":`${q.breakpoint??""}|${(q.columns??[]).join("|")}`:"",Q=react.useMemo(()=>datagridCore.resolveCardView(q),[te]),[ne,be]=react.useState(false),Re=react.useRef(Q);At(()=>{Re.current=Q;let o=pt.current;be(o?datagridCore.showsCards(o.clientWidth,Q):false);},[Q]);let Fe=ne?datagridCore.cardColumnIds(i.getColumnModel(),Q):null,ct=Fe?JSON.stringify(Fe):"",I=react.useMemo(()=>Fe,[ct]);react.useEffect(()=>{i.setDataRowHeight(I?datagridCore.cardHeight(I.length):null);},[i,I]);let ie=e.onCardViewChange,de=react.useRef(false);react.useEffect(()=>{ne!==de.current&&(de.current=ne,ie?.(ne));},[ne,ie]);let xe=react.useCallback(o=>jsxRuntime.jsx(tl,{fields:datagridCore.cardFields(i.getColumnModel(),I??[],o.row)}),[i,I]),V=Ri(i,e.editing,le,{renderCellContent:Me,getCellClassName:ee,onCellDoubleClick:D},ne),et=V.renderCellContent,Fn=V.getCellClassName,An=V.onCellDoubleClick,ba=wr(i,e.printLayout),mn=ba.active?{...Et,rows:{...Et.rows,start:0,end:qe.length,offsetY:0,totalHeight:0}}:Et,fn=react.useMemo(()=>Ae.some(o=>o.autoHeight===true),[Ae]),ya=k&&i.canListDistinctValues();k&&!ya&&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=react.useRef(null);At(()=>{i.setEnterpriseEdition(le);},[i,le]),react.useEffect(()=>{Ge?.(i);},[i,Ge]),At(()=>{let o=yl();o!==null&&o<datagridCore.DEFAULT_MAX_SCROLL_OFFSET&&i.setMaxScrollOffset(o);let m=Yc();m!==null&&i.setMaxCanvasHeight(m);},[i]),At(()=>{let o=pt.current;if(!o)return;let m=()=>{i.setViewportSize(o.clientWidth,o.clientHeight),Re.current&&be(datagridCore.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);}datagridCore.calibrateMaxScrollOffset(o,i);};if(m(),typeof ResizeObserver>"u")return;let S=new ResizeObserver(m);S.observe(o);let _=o.querySelector(".kanuni-datagrid-canvas");return _&&S.observe(_),()=>S.disconnect()},[i]),At(()=>{if(!b)return;let o=pt.current?.querySelector(".kanuni-datagrid-canvas"),m=o?.querySelector(".kanuni-datagrid-header");if(!o||!m)return;let S=null,_=()=>{let oe=m.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(m),()=>{ce?.disconnect(),o.style.removeProperty("--dg-header-actual");}},[i,b]),At(()=>{if(!fn)return;let o=pt.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let m=i.getVirtualWindow(),S=i.getRows(),_=new Map(i.getMeasuredRowHeights()),ce=false;for(let oe=m.rows.start;oe<m.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(_);}),react.useEffect(()=>{if(fn)return i.events.on("columnStateChanged",()=>{i.clearMeasuredRowHeights();})},[i,fn]),react.useEffect(()=>i.events.on("scrollRequested",o=>{let m=pt.current;if(!m)return;o.scrollTop!==void 0&&(m.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(m.scrollLeft=bl(o.scrollLeft,m)),i.setScroll(m.scrollTop,fa(m.scrollLeft));let S=o.scrollTop;S===void 0||Math.abs(m.scrollTop-S)<=1||setTimeout(()=>{let _=pt.current;!_||Math.abs(_.scrollTop-S)<=1||(_.scrollTop=S,i.setScroll(_.scrollTop,fa(_.scrollLeft)));},0);}),[i]);let Ra=br(i,e.alignedGrids,pt),kl=react.useCallback(o=>{let m=o.currentTarget;i.setScroll(m.scrollTop,fa(m.scrollLeft)),Ra.syncScroll(m.scrollLeft);},[i,Ra]),vl=react.useCallback((o,m)=>i.toggleSort(o,m),[i]);ia(i,F);let zt=sa(i,X);react.useEffect(()=>{we!=null&&i.getFocusedRowKey()!==we&&i.focusRow(we);},[i,we]),react.useEffect(()=>{if(Oe)return i.events.on("focusedRowChanged",o=>Oe({rowKey:o.rowKey,row:o.row}))},[i,Oe]);let bt=react.useRef(null),[xo,Tl]=react.useState(null);react.useEffect(()=>i.events.on("overlayChanged",o=>{Tl(o.manual?o.overlay:null);}),[i]);let xl=react.useCallback(o=>{let m=i.getDataRowNode(o);if(m)return m;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=react.useCallback((o,m,S)=>tt?tt.get({rowKey:o,columnId:m,row:S})??null:null,[tt]),Ca=da({rootRef:bt,columnModel:i.getColumnModel(),getRowNode:xl,getNote:tt?Kn:void 0,config:ae,controller:i,gridId:Ee.gridId}),[ka,Dl]=react.useState(0);react.useEffect(()=>{let o=new Set,m=[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(rn=>Le.push(rn));});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})=>Dl(S))];return ()=>{m.forEach(S=>S()),o.forEach(clearTimeout);}},[i]);let Sl=react.useCallback((o,m)=>i.moveColumn(o,m),[i]),El=react.useCallback((o,m,S)=>i.setColumnWidth(o,m,S??true),[i]),Do=react.useCallback(o=>{if(!bt.current)return;let m=bo(bt.current,o);m!==null&&i.setColumnWidth(o,m);},[i]),So=react.useCallback(()=>{let o=bt.current;if(o)for(let m of i.getColumnStates()){if(!m.visible||m.flex)continue;let S=bo(o,m.id);S!==null&&i.setColumnWidth(m.id,S);}},[i]),Eo=react.useRef(null),[Bn]=react.useState(()=>new datagridCore.RowMotion),va=e.animateRows===true;react.useEffect(()=>{i.setAnimateRows(va);},[i,va]),react.useEffect(()=>{let o=()=>{i.getAnimateRows()&&Bn.capture(Eo.current);},m=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(S=>i.events.on(S,o));return ()=>{m.forEach(S=>S()),Bn.dispose();}},[i,Bn]),At(()=>{i.getAnimateRows()&&Bn.play(Eo.current);}),react.useEffect(()=>{if(Be!=="fitGrid")return;let o=()=>i.sizeColumnsToFit();return o(),i.events.on("gridSizeChanged",o)},[i,Be]);let Go=react.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,Ta]=react.useState({}),[No,xa]=react.useState({}),Yt=react.useRef(No);Yt.current=No;let Da=react.useRef(Mo);Da.current=Mo;let Sa=e.filterDebounce??(i.isRemote()?200:0),Po=react.useRef(false),_n=react.useMemo(()=>datagridCore.datePeriodLabels(t),[t]),Io=react.useRef(_n);Io.current=_n;let Gl=react.useMemo(()=>datagridCore.periodSuggestionList(_n),[_n]),qt=react.useCallback((o,m)=>{let S=i.getColumnModel(),_=S.getDataType(o),ce=datagridCore.findCustomFilterOperator(S.getDef(o),Yt.current[o]??"");Po.current=true;try{i.setColumnFilter(o,ce?datagridCore.parseCustomFilterInput(o,m,ce):datagridCore.parseFilterInput(o,m,_,Io.current),datagridCore.FILTER_PART_ROW);}finally{Po.current=false;}},[i]),mt=react.useMemo(()=>datagridCore.createDebouncedCommit(Sa),[Sa]);react.useEffect(()=>()=>mt.cancelAll(),[mt]);let Ml=react.useCallback((o,m)=>{Ta(S=>({...S,[o]:m})),mt.schedule(o,()=>qt(o,m));},[qt,mt]),Nl=react.useCallback((o,m)=>{Yt.current={...Yt.current,[o]:m},xa(Yt.current),mt.cancel(o),qt(o,Da.current[o]??"");},[qt,mt]),Pl=react.useCallback(o=>{if(i.getColumnModel().getDef(o)?.renderFilter)return jsxRuntime.jsx(Vr,{controller:i,columnId:o,surface:"row"})},[i]),Il=react.useCallback((o,m)=>{mt.cancel(o),qt(o,m);},[qt,mt]);react.useEffect(()=>i.events.on("filterChanged",()=>{if(Po.current)return;let o=i.getColumnModel();xa(m=>{let S=null;for(let _ of o.getOrder()){let ce=o.getDef(_);if(!ce?.filterOperators?.length||mt.isPending(_))continue;let oe=i.getColumnFilter(_,datagridCore.FILTER_PART_ROW),j=m[_]??"",Pe=j;oe?Pe=datagridCore.customFilterInputFromNode(oe,ce)?.operatorId??"":datagridCore.findCustomFilterOperator(ce,j)?.operandType==="none"&&(Pe=""),Pe!==j&&(S??={...m},S[_]=Pe);}return S&&(Yt.current=S),S??m}),Ta(m=>Lr(m,{isPending:S=>mt.isPending(S),textFor:S=>{let _=i.getColumnFilter(S,datagridCore.FILTER_PART_ROW);if(!_)return "";let ce=datagridCore.customFilterInputFromNode(_,o.getDef(S));return ce?ce.text:!datagridCore.isFilterGroup(_)&&!datagridCore.isBuiltInFilterOperator(_.operator)?null:datagridCore.filterInputFromNode(S,_,o.getDataType(S),Io.current)}},o.getOrder()));}),[i,mt]);let[Ve,Gt]=react.useState(null),gn=react.useRef(0),[Xt,Lo]=react.useState(null),Ho=react.useRef(null),yt=react.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});},[]),Ll=react.useCallback((o,m)=>{yt();let S=m.getBoundingClientRect(),_=i.getColumnModel().getDef(o),ce={left:S.left,top:S.bottom+2},oe=_?.headerName??o;if(_?.renderFilter){++gn.current,Gt(null),Lo({columnId:o,label:oe,anchor:ce});return}Lo(null);let j=i.getColumnFilter(o,datagridCore.FILTER_PART_SET)??i.getColumnFilter(o,datagridCore.FILTER_PART_DEFAULT);if(!i.isRemote()){let Le=++gn.current;Gt({columnId:o,label:oe,entries:[],selected:null,anchor:ce,loading:true}),i.getDistinctValueSetAsync(o).then(({entries:$e,truncated:nt})=>{gn.current===Le&&Gt(rn=>rn&&rn.columnId===o?{...rn,entries:$e,truncated:nt,capped:nt,selected:datagridCore.selectedLabelsFromFilter(j,$e),loading:false}:rn);});return}let Pe=++gn.current;Gt({columnId:o,label:oe,entries:[],selected:null,anchor:ce,loading:true}),i.getDistinctValuesAsync(o).then(Le=>{gn.current===Pe&&Gt($e=>$e&&$e.columnId===o?{...$e,entries:Le,selected:datagridCore.selectedLabelsFromFilter(j,Le),loading:false}:$e);});},[i,yt]),Hl=react.useCallback(o=>{Ve&&(i.setColumnFilter(Ve.columnId,o,datagridCore.FILTER_PART_SET),Gt(null));},[i,Ve]),Fl=Object.keys(i.getColumnStates().reduce((o,m)=>(i.getColumnFilter(m.id)&&(o[m.id]=true),o),{})),Jt=i.getSelectionMode(),Ue=Jt!=="none"&&(Ee.selection?.checkboxColumn??false),Ea=(Ee.selection?.rowClick??(Ue?"toggle":"replace"))==="toggle",Al=react.useCallback((o,m)=>{i.handleRowClick(o.key,{ctrlKey:m.ctrlKey||Ea&&!m.shiftKey,metaKey:m.metaKey,shiftKey:m.shiftKey});},[i,Ea]),Ol=react.useCallback((o,m)=>i.focusCell(o.key,m),[i]),Kl=react.useCallback(o=>i.toggleRow(o.key),[i]),[Zt,Fo]=react.useState(null),Bl=react.useCallback(()=>Fo(null),[]),[wn,Ao]=react.useState(null),Ga=react.useCallback((o,m)=>{let _=(bt.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(m)}"]`)??bt.current)?.getBoundingClientRect();return {left:_?.left??0,top:(_?.bottom??0)+2}},[]),_l=react.useCallback(o=>{let m=wn;Ao(null),!(!m||!tt?.onChange)&&tt.onChange({rowKey:m.rowKey,columnId:m.columnId,row:m.row,text:o});},[wn,tt]),Ma=react.useCallback((o,m)=>{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:Ga(_,S)}),j=[];return m&&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,Ga,t]),[$n,Wn]=react.useState(null),Oo=react.useRef({x:0,y:0}),Na=react.useCallback(o=>ea(i,t,me,o,m=>{Wn({message:m,...Oo.current}),console.error("[datagrid] export failed:",m);}),[i,t,me]),Vn=react.useCallback((o,m,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=Ma(oe,j.length>0),Le=ta(i,t,S.key,j.length+Pe.length>0),$e=[...j,...Pe,...Le,...Na(j.length+Pe.length+Le.length>0)];$e.length!==0&&(Oo.current={x:o,y:m},Wn(null),Fo({x:o,y:m,items:$e,context:oe}));},[he,i,t,Ma,Na,yt]),Pa=react.useCallback((o,m,S)=>{let _=ta(i,t,o,false);if(_.length===0)return;S.preventDefault(),yt();let ce={row:m,node:{kind:"data",key:o,sourceIndex:-1,data:m},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]),Ia=react.useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),Qt=react.useCallback((o,m,S,_,ce)=>{let oe=_??-1;o&&i.notifyRow(o,S,oe);let j=Ia(ce);j!==null&&i.notifyCell(m,S,oe,j);},[i,Ia]),$l=react.useCallback((o,m,S)=>{C?.(o),Qt("rowClicked","cellClicked",o,m,S);},[C,Qt]),Wl=react.useCallback((o,m,S)=>{W?.(o),Qt("rowDoubleClicked","cellDoubleClicked",o,m,S);},[W,Qt]),Vl=react.useCallback((o,m,S)=>{if(Qt(null,"cellContextMenu",o,m,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,m,_);},[he,On,me,i,Vn,Qt]),[Ul,zl]=react.useState(null),[Yl,ql]=react.useState(null),[Ko,Xl]=react.useState(()=>Ee.grouping?.groupSummaries??false),[Ot,Bo]=react.useState(null),[La,_o]=react.useState(null),$o=Zt!==null||Ot!==null||Ve!==null||Xt!==null,Ha=react.useRef(false);react.useEffect(()=>{if(Ha.current&&!$o){let o=Ho.current;Ho.current=null;let m=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;m&&S&&m.focus({preventScroll:true});}Ha.current=$o;},[$o]);let Jl=react.useCallback(()=>{i.getSelectedCount()>0?i.clearSelection():i.selectAll();},[i]),Wo=Ue?i.getSelectableCount():P,Vo=i.getSelectedCount(),Zl=Wo>0&&Vo>=Wo?"all":Vo>0?"some":"none",Ql=react.useCallback(o=>{let m=o.target,S=m.tagName;if(S==="INPUT"||S==="TEXTAREA"||S==="SELECT"||m.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 _=datagridCore.resolveGridCommand({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!_)return;if(_.type==="copy"){un(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=bl(Pe.scrollLeft,Le)),i.setScroll(Le.scrollTop,Le.scrollLeft);}}},[i,qe,W,he,On,me,Vn,V.handleKeyDown]),Kt=react.useMemo(()=>datagridCore.bandDepth([...s.left,...s.center,...s.right]),[s]),jt=sn,Uo=(G?2:1)+Kt,Fa=i.getPinnedRows("top"),Aa=i.getPinnedRows("bottom"),zo=[...se??[],...Fa.map(o=>o.row)],Yo=[...Ie??[],...Aa.map(o=>o.row)],jl=[...(se??[]).map(()=>null),...Fa.map(o=>o.key)],es=[...(Ie??[]).map(()=>null),...Aa.map(o=>o.key)],Un=zo.length,ts=Yo.length,zn=Uo+Un,Yn=Ul??Ee.grouping?.panel??h,Oa=i.getGroupLevels(),ns=react.useCallback(o=>i.groupBy(o.slice(0,J)),[i,J]),os=react.useCallback(o=>i.toggleGroup(o),[i]),Ka=react.useCallback(o=>i.toggleGroupSelection(o),[i]),rs=i.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),rt=i.hasMasterDetail()&&!!A,ze=e.rowNumbers??false,as=ze&&i.isPaginated()?i.getPage()*i.getPageSize():0;react.useEffect(()=>{i.setLeadWidth(xr(Ue,rt,ze));},[i,Ue,rt,ze]);let is=react.useCallback(o=>i.toggleDetail(o),[i]),ls=react.useCallback(o=>i.toggleTreeRow(o),[i]),Ba=i.getSummaryDefs(),ss=i.getSummaries(),en=Yl??pe??Ba.length>0,hn=en&&$==="top",qo=G?2:1,_a=ut.grouping?.groupSummaries&&Ko?Ee.summaries:void 0,$a=i.getGroupDisplay(),Wa=react.useCallback(()=>{Xl(o=>(i.setGroupSummaries(!o),!o));},[i]),ds=react.useCallback((o,m)=>{if(!ke)return;m.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},...datagridCore.allowedSummaryTypes(S?.dataType).map(j=>({id:j,label:datagridCore.summaryTypeLabels(t)[j],disabled:_?.type===j,onSelect:()=>i.setColumnSummary(o,j)}))];yt(),Bo({x:m.clientX,y:m.clientY,items:oe,context:ce});},[i,ke,yt]),us=react.useCallback((o,m)=>{if(U===false)return;m.preventDefault();let S=i.getColumnModel().getDef(o),_={columnId:o,headerName:S?.headerName??S?.field??o},ce=ca(_,{controller:i,groupPanelVisible:Yn,footerVisible:en,groupFootersAvailable:le,groupFootersVisible:Ko,onToggleGroupPanel:()=>zl(!Yn),onToggleFooter:()=>ql(!en),onToggleGroupFooters:Wa,onOpenFieldChooser:()=>_o({left:m.clientX,top:m.clientY}),onBestFit:Do,onBestFitAll:So,maxGroupLevels:J,labels:Ro(t)}),oe=typeof U=="function"?U(_,ce):ce;!oe||oe.length===0||(yt(),Bo({x:m.clientX,y:m.clientY,items:oe,context:_}));},[U,i,Yn,en,le,Ko,Wa,Do,So,J,t,yt]),tn=i.getFocus(),cs=tn?`${e.gridId}-cell-${String(tn.rowKey)}-${tn.columnId}`:void 0,Xo=i.getSelectedCount(),ps=react.useMemo(()=>{let o=[datagridCore.fillText(t.announceRows,{n:P})];if(u.length>0){let m=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(datagridCore.fillText(t.announceSortedBy,{columns:m}));}return Xo>0&&o.push(datagridCore.fillText(t.announceSelected,{n:Xo})),o.join(", ")},[i,P,u,Xo,t]),{centerColumns:Mt,centerIndices:qn,stickyInsets:nn,leadingSpacer:Nt,trailingSpacer:Pt,rowStart:ms,rowEnd:Va}=Ei(s,mn),Xn=i.getColumnModel(),on=ms,fs=o=>{if(fn)return;let m=i.getRowHeightAt(o);return m===R?void 0:m},gs=Array.from(qe.slice(on,Va)),ws=react.useMemo(()=>!ze||i.getGroupLevels().length===0&&!i.hasMasterDetail()&&!i.hasTreePathRows()?null:Gi(qe),[ze,i,qe]),hs=i.hasCellSpans(),Ua=react.useRef({start:0,end:0});Ua.current={start:on,end:Va-1};let za=react.useRef(mn.columns);za.current=mn.columns;let bs=react.useCallback(o=>i.planRowColSpans(o,za.current),[i]),ys=datagridCore.hasColSpans(s),Rs=react.useCallback((o,m)=>{let S=i.getCellSpans(m);if(S.length===0)return null;let{start:_,end:ce}=Ua.current,oe=datagridCore.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]),Ya=i.getFindNeedle()||(je?datagridCore.normalizeSearch(i.getSearchText()):""),qa=i.getFindState(),Jn=qa.count>0?`${i.getFindNeedle()}\0${qa.activeIndex}`:"",Xa=react.useCallback((o,m)=>i.getFindMatchKind(o,m),[i]),Cs={pathOf:o=>datagridCore.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}},Ja={layout:s,centerColumns:Mt,leadingSpacer:Nt,trailingSpacer:Pt,defs:Ba,values:ss,checkboxColumn:Ue,detailColumn:rt,rowNumberColumn:ze,onPickSummary:ke?ds:void 0,emptyHint:ke?"\xB7":""};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${ba.active?" kanuni-datagrid-print":""}${ne?" kanuni-datagrid-cards":""}${datagridCore.themeClassName(r,Z,d)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${R}px`,"--dg-grip-inset":ze?`${an}px`:"0px",...a},dir:datagridCore.isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":r,"data-palette":d,"data-auto-height":fn?"":void 0,"data-auto-header-height":b?"":void 0,ref:bt,children:[O&&jsxRuntime.jsx(Yr,{controller:i,dark:l,columnChooser:e.toolbarColumnChooser??true,exportExcel:le&&Y,exportPdf:le&&N,itemsBefore:L,itemsAfter:p,onOpenColumnChooser:o=>_o(m=>m?null:o)}),Yn&&jsxRuntime.jsx(zr,{columns:rs,levels:Oa,onSetLevels:ns,maxLevels:J,onExpandAll:()=>i.expandAllGroups(),onCollapseAll:()=>i.collapseAllGroups()}),ne&&jsxRuntime.jsx(nl,{controller:i,sort:u,text:t,columns:w?i.getColumnModel().getOrder().filter(o=>{let m=i.getColumnModel();return m.getState(o)?.visible!==false&&m.getDef(o)?.sortable!==false}).map(o=>({id:o,label:i.getColumnModel().getDef(o)?.headerName??o})):[]}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-scroller",ref:pt,onScroll:kl,onKeyDown:Ql,tabIndex:0,role:"grid","aria-rowcount":P+Uo+Un+ts,"aria-colcount":s.left.length+s.center.length+s.right.length+(Ue?1:0)+(rt?1:0)+(ze?1:0),"aria-multiselectable":Jt==="multiple"||void 0,"aria-activedescendant":cs,"aria-label":e.ariaLabel??e.gridId,children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(s.totalWidth||0)+xr(Ue,rt,ze)||"100%"},role:"rowgroup",children:[jsxRuntime.jsx(Mr,{layout:s,centerColumns:Mt,leadingSpacer:Nt,trailingSpacer:Pt,depth:Kt,checkboxColumn:Ue,detailColumn:rt,rowNumberColumn:ze,rowHeight:jt,bandFold:Cs}),jsxRuntime.jsx(Pr,{bandOffset:Kt*jt,stickyInsets:nn,layout:s,centerColumns:Mt,leadingSpacer:Nt,trailingSpacer:Pt,sort:u,sortable:w,onSort:vl,groupLevels:Oa,headerFilter:ya,filteredColumns:Fl,onOpenFilter:Ll,filterIconMode:M,checkboxColumn:Ue,detailColumn:rt,rowNumberColumn:ze,selectAllState:Zl,selectAllDisabled:Wo===0&&Vo===0,onToggleSelectAll:Jl,draggable:h,reorderable:H,onReorder:Sl,resizable:K,onResize:El,onAutoFit:Do,onHeaderContextMenu:U===false?void 0:us,onHeaderClick:re,getHeaderClassName:ve,renderHeaderLabel:Ne}),G&&jsxRuntime.jsx(Hr,{bandOffset:Kt*jt,stickyInsets:nn,layout:s,centerColumns:Mt,leadingSpacer:Nt,trailingSpacer:Pt,values:Mo,checkboxColumn:Ue,detailColumn:rt,rowNumberColumn:ze,onChange:Ml,onCommit:Il,periodSuggestions:Gl,periodListId:`${e.gridId}-filter-periods`,operators:No,onOperatorChange:Nl,renderCustom:Pl}),hn&&jsxRuntime.jsx(po,{...Ja,position:"top",bandOffset:Kt*jt,headerRowsBetween:qo}),zo.length>0&&jsxRuntime.jsx(mo,{gridId:e.gridId,side:"top",rows:zo,rowKeys:jl,onUserRowContextMenu:Pa,layout:s,columnModel:Xn,centerColumns:Mt,centerIndices:qn,stickyInsets:nn,leadingSpacer:Nt,trailingSpacer:Pt,checkboxColumn:Ue,detailColumn:rt,rowNumberColumn:ze,rowHeight:R,bandOffset:Kt*jt,headerRowsBetween:qo+(hn?1:0),ariaRowBase:Uo}),i.hasStickyGroupHeaders()&&jsxRuntime.jsx(Wi,{controller:i,width:s.totalWidth,bandOffset:Kt*jt,headerRowsBetween:qo+(hn?1:0),belowPinned:Un>0?Un*R+1:0,renderRow:(o,m,S)=>jsxRuntime.jsx(ln,{gridId:e.gridId,node:o,index:m,layout:s,columnModel:Xn,centerColumns:Mt,centerIndices:qn,stickyInsets:nn,leadingSpacer:Nt,trailingSpacer:Pt,striped:false,selected:false,groupSelection:Ue&&Jt==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:Ka,groupDisplay:$a,focusedColumnId:null,checkboxColumn:Ue,rowNumberColumn:ze,rowNumber:null,headerRowCount:zn,onToggleGroup:_=>{i.toggleGroup(_),i.scrollToRow(_);},revision:ka,searchNeedle:Ya,findStamp:Jn,findKind:Jn?Xa:void 0,summaryDefs:_a,detailColumn:rt,height:S,renderCellContent:et,getCellClassName:Fn})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:mn.rows.totalHeight},onDragOver:zt.bodyHandlers?.onDragOver,onDrop:zt.bodyHandlers?.onDrop,onDragLeave:zt.bodyHandlers?.onDragLeave,children:[jsxRuntime.jsx("div",{ref:Eo,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${mn.rows.offsetY}px)`},children:gs.map((o,m)=>o?jsxRuntime.jsx(ln,{gridId:e.gridId,node:o,index:on+m,layout:s,columnModel:Xn,centerColumns:Mt,centerIndices:qn,stickyInsets:nn,leadingSpacer:Nt,trailingSpacer:Pt,striped:y,selected:i.isRowSelected(o.key),ariaSelectable:Jt!=="none",selectable:Ue&&o.kind==="data"?i.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&Ue&&Jt==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:Ka,groupDisplay:$a,focusedColumnId:tn?.rowKey===o.key?tn.columnId:null,rowFocused:z&&tn?.rowKey===o.key,rowDrag:zt.handlers,dropSide:zt.dropAt?.key===o.key?zt.dropAt.side:null,renderRow:ne?xe:T,checkboxColumn:Ue,rowNumberColumn:ze,getSpan:hs?Rs:void 0,resolveColSpans:ys?bs:void 0,getNote:tt?Kn:void 0,rowNumber:ze?Mi(on+m,ws,as):null,headerRowCount:zn,onRowClick:$l,onRowMouseDown:Jt==="none"?void 0:Al,onRowDoubleClick:Wl,onToggleSelect:Kl,onCellMouseDown:Ol,onRowContextMenu:Vl,onToggleGroup:os,onToggleTreeRow:ls,revision:ka,searchNeedle:Ya,findStamp:Jn,findKind:Jn?Xa:void 0,summaryDefs:_a,detailColumn:rt,detailExpanded:rt&&i.isDetailExpanded(o.key),onToggleDetail:is,renderDetail:A,renderEditForm:ge,height:fs(on+m),renderCellContent:et,getCellClassName:Fn,onCellPointerDown:ue,onCellPointerEnter:Se,onCellDoubleClick:An},String(o.key)):(()=>{let S=on+m,_=i.isRowLoadFailed(S);return jsxRuntime.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:jsxRuntime.jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:_?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-load-failed-text",children:t.rowsLoadFailed}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-retry-button","data-retry-load":"",onClick:()=>i.retryFailedLoads(),children:t.retryLoad})]}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-bar"})})},`__loading-${S}`)})())}),ye?.()]}),Yo.length>0&&jsxRuntime.jsx(mo,{gridId:e.gridId,side:"bottom",rows:Yo,rowKeys:es,onUserRowContextMenu:Pa,layout:s,columnModel:Xn,centerColumns:Mt,centerIndices:qn,stickyInsets:nn,leadingSpacer:Nt,trailingSpacer:Pt,checkboxColumn:Ue,detailColumn:rt,rowNumberColumn:ze,rowHeight:R,headerRowsBetween:en&&!hn?1:0,ariaRowBase:zn+P}),en&&!hn&&jsxRuntime.jsx(po,{...Ja,position:"bottom"})]})}),(xo==="noRows"||xo===null&&P===0)&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-empty",children:c??t.noData}),V.active&&jsxRuntime.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&&jsxRuntime.jsx(Jr,{controller:i,alwaysVisible:B==="always",onOpenBuilder:v,describeOptions:x}),E!==false&&jsxRuntime.jsx(aa,{controller:i,delay:typeof E=="number"?E:void 0,forced:xo==="loading"}),i.isPaginated()&&jsxRuntime.jsx(Xr,{page:i.getPage(),pageCount:i.getPageCount(),pageSize:i.getPageSize(),pageSizes:Ee.pagination?.pageSizes,pageButtons:Ee.pagination?.pageButtons,maxPageButtons:Ee.pagination?.maxPageButtons,totalRows:P,onPage:o=>i.setPage(o),onNext:()=>i.nextPage(),onPrevious:()=>i.previousPage(),onPageSize:o=>i.setPageSize(o)}),f&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:ps}),wn&&jsxRuntime.jsx(oa,{anchor:wn.anchor,value:wn.text,dark:l,onCommit:_l,onCancel:()=>Ao(null)}),Zt&&jsxRuntime.jsx(ho,{x:Zt.x,y:Zt.y,items:Zt.items,context:Zt.context,dark:l,onClose:Bl}),$n&&jsxRuntime.jsx(at,{dark:l,children:jsxRuntime.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&&jsxRuntime.jsx(ho,{x:Ot.x,y:Ot.y,items:Ot.items,context:Ot.context,dark:l,label:`${Ot.context.headerName} column`,onClose:()=>Bo(null)}),Ca&&jsxRuntime.jsx(ua,{state:Ca,dark:l}),La&&jsxRuntime.jsx(qr,{controller:i,columns:i.getColumnStates(),anchor:La,dark:l,onClose:()=>_o(null)}),Xt&&jsxRuntime.jsx(Ki,{controller:i,columnId:Xt.columnId,headerLabel:Xt.label,anchor:Xt.anchor,dark:l,onClose:()=>Lo(null)},Xt.columnId),Ve&&jsxRuntime.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:m,truncated:S}=i.searchDistinctValues(Ve.columnId,o);Gt(_=>_&&_.columnId===Ve.columnId?{..._,entries:m,truncated:S}:_);}:void 0,dark:l,onApply:Hl,onClose:()=>Gt(null)},`${Ve.columnId}:${Ve.loading?"loading":"ready"}`)]})}function Qc({defs:e,values:t,columnModel:n,rowCount:a,rowCountLabel:l}){let r=Te(),d=datagridCore.summaryTypeLabels(r);return e.length===0&&a===void 0?null:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-summary-bar",role:"status","aria-label":r.summaryAria,children:[a!==void 0&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsx("strong",{children:a.toLocaleString()})," ",l??r.summaryRows]}),e.map(y=>{let c=t[datagridCore.summaryKey(y.columnId,y.type)],w=n.getDef(y.columnId),b=datagridCore.formatSummaryValue(y,c,w);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-label",children:[datagridCore.summaryLabel(y,d)," ",w?.headerName??y.columnId,":"]}),jsxRuntime.jsx("strong",{children:b})]},datagridCore.summaryKey(y.columnId,y.type))})]})}var jc=react.memo(Qc);function op(e,t){return ha(e,t,t?.source,(n,a)=>n.computeChartData(a))}function rp(e,t){return ha(e,t,t?.source,(n,a)=>n.computeChartXYData(a))}function ap(e,t){return ha(e,t,t?.source,(n,a)=>n.computeChartBoxData(a))}function ha(e,t,n,a){let[l,r]=react.useState(null);return react.useEffect(()=>{if(!e||!t){r(null);return}let d=n??"view",y=datagridCore.chartNeedsOrder(t),c=false,w=0,b=false,G=false,k=null,M=()=>{let E=++w;a(e,t).then(f=>{!c&&E===w&&r(f);},()=>{});},H=(E=false)=>{G||=E,!b&&(b=true,queueMicrotask(()=>{if(b=false,c)return;let f=e.chartBasis(d,y);!G&&f===k||(G=false,k=f,M());}));};k=e.chartBasis(d,y),M();let K=[e.events.on("contentReady",()=>H()),e.events.on("rowsChanged",()=>H()),e.events.on("dataUpdated",()=>H()),...d==="selection"?[e.events.on("selectionChanged",()=>H(true))]:[]];return ()=>{c=true,w++,K.forEach(E=>E());}},[e,t]),l}Object.defineProperty(exports,"ClientRowModel",{enumerable:true,get:function(){return datagridCore.ClientRowModel}});Object.defineProperty(exports,"ColumnModel",{enumerable:true,get:function(){return datagridCore.ColumnModel}});Object.defineProperty(exports,"DEFAULT_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DEFAULT_ROW_HEIGHT}});Object.defineProperty(exports,"DENSITY_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DENSITY_ROW_HEIGHT}});Object.defineProperty(exports,"DataGridController",{enumerable:true,get:function(){return datagridCore.DataGridController}});Object.defineProperty(exports,"GRID_COLOR_SCHEMES",{enumerable:true,get:function(){return datagridCore.GRID_COLOR_SCHEMES}});Object.defineProperty(exports,"GRID_PALETTES",{enumerable:true,get:function(){return datagridCore.GRID_PALETTES}});Object.defineProperty(exports,"GRID_THEMES",{enumerable:true,get:function(){return datagridCore.GRID_THEMES}});Object.defineProperty(exports,"GridStateStore",{enumerable:true,get:function(){return datagridCore.GridStateStore}});Object.defineProperty(exports,"SUMMARY_TYPE_LABEL",{enumerable:true,get:function(){return datagridCore.SUMMARY_TYPE_LABEL}});Object.defineProperty(exports,"THEME_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.THEME_ROW_HEIGHT}});Object.defineProperty(exports,"VirtualWindowEngine",{enumerable:true,get:function(){return datagridCore.VirtualWindowEngine}});Object.defineProperty(exports,"allowedSummaryTypes",{enumerable:true,get:function(){return datagridCore.allowedSummaryTypes}});Object.defineProperty(exports,"andFilters",{enumerable:true,get:function(){return datagridCore.andFilters}});Object.defineProperty(exports,"attachStateStoring",{enumerable:true,get:function(){return datagridCore.attachStateStoring}});Object.defineProperty(exports,"bandDepth",{enumerable:true,get:function(){return datagridCore.bandDepth}});Object.defineProperty(exports,"bandPath",{enumerable:true,get:function(){return datagridCore.bandPath}});Object.defineProperty(exports,"computeColumnLayout",{enumerable:true,get:function(){return datagridCore.computeColumnLayout}});Object.defineProperty(exports,"computeHeaderBands",{enumerable:true,get:function(){return datagridCore.computeHeaderBands}});Object.defineProperty(exports,"createRestDataSource",{enumerable:true,get:function(){return datagridCore.createRestDataSource}});Object.defineProperty(exports,"describeFilter",{enumerable:true,get:function(){return datagridCore.describeFilter}});Object.defineProperty(exports,"downloadBlob",{enumerable:true,get:function(){return datagridCore.downloadBlob}});Object.defineProperty(exports,"fillText",{enumerable:true,get:function(){return datagridCore.fillText}});Object.defineProperty(exports,"filterInputFromNode",{enumerable:true,get:function(){return datagridCore.filterInputFromNode}});Object.defineProperty(exports,"formatSummaryValue",{enumerable:true,get:function(){return datagridCore.formatSummaryValue}});Object.defineProperty(exports,"humanizeField",{enumerable:true,get:function(){return datagridCore.humanizeField}});Object.defineProperty(exports,"importCsv",{enumerable:true,get:function(){return datagridCore.importCsv}});Object.defineProperty(exports,"inferColumns",{enumerable:true,get:function(){return datagridCore.inferColumns}});Object.defineProperty(exports,"isDataRow",{enumerable:true,get:function(){return datagridCore.isDataRow}});Object.defineProperty(exports,"isDataSource",{enumerable:true,get:function(){return datagridCore.isDataSource}});Object.defineProperty(exports,"isFilterGroup",{enumerable:true,get:function(){return datagridCore.isFilterGroup}});Object.defineProperty(exports,"isGroupRow",{enumerable:true,get:function(){return datagridCore.isGroupRow}});Object.defineProperty(exports,"isPackagedTheme",{enumerable:true,get:function(){return datagridCore.isPackagedTheme}});Object.defineProperty(exports,"lookupLabel",{enumerable:true,get:function(){return datagridCore.lookupLabel}});Object.defineProperty(exports,"moveRowInArray",{enumerable:true,get:function(){return datagridCore.moveRowInArray}});Object.defineProperty(exports,"parseCsv",{enumerable:true,get:function(){return datagridCore.parseCsv}});Object.defineProperty(exports,"parseFilterInput",{enumerable:true,get:function(){return datagridCore.parseFilterInput}});Object.defineProperty(exports,"sniffDelimiter",{enumerable:true,get:function(){return datagridCore.sniffDelimiter}});Object.defineProperty(exports,"summaryKey",{enumerable:true,get:function(){return datagridCore.summaryKey}});Object.defineProperty(exports,"summaryLabel",{enumerable:true,get:function(){return datagridCore.summaryLabel}});Object.defineProperty(exports,"summaryTypeLabels",{enumerable:true,get:function(){return datagridCore.summaryTypeLabels}});Object.defineProperty(exports,"themeClassName",{enumerable:true,get:function(){return datagridCore.themeClassName}});exports.BAND_ROW_HEIGHT=sn;exports.DEFAULT_HEADER_MENU_LABELS=cl;exports.DataGrid=qc;exports.GridCellEditor=pr;exports.GridColumnChooser=qr;exports.GridContextMenu=ho;exports.GridDateEditor=ur;exports.GridDialog=fr;exports.GridFilterPanel=Jr;exports.GridFilterRow=Hr;exports.GridFooterRow=po;exports.GridGroupPanel=zr;exports.GridHeader=Pr;exports.GridHeaderBands=Mr;exports.GridHeaderFilterPopup=_r;exports.GridLoadingOverlay=aa;exports.GridLookupEditor=sr;exports.GridNoteEditor=oa;exports.GridPager=Xr;exports.GridPinnedRows=mo;exports.GridPopupPanel=Ut;exports.GridPortal=at;exports.GridRow=ln;exports.GridSummaryBar=jc;exports.GridSurfaceProvider=rr;exports.GridTextProvider=Qo;exports.GridToolbar=Yr;exports.GridTooltip=ua;exports.PRINT_MAX_ROWS=gr;exports.ROW_DRAG_MIME=yo;exports.SHORTCUT_COPY=Ji;exports.SHORTCUT_CUT=ju;exports.SHORTCUT_PASTE=ec;exports.buildCellMenuItems=ea;exports.buildHeaderMenu=ca;exports.copyToClipboard=un;exports.headerMenuLabels=Ro;exports.matchOptions=nd;exports.measureBestFitWidth=bo;exports.reconcileFilterInputs=Lr;exports.runGridExport=Gn;exports.useAlignedGrids=br;exports.useAnchoredPopup=Wt;exports.useCellTooltip=da;exports.useDataGrid=Zo;exports.useGridChartBoxData=ap;exports.useGridChartData=op;exports.useGridChartXYData=rp;exports.useGridEditing=er;exports.useGridSurfaceClass=Tt;exports.useGridText=Te;exports.usePrintLayout=wr;exports.useRowDrag=sa;exports.useStateStoring=ia;exports.writeClipboardText=tc;