@kanunilabs/datagrid-react 1.8.3 → 1.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
- 'use strict';var react=require('react'),datagridCore=require('@kanunilabs/datagrid-core'),jsxRuntime=require('react/jsx-runtime'),reactDom=require('react-dom');var ad=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],Di=new WeakMap;function gr(e){let t=Di.get(e);if(!t){let n={version:0,listeners:new Set},r=()=>{n.version++,n.listeners.forEach(l=>l());};for(let l of ad)e.events.on(l,r);Di.set(e,n),t=n;}return t}function wr(e){let t=e.sorting?.postSort,n=react.useRef(t);react.useEffect(()=>{n.current=t;},[t]);let[r]=react.useState(()=>((B,N)=>n.current?.(B,N))),l=()=>{let B=new datagridCore.DataGridController(t?{...e,sorting:{...e.sorting,postSort:r}}:e);return gr(B),B},[a,s]=react.useState(l);react.useEffect(()=>{if(a.isDisposed()){s(l());return}return ()=>a.dispose()},[a]);let f=react.useCallback(B=>{let{listeners:N}=gr(a);return N.add(B),()=>{N.delete(B);}},[a]),D=react.useCallback(()=>gr(a).version,[a]);react.useSyncExternalStore(f,D,D);let{dataSource:h,columns:R}=e,C=react.useRef(true);react.useEffect(()=>{if(C.current){C.current=false;return}Array.isArray(h)&&a.setData(h);},[a,h]);let b=react.useRef(true);react.useEffect(()=>{if(b.current){b.current=false;return}a.setColumns(R);},[a,R]);let M=e.pagination?e.pagination.enabled!==false:false;react.useEffect(()=>{a.setPaginationEnabled(M);},[a,M]);let v=e.rowHeight,F=react.useRef(true);react.useEffect(()=>{if(F.current){F.current=false;return}v!==void 0&&a.setRowHeight(v);},[a,v]);let A=e.selection?.mode??"none";react.useEffect(()=>{a.setSelectionMode(A);},[a,A]);let E=e.rowPinning;react.useEffect(()=>{a.setRowPinning(E);},[a,E]);let c=e.selection?.isRowSelectable,x=react.useRef(true);react.useEffect(()=>{if(x.current){x.current=false;return}a.setRowSelectable(c??null);},[a,c]);let I=t!==void 0,$=react.useRef(true);react.useEffect(()=>{if($.current){$.current=false;return}a.setPostSort(I?r:null);},[a,I,r]);let W=e.grouping?.groupBy??null,H=JSON.stringify(W==null?[]:typeof W=="string"?[W]:W),k=react.useRef(true);return react.useEffect(()=>{if(k.current){k.current=false;return}a.groupBy(JSON.parse(H));},[a,H]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var Ei=react.createContext(datagridCore.getGridDictionary("en"));function hr({locale:e,messages:t,children:n}){let r=react.useMemo(()=>datagridCore.getGridDictionary(e,t),[e,t]);return jsxRuntime.jsx(Ei.Provider,{value:r,children:n})}function ve(){return react.useContext(Ei)}var wo=new WeakMap,vd=1e5,Td=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function xd(e){let{controller:t,canEditColumn:n}=e;return {controller:t,mode:e.mode??"cell",onSave:e.onSave,editOnKeyPress:e.editOnKeyPress,focusCellOnTab:e.focusCellOnTab,focusCellOnCycle:e.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,enabled:e.enabled,savedDuration:e.savedDuration,range:false,history:false,canEditColumn:r=>{let l=t?.getColumnModel().getDef(r);return l?.lookup||l?.renderEditor||l?.allowFormulas===true?false:n?.(r)??true}}}function Rr(e){let t=e.controller?.isEnterpriseEdition()??false;return Dd(t?e:xd(e))}function Dd({controller:e,mode:t="batch",rules:n,onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:f,onInitNewRow:D,onRowInserted:h,onRowUpdated:R,onRowRemoved:C,editOnKeyPress:b,confirmDelete:M,confirmDeleteMessage:v,insertKey:F,appendOnArrowDown:A,newRowPosition:E,focusCellOnTab:c,focusCellOnCycle:x,keepEditingOnTab:I,enabled:$=true,savedDuration:W,range:H=true,history:k=true,canEditColumn:B}){let N=ve(),[g,d]=react.useState(0),S=react.useCallback(()=>d(u=>u+1),[]),L=react.useMemo(()=>new datagridCore.RangeSelectionEngine,[]),z=react.useMemo(()=>({start(u,m){L.start(u,m),S();},add(u,m){L.add(u,m),S();},extend(u,m){L.extend(u,m)&&S();},finish(){L.finish(),S(),e?.notifyViewStateChanged();},clear(){L.clear()&&(S(),e?.notifyViewStateChanged());},contains:(u,m)=>L.contains(u,m),isAnchor:(u,m)=>L.isAnchor(u,m),getRange:()=>L.getRange(),getBounds:()=>L.getBounds(),toTsv:u=>L.toTsv(u),selectColumn(u,m,T){return L.selectColumn(u,m,T)?(S(),e?.notifyViewStateChanged(),true):false},fullColumns:u=>L.fullColumns(u)}),[L,S,e]),U=react.useRef(null);react.useEffect(()=>{if(!(!e||!H))return e.registerViewStatePart("ranges",{session:true,get:()=>datagridCore.rangesToSaved(L.getRanges(),e.getVisualColumnIds()),apply:u=>{L.setRanges(datagridCore.rangesFromSaved(u,e.getVisualColumnIds())),S();}})},[e,H,L,S]);let[me,xe]=react.useState(null),se=react.useRef({onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:f,onInitNewRow:D,onRowInserted:h,onRowUpdated:R,onRowRemoved:C,editOnKeyPress:b,confirmDelete:M,confirmDeleteMessage:v,insertKey:F,appendOnArrowDown:A,newRowPosition:E,focusCellOnTab:c,focusCellOnCycle:x,keepEditingOnTab:I,canEditColumn:B});se.current={onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:f,onInitNewRow:D,onRowInserted:h,onRowUpdated:R,onRowRemoved:C,editOnKeyPress:b,confirmDelete:M,confirmDeleteMessage:v,insertKey:F,appendOnArrowDown:A,newRowPosition:E,focusCellOnTab:c,focusCellOnCycle:x,keepEditingOnTab:I,canEditColumn:B};let Ne=react.useRef(null),w=react.useMemo(()=>{if(!e||!$)return null;let u=m=>e.getRowByKey(m);return new datagridCore.EditingEngine({mode:t,rules:n,messages:N,onChange:S,onAutoSaveFailed:m=>Ne.current?.(m),onCellValueChanged:m=>e.notifyCellValueChanged(m),onEditingStarted:m=>e.notifyEditingStarted(m),onEditingStopped:m=>e.notifyEditingStopped(m),onRowEditingStarted:m=>e.notifyRowEditingStarted(m),onRowEditingStopped:m=>e.notifyRowEditingStopped(m),onHistoryStarted:({kind:m,label:T})=>e.notifyHistoryStarted(m,T),onHistoryEnded:({kind:m,...T})=>e.notifyHistoryEnded(m,T),readValue:(m,T)=>{let _=u(m);return _?e.getColumnModel().getStoredValue(_,T):void 0},formatForEdit:(m,T,_)=>e.formatCellForEdit(T,_),parseFromEdit:(m,T,_)=>e.parseCellFromEdit(T,_,m),readRow:u,editableColumns:m=>{let T=e.getColumnLayout(),_=u(m);return [...T.left,...T.center,...T.right].map(Q=>Q.state.id).filter(Q=>{if(e.getColumnModel().getDef(Q)?.editable===false||se.current.canEditColumn&&!se.current.canEditColumn(Q))return false;let te=se.current.allowUpdating;return te===void 0?true:typeof te=="function"?te(_,Q):te})},isColumnEditable:m=>e.getColumnModel().getDef(m)?.editable!==false&&(se.current.canEditColumn?.(m)??true),applyValue:(m,T,_)=>e.writeCellValue(m,T,_),storedValue:(m,T,_)=>e.valueAfterWrite(m,T,_),insertRow:(m,T,_,Q)=>{let te=e.getRowKeyField(),ce={...T};te&&(ce[te]=m),e.applyTransaction({add:[ce],addPosition:_,addBeforeKey:Q});},dropRow:m=>e.applyTransaction({remove:[m]}),replaceRow:(m,T)=>{let _=e.getRowKey(T);return _===m?(e.applyTransaction({update:[T]}),_):(e.applyTransaction({remove:[m],add:[T]}),_)},allowAdding:()=>se.current.allowAdding??false,allowUpdating:(m,T)=>{let _=se.current.allowUpdating;return _===void 0?true:typeof _=="function"?_(m,T):_},allowDeleting:m=>{let T=se.current.allowDeleting;return T===void 0?false:typeof T=="function"?T(m):T},onInitNewRow:m=>se.current.onInitNewRow?.(m),get newRowPosition(){return se.current.newRowPosition},onRowInserted:(m,T)=>se.current.onRowInserted?.(m,T),onRowUpdated:(m,T,_)=>se.current.onRowUpdated?.(m,T,_),onRowRemoved:(m,T)=>se.current.onRowRemoved?.(m,T),crud:{get insert(){let m=se.current.crud?.insert;return m&&(T=>m(T))},get update(){let m=se.current.crud?.update;return m&&((T,_,Q)=>m(T,_,Q))},get remove(){let m=se.current.crud?.remove;return m&&((T,_)=>m(T,_))}},onSave:m=>se.current.onSave?.(m)})},[e,$]);react.useEffect(()=>{w?.setMessages(N);},[w,N]),react.useEffect(()=>{w?.setMode(t);},[w,t]),react.useEffect(()=>{W!==void 0&&w?.setSavedDuration(W);},[w,W]),react.useEffect(()=>(w?.resume(),()=>w?.dispose()),[w]),react.useEffect(()=>{if(!e||!w)return;let u=false,m=e.events.on("rowsChanged",_=>{u=_.removed===0;}),T=e.events.on("dataUpdated",()=>{let _=u;u=false,!_&&w.retainKeys(new Set(e.getDataRows().map(Q=>Q.key)));});return ()=>{m(),T();}},[e,w]),react.useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>z.clear())},[e,z]),react.useEffect(()=>{if(!(!e||!w))return e.setPendingValueReader({effectiveValue:(u,m,T)=>w.changes.effectiveValue(u,m,T),effectiveRow:(u,m)=>w.changes.applyPendingTo(u,m),hasPending:()=>w.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,w]),react.useEffect(()=>{if(!(!e||!w||!k))return e.setHistoryDelegate({undo:()=>w.undo(),redo:()=>w.redo(),canUndo:()=>w.canUndo(),canRedo:()=>w.canRedo(),depth:()=>w.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,w,k]);let J=react.useMemo(()=>datagridCore.createDebouncedCommit(150),[]);react.useEffect(()=>()=>J.cancelAll(),[J]);let Ee=react.useRef(g);react.useEffect(()=>{!e||!w||g===Ee.current||(Ee.current=g,J.schedule("footer",()=>e.refreshSummaries()));},[e,w,g,J]);let ee=react.useCallback(u=>{let m=e?.getRows()[u];return m&&m.kind==="data"?m.key:null},[e]),re=react.useCallback(u=>e?.getColumnIdAt(u)??null,[e]),Re=react.useCallback((u,m)=>{e?.scrollToCell(u,m),w?.beginEdit(u,m);},[w,e]),Ce=react.useCallback((u={},m)=>{let T=w?.addRow(u,m)??null;if(T===null||!e)return T;if(datagridCore.isRowEditMode(t))return e.revealRow(T),T;let _=e.getRowKeyField(),Q=e.getColumnModel().runtime().find(te=>te.state.visible&&te.def.editable!==false&&(_===null||(te.def.field??te.state.id)!==_));return e.revealRow(T),Q&&(e.focusCell(T,Q.state.id),w?.beginEdit(T,Q.state.id)),T},[w,e]),ke=react.useCallback(u=>{if(!w)return false;let m=se.current.confirmDelete;if(m===false)return w.removeRow(u);let T=e?.getRowByKey(u);if(typeof m!="function")return He({rowKey:u,message:se.current.confirmDeleteMessage??N.editDeleteConfirm}),false;let _=m(u,T);return typeof _=="boolean"?_?w.removeRow(u):false:(_.then(Q=>{Q&&w.removeRow(u);}),false)},[w,e]),P=react.useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),ae=react.useCallback((u,m={})=>{if(!w||!e)return false;let T=w.getSession(),_=T?{rowKey:T.rowKey,columnId:T.columnId}:e.getFocus();if(!_||!w.commitEdit())return false;let Q=Ae=>e.getColumnModel().getDef(Ae)?.editable!==false&&(se.current.canEditColumn?.(Ae)??true),te=e.getColumnModel().runtime().filter(Ae=>Ae.state.visible).map(Ae=>Ae.state.id);if(datagridCore.edgeEditableColumn(te,Q,1)===null)return false;let ce=e.getRows(),we=ce.findIndex(Ae=>Ae.key===_.rowKey);if(we<0)return false;let he=datagridCore.nextEditableColumn(te,Q,_.columnId,u);if(he===null){if(m.cycle===false)return false;let Ae=u;do we+=Ae;while(we>=0&&we<ce.length&&ce[we]?.kind!=="data");if(we<0||we>=ce.length)return false;he=datagridCore.edgeEditableColumn(te,Q,u);}let be=ce[we];return !be||be.kind!=="data"?false:(e.focusCell(be.key,he),e.scrollToCell(be.key,he),m.open===true?w.beginEdit(be.key,he):(P(),true))},[w,e]),X=react.useCallback((u,m,T)=>!w||!e||w.isEditingRow()||!w.canEditRow(u)||(e.scrollToCell(u,m),!w.beginRowEdit(u))?false:(T!==void 0&&w.getMode()==="row"&&(wo.set(w,m),w.setRowEditValue(m,T)),true),[w,e]),Z=react.useCallback(u=>{if(!w||!e||w.getSession())return false;let m=e.getFocus();if(!m||e.getColumnModel().getDef(m.columnId)?.editable===false)return false;let _=e.getColumnModel().getEditorDataType(m.columnId);if(_==="boolean"||_==="date")return false;let Q=_==="number"?Number.isNaN(Number(u))?null:Number(u):u;return Q===null?false:datagridCore.isRowEditMode(w.getMode())?X(m.rowKey,m.columnId,Q):(e.scrollToCell(m.rowKey,m.columnId),w.beginEdit(m.rowKey,m.columnId,Q))},[w,e,X]),[Ge,Pe]=react.useState(null),[Ke,He]=react.useState(null),Xe=react.useCallback(u=>{let m=Ke;He(null),u&&m&&w&&w.removeRow(m.rowKey);},[Ke,w]),dt=react.useCallback(u=>{Pe({message:u.error??N.editSaveFailed,rowKey:u.rowKey,columnId:u.columnId}),u.rowKey!==void 0&&u.columnId!==void 0&&(e?.revealRow(u.rowKey),e?.focusCell(u.rowKey,u.columnId));},[e,N]);Ne.current=dt;let pt=react.useCallback(async()=>{if(!w)return;Pe(null);let u=await w.saveChanges();u.saved||u.superseded||dt(u);},[w,dt]),p=react.useCallback(()=>Pe(null),[]),K=react.useCallback(()=>{Pe(null),w?.cancelChanges();},[w]);react.useEffect(()=>{(w?.getSession()||w?.isEditingRow())&&Pe(null);},[g,w]);let Y=react.useMemo(()=>{if(!e||!L.getRange())return null;let u=L.cellCount();if(u>vd)return {cells:u,truncated:true,numeric:null};let m=e.getColumnModel(),T=e.getVisualColumnIds(),_=e.getRows(),Q=L.getStats((te,ce)=>{let we=_[te],he=T[ce];if(!we||we.kind!=="data"||!he)return;let be=w?w.effectiveValue(we.key,he):m.getCellValue(we.data,he);return typeof be=="string"&&be.trim()!==""&&!Number.isNaN(Number(be))?Number(be):be});return {cells:u,truncated:false,numeric:Q}},[e,L,w,g]),de=react.useCallback((u,m)=>!!w&&!datagridCore.isChromeColumn(m)&&w.canUpdate(u,m),[w]),q=react.useCallback((u,m)=>{let T=z.getRange();U.current=T??{startRow:u,startColumn:m,endRow:u,endColumn:m},xe(null);},[z]),Be=react.useCallback((u,m)=>{let T=U.current;if(!T)return;let _=datagridCore.computeFillTarget(T,u,m);xe(_?{startRow:_.bounds.minRow,startColumn:_.bounds.minColumn,endRow:_.bounds.maxRow,endColumn:_.bounds.maxColumn}:null);},[]),De=react.useCallback((u,m)=>{if(!w||!e)return 0;let _=datagridCore.computeFillValues(u,m,(Q,te)=>{let ce=ee(Q),we=re(te);return ce!==null&&we?w.effectiveValue(ce,we):void 0}).map(Q=>{let te=ee(Q.row),ce=re(Q.column);if(te===null||!ce||!de(te,ce))return null;let we=Q.from?e.shiftCellFormula(ce,Q.value,Q.row-Q.from.row,Q.column-Q.from.column):Q.value;return {rowKey:te,columnId:ce,value:we}}).filter(Q=>Q!==null);return e.notifyClipboardGesture("fill",_.length,()=>_.length===0?false:(w.applyEdits(_,datagridCore.fillText(N.editFillUndo,{count:_.length}),"fill"),true)),_.length},[w,e,ee,re,de,N]),$e=react.useCallback(()=>{let u=U.current,m=me;if(U.current=null,xe(null),!u||!m||!w||!e)return;let T=datagridCore.computeFillTarget(u,m.endRow,m.endColumn);T&&De(u,T);},[me,w,e,De]),oe=react.useCallback((u,m)=>{if(!e)return "";let T=e.getRows()[u],_=e.getColumnIdAt(m);if(!T||T.kind!=="data"||!_)return "";let Q=e.getColumnModel(),te=w?w.effectiveValue(T.key,_):Q.getCellValue(T.data,_),ce=datagridCore.cellDisplayText(Q.getDef(_),te,T.data);return e.clipboardCellText(T,_,te,ce).replace(/[\t\r\n]+/g," ")},[e,w]),ze=react.useCallback((u="copy")=>{if(!e||!z.getRange())return false;let m=z.toTsv(oe);return e.notifyClipboardGesture("copy",m?m.split(`
2
- `).length:0,()=>e.writeClipboard(m,u)),true},[e,z,oe]),Je=react.useCallback(u=>{if(!e||!w)return false;let m=z.getRange()!==null,T=u??e.getFocus();if(!m&&!T)return false;if(!ze("cut")){let ce=T?e.getVisualColumnIds().indexOf(T.columnId):-1,we=T?e.getRows().findIndex(be=>be.key===T.rowKey):-1;if(we<0||ce<0)return false;let he=oe(we,ce);e.notifyClipboardGesture("copy",he?1:0,()=>e.writeClipboard(he,"cut"));}let _=[];if(m)L.forEachCell((ce,we)=>_.push([ce,we]));else {let ce=e.getRows().findIndex(he=>he.key===T.rowKey),we=e.getVisualColumnIds().indexOf(T.columnId);if(ce<0||we<0)return false;_.push([ce,we]);}let Q=e.getRows(),te=[];for(let[ce,we]of _){let he=Q[ce];if(!he||he.kind!=="data")continue;let be=e.getColumnIdAt(we);!be||datagridCore.isChromeColumn(be)||w.canUpdate(he.key,be)&&te.push({rowKey:he.key,columnId:be,value:null});}return e.notifyClipboardGesture("cut",te.length,()=>te.length===0?false:(w.applyEdits(te,datagridCore.fillText(N.editCutUndo,{count:te.length}),"cut"),true)),true},[e,w,z,L,ze,oe,N]),Ye=react.useCallback(async u=>{if(!w||!e)return;let m="";try{m=await navigator.clipboard.readText();}catch{return}if(!m)return;let T=e.processPastedTable(datagridCore.parseClipboardTable(m));if(!T)return;let _=z.getBounds(),Q,te;if(_)Q=_.minRow,te=_.minColumn;else {let be=u??e.getFocus();if(!be||(Q=e.getRows().findIndex(Ae=>Ae.key===be.rowKey),te=e.getVisualColumnIds().indexOf(be.columnId),Q<0||te<0))return}let ce=datagridCore.computePasteCells(T,Q,te,{target:_,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),we=e.getColumnModel(),he=ce.map(be=>{let Ae=ee(be.row),yt=re(be.column);return Ae===null||!yt||!de(Ae,yt)?null:{rowKey:Ae,columnId:yt,value:e.pastedCellValue(Ae,yt,be.text,datagridCore.coercePastedValue(be.text,we.getEditorDataType(yt)))}}).filter(be=>be!==null);e.notifyClipboardGesture("paste",he.length,()=>he.length===0?false:(w.applyEdits(he,datagridCore.fillText(N.editPasteUndo,{count:he.length}),"paste"),true));},[w,e,z,ee,re,de,N]),[ue,i]=react.useState(null),je=react.useCallback(u=>w?(i(null),w.beginRowEdit(u)):false,[w]),rt=react.useCallback(async()=>{if(!w||!w.getRowSession())return false;let m=e?.getVisualColumnIds()??[],T=await w.saveRowEdit(m);return i(T.saved?null:T.error??null),T.saved&&P(),T.saved},[w,e,P]),Ie=react.useCallback(()=>{w&&(i(null),w.cancelRowEdit(),P());},[w,P]);react.useEffect(()=>{if(!(!e||!w))return e.setEditingDelegate({startEditingCell:(u,m)=>(e.scrollToCell(u,m),w.beginEdit(u,m)),stopEditing:async u=>{if(w.isEditingRow())return u?(Ie(),true):rt();if(!w.getSession())return false;if(u)return w.cancelEdit(),P(),true;let m=w.commitEdit();return m&&P(),m},getEditingCells:()=>{let u=w.getRowSession();if(u)return e.getVisualColumnIds().filter(T=>!datagridCore.isChromeColumn(T)&&w.canUpdate(u.rowKey,T)).map(T=>({rowKey:u.rowKey,columnId:T}));let m=w.getSession();return m?[{rowKey:m.rowKey,columnId:m.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,w,rt,Ie,P]);let ut=react.useCallback(u=>{if(!w||!e)return false;let m=u.ctrlKey||u.metaKey;if(k&&m&&(u.key==="z"||u.key==="Z"))return u.preventDefault(),u.shiftKey?w.redo():w.undo(),true;if(k&&m&&(u.key==="y"||u.key==="Y"))return u.preventDefault(),w.redo(),true;if(H&&m&&(u.key==="v"||u.key==="V"))return u.preventDefault(),Ye(),true;if(H&&m&&(u.key==="x"||u.key==="X"))return u.preventDefault(),Je(),true;if(m&&(u.key==="c"||u.key==="C"))return ze()?(u.stopPropagation(),true):false;if(w.isEditingRow()){if(u.key==="Enter")return u.preventDefault(),rt(),true;if(u.key==="Escape")return u.preventDefault(),Ie(),true}if(u.key==="Escape"&&w.getSession())return u.preventDefault(),w.cancelEdit(),true;if(u.key==="Tab"&&se.current.focusCellOnTab!==false&&!w.getSession()&&e.getFocus()&&ae(u.shiftKey?-1:1,{open:se.current.keepEditingOnTab===true,cycle:se.current.focusCellOnCycle!==false}))return u.preventDefault(),true;if(H&&u.shiftKey&&!u.altKey&&!w.getSession()&&datagridCore.RANGE_KEY_DIRECTIONS[u.key]){let T=e.getFocus(),_=e.getVisualColumnIds(),Q=_.flatMap((we,he)=>datagridCore.isChromeColumn(we)?[]:[he]),te=T?e.getRowIndex(T.rowKey):-1,ce=T?_.indexOf(T.columnId):-1;if(te>=0&&ce>=0&&Q.length>0){u.preventDefault(),u.stopPropagation();let we=e.getRows(),he=datagridCore.extendRangeByKey(z.getRange(),{row:te,column:ce},datagridCore.RANGE_KEY_DIRECTIONS[u.key],m,{rows:we.length,firstColumn:Q[0],lastColumn:Q[Q.length-1]});z.getRange()||z.start(he.startRow,he.startColumn),z.extend(he.endRow,he.endColumn),e.notifyViewStateChanged();let be=we[he.endRow]?.key;return be!==void 0&&e.scrollToCell(be,_[he.endColumn]),true}}if(H&&m&&!u.shiftKey&&!u.altKey&&!w.getSession()&&(u.key==="d"||u.key==="D"||u.key==="r"||u.key==="R")){let T=e.getFocus(),_=e.getVisualColumnIds(),Q=_.findIndex(be=>!datagridCore.isChromeColumn(be)),te=T?e.getRowIndex(T.rowKey):-1,ce=T?_.indexOf(T.columnId):-1,we=z.getRange()??(te>=0&&ce>=0?{startRow:te,startColumn:ce,endRow:te,endColumn:ce}:null),he=we?datagridCore.keyboardFill(we,u.key.toLowerCase()==="d"?"down":"right",Math.max(0,Q)):null;if(he)return u.preventDefault(),u.stopPropagation(),De(he.source,he.target),true}if(!m&&!u.shiftKey&&!w.getSession()&&Td.has(u.key)&&z.clear(),u.key==="Insert"&&se.current.insertKey===true&&!m&&!w.getSession()){let T=e.getFocus();if(T&&w.canAdd())return u.preventDefault(),Ce({},T.rowKey),true}if(u.key==="ArrowDown"&&se.current.appendOnArrowDown===true&&!m&&!u.shiftKey&&!w.getSession()){let T=e.getFocus(),_=e.getRows(),Q=_.length>0?_[_.length-1]:void 0;if(T&&Q&&Q.key===T.rowKey&&w.canAdd())return u.preventDefault(),Ce({}),true}if(u.key==="F2"){let T=e.getFocus();if(T)return u.preventDefault(),datagridCore.isRowEditMode(w.getMode())?(X(T.rowKey,T.columnId),true):(e.scrollToCell(T.rowKey,T.columnId),w.beginEdit(T.rowKey,T.columnId),true)}return se.current.editOnKeyPress!==false&&!m&&!u.altKey&&u.key.length===1&&u.key!==" "&&!w.getSession()&&Z(u.key)?(u.preventDefault(),true):false},[w,e,H,k,Ye,Je,ze,Z,X,ae,Ce,rt,Ie,De]);return {engine:w,range:z,version:g,beginEdit:Re,beginRowEdit:je,saveRowEdit:rt,cancelRowEdit:Ie,rowSaveError:ue,addRow:Ce,editAdjacentCell:ae,editFocusedCellWith:Z,focusScroller:P,deleteRow:ke,saveChanges:pt,cancelChanges:K,selectionStats:Y,handleKeyDown:ut,cut:Je,copySelection:ze,paste:Ye,saveError:Ge,clearSaveError:p,pendingDelete:Ke,resolveDelete:Xe,fillPreview:me,startFillDrag:q,moveFillDrag:Be,endFillDrag:$e,isDraggingFill:U.current!==null}}var Hi=react.createContext(""),Ai=react.createContext(()=>document.body),Id=typeof window<"u"?react.useLayoutEffect:react.useEffect;function Tr({theme:e,density:t,palette:n,portalContainer:r,children:l}){let a=react.useMemo(()=>datagridCore.themeClassName(e,t,n),[e,t,n]),s=react.useRef(r);Id(()=>{s.current=r;},[r]);let f=react.useMemo(()=>()=>datagridCore.portalTarget(s.current),[]);return jsxRuntime.jsx(Hi.Provider,{value:a,children:jsxRuntime.jsx(Ai.Provider,{value:f,children:l})})}function Pt(){return react.useContext(Ai)}function Tt(){return react.useContext(Hi)}var Sr=8,Lt=26,Bi=4;function _i(e,t,n){let r=datagridCore.foldText(t.trim());if(r==="")return null;let l=[];for(let a=0;a<e.length;a++){let s=e[a];(n==="contains"?s.includes(r):s.startsWith(r))&&l.push(a);}return l}function Ad(e,t,n){let r=e.map(a=>datagridCore.foldText(a.label)),l=_i(r,t,n);return l===null?e:l.map(a=>e[a])}function jt({options:e,value:t,matchMode:n="startsWith",allowCustom:r=false,invalid:l,autoFocus:a=true,testId:s,columnId:f,ariaLabel:D,onChange:h,onCommit:R,commitOnPick:C=true,onCancel:b,onTab:M}){let v=ve(),F=Tt(),A=Pt(),E=react.useRef(null),c=react.useRef(null),[x,I]=react.useState(null),[$,W]=react.useState(false),[H,k]=react.useState(0),[B,N]=react.useState(0),[g,d]=react.useState(null),S=react.useMemo(()=>e.map(P=>datagridCore.foldText(P.label)),[e]),L=react.useMemo(()=>{let P=e.find(ae=>ae.value===t);return P?P.label:t==null||t===""?"":String(t)},[e,t]),z=react.useMemo(()=>x===null?null:_i(S,x,n),[S,x,n]),U=z===null?e.length:z.length,me=P=>e[z===null?P:z[P]],xe=x??L;react.useEffect(()=>{k(P=>P<U?P:0);},[U]),react.useLayoutEffect(()=>{a&&(E.current?.focus({preventScroll:true}),E.current?.select());},[]);let se=()=>{let P=E.current;if(!P)return;let ae=P.getBoundingClientRect(),X=datagridCore.placeAnchoredLayer({anchor:{left:ae.left,top:ae.top,bottom:ae.bottom},width:ae.width,height:Math.min(Math.max(U,1),Sr)*Lt,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});d({left:X.left,top:X.top,width:ae.width});};react.useLayoutEffect(()=>{$&&se();},[$,U]),react.useEffect(()=>{if(!$)return;let P=()=>se();return window.addEventListener("scroll",P,true),window.addEventListener("resize",P),()=>{window.removeEventListener("scroll",P,true),window.removeEventListener("resize",P);}},[$]),react.useLayoutEffect(()=>{let P=c.current;if(!P||!$||U===0)return;let ae=H*Lt,X=ae+Lt,Z=P.scrollTop;ae<Z?Z=ae:X>Z+P.clientHeight&&(Z=X-P.clientHeight),Z!==P.scrollTop&&(P.scrollTop=Z,N(Z));},[H,$,U]);let Ne=Math.min(Math.max(U,1),Sr)*Lt,w=Math.max(0,Math.floor(B/Lt)-Bi),J=Math.min(U,Math.ceil((B+Ne)/Lt)+Bi),Ee=P=>{h(P.value),I(null),W(false),C&&R();},ee=()=>{$||(W(true),N(0),c.current&&(c.current.scrollTop=0));},re=()=>{if(x===null)return true;let P=x.trim();if(P==="")return r&&h(""),true;let ae=datagridCore.foldText(P),X=S.indexOf(ae);return X>=0?(h(e[X].value),true):U===1?(h(me(0).value),true):r?(h(P),true):false},Re=P=>{if(!(P.nativeEvent.isComposing||P.keyCode===229)){if(P.key==="ArrowDown"||P.key==="ArrowUp"){if(P.preventDefault(),P.stopPropagation(),!$){ee();return}if(U===0)return;k(ae=>((P.key==="ArrowDown"?ae+1:ae-1)+U)%U);return}if(P.key==="PageDown"||P.key==="PageUp"){if(!$||U===0)return;P.preventDefault(),P.stopPropagation();let ae=Sr*(P.key==="PageDown"?1:-1);k(X=>Math.min(U-1,Math.max(0,X+ae)));return}if(P.key==="Home"||P.key==="End"){if(!$||U===0)return;P.preventDefault(),P.stopPropagation(),k(P.key==="Home"?0:U-1);return}if(P.key==="Enter"){if(P.preventDefault(),P.stopPropagation(),$&&U>0){Ee(me(H));return}re()?R():ee();return}if(P.key==="Escape"){if(P.preventDefault(),P.stopPropagation(),$){W(false);return}I(null),b();return}if(P.key==="Tab"){if(!re()){P.preventDefault(),P.stopPropagation(),ee();return}W(false),M&&(P.preventDefault(),P.stopPropagation(),M(P.shiftKey));return}P.stopPropagation();}},Ce=[];for(let P=w;P<J;P++){let ae=me(P);Ce.push(jsxRuntime.jsx("div",{role:"option","aria-selected":P===H,"aria-posinset":P+1,"aria-setsize":U,className:`kanuni-datagrid-lookup-item${P===H?" kanuni-datagrid-lookup-item--active":""}`,style:{position:"absolute",top:P*Lt,height:Lt,left:0,right:0},onMouseEnter:()=>k(P),onClick:()=>Ee(ae),children:ae.label},String(ae.value)));}let ke=$&&g?reactDom.createPortal(jsxRuntime.jsx("div",{ref:c,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${F}`,"data-kanuni-portal":"",role:"listbox","aria-label":D,"data-testid":s?`${s}-list`:void 0,style:{left:g.left,top:g.top,width:g.width,height:Ne},onScroll:P=>N(P.currentTarget.scrollTop),onMouseDown:P=>P.preventDefault(),children:U===0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-lookup-empty",children:v.editNoMatch}):jsxRuntime.jsx("div",{style:{position:"relative",height:U*Lt},children:Ce})}),A()):null;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{ref:E,type:"text",role:"combobox","aria-expanded":$,"aria-autocomplete":"list","aria-label":D,"data-testid":s,"data-column-id":f,className:`kanuni-datagrid-editor${l?" kanuni-datagrid-editor--invalid":""}`,value:xe,onChange:P=>{I(P.target.value),k(0),N(0),c.current&&(c.current.scrollTop=0),W(true);},onFocus:ee,onClick:ee,onKeyDown:Re,onBlur:()=>{x!==null&&!re()&&I(null),W(false);}}),ke]})}function qd(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=qi(e);return [...t.slice(n),...t.slice(0,n)]}function qi(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function Xd(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 Jd(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Zt({value:e,format:t=datagridCore.DEFAULT_DATE_FORMAT,invalid:n,disabled:r,autoFocus:l=true,testId:a,columnId:s,ariaLabel:f,onChange:D,onCommit:h,onCancel:R,onTab:C}){let b=ve(),M=Tt(),v=Pt(),F=react.useMemo(()=>Xd(b),[b]),A=react.useMemo(()=>qd(b),[b]),E=react.useRef(null),[c,x]=react.useState(null),[I,$]=react.useState(false),[W,H]=react.useState(null),k=react.useMemo(()=>datagridCore.toDate(e),[e]),B=c===null?datagridCore.formatDateValue(e,t):datagridCore.maskDate(c,t),N=c===null?null:datagridCore.parseDateValue(B,t),g=c!==null&&c.length===datagridCore.dateDigitCount(t)&&N===null,[d,S]=react.useState(()=>k??new Date);react.useEffect(()=>{I&&S(N??k??new Date);},[I]),react.useLayoutEffect(()=>{l&&(E.current?.focus({preventScroll:true}),E.current?.select());},[]);let L=react.useRef(null),z=react.useCallback(()=>{let J=E.current;if(!J)return;let Ee=J.getBoundingClientRect(),ee=datagridCore.placeAnchoredLayer({anchor:{left:Ee.left,top:Ee.top,bottom:Ee.bottom},width:L.current?.offsetWidth??0,height:L.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});H({left:ee.left,top:ee.top});},[]),U=react.useCallback(J=>{L.current=J,J&&z();},[z]);react.useLayoutEffect(()=>{I&&z();},[I,z]),react.useEffect(()=>{if(!I)return;let J=()=>z();return window.addEventListener("scroll",J,true),window.addEventListener("resize",J),()=>{window.removeEventListener("scroll",J,true),window.removeEventListener("resize",J);}},[I,z]);let me=react.useCallback(J=>{if(J===null){D(null);return}D(e instanceof Date?J:datagridCore.toIsoDate(J));},[D,e]),xe=J=>{x(null),$(false),me(J),E.current?.focus({preventScroll:true});},se=react.useCallback(()=>{if(c!==null){if(c.length===0){me(null),x(null);return}N&&me(N),x(null);}},[c,N,me]),Ne=J=>{if(J.key==="Escape"){if(J.preventDefault(),J.stopPropagation(),I){$(false);return}x(null),R();return}if(I){let Ee=J.key==="ArrowLeft"?-1:J.key==="ArrowRight"?1:J.key==="ArrowUp"?-7:J.key==="ArrowDown"?7:0;if(Ee!==0){J.preventDefault(),J.stopPropagation();let ee=N??k??new Date,re=new Date(ee.getFullYear(),ee.getMonth(),ee.getDate()+Ee);x(datagridCore.dateDigits(datagridCore.formatDateValue(re,t),t)),S(re);return}if(J.key==="Enter"){J.preventDefault(),J.stopPropagation(),$(false),N&&xe(N);return}}if(J.key==="Enter"){J.preventDefault(),J.stopPropagation(),se(),h();return}if(J.key==="Tab"){se(),$(false),C&&(J.preventDefault(),J.stopPropagation(),C(J.shiftKey));return}if(J.key.length===1&&!J.ctrlKey&&!J.metaKey&&!/\d/.test(J.key)){J.preventDefault();return}J.stopPropagation();},w=I&&W?reactDom.createPortal(jsxRuntime.jsxs("div",{ref:U,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${M}`,"data-kanuni-portal":"",style:{left:W.left,top:W.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":f?`${f} ${b.dateCalendar}`:b.dateCalendar,onMouseDown:J=>J.preventDefault(),children:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsxRuntime.jsx("button",{type:"button","aria-label":b.datePreviousMonth,"data-testid":"dg-date-prev",onClick:()=>S(new Date(d.getFullYear(),d.getMonth()-1,1)),children:"\u2039"}),jsxRuntime.jsxs("span",{"data-testid":"dg-date-title",children:[F[d.getMonth()]," ",d.getFullYear()]}),jsxRuntime.jsx("button",{type:"button","aria-label":b.dateNextMonth,"data-testid":"dg-date-next",onClick:()=>S(new Date(d.getFullYear(),d.getMonth()+1,1)),children:"\u203A"})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[A.map(J=>jsxRuntime.jsx("span",{className:"kanuni-datagrid-date-weekday",role:"columnheader",children:J},J)),(()=>{let Ee=(new Date(d.getFullYear(),d.getMonth(),1).getDay()-qi(b)+7)%7,ee=datagridCore.daysInMonth(d.getFullYear(),d.getMonth()+1),re=[];for(let Re=0;Re<42;Re++){let Ce=Re-Ee+1,ke=new Date(d.getFullYear(),d.getMonth(),Ce),P=Ce<1||Ce>ee,ae=Jd(ke,N??k);re.push(jsxRuntime.jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${P?" kanuni-datagrid-date-day--outside":""}${ae?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":ae,"data-testid":"dg-date-day","data-date":datagridCore.toIsoDate(ke),onClick:()=>xe(ke),children:ke.getDate()},Re));}return re})()]})]}),v()):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":f,"aria-invalid":g||n?true:void 0,"data-testid":a,"data-column-id":s,disabled:r,className:`kanuni-datagrid-editor${g||n?" kanuni-datagrid-editor--invalid":""}`,value:B,onChange:J=>{x(datagridCore.dateDigits(J.target.value,t));},onKeyDown:Ne,onBlur:()=>{I||se();}}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-date-button","aria-label":f?`${f} \u2014 ${b.dateOpenCalendar}`:b.dateOpenCalendar,"aria-expanded":I,"data-testid":"dg-date-open",disabled:r,tabIndex:-1,onMouseDown:J=>J.preventDefault(),onClick:()=>{$(J=>!J),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"})})}),w]})}function Gr(e){return {save:e.save,cancel:e.cancel,editTitle:e.formEditTitle,addTitle:e.formAddTitle,saving:e.editSaving,shortcut:e.formShortcut}}var nu=Gr(datagridCore.getGridDictionary("en"));function ou(e,t){switch(e){case "number":return t==null||t===""||!Number.isNaN(Number(t))?"number":"text";case "date":return t==null||t===""||!Number.isNaN(Date.parse(String(t)))?"date":"text";case "boolean":return "checkbox";default:return "text"}}function Ji(e,t){if(e==null)return "";if(t==="date"){if(e instanceof Date)return e.toISOString().slice(0,10);let n=String(e);return n.length>10&&n.includes("-")?n.slice(0,10):n}return String(e)}function ru(e,t){if(t==="number"){if(e==="")return null;let n=Number(e);return Number.isNaN(n)?e:n}return e}function Mr({rowKey:e,fields:t,getValue:n,errors:r,lookups:l,customEditors:a=false,row:s,saving:f,saveError:D,isNew:h,dark:R=false,popup:C=false,inline:b=false,onNaturalHeight:M,labels:v,onChange:F,onSave:A,onCancel:E}){let c=ve(),x=Tt(),I=react.useMemo(()=>({...Gr(c),...v}),[c,v]),$=react.useRef(null),W=Object.keys(r)[0]??null,H=react.useCallback(d=>{if($.current=d,!d)return;let S=d.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");if(S?.focus(),S instanceof HTMLInputElement&&S.type==="text"&&S.select(),M){let L=d.querySelector(".kanuni-datagrid-edit-form-fields");L&&M(d.clientHeight-L.clientHeight+L.scrollHeight);}},[M]);react.useEffect(()=>{if(!W||!$.current)return;$.current.querySelector(`[data-field-id="${CSS.escape(W)}"] input, [data-field-id="${CSS.escape(W)}"] select`)?.focus();},[W]);let k=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),B=I.shortcut.replace("{key}",k?"\u2318":"Ctrl"),N=react.useCallback(d=>{if(d.key==="Escape"){d.preventDefault(),d.stopPropagation(),E();return}if(d.key==="Enter"&&(d.ctrlKey||d.metaKey)){d.preventDefault(),d.stopPropagation(),A();return}if(d.key==="Enter"&&!(d.target instanceof HTMLButtonElement)){d.preventDefault();return}if(d.key!=="Tab"||!C||!$.current)return;let S=Array.from($.current.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(S.length===0)return;let L=S[0],z=S[S.length-1];!d.shiftKey&&document.activeElement===z?(d.preventDefault(),L.focus()):d.shiftKey&&document.activeElement===L&&(d.preventDefault(),z.focus());},[E,A,C]),g=jsxRuntime.jsxs("div",{ref:H,className:`kanuni-datagrid-edit-form${b?" kanuni-datagrid-edit-form--inline":""}`,"data-testid":"dg-edit-form","data-row-key":String(e),"data-popup":C?"":void 0,role:C?"dialog":"group","aria-modal":C?true:void 0,"aria-label":h?I.addTitle:I.editTitle,onKeyDown:N,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-header",children:jsxRuntime.jsx("strong",{children:h?I.addTitle:I.editTitle})}),D&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-form-error",children:D}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-fields",children:t.map(d=>{let S=n(d.columnId),L=r[d.columnId],z=l?.[d.columnId],U=f||!d.editable,me=`dg-field-${String(e)}-${d.columnId}`;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":d.columnId,"data-invalid":L?"":void 0,htmlFor:me,children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-label",children:d.label}),a&&d.def?.renderEditor?d.def.renderEditor({value:S,row:s,columnId:d.columnId,error:L??null,setValue:xe=>F(d.columnId,xe),commit:A,cancel:E}):z!==void 0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(jt,{options:z??[],value:S,matchMode:d.def?.lookup?.matchMode,allowCustom:d.def?.lookup?.allowCustom,invalid:!!L,testId:me,ariaLabel:d.label,onChange:xe=>F(d.columnId,xe),onCommit:()=>{},onCancel:E})}):d.def?.lookup?jsxRuntime.jsx("input",{id:me,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:datagridCore.lookupLabel(d.def,S)??Ji(S,d.dataType)}):d.dataType==="date"?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(Zt,{value:S,format:d.def?.dateFormat,invalid:!!L,disabled:U,autoFocus:false,testId:me,columnId:d.columnId,ariaLabel:d.label,onChange:xe=>F(d.columnId,xe),onCommit:()=>{},onCancel:E})}):d.dataType==="boolean"?jsxRuntime.jsx("input",{id:me,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:U,checked:S===true,onChange:xe=>F(d.columnId,xe.target.checked)}):jsxRuntime.jsx("input",{id:me,className:"kanuni-datagrid-edit-form-input",type:ou(d.dataType,S),disabled:U,"aria-invalid":L?true:void 0,value:Ji(S,d.dataType),onChange:xe=>F(d.columnId,ru(xe.target.value,d.dataType))}),L&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-message",role:"alert",children:L})]},d.columnId)})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:B}),jsxRuntime.jsx("button",{type:"button",onClick:E,disabled:f,"data-testid":"dg-form-cancel",children:I.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-edit-form-save",onClick:A,disabled:f,"data-testid":"dg-form-save",children:f?I.saving:I.save})]})]});return C?jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-edit-popup${R?" kanuni-datagrid-dark":""}${x}`,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:E}),g]}):g}function Nr({controller:e,engine:t,columnId:n,message:r,saving:l,lookupOptions:a,onSave:s,onCancel:f}){let D=e.getColumnModel(),h=D.getDef(n);if(a!==void 0)return jsxRuntime.jsx(jt,{options:a??[],value:t.rowEditValue(n),matchMode:h?.lookup?.matchMode,allowCustom:h?.lookup?.allowCustom,invalid:!!r,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:h?.headerName??n,onChange:M=>t.setRowEditValue(n,M),commitOnPick:false,onCommit:s,onCancel:f});let R=D.getDataType(n);if(R==="date")return jsxRuntime.jsx(Zt,{value:t.rowEditValue(n),format:h?.dateFormat,invalid:!!r,disabled:l,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:h?.headerName??n,onChange:M=>t.setRowEditValue(n,M),onCommit:s,onCancel:f});let C=R==="number",b=M=>{M.key==="Enter"?(M.preventDefault(),M.stopPropagation(),s()):M.key==="Escape"&&(M.preventDefault(),M.stopPropagation(),f());};return R==="boolean"?jsxRuntime.jsx("input",{className:"kanuni-datagrid-editor","data-testid":"dg-row-editor","data-column-id":n,"aria-label":h?.headerName??n,title:r??void 0,disabled:l,type:"checkbox",checked:t.rowEditValue(n)===true,onChange:M=>t.setRowEditValue(n,M.target.checked),onKeyDown:b}):jsxRuntime.jsx("input",{className:`kanuni-datagrid-editor${r?" kanuni-datagrid-editor--invalid":""}`,"data-testid":"dg-row-editor","data-column-id":n,"aria-label":h?.headerName??n,title:r??void 0,disabled:l,type:C?"number":"text",value:String(t.rowEditValue(n)??""),onChange:M=>{let v=M.target.value;t.setRowEditValue(n,C?v===""?null:Number(v):v);},onKeyDown:b})}function ji(e,t){if(!e)return [];let n=e.getColumnLayout();return [...n.left,...n.center,...n.right].map(r=>r.state.id).filter(r=>!datagridCore.isChromeColumn(r)&&(t?.(r)??true))}function Fr({controller:e,editing:t,mode:n,active:r,rootRef:l,rowHeight:a,formLabels:s,formHeight:f,dark:D,rowLookups:h,customEditors:R=false,isFormColumn:C,batchBar:b=true}){let M=ve(),{engine:v,version:F,beginRowEdit:A,saveRowEdit:E,cancelRowEdit:c,rowSaveError:x,saveChanges:I,cancelChanges:$}=t,W=r&&datagridCore.isRowEditMode(n),H=W?v?.getRowSession()??null:null,k=react.useRef(C);k.current=C;let B=react.useMemo(()=>{if(!e||!H)return [];let X=e.getColumnModel();return ji(e,k.current).map(Z=>{let Ge=X.getDef(Z);return {columnId:Z,label:Ge?.headerName??Ge?.field??Z,dataType:X.getEditorDataType(Z),def:Ge,editable:v?.canUpdate(H.rowKey,Z)??true}})},[e,v,H]),N=n==="row"?H?.rowKey??null:null;react.useEffect(()=>{if(N===null)return;let X=l.current;if(!X)return;let Z=X.querySelectorAll('[data-testid="dg-row-editor"]');if(Z.length===0)return;let Ge=e?.getFocus(),Ke=(Ge&&String(Ge.rowKey)===String(N)?X.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Ge.columnId)}"]`):null)??Z[0],He=v?wo.get(v):void 0;v&&wo.delete(v),Ke.focus({preventScroll:true}),Ke instanceof HTMLInputElement&&(He!==void 0&&Ke.getAttribute("data-column-id")===He?Ke.setSelectionRange(Ke.value.length,Ke.value.length):Ke.select());},[N]);let g=react.useCallback(X=>W&&H?.rowKey===X,[W,H]),d=react.useCallback((X,Z)=>{let Ge=e?.getColumnModel().getDef(X.columnId);if(Ge?.renderCell&&X.node.kind==="data")return Ge.renderCell({value:Z,row:X.node.data,node:X.node,column:Ge});let Pe=Ge?datagridCore.lookupLabel(Ge,Z):null;return Pe!==null?Pe:Ge?.valueFormatter&&X.node.kind==="data"?Ge.valueFormatter(Z,X.node.data):Ge?.dateFormat&&Ge.dataType==="date"?datagridCore.formatDateValue(Z,Ge.dateFormat):Z==null?"":String(Z)},[e]),S=react.useCallback(X=>{if(!(n!=="row"||!v||!e||X.node.kind!=="data"||!g(X.node.key)))return v.canUpdate(X.node.key,X.columnId)?jsxRuntime.jsx(Nr,{controller:e,engine:v,columnId:X.columnId,message:H?.errors[X.columnId]??null,saving:H?.saving??false,lookupOptions:h?.[X.columnId],onSave:()=>{E();},onCancel:c}):d(X,v.rowEditValue(X.columnId))},[n,v,e,F,g,H,h,d,E,c]),L=react.useCallback(X=>{if(!v||X.node.kind!=="data")return;let Z=v.changes.get(X.node.key,X.columnId);return Z?d(X,Z.newValue):void 0},[v,F,d]),[z,U]=react.useState(null),me=z??f??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,xe=react.useCallback(X=>{X>0&&U(Z=>Z!==null&&Math.abs(Z-X)<a?Z:X);},[a]);react.useEffect(()=>{H||U(null);},[H]);let se=(X,Z)=>H?jsxRuntime.jsx(Mr,{rowKey:X,fields:B,getValue:Ge=>v?.rowEditValue(Ge),errors:H.errors,lookups:h,customEditors:R,row:v?.effectiveRow(H.rowKey),saving:H.saving,saveError:x,isNew:H.isNew,dark:D,popup:n==="popup",inline:Z,onNaturalHeight:Z?xe:void 0,labels:s,onChange:(Ge,Pe)=>v?.setRowEditValue(Ge,Pe),onSave:()=>{E();},onCancel:c}):null,Ne=H&&n==="popup"?se(H.rowKey,false):null,w=react.useRef(se);w.current=se;let J=react.useCallback(X=>w.current(X,true),[]),Ee=n==="form"?H?.rowKey??null:null,ee=H?.isNew??false,re=react.useRef(null);react.useEffect(()=>{if(e){if(Ee===null){if(re.current!==e)return;re.current=null,e.setEditFormRow(null);return}re.current=e,e.setEditFormRow(Ee,{height:me,atTop:ee});}},[e,Ee,ee,me]),react.useEffect(()=>()=>{let X=re.current;re.current=null,X?.setEditFormRow(null);},[]);let Re=W&&n==="row"&&!!H,Ce=b&&r&&n==="batch"&&(v?.hasChanges()??false),ke=Re||Ce?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[Re&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-active","data-testid":"dg-row-editing",children:H?.isNew?M.formAddTitle:datagridCore.fillText(M.editEditingRow,{row:String(H?.rowKey)})}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-row",disabled:H?.saving,onClick:()=>{E();},children:H?.saving?M.editSaving:M.editSaveRow}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:c,children:M.cancel}),x&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:x})]}),Ce&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:v?.isSaving(),onClick:()=>{I();},children:datagridCore.fillText(M.editSaveCount,{n:v?.getChanges().length??0})}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:$,children:M.cancel})]})]}):null,P=react.useCallback(X=>!W||!v||v.isEditingRow()?null:{id:"dg-edit-row",label:M.editRowMenu,onSelect:()=>A(X)},[W,v,A,M,F]),ae=react.useCallback(X=>W?(A(X),true):false,[W,A]);return {rowModeActive:W,rowSession:H,isRowEditing:g,defaultContent:d,renderRowCell:S,renderPending:L,renderEditForm:n==="form"?J:void 0,popup:Ne,bar:ke,rowSessionAttr:H&&(n==="form"||n==="popup")?n:void 0,editRowMenuItem:P,openRow:ae}}function Hr(e,t){return e==null?"":t==="date"&&e instanceof Date?e.toISOString().slice(0,10):String(e)}function Ar({value:e,dataType:t,error:n,seeded:r=false,options:l,allowCustom:a=false,matchMode:s,ariaLabel:f,dateFormat:D,onChange:h,onCommit:R,onTab:C,onCancel:b}){let M=react.useRef(null),v=react.useRef(false);react.useEffect(()=>{let c=M.current;if(c&&(c.focus({preventScroll:true}),!(!(c instanceof HTMLInputElement)||c.type==="checkbox")))if(r){if(c.type==="text"||c.type==="search"){let x=c.value.length;c.setSelectionRange(x,x);}}else c.select();},[]);let A={ref:M,onKeyDown:c=>{c.nativeEvent.isComposing||c.keyCode===229||(c.key==="Enter"?(c.preventDefault(),c.stopPropagation(),R(c.shiftKey?"none":"down")):c.key==="Tab"?(c.preventDefault(),c.stopPropagation(),v.current=true,C(c.shiftKey?-1:1)):c.key==="Escape"?(c.preventDefault(),c.stopPropagation(),b()):c.stopPropagation());},onBlur:()=>{v.current||R("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"},E;return l===null?E=jsxRuntime.jsx("input",{...A,type:"text",value:"\u2026",readOnly:true,disabled:true}):l&&l.length>0?E=a?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{...A,type:"text",list:`${A["data-testid"]}-list`,value:Hr(e,t),onChange:c=>{let x=l.find(I=>I.label===c.target.value);h(x?x.value:c.target.value);}}),jsxRuntime.jsx("datalist",{id:`${A["data-testid"]}-list`,children:l.map(c=>jsxRuntime.jsx("option",{value:c.label},String(c.value)))})]}):jsxRuntime.jsx(jt,{options:l,value:e,matchMode:s,allowCustom:false,invalid:!!n,testId:A["data-testid"],ariaLabel:f,onChange:h,onCommit:()=>R("none"),onCancel:b,onTab:c=>{v.current=true,C(c?-1:1);}}):t==="boolean"?E=jsxRuntime.jsx("input",{...A,type:"checkbox",checked:e===true,onChange:c=>h(c.target.checked)}):t==="number"?E=jsxRuntime.jsx("input",{...A,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:Hr(e,t),onChange:c=>h(c.target.value===""?null:Number(c.target.value))}):t==="date"?E=jsxRuntime.jsx(Zt,{value:e,format:D,invalid:!!n,testId:A["data-testid"],ariaLabel:f,onChange:h,onCommit:()=>R("none"),onCancel:b,onTab:c=>{v.current=true,C(c?-1:1);}}):E=jsxRuntime.jsx("input",{...A,type:"text",value:Hr(e,t),onChange:c=>h(c.target.value)}),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[E,n&&jsxRuntime.jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function tl(e,t,n,r,l,a){let s=!n&&t!==void 0&&t.enabled!==false,f=s&&!l,D=t?.mode??"cell",h=react.useCallback(S=>{let L=e?.getColumnModel().getDef(S);return !L?.lookup&&!L?.renderEditor&&L?.allowFormulas!==true},[e]),R=Rr({controller:e,enabled:s,mode:D,onSave:t?.onSave,editOnKeyPress:t?.editOnKeyPress,focusCellOnTab:t?.focusCellOnTab,focusCellOnCycle:t?.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,range:false,history:false,canEditColumn:h,savedDuration:a.savedDuration}),{engine:C,version:b,handleKeyDown:M,editAdjacentCell:v,focusScroller:F,saveError:A,clearSaveError:E}=R,c=Fr({controller:e,editing:R,mode:D,active:f,rootRef:a.rootRef,rowHeight:a.rowHeight,formLabels:t?.formLabels,formHeight:t?.formHeight,dark:a.dark}),{renderRowCell:x,renderPending:I,openRow:$}=c,{renderCellContent:W,getCellClassName:H,onCellDoubleClick:k}=r,B=react.useCallback(S=>{if(!s||!C||S.node.kind!=="data")return W?.(S);let L=x(S);if(L!==void 0)return L;if(!C.isEditing(S.node.key,S.columnId))return I(S)??W?.(S);let z=C.getSession(),U=e.getColumnModel(),me=U.getDef(S.columnId);return jsxRuntime.jsx(Ar,{value:z.value,dataType:U.getEditorDataType(S.columnId),ariaLabel:me?.headerName??S.columnId,dateFormat:me?.dateFormat,error:z.validation.message,seeded:z.seeded,onChange:xe=>C.setEditValue(xe),onCommit:xe=>{C.commitEdit()&&(xe==="down"&&e?.moveFocus("down"),F());},onTab:xe=>{if(t?.focusCellOnTab===false){C.commitEdit();return}v(xe,{open:false,cycle:t?.focusCellOnCycle!==false}),F();},onCancel:()=>{C.cancelEdit(),F();}})},[s,C,e,b,W,x,I,v,F,t?.focusCellOnTab,t?.focusCellOnCycle]),N=react.useCallback(S=>{let L=H?.(S);if(!s||!C||S.node.kind!=="data")return L;let z=L?[L]:[];return C.isEditing(S.node.key,S.columnId)&&z.push("kanuni-datagrid-cell--editing"),C.changes.isDirty(S.node.key,S.columnId)&&z.push("kanuni-datagrid-cell--dirty"),z.length>0?z.join(" "):void 0},[s,C,b,H]),g=react.useCallback(S=>{k?.(S),!(!s||!C||S.node.kind!=="data")&&($(S.node.key)||C.beginEdit(S.node.key,S.columnId));},[s,C,k,$]),d=react.useCallback(S=>f?M(S):false,[f,M]);return {active:s,renderCellContent:f?B:W,getCellClassName:f?N:H,onCellDoubleClick:f?g:k,handleKeyDown:d,saveError:s?A:null,clearSaveError:E,renderEditForm:f?c.renderEditForm:void 0,bar:f?c.bar:null,popup:f?c.popup:null,rowSessionAttr:f?c.rowSessionAttr:void 0,editRowMenuItem:c.editRowMenuItem,rowStatusSource:s?C:null}}function Kr({open:e,title:t,message:n,cancelLabel:r,confirmLabel:l,danger:a,dark:s,onConfirm:f,onCancel:D}){let h=react.useRef(null),R=react.useRef(null),C=react.useId(),b=react.useId(),M=Tt(),v=Pt();return react.useEffect(()=>{if(!e)return;let F=document.activeElement;h.current?.focus();let A=R.current;return ()=>{let E=document.activeElement;A&&(A.contains(E)||E===document.body||E===null)&&F?.isConnected&&F.focus({preventScroll:true});}},[e]),react.useEffect(()=>{if(!e)return;let F=A=>{if(A.key==="Escape"){A.stopPropagation(),D();return}if(A.key==="Tab"&&R.current){let E=Array.from(R.current.querySelectorAll("button:not([disabled])"));if(E.length===0)return;let c=E.indexOf(document.activeElement),x=A.shiftKey?c<=0?E.length-1:c-1:c===E.length-1?0:c+1;A.preventDefault(),A.stopPropagation(),E[x].focus();}};return document.addEventListener("keydown",F,true),()=>document.removeEventListener("keydown",F,true)},[e,D]),!e||typeof document>"u"?null:reactDom.createPortal(jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${s?" kanuni-datagrid-dark":""}${M}`,"data-kanuni-portal":"",role:"presentation",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:D}),jsxRuntime.jsxs("div",{ref:R,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":C,"aria-describedby":b,"data-testid":"dg-dialog",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-title",id:C,children:t}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-message",id:b,children:n}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-dialog-actions",children:[r!==void 0&&jsxRuntime.jsx("button",{type:"button","data-testid":"dg-dialog-cancel",onClick:D,children:r}),jsxRuntime.jsx("button",{ref:h,type:"button",className:`kanuni-datagrid-dialog-primary${a?" kanuni-datagrid-dialog-primary--danger":""}`,"data-testid":"dg-dialog-confirm",onClick:f,children:l})]})]})]}),v())}var vo=0,Br=5e3;function wu(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Br}}function hu(e,t){return e<=t}function _r(e,t){let n=wu(t),r=n!==null,l=n?.always??false,a=n?.maxRows??Br,[s,f]=react.useState(false),D=react.useCallback(()=>f(true),[]),h=react.useCallback(()=>f(false),[]);react.useEffect(()=>{if(!r||l||typeof window>"u"||typeof window.addEventListener!="function")return;let C=()=>{let M=e.getRows().length;if(!hu(M,a)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${M} rows exceeds maxRows (${a}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}reactDom.flushSync(()=>f(true));},b=()=>reactDom.flushSync(()=>f(false));return window.addEventListener("beforeprint",C),window.addEventListener("afterprint",b),()=>{window.removeEventListener("beforeprint",C),window.removeEventListener("afterprint",b);}},[r,l,a,e]);let R=l||s;return react.useEffect(()=>{if(!R||typeof document>"u")return;let C=document.documentElement;return vo++,C.classList.add("kanuni-datagrid-printing"),()=>{vo--,vo<=0&&(vo=0,C.classList.remove("kanuni-datagrid-printing"));}},[R]),{active:R,begin:D,end:h}}var To=new Map,$r=new Set;function sl(e,t){let n=To.get(e);return n?[...n].filter(r=>r!==t):[]}function Wr(e,t,n){let r=react.useRef(null);return react.useEffect(()=>{if(!t)return;let a={controller:e,scroller:()=>n.current};r.current=a;let s=To.get(t)??new Set;s.add(a),To.set(t,s);let f=e.events.on("columnStateChanged",()=>{if($r.has(t))return;let D=sl(t,a);if(D.length===0)return;let h=e.getColumnStates();$r.add(t);try{for(let R of D)R.controller.applyColumnStates(h);}finally{$r.delete(t);}});return ()=>{f(),s.delete(a),s.size===0&&To.delete(t),r.current=null;}},[e,t,n]),{syncScroll:react.useCallback(a=>{let s=r.current;if(!t||!s)return;let f=sl(t,s);if(f.length!==0)for(let D of f){let h=D.scroller();h&&h.scrollLeft!==a&&(h.scrollLeft=a);}},[t])}}function xo(e,t,n){return e==="left"?t:e==="center"?n.left+t:n.left+n.center+t}function dl(e,t){let{start:n,end:r}=t.columns,l=e.centerOffsets,a=l[n]??0,s=(l[r]??0)-a,f=Math.max(0,e.centerWidth-a-s),D=a,h=e.center.slice(n,r),R=Array.from({length:h.length},(M,v)=>n+v),C=e.stickyIndices.filter(M=>M<n);if(C.length>0){let M=C.map(v=>e.center[v]);D-=M.reduce((v,F)=>v+F.state.width,0),h=[...M,...h],R=[...C,...R];}let b=new Map;for(let M of e.stickyIndices){let v=e.centerStickyOffsets[M];v!==null&&b.set(e.center[M].state.id,v);}return {centerColumns:h,centerIndices:R,leadingSpacer:Math.max(0,D),trailingSpacer:f,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:b}}function ul(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];r&&r.kind!=="data"&&t.push(n);}return t.length>0?t:null}function cl(e,t,n=0){if(!t)return n+e+1;let r=0,l=t.length;for(;r<l;){let a=r+l>>1;t[a]<e?r=a+1:l=a;}return n+e-r+1}var So=36,Eo=28,Rn=60,Cn=24,Nu=[["statusColumn",Cn],["rowNumberColumn",Rn],["detailColumn",Eo],["checkboxColumn",So]];function Jr(e,t,n=false,r=false){return Gt({checkboxColumn:e,detailColumn:t,rowNumberColumn:n,statusColumn:r}).total}function Gt(e){let t=new Map,n=new Map,r=0,l=0;for(let[a,s]of Nu)e[a]&&(t.set(a,r),a!=="statusColumn"&&n.set(a,++l),r+=s);return {total:r,count:l,inset:a=>t.get(a)??0,colIndex:a=>n.get(a)??1}}function zr(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function Yr(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 qr(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 Do(e,t){if(t===""||e==="")return e;let n=datagridCore.foldText(e),r=n.indexOf(t);if(r===-1)return e;let l=[],a=0,s=0;for(;r!==-1;)r>a&&l.push(e.slice(a,r)),l.push(jsxRuntime.jsx("mark",{className:"kanuni-datagrid-highlight",children:e.slice(r,r+t.length)},s++)),a=r+t.length,r=n.indexOf(t,a);return a<e.length&&l.push(e.slice(a)),jsxRuntime.jsx("span",{className:"kanuni-datagrid-cell-text",children:l})}function Pu(e,t,n,r=""){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 Do(l,r);if(e.valueFormatter){let a=e.valueFormatter(t,n.data);return typeof a=="string"?Do(a,r):a}return e.dateFormat&&e.dataType==="date"?Do(datagridCore.formatDateValue(t,e.dateFormat),r):t==null?"":Do(String(t),r)}function Lu({gridId:e,node:t,index:n,layout:r,columnModel:l,centerColumns:a,centerIndices:s,stickyInsets:f,leadingSpacer:D,trailingSpacer:h,striped:R,selected:C,ariaSelectable:b=true,selectable:M=true,groupSelection:v,onToggleGroupSelect:F,groupDisplay:A="fullWidth",focusedColumnId:E,rowFocused:c=false,renderRow:x,checkboxColumn:I,statusColumn:$=false,rowNumberColumn:W=false,rowNumber:H=null,getNote:k,getSpan:B,resolveColSpans:N,findKind:g,headerRowCount:d,onRowClick:S,onRowMouseDown:L,onRowDoubleClick:z,onToggleSelect:U,onCellMouseDown:me,onRowContextMenu:xe,searchNeedle:se="",onToggleGroup:Ne,summaryDefs:w,detailColumn:J=false,detailExpanded:Ee=false,onToggleDetail:ee,onToggleTreeRow:re,renderDetail:Re,renderEditForm:Ce,renderRowMessage:ke,renderCellContent:P,getCellClassName:ae,onCellPointerDown:X,onCellPointerEnter:Z,onCellDoubleClick:Ge,rowDrag:Pe,dropSide:Ke=null,rowStatus:He,rowStatusText:Xe,rowStatusTint:dt=false,height:pt}){let p=ve();if(datagridCore.isDetailRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+d,"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:Re?.(t.data)})});if(datagridCore.isEditFormRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+d,"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:Ce?.(t.parentKey,t.data)})});if(datagridCore.isMessageRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-message-row",role:"row","aria-rowindex":n+1+d,"data-row-key":String(t.key),"data-message-for":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-message-cell",role:"gridcell","aria-colindex":1,children:ke?.(t.parentKey,t.data)})});if(datagridCore.isFillerRow(t))return null;if(datagridCore.isGroupRow(t)&&A==="fullWidth"){let O=l.getDef(t.columnId),j=O?.headerName??t.columnId,fe=datagridCore.lookupLabel(O,t.value)??t.display??(t.label===""?p.filterBlank:t.label),Se=t.aggregates??null;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${E?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+d,"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:()=>Ne?.(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:[v&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:v==="all",ref:ne=>{ne&&(ne.indeterminate=v==="some");},"aria-label":datagridCore.fillText(p.selectGroupAria,{count:String(t.count),group:fe}),onChange:()=>F?.(String(t.key)),onClick:ne=>ne.stopPropagation(),onMouseDown:ne=>ne.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:[j,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:fe}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),Se&&w?.map(ne=>jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[datagridCore.summaryLabel(ne)," ",l.getDef(ne.columnId)?.headerName??ne.columnId,":"]})," ",datagridCore.formatSummaryValue(ne,Se[datagridCore.summaryKey(ne.columnId,ne.type)],l.getDef(ne.columnId))]},datagridCore.summaryKey(ne.columnId,ne.type)))]})})}let K=[],Y=Gt({statusColumn:$,rowNumberColumn:W,detailColumn:J,checkboxColumn:I}),de=Y.count,q=(O,j)=>({node:t,columnId:O,rowIndex:n,columnIndex:j,value:oe?void 0:l.getCellValue(t.data,O)}),Be=(O,j)=>{let fe=()=>q(O,j);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${O}`,"aria-colindex":de+j+1,"data-column-id":O,onMouseDown:Se=>{me?.(t,O),X?.(fe(),Se);},onMouseEnter:Z?Se=>Z(fe(),Se):void 0,onDoubleClick:Ge?()=>Ge(fe()):void 0}},De=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,$e=t.kind==="treePath",oe=datagridCore.isGroupRow(t)?t:null,ze=$e||oe!==null,Je=oe?A==="column"?datagridCore.GROUP_COLUMN_ID:(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,Ye=()=>{let O=oe,j=l.getDef(O.columnId),fe=datagridCore.lookupLabel(j,O.value)??O.display??(O.label===""?p.filterBlank:O.label);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:O.level*16},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:O.expanded?"\u25BE":"\u25B8"}),A!=="column"&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[j?.headerName??O.columnId,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:fe}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",O.count,")"]})]})},ue=(O,j)=>{let fe=oe.aggregates?w?.find(Se=>Se.columnId===j):void 0;return fe?jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:datagridCore.formatSummaryValue(fe,oe.aggregates[datagridCore.summaryKey(j,fe.type)],O)}):null},i=De?(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,je=(O,j,fe)=>{if(oe){if(j===Je)return Ye();if(P){let ne=P(q(j,fe));if(ne!==void 0)return ne}return ue(O,j)}if(P&&!$e){let ne=P(q(j,fe));if(ne!==void 0)return ne}let Se=$e?j===i?jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:Pu(O,l.getCellValue(t.data,j),t,se);return De&&j===i?jsxRuntime.jsxs("span",{className:De.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:De.depth*16},children:[De.hasChildren?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":De.expanded,"aria-label":De.expanded?p.collapseTreeRow:p.expandTreeRow,onClick:ne=>{ne.stopPropagation(),re?.(t.key);},children:De.expanded?"\u25BE":"\u25B8"}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),Se]}):Se},rt=(O,j)=>{if(!ae||oe)return "";let fe=ae(q(O,j));return fe?` ${fe}`:""},Ie=O=>!k||t.kind!=="data"?"":k(t.key,O,t.data)?" kanuni-datagrid-cell--noted":"",ut=O=>B&&t.kind==="data"?B(n,O):null,u=(O,j)=>{let fe=O.autoHeight?" kanuni-datagrid-cell--wrap":"";return !O.cellClassName||ze?fe:fe+m(O,j)},m=(O,j)=>{let fe=O.cellClassName;if(!fe)return "";if(typeof fe=="string")return ` ${fe}`;let Se=t.data,ne=fe({value:l.getCellValue(Se,j),row:Se,node:t,column:O});return ne?` ${ne}`:""};if($&&K.push(jsxRuntime.jsx("div",{role:"presentation","aria-hidden":"true",className:"kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell",style:{width:Cn,insetInlineStart:Y.inset("statusColumn")},children:jsxRuntime.jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),W){let O=t.kind==="data"&&H!==null;K.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":Y.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:Rn,insetInlineStart:Y.inset("rowNumberColumn")},children:O?H:""},"__rownum"));}J&&K.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":Y.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:Eo,insetInlineStart:Y.inset("detailColumn")},children:ze?null:jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Ee,"aria-label":Ee?p.collapseDetails:p.expandDetails,onMouseDown:O=>O.stopPropagation(),onClick:O=>{O.stopPropagation(),ee?.(t.key);},children:Ee?"\u25BE":"\u25B8"})},"__detail")),I&&K.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":Y.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:So,insetInlineStart:Y.inset("checkboxColumn")},onMouseDown:O=>O.stopPropagation(),onClick:O=>{O.target.tagName!=="INPUT"&&(O.stopPropagation(),U?.(t));},children:oe?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(p.selectGroupAria,{count:String(oe.count),group:oe.display??oe.label}),onChange:()=>F?.(String(oe.key)),onClick:O=>O.stopPropagation(),onMouseDown:O=>O.stopPropagation()}):$e?null:jsxRuntime.jsx("input",{type:"checkbox",checked:C,disabled:!M,tabIndex:-1,"aria-label":datagridCore.fillText(p.selectRowAria,{row:String(t.key)}),onChange:()=>U?.(t),onClick:O=>O.stopPropagation(),onMouseDown:O=>O.stopPropagation()})},"__select"));let T=Y.total,_=O=>E===O?" kanuni-datagrid-cell--focused":"",Q=O=>{let j=g&&t.kind==="data"?g(t.key,O):null;return j==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":j==="match"?" kanuni-datagrid-cell--find-match":""},te={left:r.left.length,center:r.center.length},ce=t.kind==="data"&&N?N(t):null,we=O=>ce?.widths.get(O.state.id)??O.state.width,he=O=>{let j=ce?.spans.get(O);return j?{"aria-colspan":j}:null};r.left.forEach((O,j)=>{let fe=O.def,Se=j===r.left.length-1,ne=O.state.id;if(ce?.covered.has(ne))return;let Ze=xo("left",j,te);K.push(jsxRuntime.jsx("div",{...Be(ne,Ze),className:`${qr(fe.align,fe.dataType)} kanuni-datagrid-cell--pinned${Se?" kanuni-datagrid-pin-edge-left":""}${_(ne)}${Q(ne)}${u(fe,ne)}${rt(ne,Ze)}${Ie(ne)}${zr(ut(ne))}`,...he(ne),style:{width:we(O),insetInlineStart:r.leftOffsets[j]+T},children:Yr(ut(ne),E===ne,()=>je(fe,ne,Ze))},ne));});let be=ce?.lead??null,Ae=D-(ce?.leadingDelta??0),yt=h-(ce?.trailingDelta??0);Ae>0&&K.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Ae}},"__lead"));let an=(O,j)=>{let fe=O.def,Se=O.state.id,ne=xo("center",j,te),Ze=f?.get(Se),Qn=Ze===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",Pn=be&&be.column.state.id===Se?be.width:we(O);return jsxRuntime.jsx("div",{...Be(Se,ne),...he(Se),className:`${qr(fe.align,fe.dataType)}${Qn}${_(Se)}${Q(Se)}${u(fe,Se)}${rt(Se,ne)}${Ie(Se)}${zr(ut(Se))}`,style:Ze===void 0?{width:Pn}:{width:Pn,insetInlineStart:Ze+T},children:Yr(ut(Se),E===Se,()=>je(fe,Se,ne))},Se)},Nn=be?r.center.indexOf(be.column):-1,it=be===null;return a.forEach((O,j)=>{let fe=s?.[j]??j;!it&&fe>Nn&&(K.push(an(be.column,Nn)),it=true),!ce?.covered.has(O.state.id)&&K.push(an(O,fe));}),it||K.push(an(be.column,Nn)),yt>0&&K.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:yt}},"__trail")),r.right.forEach((O,j)=>{let fe=O.def,Se=j===0,ne=O.state.id;if(ce?.covered.has(ne))return;let Ze=xo("right",j,te);K.push(jsxRuntime.jsx("div",{...Be(ne,Ze),className:`${qr(fe.align,fe.dataType)} kanuni-datagrid-cell--pinned${Se?" kanuni-datagrid-pin-edge-right":""}${_(ne)}${Q(ne)}${u(fe,ne)}${rt(ne,Ze)}${Ie(ne)}${zr(ut(ne))}`,...he(ne),style:{width:we(O),insetInlineEnd:r.rightOffsets[j]},children:Yr(ut(ne),E===ne,()=>je(fe,ne,Ze))},ne));}),jsxRuntime.jsxs("div",{className:`kanuni-datagrid-row${R&&n%2===1?" kanuni-datagrid-row--odd":""}${C?" kanuni-datagrid-row--selected":""}${c?" kanuni-datagrid-row--focused":""}${$e?" kanuni-datagrid-row--tree-path":""}${oe?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${oe.level}`:""}${Ke?` kanuni-datagrid-row--drop-${Ke}`:""}${He?` ${datagridCore.rowStatusClassName(He,dt)}`:""}`,role:"row","aria-rowindex":n+1+d,"aria-selected":oe||!b?void 0:C,"aria-expanded":oe?oe.expanded:void 0,"aria-level":oe?oe.level+1:void 0,"data-row-key":String(t.key),"data-row-status":He,"aria-description":He?Xe:void 0,"aria-busy":He==="saving"?true:void 0,"aria-invalid":He==="error"?true:void 0,"data-group-key":oe?String(oe.key):void 0,"data-group-level":oe?oe.level:void 0,style:pt===void 0?void 0:{height:pt},draggable:Pe?.draggable&&!oe?true:void 0,onDragStart:Pe&&!oe?O=>Pe.onDragStart(t,O):void 0,onDragEnd:Pe&&!oe?()=>Pe.onDragEnd():void 0,onDragOver:Pe&&!oe?O=>Pe.onDragOver(t,O):void 0,onDrop:Pe&&!oe?O=>Pe.onDrop(t,O):void 0,onMouseDown:L&&!oe?O=>L(t,O):void 0,onClick:oe?()=>Ne?.(String(oe.key)):S?O=>S(t,n,O):void 0,onDoubleClick:z?O=>z(t,n,O):void 0,onContextMenu:xe?O=>xe(t,n,O):void 0,children:[Pe&&!oe&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:p.dragToReorder,onMouseEnter:()=>Pe.setDraggable(true),onMouseLeave:()=>Pe.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"})]})})}),x&&t.kind==="data"?x({row:t.data,node:t,rowIndex:n,selected:C,focused:c}):K]})}var kn=react.memo(Lu);var vn=26;function jr(e,t){return datagridCore.computeHeaderBands(e,t)}function Zr(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function Qr(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 r=t.pathOf(e.columnIds[0]).slice(0,e.level+1);if(r.length!==e.level+1||!t.collapsible(r))return n;let l=t.collapsed(r);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:a=>{a.stopPropagation(),t.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 Hu({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,depth:l,checkboxColumn:a=false,detailColumn:s=false,statusColumn:f=false,rowNumberColumn:D=false,rowHeight:h=vn,bandFold:R}){if(l<=0)return null;let C=Gt({statusColumn:f,rowNumberColumn:D,detailColumn:s,checkboxColumn:a}).total,b=jr(e.left,l),M=jr(t,l),v=jr(e.right,l),F=(A,E,c)=>{let x=c;for(let I=0;I<E;I++)x+=A[I].width;return x};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:l},(A,E)=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":E+1,style:{width:e.totalWidth+C,height:h,top:E*h},children:[C>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned",style:{width:C,insetInlineStart:0},"aria-hidden":"true"}),(b[E]??[]).map((c,x)=>jsxRuntime.jsx("div",{className:Zr(c,` kanuni-datagrid-band-cell--pinned${x===(b[E]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:c.spacer?"presentation":"columnheader","aria-colspan":c.spacer?void 0:c.columnIds.length,style:{width:c.width,insetInlineStart:F(b[E]??[],x,C)},title:c.spacer?void 0:c.label,children:Qr(c,R)},c.columnIds[0])),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(M[E]??[]).map(c=>jsxRuntime.jsx("div",{className:Zr(c),role:c.spacer?"presentation":"columnheader","aria-colspan":c.spacer?void 0:c.columnIds.length,style:{width:c.width},title:c.spacer?void 0:c.label,children:Qr(c,R)},c.columnIds[0])),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),(v[E]??[]).map((c,x)=>{let I=v[E]??[],$=0;for(let W=x+1;W<I.length;W++)$+=I[W].width;return jsxRuntime.jsx("div",{className:Zr(c,` kanuni-datagrid-band-cell--pinned${x===0?" kanuni-datagrid-pin-edge-right":""}`),role:c.spacer?"presentation":"columnheader","aria-colspan":c.spacer?void 0:c.columnIds.length,style:{width:c.width,insetInlineEnd:$},title:c.spacer?void 0:c.label,children:Qr(c,R)},c.columnIds[0])})]},E))})}var ta=react.memo(Hu);var _u=()=>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 $u(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function Wu({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,sort:s,sortable:f,onSort:D,headerFilter:h=false,filteredColumns:R,onOpenFilter:C,filterIconMode:b="hover",checkboxColumn:M=false,detailColumn:v=false,statusColumn:F=false,rowNumberColumn:A=false,rowNumberHeader:E="#",selectAllState:c="none",selectAllDisabled:x=false,onToggleSelectAll:I,draggable:$=false,reorderable:W=false,onReorder:H,resizable:k=false,onResize:B,onAutoFit:N,onHeaderContextMenu:g,groupLevels:d,onHeaderClick:S,getHeaderClassName:L,renderHeaderLabel:z}){let U=ve(),me=Gt({statusColumn:F,rowNumberColumn:A,detailColumn:v,checkboxColumn:M}),xe=new Map(s.map((p,K)=>[p.columnId,{direction:p.direction,order:K}])),se=new Set(R??[]),Ne=[...n.left.map(p=>p.state.id),...r.map(p=>p.state.id),...n.right.map(p=>p.state.id)],[w,J]=react.useState(null),Ee=react.useId(),ee=w&&Ne.includes(w)?w:Ne[0],re=p=>{J(p),document.querySelector(`[data-column-id="${p}"].kanuni-datagrid-header-cell`)?.focus();},Re=p=>{let K=Ne.indexOf(ee),Y=Math.min(Ne.length-1,Math.max(0,K+p));Y!==K&&re(Ne[Y]);},Ce=react.useRef(null),ke=react.useRef(false),[P,ae]=react.useState(null),X=Ne,Z=p=>[...n.left,...n.center,...n.right].find(K=>K.state.id===p)?.state.pinned??null,Ge=(p,K)=>(ke.current?p>K.left+K.width/2:p<K.left+K.width/2)?"before":"after",Pe=(p,K)=>{let Y=Ce.current;if(!W||!Y||Y===p||Z(Y)!==Z(p))return;K.preventDefault(),K.dataTransfer.dropEffect="move";let de=Ge(K.clientX,K.currentTarget.getBoundingClientRect());ae(q=>q?.id===p&&q.side===de?q:{id:p,side:de});},Ke=(p,K)=>{let Y=Ce.current;if(ae(null),!W||!Y||Y===p||Z(Y)!==Z(p))return;if(K.preventDefault(),K.stopPropagation(),Ge(K.clientX,K.currentTarget.getBoundingClientRect())==="before")H?.(Y,p);else {let q=X[X.indexOf(p)+1];H?.(Y,q===Y?X[X.indexOf(p)+2]:q);}Ce.current=null;},[He,Xe]=react.useState(null),dt=(p,K)=>{if(!k)return;K.preventDefault(),K.stopPropagation();let Y=K.currentTarget,de=K.clientX,q=p.state.width,Be=ke.current?-1:1,De=p.state.id;Xe(De),Y.setPointerCapture(K.pointerId);let $e=q,oe=false,ze=Ye=>{oe=true,$e=q+(Ye.clientX-de)*Be,B?.(De,$e,false);},Je=()=>{Y.releasePointerCapture?.(K.pointerId),Y.removeEventListener("pointermove",ze),Y.removeEventListener("pointerup",Je),Y.removeEventListener("pointercancel",Je),oe&&B?.(De,$e,true),Xe(null);};Y.addEventListener("pointermove",ze),Y.addEventListener("pointerup",Je),Y.addEventListener("pointercancel",Je);},pt=(p,K,Y)=>{let de=p.def,q=p.state.id,Be=f&&de.sortable!==false,De=h&&de.filterable!==false,$e=q===datagridCore.GROUP_COLUMN_ID,oe=xe.get($e?d?.[0]??q:q),ze=$&&de.groupable!==false||W&&de.reorderable!==false,Je=P?.id===q?P.side:null,Ye=L?.(q);return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-header-cell${K}${Ye?` ${Ye}`:""}${Be?" kanuni-datagrid-header-cell--sortable":""}${Je?` kanuni-datagrid-header-cell--drop-${Je}`:""}${He===q?" kanuni-datagrid-header-cell--resizing":""}${de.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:Y,role:"columnheader","aria-labelledby":`${Ee}-${encodeURIComponent(q)}`,"aria-sort":oe?oe.direction==="asc"?"ascending":"descending":"none","data-column-id":q,tabIndex:q===ee?0:-1,onFocus:()=>J(q),draggable:ze&&He===null,onDragStart:ue=>{ue.dataTransfer.setData("text/x-kanuni-column",q),ue.dataTransfer.effectAllowed="move",Ce.current=q,ke.current=getComputedStyle(ue.currentTarget).direction==="rtl";},onDragEnd:()=>{Ce.current=null,ae(null);},onDragOver:W?ue=>Pe(q,ue):void 0,onDragLeave:W?()=>ae(ue=>ue?.id===q?null:ue):void 0,onDrop:W?ue=>Ke(q,ue):void 0,onContextMenu:g&&!datagridCore.isChromeColumn(q)?ue=>g(q,ue):void 0,onClick:Be||S?ue=>{S?.(q,ue)||Be&&D(q,ue.shiftKey);}:void 0,onKeyDown:ue=>{ue.key==="ArrowRight"?(ue.preventDefault(),Re(1)):ue.key==="ArrowLeft"?(ue.preventDefault(),Re(-1)):ue.key==="Home"?(ue.preventDefault(),re(Ne[0])):ue.key==="End"?(ue.preventDefault(),re(Ne[Ne.length-1])):De&&ue.altKey&&ue.key==="ArrowDown"?(ue.preventDefault(),C?.(q,ue.currentTarget)):Be&&(ue.key==="Enter"||ue.key===" ")&&(ue.preventDefault(),D(q,ue.shiftKey));},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-header-label",id:`${Ee}-${encodeURIComponent(q)}`,children:z?.(q)??$u(de,q)}),oe&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:oe.direction==="asc"?"\u25B2":"\u25BC"}),oe&&s.length>1&&!$e&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:oe.order+1}),h&&de.filterable!==false&&jsxRuntime.jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${se.has(q)?" kanuni-datagrid-filter-button--active":""}${b==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":datagridCore.fillText(U.filterColumnAria,{column:de.headerName??q}),"aria-haspopup":"dialog","data-filter-button":q,tabIndex:-1,onClick:ue=>{ue.stopPropagation(),C?.(q,ue.currentTarget);},children:jsxRuntime.jsx(_u,{})}),k&&de.resizable!==false&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":q,role:"presentation",onPointerDown:ue=>dt(p,ue),onDoubleClick:ue=>{ue.stopPropagation(),N?.(q);},onClick:ue=>ue.stopPropagation()})]},q)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/vn)+1,style:{width:n.totalWidth+me.total,top:e||void 0},children:[F&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell",role:"presentation","aria-hidden":"true",style:{width:Cn,insetInlineStart:me.inset("statusColumn")}}),A&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":me.colIndex("rowNumberColumn"),"aria-label":U.rowNumberAria,style:{width:Rn,insetInlineStart:me.inset("rowNumberColumn")},children:E??""}),v&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":me.colIndex("detailColumn"),"aria-label":U.detailsAria,style:{width:Eo,insetInlineStart:me.inset("detailColumn")}}),M&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":me.colIndex("checkboxColumn"),style:{width:So,insetInlineStart:me.inset("checkboxColumn")},children:jsxRuntime.jsx("input",{type:"checkbox",checked:c==="all",ref:p=>{p&&(p.indeterminate=c==="some");},"aria-label":U.selectAllRows,disabled:x,onChange:()=>I?.()})}),n.left.map((p,K)=>pt(p,` kanuni-datagrid-header-cell--pinned${K===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:p.state.width,insetInlineStart:n.leftOffsets[K]+me.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(p=>{let K=t?.get(p.state.id);return K===void 0?pt(p,"",{width:p.state.width}):pt(p," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:p.state.width,insetInlineStart:K+me.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((p,K)=>pt(p,` kanuni-datagrid-header-cell--pinned${K===0?" kanuni-datagrid-pin-edge-right":""}`,{width:p.state.width,insetInlineEnd:n.rightOffsets[K]}))]})}var oa=react.memo(Wu);function aa(e,t,n=[]){let r=null,l=new Set,a=s=>{if(l.has(s)||(l.add(s),t.isPending(s)))return;let f=t.textFor(s);if(f===null)return;let D=e[s]??"";D!==f&&(D===""&&f===""||(r??={...e},r[s]=f));};for(let s of Object.keys(e))a(s);for(let s of n)a(s);return r??e}function zu({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,values:s,checkboxColumn:f=false,detailColumn:D=false,statusColumn:h=false,rowNumberColumn:R=false,placeholder:C,onChange:b,onCommit:M,periodSuggestions:v,periodListId:F,operators:A,onOperatorChange:E,renderCustom:c}){let x=ve(),I=Gt({statusColumn:h,rowNumberColumn:R,detailColumn:D,checkboxColumn:f}),$=C??x.filterPlaceholder,W=(H,k,B)=>{let N=H.state.id,g=H.def.filterable!==false,d=g?c?.(N):void 0,S=g&&d===void 0?datagridCore.customFilterOperators(H.def):[],L=S.some(U=>U.id===A?.[N])?A[N]:"",z=S.find(U=>U.id===L)?.operandType==="none";return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-cell${k}`,role:"gridcell",style:B,"data-column-id":N,children:[g&&d!==void 0&&d,g&&d===void 0&&S.length>0&&jsxRuntime.jsxs("select",{className:"kanuni-datagrid-filter-operator",value:L,"aria-label":datagridCore.fillText(x.filterOperatorAria,{column:H.def.headerName??N}),"data-filter-operator-for":N,onChange:U=>E?.(N,U.target.value),children:[jsxRuntime.jsx("option",{value:"",children:x.filterOperatorDefault}),S.map(U=>jsxRuntime.jsx("option",{value:U.id,children:U.label},U.id))]}),g&&d===void 0&&jsxRuntime.jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:s[N]??"",placeholder:$,"aria-label":datagridCore.fillText(x.filterColumnAria,{column:H.def.headerName??N}),"data-filter-for":N,disabled:z||void 0,list:H.def.dataType==="date"&&F&&L===""?F:void 0,onChange:U=>b(N,U.target.value),onKeyDown:U=>{U.key==="Enter"&&M?.(N,U.target.value);},onBlur:U=>M?.(N,U.target.value)})]},N)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+I.total,"--dg-band-offset":`${e}px`},children:[F&&v&&v.length>0&&jsxRuntime.jsx("datalist",{id:F,children:v.map(H=>jsxRuntime.jsx("option",{value:H},H))}),I.total>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",role:"gridcell",style:{width:I.total,insetInlineStart:0}}),n.left.map((H,k)=>W(H,` kanuni-datagrid-filter-cell--pinned${k===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:H.state.width,insetInlineStart:n.leftOffsets[k]+I.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(H=>{let k=t?.get(H.state.id);return k===void 0?W(H,"",{width:H.state.width}):W(H," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:H.state.width,insetInlineStart:k+I.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((H,k)=>W(H,` kanuni-datagrid-filter-cell--pinned${k===0?" kanuni-datagrid-pin-edge-right":""}`,{width:H.state.width,insetInlineEnd:n.rightOffsets[k]}))]})}var ia=react.memo(zu);function mt({children:e,dark:t=false}){let[n,r]=react.useState(null),l=Tt(),a=Pt();return react.useEffect(()=>{let s=document.createElement("div");return s.className=`kanuni-datagrid-root kanuni-datagrid-portal${t?" kanuni-datagrid-dark":""}${l}`,s.setAttribute(datagridCore.PORTAL_ATTRIBUTE,""),a().appendChild(s),r(s),()=>{s.remove();}},[t,l,a]),n?reactDom.createPortal(e,n):null}function tn({anchor:e,onClose:t,margin:n=8,autoFocus:r=false}){let l=react.useRef(null),[a,s]=react.useState(e),f=react.useCallback(D=>{if(l.current=D,!D)return;let h=D.getBoundingClientRect(),R=e.top+h.height+n>window.innerHeight,C=e.top-h.height-n*2,b=R&&C>n?C:e.top;s({left:Math.max(n,Math.min(e.left,window.innerWidth-h.width-n)),top:Math.max(n,Math.min(b,window.innerHeight-h.height-n))}),r&&D.focus();},[e.left,e.top,n,r]);return react.useEffect(()=>{let D=C=>{let b=l.current;b&&!b.contains(C.target)&&t();},h=C=>{C.key==="Escape"&&t();},R=C=>{let b=l.current,M=C.target;b&&M instanceof Node&&b.contains(M)||t();};return document.addEventListener("mousedown",D),document.addEventListener("keydown",h),window.addEventListener("scroll",R,true),()=>{document.removeEventListener("mousedown",D),document.removeEventListener("keydown",h),window.removeEventListener("scroll",R,true);}},[t]),{position:a,ref:f,elementRef:l}}var Tn=25,zn=new Map,wl=200,oc=200,hl=8;function rc(e){let t=ve();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 ac=react.memo(function({label:t,display:n,index:r,active:l,checked:a,onToggle:s,onFocus:f}){return jsxRuntime.jsxs("div",{role:"option","aria-selected":a,tabIndex:0,className:`kanuni-datagrid-filter-item${l?" kanuni-datagrid-filter-item--active":""}`,"data-value":t,"data-index":r,onFocus:()=>f(r),onClick:()=>s(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:a,tabIndex:-1}),jsxRuntime.jsx("span",{children:n})]})});function ic({index:e,row:t,active:n,checked:r,blankText:l,onToggle:a,onFocus:s}){return t?jsxRuntime.jsxs("div",{role:"option","aria-selected":r,tabIndex:0,className:`kanuni-datagrid-filter-item${n?" kanuni-datagrid-filter-item--active":""}`,"data-value":t.label,"data-index":e,onFocus:()=>s(e),onClick:()=>a(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:r,tabIndex:-1}),jsxRuntime.jsx("span",{children:t.blank?l:t.label})]}):jsxRuntime.jsx("div",{role:"option","aria-selected":false,"aria-busy":"true",className:"kanuni-datagrid-filter-item kanuni-datagrid-filter-item--pending","data-index":e,children:jsxRuntime.jsx("span",{"aria-hidden":"true",children:"\u2026"})})}function ca({gridId:e,columnId:t,headerLabel:n,entries:r,initialSelected:l,anchor:a,loading:s=false,dark:f,onApply:D,onClose:h,truncated:R=false,onSearch:C,pager:b,labels:M}){let v=rc(M),[,F]=react.useReducer(p=>p+1,0);react.useEffect(()=>b?b.subscribe(F):void 0,[b]);let[A,E]=react.useState(""),[c,x]=react.useState(0),[I,$]=react.useState(()=>new Set(l??r.map(p=>p.label))),[W,H]=react.useState(false),k=react.useRef(null),B=react.useRef(null),[N,g]=react.useState(0),[d,S]=react.useState(240),L=`${e??""}:${t}`,z=zn.get(L),U=react.useRef(z?.scrollTop??null),[me,xe]=react.useState(z&&z.width&&z.height?{width:z.width,height:z.height}:null),se=react.useCallback(p=>{k.current=p,p?.focus();},[]),Ne=react.useRef(null),w=react.useMemo(()=>{let p=datagridCore.foldText(A.trim());if(!p||R)return r;let K=Ne.current;(!K||K.entries!==r)&&(K={entries:r,lowered:r.map(de=>datagridCore.foldText(de.label)),needle:"",result:[]},Ne.current=K);let Y=K.needle!==""&&p.includes(K.needle)?K.result.filter(de=>datagridCore.foldText(de.label).includes(p)):r.filter((de,q)=>K.lowered[q].includes(p));return K.needle=p,K.result=Y,Y},[r,A,R]);react.useEffect(()=>{if(!C)return;let p=setTimeout(()=>C(A),150);return ()=>clearTimeout(p)},[A,C]),react.useEffect(()=>{if(!b)return;let p=setTimeout(()=>{if(b.getSearch()===A.trim())return;b.setSearch(A);let K=B.current;K&&(K.scrollTop=0),g(0),x(0);},150);return ()=>clearTimeout(p)},[b,A]),react.useEffect(()=>{W||!l||$(new Set(l));},[l,W]),react.useEffect(()=>{W||l||$(new Set(r.map(p=>p.label)));},[r,W,l]);let J=react.useCallback(p=>{B.current=p,p&&S(p.clientHeight||240);},[]);react.useEffect(()=>{let p=B.current;!p||U.current===null||s||p.scrollHeight<=p.clientHeight||(p.scrollTop=U.current,U.current=null,g(p.scrollTop));});let Ee=react.useMemo(()=>{let p=w.length,K=Math.max(0,Math.floor(N/Tn)-hl),Y=Math.ceil(d/Tn)+hl*2,de=Math.min(K,Math.max(0,p-1)),q=Math.min(p,de+Y);return {start:de,end:q,count:p,rows:w.slice(de,q)}},[w,N,d]);react.useEffect(()=>{let p=B.current;b&&p&&S(p.clientHeight||240);},[b,s,b?.isLoading(),b?.getRowCount()]);let ee=b?b.getWindow(N,Math.max(d,150)):null,re=ee?.start??0,Re=ee?.end??0;react.useEffect(()=>{b&&b.ensure(re,Re);},[b,re,Re,N]);let Ce=b?b.getRowCount():w.length,ke=s||(b?b.isLoading():false),P=tn({anchor:a,onClose:h}),[ae,X]=react.useState(null),Z=(ae??P.position.left)+(me?.width??260)+48<window.innerWidth?"right":"left",Ge=p=>{p.preventDefault(),p.stopPropagation();let K=P.elementRef.current;if(!K)return;let Y=K.getBoundingClientRect(),de=Z,q={x:p.clientX,y:p.clientY,w:Y.width,h:Y.height,left:Y.left},Be=null,De=oe=>{let ze=oe.clientX-q.x,Je=oe.clientY-q.y,Ye=window.innerHeight-Y.top-12,ue=Math.min(Ye,Math.max(oc,q.h+Je));if(de==="right"){let i=window.innerWidth-q.left-12;Be={width:Math.min(i,Math.max(wl,q.w+ze)),height:ue},xe(Be);}else {let i=q.left+q.w,je=i-12,rt=Math.min(je,Math.max(wl,q.w-ze));Be={width:rt,height:ue},xe(Be),X(i-rt);}B.current&&S(B.current.clientHeight);},$e=()=>{if(window.removeEventListener("pointermove",De),window.removeEventListener("pointerup",$e),Be){let oe=zn.get(L);zn.set(L,{scrollTop:oe?.scrollTop??B.current?.scrollTop??0,width:Math.round(Be.width),height:Math.round(Be.height)});}};window.addEventListener("pointermove",De),window.addEventListener("pointerup",$e);},Pe=react.useCallback(p=>{H(true),$(K=>{let Y=new Set(K);return Y.has(p)?Y.delete(p):Y.add(p),Y});},[]),Ke=react.useCallback(p=>x(p),[]),He=()=>{if(ke)return;if(b){D(b.buildFilter(t));return}if(I.size===r.length){D(null);return}let p=r.filter(q=>I.has(q.label)),K=p.some(q=>q.value===null||q.value===void 0),Y=p.filter(q=>q.value!==null&&q.value!==void 0),de;Y.length===0?de={columnId:t,operator:"isnull"}:K?de={logic:"or",nodes:[{columnId:t,operator:"in",value:Y.map(q=>q.value)},{columnId:t,operator:"isnull"}]}:de={columnId:t,operator:"in",value:Y.map(q=>q.value)},D(de);},Xe=p=>{let K=Math.max(0,Math.min(Ce-1,p));if(x(K),b){let de=B.current;de&&(p<=0||p>=Ce-1)&&(de.scrollTop=p<=0?0:de.scrollHeight),requestAnimationFrame(()=>{let q=P.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${K}"]`);q?.focus(),q?.scrollIntoView({block:"nearest"});});return}let Y=P.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${K}"]`);Y?.focus(),Y?.scrollIntoView({block:"nearest"});},dt=p=>p.key.length===1&&!p.ctrlKey&&!p.metaKey&&!p.altKey,pt=p=>{let K=p.target===k.current;if(p.key==="Backspace"&&!K){p.preventDefault(),k.current?.focus(),E(Y=>Y.slice(0,-1)),x(0);return}if(p.key==="ArrowDown"){p.preventDefault(),Xe(K?0:c+1);return}if(p.key==="ArrowUp"){p.preventDefault(),Xe(K?b?0:w.length-1:c-1);return}if(!K&&(p.key==="Home"||p.key==="End")){p.preventDefault(),Xe(p.key==="Home"?0:Ce-1);return}if(p.key===" "&&!K){if(p.preventDefault(),b){let de=b.getRow(c);de&&b.toggle(de);return}let Y=w[c];Y&&Pe(Y.label);return}if(p.key==="Enter"){p.preventDefault(),He();return}!K&&dt(p)&&p.key!==" "&&(p.preventDefault(),k.current?.focus(),E(Y=>Y+p.key),x(0));};return jsxRuntime.jsx(mt,{dark:f,children:jsxRuntime.jsxs("div",{ref:P.ref,className:"kanuni-datagrid-filter-popup",style:{left:ae??P.position.left,top:P.position.top,...me?{width:me.width,height:me.height,maxHeight:"none"}:null},role:"dialog","aria-label":`${n} filter`,onKeyDown:pt,children:[jsxRuntime.jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${Z}`,"data-testid":"dg-filter-resize",onPointerDown:Ge}),jsxRuntime.jsx("input",{ref:se,className:"kanuni-datagrid-filter-search",type:"search",placeholder:v.search,value:A,onChange:p=>{E(p.target.value),x(0);},"data-testid":"dg-filter-search"}),!b&&R&&jsxRuntime.jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:v.truncated}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(b)return b.selectAll();H(true),A.trim()===""?$(new Set(r.map(p=>p.label))):$(p=>{let K=new Set(p);for(let Y of w)K.add(Y.label);return K});},children:v.selectAll}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(b)return b.clear();H(true),A.trim()===""?$(new Set):$(p=>{let K=new Set(p);for(let Y of w)K.delete(Y.label);return K});},children:v.clear})]}),jsxRuntime.jsxs("div",{ref:J,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true","aria-busy":ke||void 0,"aria-setsize":Ce,onScroll:p=>{let K=p.target.scrollTop;g(K),U.current=null;let Y=zn.get(L);zn.set(L,{...Y,scrollTop:K});},children:[ke&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:v.loading}),!ke&&Ce===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:v.noMatch}),b&&ee&&Ce>0&&jsxRuntime.jsx("div",{style:{height:ee.totalHeight,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${ee.offsetY}px)`},children:Array.from({length:ee.end-ee.start},(p,K)=>{let Y=ee.start+K,de=b.getRow(Y);return jsxRuntime.jsx(ic,{index:Y,row:de,active:Y===c,checked:de?b.isChecked(de):false,blankText:v.blank,onToggle:q=>b.toggle(q),onFocus:Ke},Y)})})}),!b&&Ee.count>0&&jsxRuntime.jsx("div",{style:{height:w.length*Tn,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${Ee.start*Tn}px)`},children:Ee.rows.map((p,K)=>{let Y=Ee.start+K;return jsxRuntime.jsx(ac,{label:p.label,display:p.label===""?v.blank:p.label,index:Y,active:Y===c,checked:I.has(p.label),onToggle:Pe,onFocus:Ke},p.label)})})})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:h,children:v.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:He,disabled:ke,"data-testid":"dg-filter-apply",children:v.apply})]})]})})}function ma(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 fa({controller:e,columnId:t,surface:n,close:r}){let[l,a]=react.useState(()=>ma(e,t,n));react.useEffect(()=>(a(ma(e,t,n)),e.events.on("filterChanged",()=>{a(ma(e,t,n));})),[e,t,n]);let s=react.useCallback(h=>{e.setColumnFilter(t,h,n==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET);},[e,t,n]),f=react.useCallback(()=>{},[]),D=e.getColumnModel().getDef(t);return D?.renderFilter?jsxRuntime.jsx(jsxRuntime.Fragment,{children:D.renderFilter({columnId:t,column:D,surface:n,value:l,setValue:s,close:r??f})}):null}var cc='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function Rl({controller:e,columnId:t,headerLabel:n,anchor:r,dark:l,onClose:a}){let s=tn({anchor:r,onClose:a}),f=react.useRef(false),D=s.ref,h=react.useCallback(R=>{D(R),!(!R||f.current)&&(f.current=true,(R.querySelector(cc)??R).focus({preventScroll:true}));},[D]);return jsxRuntime.jsx(mt,{dark:l,children:jsxRuntime.jsx("div",{ref:h,tabIndex:-1,className:"kanuni-datagrid-filter-popup kanuni-datagrid-filter-popup--custom",style:{left:s.position.left,top:s.position.top},role:"dialog","aria-label":`${n} filter`,"data-column-id":t,children:jsxRuntime.jsx(fa,{controller:e,columnId:t,surface:"popup",close:a})})})}var ga="text/x-kanuni-column";function gc({columns:e,levels:t,onSetLevels:n,maxLevels:r=1,onExpandAll:l,onCollapseAll:a,emptyText:s}){let f=ve(),D=s??f.groupPanelHint,[h,R]=react.useState(false),C=react.useRef(null),[b,M]=react.useState(null),v=k=>e.find(N=>N.state.id===k)?.def.headerName??k,F=k=>{if(!k||t.includes(k))return;let B=t.length>=r?t.slice(0,r-1):[...t];n([...B,k]);},A=k=>n(t.filter(B=>B!==k)),E=(k,B)=>{let N=t.filter(d=>d!==k),g=Math.max(0,Math.min(N.length,B));n([...N.slice(0,g),k,...N.slice(g)]);},c=(k,B,N)=>{if(k===B)return;let d=t.filter(S=>S!==k).indexOf(B);d<0||E(k,N==="before"?d:d+1);},x=(k,B)=>{let N=k+B;N<0||N>=t.length||c(t[k],t[N],B<0?"before":"after");},I=(k,B)=>k<B.top+B.height/2?"before":"after",$=(k,B)=>{B.preventDefault(),B.stopPropagation();let N=I(B.clientY,B.currentTarget.getBoundingClientRect());M(null),R(false);let g=C.current;if(C.current=null,g){c(g,t[k],N);return}let d=B.dataTransfer.getData(ga);if(!d||t.includes(d))return;if(t.length>=r){F(d);return}let S=N==="before"?k:k+1;n([...t.slice(0,S),d,...t.slice(S)]);},W=(k,B,N)=>{let g=N.ctrlKey||N.metaKey;g&&(N.key==="ArrowUp"||N.key==="ArrowLeft")?(N.preventDefault(),x(k,-1)):g&&(N.key==="ArrowDown"||N.key==="ArrowRight")?(N.preventDefault(),x(k,1)):(N.key==="Delete"||N.key==="Backspace")&&(N.preventDefault(),A(B));},H=e.filter(k=>!t.includes(k.state.id));return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-group-panel${h?" kanuni-datagrid-group-panel--over":""}`,onDragOver:k=>{k.preventDefault(),R(true);},onDragLeave:()=>R(false),onDrop:k=>{if(k.preventDefault(),R(false),M(null),C.current){C.current=null;return}F(k.dataTransfer.getData(ga));},children:[t.length>0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((k,B)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-group-level${b?.index===B?` kanuni-datagrid-group-level--drop-${b.side}`:""}`,style:{"--dg-group-level":B},"data-group-level":B,onDragOver:N=>{N.preventDefault(),N.stopPropagation();let g=I(N.clientY,N.currentTarget.getBoundingClientRect());M(d=>d?.index===B&&d.side===g?d:{index:B,side:g});},onDragLeave:()=>M(N=>N?.index===B?null:N),onDrop:N=>$(B,N),children:jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:r>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${datagridCore.fillText(f.groupLevelAria,{n:B+1})}: ${v(k)}`,onDragStart:N=>{C.current=k,N.dataTransfer.effectAllowed="move",N.dataTransfer.setData(ga,k);},onDragEnd:()=>{C.current=null,M(null);},onKeyDown:N=>W(B,k,N),children:[r>1&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-chip-level",children:B+1}),v(k),jsxRuntime.jsx("button",{type:"button","aria-label":datagridCore.fillText(f.groupRemoveAria,{column:v(k)}),onClick:()=>A(k),children:"\xD7"})]})},k))}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-panel-hint",children:D}),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:f.groupExpandAll}),jsxRuntime.jsx("button",{type:"button",onClick:a,children:f.groupCollapseAll})]}),jsxRuntime.jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-sr-only",children:r>1?f.groupAddLevel:f.groupByColumn}),r>1?jsxRuntime.jsxs("select",{value:"",disabled:H.length===0,onChange:k=>F(k.target.value),children:[jsxRuntime.jsx("option",{value:"",children:f.groupAddLevelButton}),H.map(k=>jsxRuntime.jsx("option",{value:k.state.id,children:k.def.headerName??k.state.id},k.state.id))]}):jsxRuntime.jsxs("select",{value:t[0]??"",onChange:k=>n(k.target.value?[k.target.value]:[]),children:[jsxRuntime.jsx("option",{value:"",children:f.groupNoGrouping}),e.map(k=>jsxRuntime.jsx("option",{value:k.state.id,children:k.def.headerName??k.state.id},k.state.id))]})]})]})]})}var wa=react.memo(gc);function Rc({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,defs:l,values:a,checkboxColumn:s=false,detailColumn:f=false,statusColumn:D=false,rowNumberColumn:h=false,onPickSummary:R,emptyHint:C="",position:b="bottom",bandOffset:M=0,headerRowsBetween:v=0}){let F=ve(),A=datagridCore.summaryTypeLabels(F),E=new Map(l.map(I=>[I.columnId,I])),c=Gt({statusColumn:D,rowNumberColumn:h,detailColumn:f,checkboxColumn:s}).total,x=(I,$,W)=>{let H=I.state.id,k=E.get(H),B=k?a[datagridCore.summaryKey(k.columnId,k.type)]:void 0,N=I.def.dataType==="number"||I.def.dataType==="bigint",g=datagridCore.isChromeColumn(H)?void 0:R;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-footer-cell${$}${N?" kanuni-datagrid-footer-cell--number":""}${k?" kanuni-datagrid-footer-cell--active":""}`,style:W,role:"gridcell","data-column-id":H,"data-summary-type":k?.type??"",title:k?`${datagridCore.summaryLabel(k,A)} \u2014 ${I.def.headerName??H}`:void 0,onContextMenu:g?d=>g(H,d):void 0,onClick:g?d=>g(H,d):void 0,children:k?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-value",children:datagridCore.formatSummaryValue(k,B,I.def)}):g?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-hint",children:C}):null},H)};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${b}`,role:"row","aria-label":F.columnTotalsAria,style:{width:e.totalWidth+c,"--dg-band-offset":`${M}px`,"--dg-pinned-gap":String(v)},children:[c>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:c,insetInlineStart:0}}),e.left.map((I,$)=>x(I,` kanuni-datagrid-footer-cell--pinned${$===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:I.state.width,insetInlineStart:e.leftOffsets[$]+c})),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(I=>x(I,"",{width:I.state.width})),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),e.right.map((I,$)=>x(I,` kanuni-datagrid-footer-cell--pinned${$===0?" kanuni-datagrid-pin-edge-right":""}`,{width:I.state.width,insetInlineEnd:e.rightOffsets[$]}))]})}var Po=react.memo(Rc);function vc(e,t){return `__dg_pinned_${e}_${t}`}function Tc({gridId:e,side:t,rows:n,rowKeys:r,onUserRowContextMenu:l,layout:a,columnModel:s,centerColumns:f,centerIndices:D,stickyInsets:h,leadingSpacer:R,trailingSpacer:C,checkboxColumn:b=false,detailColumn:M=false,statusColumn:v=false,rowNumberColumn:F=false,rowHeight:A,bandOffset:E=0,headerRowsBetween:c,ariaRowBase:x}){return n.length===0?null:jsxRuntime.jsx("div",{className:`kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--${t}`,role:"rowgroup",style:{width:a.totalWidth||"100%","--dg-band-offset":`${E}px`,"--dg-pinned-gap":String(c)},children:n.map((I,$)=>{let W=r?.[$]??null,H={kind:"data",key:vc(t,$),sourceIndex:-1,data:I};return jsxRuntime.jsx(kn,{gridId:e,node:H,index:$,layout:a,columnModel:s,centerColumns:f,centerIndices:D,stickyInsets:h,leadingSpacer:R,trailingSpacer:C,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:b,detailColumn:M,statusColumn:v,rowNumberColumn:F,rowNumber:null,headerRowCount:x,height:A,onRowContextMenu:W!==null&&l?(k,B,N)=>l(W,I,N):void 0},H.key)})})}var Lo=react.memo(Tc);function Tl({controller:e,renderRow:t,width:n,bandOffset:r,headerRowsBetween:l,belowPinned:a}){let[,s]=react.useReducer(h=>h+1,0);react.useEffect(()=>{let h=[e.events.on("bodyScroll",s),e.events.on("contentReady",s),e.events.on("viewportChanged",s)];return ()=>h.forEach(R=>R())},[e]);let f=react.useRef(null);react.useLayoutEffect(()=>{f.current?.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(h=>h.setAttribute("tabindex","-1"));});let D=e.getStickyGroupRows();return D.length===0?null:jsxRuntime.jsx("div",{ref:f,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:D.map((h,R)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-sticky-group${R===D.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:h.offset,height:h.height,zIndex:D.length-R},children:t(h.node,h.index,h.height)},String(h.node.key)))})}function ha({name:e,size:t=14}){return jsxRuntime.jsx("svg",{width:t,height:t,viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",className:"kanuni-datagrid-icon",children:jsxRuntime.jsx("path",{d:datagridCore.TOOLBAR_ICON_PATHS[e],fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}async function Yn(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 on({anchor:e,onClose:t,children:n,dark:r,className:l="",label:a,role:s="dialog"}){let f=tn({anchor:e,onClose:t});return jsxRuntime.jsx(mt,{dark:r,children:jsxRuntime.jsx("div",{ref:f.ref,className:`kanuni-datagrid-filter-popup ${l}`.trim(),style:{left:f.position.left,top:f.position.top},role:s,"aria-label":a,children:n})})}function Fc(e){let t=ve();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 Hc=()=>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 Ac({controller:e,search:t=true,exportCsv:n=true,exportExcel:r=false,exportPdf:l=false,columnChooser:a=true,dark:s,onOpenColumnChooser:f,itemsBefore:D,itemsAfter:h,searchDebounce:R=200,searchOptions:C,exportMenu:b=true,labels:M}){let v=Fc(M),[F,A]=react.useState(e.getSearchText()),[E,c]=react.useState(null),[x,I]=react.useState(null),[$,W]=react.useState(null),H=react.useId(),k=C?.debounce??R,B=C?.validate?.(F)??null,N=()=>{B===null&&e.getSearchText()!==F&&e.setSearchText(F);};react.useEffect(()=>{if(B!==null)return;let L=setTimeout(()=>{e.getSearchText()!==F&&e.setSearchText(F);},k);return ()=>clearTimeout(L)},[e,F,k,B]);let[g,d]=react.useState(()=>e.getSelectedCount());react.useEffect(()=>(d(e.getSelectedCount()),e.events.on("selectionChanged",()=>d(e.getSelectedCount()))),[e]);let S=async L=>{c(L),W(null);let z=await Yn(e,L);z.error?W(z.error):I(null),c(null);};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-toolbar",children:[D,t&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:C?.placeholder??v.search,value:F,maxLength:C?.maxLength,"aria-label":v.search,"aria-invalid":B!==null||void 0,"aria-describedby":B!==null?H:void 0,"data-testid":"dg-toolbar-search",onChange:L=>A(L.target.value),onBlur:()=>{C?.applyOnBlur!==false&&N();},onKeyDown:L=>{L.key==="Enter"&&C?.applyOnBlur!==false&&N();}}),t&&B!==null&&jsxRuntime.jsx("span",{id:H,className:"kanuni-datagrid-toolbar-search-error",role:"alert","data-testid":"dg-toolbar-search-error",children:B}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxRuntime.jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:L=>{let z=L.currentTarget.getBoundingClientRect();f?.({left:z.left,top:z.bottom+2});},children:[jsxRuntime.jsx(ha,{name:"columns"}),jsxRuntime.jsx("span",{children:v.columns})]}),b&&(n&&e.canExportAll()||r||l)&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":v.exportMenu,title:v.exportMenu,disabled:E!==null,"data-testid":"dg-export-menu",onClick:L=>{let z=L.currentTarget.getBoundingClientRect();I(x?null:{left:z.right-190,top:z.bottom+2});},children:E?jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsxRuntime.jsx(Hc,{})}),x&&jsxRuntime.jsxs(on,{anchor:x,onClose:()=>I(null),dark:s,role:"menu",label:v.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:E!==null,"data-testid":"dg-export-csv",onClick:()=>S("csv"),children:E==="csv"?v.exporting:v.csv}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:E!==null,"data-testid":"dg-export-excel",onClick:()=>S("excel"),children:E==="excel"?v.exporting:v.excel}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:E!==null||g===0,"data-testid":"dg-export-excel-selected",onClick:()=>S("excel-selected"),children:E==="excel-selected"?v.exporting:v.excelSelected}),l&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:E!==null,"data-testid":"dg-export-pdf",onClick:()=>S("pdf"),children:E==="pdf"?v.exporting:v.pdf})]}),h,$&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:$})]})}var ya=react.memo(Ac);var _c=8;function $c(e){let t=ve();return react.useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function Ra({controller:e,columns:t,anchor:n,onClose:r,dark:l,labels:a}){let s=$c(a),[f,D]=react.useState(""),h=e.getColumnModel(),R=F=>h.getDef(F.id)?.headerName??F.id,C=t.filter(F=>!datagridCore.isChromeColumn(F.id)),b=C.filter(F=>F.visible).length,M=f.trim().toLocaleLowerCase(),v=M?C.filter(F=>R(F).toLocaleLowerCase().includes(M)):C;return jsxRuntime.jsxs(on,{anchor:n,onClose:r,dark:l,label:s.title,className:"kanuni-datagrid-column-chooser",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-title",children:s.title}),C.length>_c&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:s.search,"aria-label":s.search,value:f,onChange:F=>D(F.target.value)}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-list",children:[v.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-empty",children:s.empty}),v.map(F=>{let A=F.visible&&b===1;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsxRuntime.jsx("input",{type:"checkbox",checked:F.visible,disabled:A,"data-column-toggle":F.id,onChange:()=>e.setColumnVisible(F.id,!F.visible)}),jsxRuntime.jsx("span",{children:R(F)})]},F.id)})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",disabled:b===C.length,onClick:()=>C.forEach(F=>!F.visible&&e.setColumnVisible(F.id,true)),children:s.showAll}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:r,children:s.ok})]})]})}function Yc(e){let t=ve();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 qc({page:e,pageCount:t,pageSize:n,pageSizes:r=[25,50,100,250],totalRows:l,onPage:a,onNext:s,onPrevious:f,onPageSize:D,pageButtons:h=false,maxPageButtons:R,labels:C}){let b=Yc(C),M=e<=0,v=e>=t-1,F=l===0?0:e*n+1,A=Math.min(l,(e+1)*n),E=react.useRef(null),c=react.useRef(null);return react.useEffect(()=>{let x=c.current,I=E.current;if(!I||!(x instanceof HTMLButtonElement)||!x.disabled)return;let $=document.activeElement;if($&&$!==document.body&&$!==x)return;let W=I.querySelector('[aria-current="page"]')??I.querySelector("button:not(:disabled)");W?.focus(),c.current=W;},[e,t]),jsxRuntime.jsxs("div",{ref:E,className:"kanuni-datagrid-pager",role:"navigation","aria-label":b.navigation,onFocus:x=>{c.current=x.target;},onBlur:x=>{let I=x.relatedTarget;I&&!E.current?.contains(I)&&(c.current=null);},children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsxRuntime.jsx("span",{children:b.rowsPerPage}),jsxRuntime.jsx("select",{value:n,"data-testid":"dg-page-size",onChange:x=>D(Number(x.target.value)),children:r.map(x=>jsxRuntime.jsx("option",{value:x,children:x},x))})]}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[F.toLocaleString(),"\u2013",A.toLocaleString()," ",b.of," ",l.toLocaleString()]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsxRuntime.jsx("button",{type:"button","aria-label":b.first,disabled:M,onClick:()=>a(0),children:"\xAB"}),jsxRuntime.jsx("button",{type:"button","aria-label":b.previous,disabled:M,"data-testid":"dg-page-prev",onClick:f,children:"\u2039"}),h?datagridCore.pageButtonItems(e,t,R).map(x=>typeof x=="number"?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":datagridCore.fillText(b.pageButton,{n:String(x+1)}),"aria-current":x===e?"page":void 0,onClick:()=>a(x),children:x+1},x):jsxRuntime.jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},x)):jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[b.page," ",e+1," ",b.of," ",t]}),jsxRuntime.jsx("button",{type:"button","aria-label":b.next,disabled:v,"data-testid":"dg-page-next",onClick:s,children:"\u203A"}),jsxRuntime.jsx("button",{type:"button","aria-label":b.last,disabled:v,onClick:()=>a(t-1),children:"\xBB"})]})]})}var Ca=react.memo(qc);function tm(e){let t=ve();return react.useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function nm({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:r,labels:l}){let a=tm(l),s=ve(),[,f]=react.useState(0);react.useEffect(()=>e.events.on("filterChanged",()=>f(C=>C+1)),[e]);let D=e.getEffectiveFilter(),h=e.isFilterEnabled(),R=datagridCore.describeFilter(D,e.getColumnModel(),{...r,labels:{...datagridCore.filterLabels(s),...r?.labels}});return !D&&!n?null:jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-panel${h?"":" 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:!D,"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:h,disabled:!D,title:a.toggle,"aria-label":a.toggle,"data-testid":"dg-filter-panel-toggle",onChange:C=>e.setFilterEnabled(C.target.checked)}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:R??void 0,"data-testid":"dg-filter-panel-text",children:R??a.empty}),t&&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:t,children:"\u25BE"})]})}var ka=react.memo(nm);var Ho=e=>!e.separator&&!e.disabled;function Ao({x:e,y:t,items:n,context:r,onClose:l,dark:a=false,label:s}){let f=ve(),D=react.useRef(null),[h,R]=react.useState({left:e,top:t}),[C,b]=react.useState(()=>n.findIndex(Ho)),[M,v]=react.useState(null),[F,A]=react.useState(null),E=react.useRef(null),[c,x]=react.useState(null);react.useEffect(()=>A(null),[M]);let I=react.useCallback((g,d)=>{if(v(g),g===null||!d)return;let S=d.getBoundingClientRect();x({left:S.left,right:S.right,top:S.top});},[]),$=g=>D.current?.querySelector(`[data-item-index="${g}"]`)??null,W=react.useCallback(g=>{if(E.current=g,!g||!c)return;let d=8,S=g.getBoundingClientRect(),L=Math.max(d,Math.min(c.top-4,window.innerHeight-S.height-d)),U=c.right+S.width+d<=window.innerWidth?c.right:Math.max(d,c.left-S.width);A({left:U,top:L});},[c]),H=react.useCallback(g=>{if(D.current=g,!g)return;let d=g.getBoundingClientRect(),S=8;R({left:Math.max(S,Math.min(e,window.innerWidth-d.width-S)),top:Math.max(S,Math.min(t,window.innerHeight-d.height-S))}),g.focus();},[e,t]);react.useEffect(()=>{let g=S=>{let L=S.target;E.current?.contains(L)||D.current&&!D.current.contains(L)&&l();},d=()=>l();return document.addEventListener("mousedown",g),window.addEventListener("scroll",d,true),()=>{document.removeEventListener("mousedown",g),window.removeEventListener("scroll",d,true);}},[l]);let k=(g,d)=>{let S=n.length;for(let L=1;L<=S;L++){let z=(g+d*L+S*S)%S;if(Ho(n[z]))return z}return g},B=g=>{let d=n[g];if(!(!d||!Ho(d))){if(d.items?.length){I(g,$(g));return}d.onSelect?.(r),l();}},N=g=>{switch(g.key){case "ArrowDown":b(d=>k(d,1));break;case "ArrowUp":b(d=>k(d,-1));break;case "Home":b(n.findIndex(Ho));break;case "End":b(k(0,-1));break;case "ArrowRight":if(n[C]?.items?.length)I(C,$(C));else return;break;case "ArrowLeft":if(M!==null)I(null);else return;break;case "Enter":case " ":B(C);break;case "Escape":l();break;case "Tab":l();return;default:return}g.preventDefault(),g.stopPropagation();};return jsxRuntime.jsxs(mt,{dark:a,children:[jsxRuntime.jsx("div",{ref:H,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":s??f.rowActions,tabIndex:-1,style:{left:h.left,top:h.top},onKeyDown:N,children:n.map((g,d)=>g.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},g.id??`sep-${d}`):jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${d===C?" kanuni-datagrid-menu-item--active":""}`,disabled:g.disabled,"data-item-index":d,"aria-haspopup":g.items?.length?"menu":void 0,"aria-expanded":g.items?.length?M===d:void 0,onMouseEnter:S=>{b(d),I(g.items?.length?d:null,S.currentTarget);},onClick:()=>B(d),children:[g.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:g.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:g.label}),g.shortcut&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:g.shortcut}),g.items?.length?jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},g.id??d))}),M!==null&&n[M]?.items?.length?jsxRuntime.jsx("div",{ref:W,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:F?{left:F.left,top:F.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[M].items.map((g,d)=>g.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},g.id??`sub-sep-${d}`):jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:g.disabled,onClick:()=>{g.onSelect?.(r),l();},children:[g.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:g.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:g.label})]},g.id??d))}):null]})}var rm=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),xa=rm?"\u2318":"Ctrl+",Nl=`${xa}C`,am=`${xa}X`,im=`${xa}V`;function Sn(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
3
- `).length:0,()=>e.writeClipboard(n,"copy"));}function lm(e){navigator.clipboard?.writeText(e).catch(()=>{});}function sm(e){let t=e.getColumnModel();return e.getVisualColumnIds().some(n=>{let r=t.getDef(n)?.band;return typeof r=="string"?r!=="":Array.isArray(r)&&r.length>0})}function dm(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var um={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function Da(e,t,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:t.menuCopy,shortcut:Nl,onSelect:()=>Sn(e)}),a.copyWithHeaders!==false&&s.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>Sn(e,{includeHeaders:true})}),a.copyWithGroupHeaders!==false&&sm(e)&&s.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>Sn(e,{includeGroupHeaders:true})});let f=dm(a.export).filter(D=>D!=="csv"||e.canExportAll());if(f.length>0){let D=e.getSelectedCount()===0;s.push({id:"__dg-export",label:t.menuExport,items:f.map(h=>({id:`__dg-export-${h}`,label:t[um[h]],disabled:h==="excel-selected"&&D,onSelect:()=>{Yn(e,h).then(R=>{R.error&&l?.(R.error);});}}))});}return s.length>0&&r&&s.unshift({id:"__dg-sep-builtin",separator:true}),s}function Sa(e,t,n,r){if(!e.isRowPinningEnabled()||!e.canPinRow(n))return [];let l=e.getRowPinSide(n),a=[];return l!=="top"&&a.push({id:"__dg-pin-top",label:t.pinRowTop,onSelect:()=>e.pinRow(n,"top")}),l!=="bottom"&&a.push({id:"__dg-pin-bottom",label:t.pinRowBottom,onSelect:()=>e.pinRow(n,"bottom")}),l&&a.push({id:"__dg-unpin",label:t.unpinRow,onSelect:()=>e.pinRow(n,null)}),r?[{id:"__dg-sep-pin",separator:true},...a]:a}function Ga({anchor:e,value:t,dark:n,onCommit:r,onCancel:l}){let a=ve(),[s,f]=react.useState(t),D=react.useRef(null);react.useEffect(()=>{let R=D.current;R&&(R.focus(),R.select());},[]);let h=()=>{let R=s.trim();r(R===""?null:R);};return jsxRuntime.jsxs(on,{anchor:e,onClose:l,dark:n,label:a.noteEditorAria,className:"kanuni-datagrid-note-editor",children:[jsxRuntime.jsx("textarea",{ref:D,className:"kanuni-datagrid-note-input",value:s,rows:4,"aria-label":a.noteEditorAria,placeholder:a.notePlaceholder,onChange:R=>f(R.target.value),onKeyDown:R=>{R.key==="Enter"&&(R.ctrlKey||R.metaKey)&&(R.preventDefault(),h()),R.key==="Escape"&&(R.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:h,children:a.save})]})]})}function gm(e){let t=ve();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 wm=new Set(["filtering","sorting","computing","encoding","exporting"]);function Na({controller:e,delay:t=300,labels:n,cancellable:r=true,forced:l=false}){let[a,s]=react.useState(()=>e.getBusy()),[f,D]=react.useState(false);react.useEffect(()=>(s(e.getBusy()),e.events.on("busyChanged",v=>s(v))),[e]);let h=a.busy&&a.background!==true;react.useEffect(()=>{if(!h){D(false);return}let v=setTimeout(()=>D(true),t);return ()=>clearTimeout(v)},[h,t]);let R=gm(n);if(!l&&(!f||!h))return null;let C=a.phase?R[a.phase]:R.busy,b=a.progress===null?null:Math.max(0,Math.min(100,a.progress)),M=r&&a.phase!==null&&wm.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:C}),b!==null&&jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(b),"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:`${b}%`}})}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(b),"%"]})]}),M&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:R.cancel})]})})}function Hl({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(r=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-card-field",children:[jsxRuntime.jsx("dt",{children:r.label}),jsxRuntime.jsx("dd",{children:r.text})]},r.columnId))})]})}function Al({controller:e,sort:t,columns:n,text:r}){if(n.length===0)return null;let l=t[0],a=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:r.cardSortBy}),jsxRuntime.jsxs("select",{className:"kanuni-datagrid-cardbar-select",value:l?.columnId??"",onChange:s=>e.setSort(s.target.value?[{columnId:s.target.value,direction:l?.direction??"asc"}]:[]),children:[jsxRuntime.jsx("option",{value:"",children:r.none}),n.map(s=>jsxRuntime.jsx("option",{value:s.id,children:s.label},s.id))]})]}),l&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-cardbar-dir","aria-label":a?r.sortAsc:r.sortDesc,title:a?r.sortAsc:r.sortDesc,onClick:()=>e.setSort([{columnId:l.columnId,direction:a?"asc":"desc"}]),children:jsxRuntime.jsx("span",{"aria-hidden":"true",children:a?"\u2193":"\u2191"})})]})}var Ol=null;function hm(){return typeof document>"u"?null:(Ol??=document.createElement("canvas"),Ol.getContext("2d"))}function Kl(e){let t=getComputedStyle(e);return `${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function bm(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function ym(e){let t=e.map(r=>[r.style.width,r.style.minWidth,r.style.maxWidth]);for(let r of e)r.style.width="max-content",r.style.minWidth="0",r.style.maxWidth="none";let n=0;for(let r of e){let l=Math.ceil(r.getBoundingClientRect().width);l>n&&(n=l);}return e.forEach((r,l)=>{[r.style.width,r.style.minWidth,r.style.maxWidth]=t[l];}),n}function Oo(e,t){let n=hm();if(!n)return null;let r=typeof CSS<"u"&&CSS.escape?CSS.escape(t):t.replace(/"/g,'\\"'),l=e.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${r}"]`),a=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${r}"]`);if(!l&&a.length===0)return null;let s=0;if(l){let f=l.querySelector(".kanuni-datagrid-header-label")??l;n.font=Kl(f),s=n.measureText(f.textContent??"").width+44;}if(a.length>0){n.font=Kl(a[0]);let f=[];for(let D=0;D<a.length;D++){if(bm(a[D])){f.push(a[D]);continue}let h=a[D].textContent??"";if(h==="")continue;let R=n.measureText(h).width+20;R>s&&(s=R);}f.length>0&&(s=Math.max(s,ym(f)));}return s===0?null:Math.round(Math.min(640,Math.max(48,s)))}function Pa(e,t){let n=react.useRef(t);n.current=t;let r=!!t?.enabled,l=t?.storageKey,a=t?.type;react.useEffect(()=>{if(r)return datagridCore.attachStateStoring(e,{...n.current,enabled:true})},[e,r,l,a]);}var Ko="application/x-kanuni-row";function Ia(e,t){let n=!!t?.enabled,r=t?.group??null,l=t?.allowReordering??true,a=t?.allowDropInsert??r!==null,[s,f]=react.useState(false),[D,h]=react.useState(null),R=react.useRef(null),C=react.useRef(false),b=react.useRef(null),M=react.useRef(null),v=react.useRef(t);v.current=t;let F=react.useCallback(g=>e.getRowByKey(g),[e]),A=(g,d)=>{let S=d.getBoundingClientRect();return g.clientY<S.top+S.height/2?"before":"after"},E=react.useCallback((g,d)=>{if(!datagridCore.isDataRow(g))return;M.current=g.key,b.current=g.key,C.current=false,R.current=null;let S={gridId:e.gridId,group:r,rowKey:g.key,row:g.data};d.dataTransfer.setData(Ko,JSON.stringify(S)),d.dataTransfer.setData("text/plain",String(g.key)),d.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:g.key}),d.stopPropagation();},[e,r]),c=react.useCallback(()=>{let g=b.current;g!==null&&e.notifyRowDragEnd({rowKey:g,dropped:C.current,overKey:R.current?.key??null,position:R.current?.side??null}),C.current=false,R.current=null,b.current=null,M.current=null,h(null),f(false);},[e]),x=react.useCallback(g=>g.dataTransfer.types.includes(Ko)?M.current!==null?l:a&&r!==null:false,[l,a,r]),I=react.useCallback((g,d)=>{if(!datagridCore.isDataRow(g)||!x(d))return;if(d.preventDefault(),d.dataTransfer.dropEffect="move",M.current===g.key){R.current=null,h(null);return}let S=A(d,d.currentTarget),L=R.current?.key!==g.key||R.current.side!==S;R.current={key:g.key,side:S},h(z=>z?.key===g.key&&z.side===S?z:{key:g.key,side:S}),L&&M.current!==null&&e.notifyRowDrag("move",{rowKey:M.current,overKey:g.key,position:S});},[x,e]),$=react.useCallback((g,d,S)=>{let L=null;try{let U=g.dataTransfer.getData(Ko);L=U?JSON.parse(U):null;}catch{L=null;}if(!L)return;if(L.gridId===e.gridId){if(!l)return;let U=v.current?.onReorder;if(U){U({dragKey:L.rowKey,targetKey:d,position:S,row:F(L.rowKey)});return}e.moveRow(L.rowKey,d,S);return}!a||r===null||L.group!==r||v.current?.onAdd?.({row:L.row,rowKey:L.rowKey,otherGridId:L.gridId,targetKey:d,position:S});},[e,l,a,r,F]),W=react.useCallback((g,d)=>{if(h(null),!datagridCore.isDataRow(g)||!x(d))return;d.preventDefault(),d.stopPropagation();let S=A(d,d.currentTarget);C.current=true,R.current={key:g.key,side:S},$(d,g.key,S),M.current=null;},[x,$]),H=react.useCallback(g=>{x(g)&&(g.preventDefault(),g.dataTransfer.dropEffect="move");},[x]),k=react.useCallback(g=>{h(null),x(g)&&(g.preventDefault(),C.current=true,R.current=null,$(g,null,"after"),M.current=null);},[x,$]),B=react.useCallback(g=>{let d=g.relatedTarget;d&&g.currentTarget.contains(d)||M.current!==null&&(R.current=null,h(null),e.notifyRowDrag("leave",{rowKey:M.current}));},[e]);return {handlers:n?{draggable:s,setDraggable:f,onDragStart:E,onDragEnd:c,onDragOver:I,onDrop:W}:void 0,dropAt:n?D:null,bodyHandlers:n?{onDragOver:H,onDrop:k,onDragLeave:B}:void 0}}var Dm=400;function _l(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function $l(e){return (e.textContent??"").trim()}function Sm(e){let{def:t,node:n,value:r,clipped:l,note:a}=e;if(a)return a;if(t&&n){if(typeof t.tooltip=="function"){let s=t.tooltip({value:r,row:n.data,node:n,column:t});return s||null}if(typeof t.tooltip=="string")return t.tooltip||null;if(t.tooltipField){let s=n.data[t.tooltipField];return s==null||s===""?null:String(s)}}return l&&l.length>0?l:null}function Fa({rootRef:e,columnModel:t,getRowNode:n,getNote:r,config:l,controller:a,gridId:s}){let f=l?.enabled!==false,D=l?.delay??Dm,h=l?.showOnTruncation!==false,R=l?.trigger??"hover",C=R!=="focus",b=R!=="hover"&&!!a&&!!s,M=l?.interactive===true,[v,F]=react.useState(null),A=react.useRef({columnModel:t,getRowNode:n,getNote:r,showOnTruncation:h,delay:D});return A.current={columnModel:t,getRowNode:n,getNote:r,showOnTruncation:h,delay:D},react.useEffect(()=>{if(!f){F(null);return}let E=e.current;if(!E)return;let c=null,x=null,I=null,$=null,W=s?`${s}-tooltip`:void 0,H=()=>{$?.removeAttribute("aria-describedby"),$=null;},k=()=>{c!==null&&(clearTimeout(c),c=null),x!==null&&(clearTimeout(x),x=null),I=null,H(),F(null);},B=()=>{x!==null&&(clearTimeout(x),x=null);},N=()=>{x=null,H(),F(null);},g=()=>{B(),c!==null&&(clearTimeout(c),c=null);},d=()=>{if(!M){k();return}x!==null&&clearTimeout(x),x=setTimeout(N,150);},S=(ee,re)=>{let{columnModel:Re,getRowNode:Ce,getNote:ke}=A.current,P=Re.getDef(re);if(!P?.renderTooltip)return;let ae=ee.closest("[data-row-key]")?.dataset.rowKey,X=ae===void 0?void 0:Ce(ae);if(!X||ke&&ke(X.key,re,X.data))return;let Z=P.renderTooltip({value:Re.getCellValue(X.data,re),row:X.data,node:X,column:P});return Z==null||Z===false?null:{content:Z}},L=(ee,re,Re,Ce)=>{let ke=Re?void 0:S(ee,re);if(ke===null)return;let P=ke?"":Re?U(re,ee):z(ee,re);if(!ke&&!P)return;let ae=ee.getBoundingClientRect();B(),H(),Ce&&W&&(ee.setAttribute("aria-describedby",W),$=ee),F({text:P??"",...ke?{content:ke.content}:{},anchor:{top:ae.top,left:ae.left,width:ae.width,height:ae.height},...M?{interactive:true,hold:g,release:k}:{},...W?{id:W}:{}});},z=(ee,re)=>{let{columnModel:Re,getRowNode:Ce,getNote:ke,showOnTruncation:P}=A.current,ae=Re.getDef(re),X=ee.closest("[data-row-key]")?.dataset.rowKey,Z=X===void 0?void 0:Ce(X);return Sm({def:ae,node:Z,value:Z?Re.getCellValue(Z.data,re):void 0,clipped:P&&_l(ee)?$l(ee):null,note:Z&&ke?ke(Z.key,re,Z.data):null})},U=(ee,re)=>{let Re=A.current.columnModel.getDef(ee);if(Re?.headerTooltip)return Re.headerTooltip;if(!A.current.showOnTruncation)return null;let Ce=re.querySelector(".kanuni-datagrid-header-label")??re;if(!_l(Ce))return null;let ke=$l(Ce);return ke.length>0?ke:null},me=ee=>{if(!C)return;let Re=ee.target?.closest("[data-column-id]")??null;if(Re===I){B();return}if(M&&x!==null?(c!==null&&(clearTimeout(c),c=null),I=null):k(),!Re||!E.contains(Re))return;let Ce=Re.dataset.columnId;if(!Ce)return;let ke=Re.classList.contains("kanuni-datagrid-header-cell");!ke&&!Re.closest("[data-row-key]")||(I=Re,c=setTimeout(()=>{c=null,!(I!==Re||!Re.isConnected)&&L(Re,Ce,ke,false);},A.current.delay));},xe=ee=>{if(!C)return;let re=ee.relatedTarget;I&&re&&I.contains(re)||d();},se=-1/0,Ne=()=>{se=Date.now();},w=()=>{k();let ee=a?.getFocus();!ee||!s||(c=setTimeout(()=>{if(c=null,!E.contains(document.activeElement)&&Date.now()-se>1500)return;let re=document.getElementById(`${s}-cell-${String(ee.rowKey)}-${ee.columnId}`);!re||!E.contains(re)||(I=re,L(re,ee.columnId,false,true));},A.current.delay));},J=b?a.events.on("focusChanged",w):null,Ee=ee=>{(!b||ee.key==="Escape")&&k();};return E.addEventListener("mouseover",me),E.addEventListener("mouseout",xe),E.addEventListener("mousedown",k),E.addEventListener("pointerdown",Ne),E.addEventListener("keydown",Ee),E.addEventListener("scroll",k,true),window.addEventListener("blur",k),()=>{k(),J?.(),E.removeEventListener("mouseover",me),E.removeEventListener("mouseout",xe),E.removeEventListener("mousedown",k),E.removeEventListener("pointerdown",Ne),E.removeEventListener("keydown",Ee),E.removeEventListener("scroll",k,true),window.removeEventListener("blur",k);}},[f,e,C,b,M,a,s]),f?v:null}var Vl=6,Gn=8;function Ha({state:e,dark:t}){let[n,r]=react.useState(null),[l,a]=react.useState(null),{text:s,anchor:f,content:D,interactive:h,hold:R,release:C,id:b}=e;return react.useLayoutEffect(()=>{if(!n)return;let{width:M,height:v}=n.getBoundingClientRect(),F=document.documentElement.clientWidth,A=document.documentElement.clientHeight,E=f.top+f.height+Vl,c=f.top-v-Vl,I=E+v+Gn<=A||c<Gn?E:c,$=Math.min(Math.max(Gn,f.left),Math.max(Gn,F-M-Gn));a({top:Math.min(I,A-v-Gn),left:$});},[n,s,D,f]),jsxRuntime.jsx(mt,{dark:t,children:jsxRuntime.jsx("div",{ref:r,id:b,className:h?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:h?R:void 0,onMouseLeave:h?C:void 0,style:l?{top:l.top,left:l.left}:{top:0,left:0,visibility:"hidden"},children:D??s})})}function Bo(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 zl=Bo(datagridCore.getGridDictionary("en"));function Aa(e,t){let n={...zl,...t.labels},{controller:r,maxGroupLevels:l}=t,a=e.columnId,s=r.getColumnModel().getDef(a),f=r.getSort(),D=f.find(x=>x.columnId===a),h=r.getGroupLevels(),R=h.includes(a),C=s?.sortable!==false,b=r.getColumnStates().find(x=>x.id===a)?.pinned??null,M=s?.groupable!==false,v=r.canGroup(),F=[{id:"sort-asc",label:n.sortAsc,disabled:!C||D?.direction==="asc",onSelect:()=>r.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!C||D?.direction==="desc",onSelect:()=>r.setSort([{columnId:a,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!D,onSelect:()=>r.setSort(f.filter(x=>x.columnId!==a))},{id:"sep-1",separator:true}];v&&F.push({id:"group",label:R?n.ungroup:n.groupBy,disabled:!M,onSelect:()=>{R?r.groupBy(h.filter(x=>x!==a)):r.groupBy([...h,a].slice(-l));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&F.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),F.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:r.getColumnStates().filter(x=>x.visible).length<=1,onSelect:()=>r.setColumnVisible(a,false)},{id:"field-chooser",label:n.fieldChooser,onSelect:t.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:n.bestFit,disabled:s?.resizable===false,onSelect:()=>t.onBestFit(a)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll});let A=r.getColumnStates().filter(x=>x.visible&&x.pinned===b).map(x=>x.id),E=A.indexOf(a),c=s?.reorderable!==false&&E>=0;return F.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!c||E<=0,onSelect:()=>r.moveColumn(a,A[E-1])},{id:"move-right",label:n.moveRight,disabled:!c||E<0||E>=A.length-1,onSelect:()=>r.moveColumn(a,A[E+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:b==="left",onSelect:()=>r.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:b==="right",onSelect:()=>r.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:b==="sticky",onSelect:()=>r.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:b===null,onSelect:()=>r.setColumnPinned(a,null)}),F}var zt=typeof window<"u"?react.useLayoutEffect:react.useEffect,jl=1e8,_o=null;function Ql(){if(_o!==null)return _o;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=`${jl}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=jl;let n=e.scrollTop;return Wa=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(_o=n),_o}var Wa=null;function ap(){return Wa===null&&Ql(),Wa}function _a(e){return Math.abs(e)}function Zl(e,t){return getComputedStyle(t).direction==="rtl"?-e:e}function $o(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 s={...e};return delete s.grouping,$o(s,t)}if(e.columns?.some(s=>s.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 s={...e,columns:e.columns.map(f=>f.spanRows?{...f,spanRows:void 0}:f)};return $o(s,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 s={...e};return delete s.tree,$o(s,t)}if(!e.grouping)return e.masterDetail?$a(e):e;let{groupBy:n,groupSummaries:r}=e.grouping,l=n==null?[]:typeof n=="string"?[n]:n;if(l.length<=1&&!r)return e.masterDetail?$a(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 a={...e,grouping:{...e.grouping,groupBy:l.slice(0,1),groupSummaries:false}};return e.masterDetail?$a(a):a}function $a(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 ip(e){return jsxRuntime.jsx(hr,{locale:e.locale,messages:e.messages,children:jsxRuntime.jsx(Tr,{theme:e.theme,density:e.density,palette:e.palette,portalContainer:e.portalContainer,children:jsxRuntime.jsx(lp,{...e})})})}function lp(e){let t=ve(),{className:n,style:r,dark:l=false,theme:a,palette:s,striped:f=true,emptyText:D,sortable:h=true,autoHeaderHeight:R=false,filterRow:C=false,headerFilter:b=false,filterIconMode:M="hover",columnReorder:v=true,columnResize:F=true,loadingOverlay:A=true,announcements:E=true,groupPanel:c=false,showRowCount:x=false,toolbar:I=false,toolbarExcel:$=false,toolbarPdf:W=false,filterPanel:H=false,filterPanelLabels:k,onOpenFilterBuilder:B,toolbarItemsBefore:N,toolbarItemsAfter:g,renderRow:d,stateStoring:S,headerMenu:L=true,focusedRow:z=false,focusedRowKey:U,onFocusedRowChanged:me,footer:xe,footerMenu:se=true,onRowClick:Ne,onRowActivate:w,onReady:J,renderCellContent:Ee,getCellClassName:ee,renderOverlay:re,onCellPointerDown:Re,onCellPointerEnter:Ce,onCellDoubleClick:ke,onHeaderClick:P,getHeaderClassName:ae,renderHeaderLabel:X,enterpriseEdition:Z=false,renderDetail:Ge,renderEditForm:Pe,density:Ke,rowMenu:He,cellMenu:Xe,autoColumns:dt,rowDrag:pt,tooltip:p,pinnedTopRows:K,pinnedBottomRows:Y,footerPosition:de="bottom",autoSizeStrategy:q="none",highlightSearch:Be=true,...De}=e,$e=react.useMemo(()=>{let o=De.columns;if(o&&o.length>0)return o;let y=De.dataSource;if(!Array.isArray(y)||y.length===0)return o??[];let G=typeof dt=="object"?dt:void 0;return dt===false?o??[]:datagridCore.inferColumns(y,G)},[De.columns,De.dataSource,dt]),oe={...De,columns:$e},ze=datagridCore.isPackagedTheme(a)?datagridCore.THEME_ROW_HEIGHT[a][Ke??"normal"]:Ke?datagridCore.DENSITY_ROW_HEIGHT[Ke]:datagridCore.DEFAULT_ROW_HEIGHT,Je=oe.rowHeight===void 0?{...oe,rowHeight:ze}:oe,Ye=Z?Number.POSITIVE_INFINITY:1,ue=$o(Je,Z),{controller:i,rows:je,window:rt,layout:Ie,sort:ut,rowHeight:u,visibleCount:m}=wr(ue),T=e.cardView,_=T?T===true?"on":`${T.breakpoint??""}|${(T.columns??[]).join("|")}`:"",Q=react.useMemo(()=>datagridCore.resolveCardView(T),[_]),[te,ce]=react.useState(false),we=react.useRef(Q);zt(()=>{we.current=Q;let o=Rt.current;ce(o?datagridCore.showsCards(o.clientWidth,Q):false);},[Q]);let he=te?datagridCore.cardColumnIds(i.getColumnModel(),Q):null,be=he?JSON.stringify(he):"",Ae=react.useMemo(()=>he,[be]);react.useEffect(()=>{i.setDataRowHeight(Ae?datagridCore.cardHeight(Ae.length):null);},[i,Ae]);let yt=e.onCardViewChange,an=react.useRef(false);react.useEffect(()=>{te!==an.current&&(an.current=te,yt?.(te));},[te,yt]);let Nn=react.useCallback(o=>jsxRuntime.jsx(Hl,{fields:datagridCore.cardFields(i.getColumnModel(),Ae??[],o.row)}),[i,Ae]),it=react.useRef(null),O=datagridCore.normalizeRowStatus(e.rowStatus),j=tl(i,e.editing,Z,{renderCellContent:Ee,getCellClassName:ee,onCellDoubleClick:ke},te,{rootRef:it,rowHeight:u,dark:l,savedDuration:O?.savedDuration??0}),fe=j.rowStatusSource??e.rowStatusSource??null,Se=o=>{if(!O||o.kind!=="data")return {};let y=datagridCore.resolveRowStatus(O,o.data,o.key,fe);return y?{rowStatus:y.status,rowStatusText:datagridCore.rowStatusDescription(y,t),rowStatusTint:O.tint}:{}};react.useEffect(()=>{if(te||!O?.messages){i.setMessageRows([],u);return}let o=O.get,y=datagridCore.rowMessageKeys(O,fe).filter(G=>{if(!o)return true;let V=i.getDataRowNode(G)?.data;if(V===void 0)return true;let pe=o({row:V,rowKey:G});return pe===void 0||pe==="error"});i.setMessageRows(y,u);});let ne=(o,y)=>{if(!O)return null;let G=datagridCore.rowMessageModel(O,o,y,fe,t);return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-row-message","data-testid":"dg-row-message",children:[jsxRuntime.jsxs("svg",{className:"kanuni-datagrid-row-message-icon",viewBox:"0 0 16 16",width:"14",height:"14","aria-hidden":"true",children:[jsxRuntime.jsx("path",{d:"M8 1.5 15 14H1z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsxRuntime.jsx("path",{d:"M8 6v3.5M8 11.6v.4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-message-text",title:G.text,children:G.text}),G.retry&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-retry",onClick:G.retry,children:t.rowStatusRetry}),G.remove&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-delete",onClick:G.remove,children:t.rowStatusDelete})]})},Ze=datagridCore.resolveToolbar(I),Qn=j.renderCellContent,Pn=j.getCellClassName,ns=j.onCellDoubleClick,Ua=_r(i,e.printLayout),Ln=Ua.active?{...rt,rows:{...rt.rows,start:0,end:je.length,offsetY:0,totalHeight:0}}:rt,In=react.useMemo(()=>$e.some(o=>o.autoHeight===true),[$e]),za=b&&i.canListDistinctValues();b&&!za&&De.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 Rt=react.useRef(null);zt(()=>{i.setEnterpriseEdition(Z);},[i,Z]),react.useEffect(()=>{J?.(i);},[i,J]),zt(()=>{let o=Ql();o!==null&&o<datagridCore.DEFAULT_MAX_SCROLL_OFFSET&&i.setMaxScrollOffset(o);let y=ap();y!==null&&i.setMaxCanvasHeight(y);},[i]),zt(()=>{let o=Rt.current;if(!o)return;let y=()=>{i.setViewportSize(o.clientWidth,o.clientHeight),we.current&&ce(datagridCore.showsCards(o.clientWidth,we.current)),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let pe=o.querySelector(".kanuni-datagrid-rows"),ie=o.querySelector(".kanuni-datagrid-canvas");if(pe&&ie){let le=pe.getBoundingClientRect(),Le=ie.getBoundingClientRect();i.setChromeOffsets(le.top-Le.top,Le.bottom-le.bottom);}datagridCore.calibrateMaxScrollOffset(o,i);};if(y(),typeof ResizeObserver>"u")return;let G=new ResizeObserver(y);G.observe(o);let V=o.querySelector(".kanuni-datagrid-canvas");return V&&G.observe(V),()=>G.disconnect()},[i]),zt(()=>{if(!R)return;let o=Rt.current?.querySelector(".kanuni-datagrid-canvas"),y=o?.querySelector(".kanuni-datagrid-header");if(!o||!y)return;let G=null,V=()=>{let ie=y.offsetHeight,le=ie>0?`${ie}px`:null;le!==G&&(G=le,le?o.style.setProperty("--dg-header-actual",le):o.style.removeProperty("--dg-header-actual"));};V();let pe=typeof ResizeObserver>"u"?null:new ResizeObserver(V);return pe?.observe(y),()=>{pe?.disconnect(),o.style.removeProperty("--dg-header-actual");}},[i,R]),zt(()=>{if(!In)return;let o=Rt.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let y=i.getVirtualWindow(),G=i.getRows(),V=new Map(i.getMeasuredRowHeights()),pe=false;for(let ie=y.rows.start;ie<y.rows.end;ie++){let le=G[ie];if(!le||le.kind!=="data")continue;let Le=o.querySelector(`[data-row-key="${CSS.escape(String(le.key))}"]`);if(!Le)continue;let Me=Le.getBoundingClientRect().height;Me>0&&V.get(le.key)!==Me&&(V.set(le.key,Me),pe=true);}pe&&i.setMeasuredRowHeights(V);}),react.useEffect(()=>{if(In)return i.events.on("columnStateChanged",()=>{i.clearMeasuredRowHeights();})},[i,In]),react.useEffect(()=>i.events.on("scrollRequested",o=>{let y=Rt.current;if(!y)return;o.scrollTop!==void 0&&(y.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(y.scrollLeft=Zl(o.scrollLeft,y)),i.setScroll(y.scrollTop,_a(y.scrollLeft));let G=o.scrollTop;G===void 0||Math.abs(y.scrollTop-G)<=1||setTimeout(()=>{let V=Rt.current;!V||Math.abs(V.scrollTop-G)<=1||(V.scrollTop=G,i.setScroll(V.scrollTop,_a(V.scrollLeft)));},0);}),[i]);let Ya=Wr(i,e.alignedGrids,Rt),os=react.useCallback(o=>{let y=o.currentTarget;i.setScroll(y.scrollTop,_a(y.scrollLeft)),Ya.syncScroll(y.scrollLeft);},[i,Ya]),rs=react.useCallback((o,y)=>i.toggleSort(o,y),[i]);Pa(i,S);let ln=Ia(i,pt);react.useEffect(()=>{U!=null&&i.getFocusedRowKey()!==U&&i.focusRow(U);},[i,U]),react.useEffect(()=>{if(me)return i.events.on("focusedRowChanged",o=>me({rowKey:o.rowKey,row:o.row}))},[i,me]);let[Vo,as]=react.useState(null);react.useEffect(()=>i.events.on("overlayChanged",o=>{as(o.manual?o.overlay:null);}),[i]);let is=react.useCallback(o=>{let y=i.getDataRowNode(o);if(y)return y;if(o==="")return;let G=Number(o);return Number.isNaN(G)?void 0:i.getDataRowNode(G)},[i]),ct=Z?e.notes:void 0;!Z&&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 eo=!!ct?.onChange&&ct.menu!==false,to=react.useCallback((o,y,G)=>ct?ct.get({rowKey:o,columnId:y,row:G})??null:null,[ct]),qa=Fa({rootRef:it,columnModel:i.getColumnModel(),getRowNode:is,getNote:ct?to:void 0,config:p,controller:i,gridId:De.gridId}),[Xa,ls]=react.useState(0);react.useEffect(()=>{let o=new Set,y=[i.events.on("cellsFlashed",({rowKeys:G,columnIds:V,duration:pe})=>{let ie=it.current;if(!ie)return;let le=G.length?G.map(Oe=>`[data-row-key="${CSS.escape(String(Oe))}"]`).join(","):".kanuni-datagrid-row",Le=V.length?V.map(Oe=>`[data-column-id="${CSS.escape(Oe)}"]`).join(","):"[data-column-id]",Me=[];ie.querySelectorAll(le).forEach(Oe=>{Oe.querySelectorAll(Le).forEach(tt=>Me.push(tt));});for(let Oe of Me)Oe.classList.remove("kanuni-datagrid-cell--flash");ie.offsetWidth;for(let Oe of Me)Oe.classList.add("kanuni-datagrid-cell--flash");let Ve=setTimeout(()=>{for(let Oe of Me)Oe.classList.remove("kanuni-datagrid-cell--flash");o.delete(Ve);},pe);o.add(Ve);}),i.events.on("cellsRefreshed",({revision:G})=>ls(G))];return ()=>{y.forEach(G=>G()),o.forEach(clearTimeout);}},[i]);let ss=react.useCallback((o,y)=>i.moveColumn(o,y),[i]),ds=react.useCallback((o,y,G)=>i.setColumnWidth(o,y,G??true),[i]),Uo=react.useCallback(o=>{if(!it.current)return;let y=Oo(it.current,o);y!==null&&i.setColumnWidth(o,y);},[i]),zo=react.useCallback(()=>{let o=it.current;if(o)for(let y of i.getColumnStates()){if(!y.visible||y.flex)continue;let G=Oo(o,y.id);G!==null&&i.setColumnWidth(y.id,G);}},[i]),Yo=react.useRef(null),[no]=react.useState(()=>new datagridCore.RowMotion),Ja=e.animateRows===true;react.useEffect(()=>{i.setAnimateRows(Ja);},[i,Ja]),react.useEffect(()=>{let o=()=>{i.getAnimateRows()&&no.capture(Yo.current);},y=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(G=>i.events.on(G,o));return ()=>{y.forEach(G=>G()),no.dispose();}},[i,no]),zt(()=>{i.getAnimateRows()&&no.play(Yo.current);}),react.useEffect(()=>{if(q!=="fitGrid")return;let o=()=>i.sizeColumnsToFit();return o(),i.events.on("gridSizeChanged",o)},[i,q]);let qo=react.useRef(null);zt(()=>{if(q!=="fitCells"){qo.current=null;return}qo.current!==i&&it.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(qo.current=i,zo());});let[Xo,ja]=react.useState({}),[Jo,Za]=react.useState({}),sn=react.useRef(Jo);sn.current=Jo;let Qa=react.useRef(Xo);Qa.current=Xo;let ei=e.filterDebounce??(i.isRemote()?200:0),jo=react.useRef(false),oo=react.useMemo(()=>datagridCore.datePeriodLabels(t),[t]),Zo=react.useRef(oo);Zo.current=oo;let us=react.useMemo(()=>datagridCore.periodSuggestionList(oo),[oo]),dn=react.useCallback((o,y)=>{let G=i.getColumnModel(),V=G.getDataType(o),pe=datagridCore.findCustomFilterOperator(G.getDef(o),sn.current[o]??"");jo.current=true;try{i.setColumnFilter(o,pe?datagridCore.parseCustomFilterInput(o,y,pe):datagridCore.parseFilterInput(o,y,V,Zo.current),datagridCore.FILTER_PART_ROW);}finally{jo.current=false;}},[i]),Ct=react.useMemo(()=>datagridCore.createDebouncedCommit(ei),[ei]);react.useEffect(()=>()=>Ct.cancelAll(),[Ct]);let cs=react.useCallback((o,y)=>{ja(G=>({...G,[o]:y})),Ct.schedule(o,()=>dn(o,y));},[dn,Ct]),ms=react.useCallback((o,y)=>{sn.current={...sn.current,[o]:y},Za(sn.current),Ct.cancel(o),dn(o,Qa.current[o]??"");},[dn,Ct]),ps=react.useCallback(o=>{if(i.getColumnModel().getDef(o)?.renderFilter)return jsxRuntime.jsx(fa,{controller:i,columnId:o,surface:"row"})},[i]),fs=react.useCallback((o,y)=>{Ct.cancel(o),dn(o,y);},[dn,Ct]);react.useEffect(()=>i.events.on("filterChanged",()=>{if(jo.current)return;let o=i.getColumnModel();Za(y=>{let G=null;for(let V of o.getOrder()){let pe=o.getDef(V);if(!pe?.filterOperators?.length||Ct.isPending(V))continue;let ie=i.getColumnFilter(V,datagridCore.FILTER_PART_ROW),le=y[V]??"",Le=le;ie?Le=datagridCore.customFilterInputFromNode(ie,pe)?.operatorId??"":datagridCore.findCustomFilterOperator(pe,le)?.operandType==="none"&&(Le=""),Le!==le&&(G??={...y},G[V]=Le);}return G&&(sn.current=G),G??y}),ja(y=>aa(y,{isPending:G=>Ct.isPending(G),textFor:G=>{let V=i.getColumnFilter(G,datagridCore.FILTER_PART_ROW);if(!V)return "";let pe=datagridCore.customFilterInputFromNode(V,o.getDef(G));return pe?pe.text:!datagridCore.isFilterGroup(V)&&!datagridCore.isBuiltInFilterOperator(V.operator)?null:datagridCore.filterInputFromNode(G,V,o.getDataType(G),Zo.current)}},o.getOrder()));}),[i,Ct]);let[We,kt]=react.useState(null),Yt=react.useRef(null);react.useEffect(()=>{!We&&Yt.current&&(Yt.current.dispose(),Yt.current=null);},[We]);let un=react.useRef(0),[cn,Qo]=react.useState(null),er=react.useRef(null),St=react.useCallback(()=>{let o=document.activeElement instanceof HTMLElement?document.activeElement:null;o?.closest(".kanuni-datagrid-portal")||(er.current={el:o,columnId:o?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??null});},[]),gs=react.useCallback((o,y)=>{St();let G=y.getBoundingClientRect(),V=i.getColumnModel().getDef(o),pe={left:G.left,top:G.bottom+2},ie=V?.headerName??o;if(V?.renderFilter){++un.current,kt(null),Qo({columnId:o,label:ie,anchor:pe});return}Qo(null);let le=i.getColumnFilter(o,datagridCore.FILTER_PART_SET)??i.getColumnFilter(o,datagridCore.FILTER_PART_DEFAULT);if(!i.isRemote()){let Ve=++un.current;kt({columnId:o,label:ie,entries:[],selected:null,anchor:pe,loading:true}),i.getDistinctValueSetAsync(o).then(({entries:Oe,truncated:tt})=>{un.current===Ve&&kt(fo=>fo&&fo.columnId===o?{...fo,entries:Oe,truncated:tt,capped:tt,selected:datagridCore.selectedLabelsFromFilter(le,Oe),loading:false}:fo);});return}let Le=++un.current,Me=i.openRemoteDistinct(o,Tn);if(Me){Yt.current?.dispose(),Yt.current=Me,kt({columnId:o,label:ie,entries:[],selected:null,anchor:pe,loading:true,pager:Me}),Me.start().then(Ve=>{if(un.current!==Le){Me.dispose();return}if(Ve.kind==="paged"){kt(tt=>tt&&tt.columnId===o?{...tt,loading:false}:tt);return}Me.dispose(),Yt.current===Me&&(Yt.current=null);let Oe=i.sortDistinctEntries(Ve.values);kt(tt=>tt&&tt.columnId===o?{...tt,pager:void 0,entries:Oe,selected:datagridCore.selectedLabelsFromFilter(le,Oe),loading:false}:tt);});return}kt({columnId:o,label:ie,entries:[],selected:null,anchor:pe,loading:true}),i.getDistinctValuesAsync(o).then(Ve=>{un.current===Le&&kt(Oe=>Oe&&Oe.columnId===o?{...Oe,entries:Ve,selected:datagridCore.selectedLabelsFromFilter(le,Ve),loading:false}:Oe);});},[i,St]),ws=react.useCallback(o=>{We&&(i.setColumnFilter(We.columnId,o,datagridCore.FILTER_PART_SET),kt(null));},[i,We]),hs=Object.keys(i.getColumnStates().reduce((o,y)=>(i.getColumnFilter(y.id)&&(o[y.id]=true),o),{})),mn=i.getSelectionMode(),Qe=mn!=="none"&&(De.selection?.checkboxColumn??false),ti=(De.selection?.rowClick??(Qe?"toggle":"replace"))==="toggle",bs=react.useCallback((o,y)=>{i.handleRowClick(o.key,{ctrlKey:y.ctrlKey||ti&&!y.shiftKey,metaKey:y.metaKey,shiftKey:y.shiftKey});},[i,ti]),ys=react.useCallback((o,y)=>i.focusCell(o.key,y),[i]),Rs=react.useCallback(o=>i.toggleRow(o.key),[i]),[pn,tr]=react.useState(null),Cs=react.useCallback(()=>tr(null),[]),[Fn,nr]=react.useState(null),ni=react.useCallback((o,y)=>{let V=(it.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(y)}"]`)??it.current)?.getBoundingClientRect();return {left:V?.left??0,top:(V?.bottom??0)+2}},[]),ks=react.useCallback(o=>{let y=Fn;nr(null),!(!y||!ct?.onChange)&&ct.onChange({rowKey:y.rowKey,columnId:y.columnId,row:y.row,text:o});},[Fn,ct]),oi=react.useCallback((o,y)=>{if(!ct?.onChange||ct.menu===false)return [];let G=o.columnId;if(!G)return [];let V=i.getRowKey(o.row),pe=to(V,G,o.row),ie=()=>nr({rowKey:V,columnId:G,row:o.row,text:pe??"",anchor:ni(V,G)}),le=[];return y&&le.push({separator:true,id:"__note-sep"}),le.push({id:"__note-edit",label:pe?t.editNote:t.addNote,onSelect:ie}),pe&&le.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>ct.onChange?.({rowKey:V,columnId:G,row:o.row,text:null})}),le},[ct,i,to,ni,t]),[ro,ao]=react.useState(null),or=react.useRef({x:0,y:0}),ri=react.useCallback(o=>Da(i,t,Xe,o,y=>{ao({message:y,...or.current}),console.error("[datagrid] export failed:",y);}),[i,t,Xe]),io=react.useCallback((o,y,G,V,pe)=>{if(G.kind!=="data")return;St();let ie={row:G.data,node:G,rowIndex:V,columnId:pe,selectedKeys:i.getSelectedKeys()},le=(typeof He=="function"?He(ie):He)??[],Le=j.editRowMenuItem(G.key),Me=Le?[...le,...le.length>0?[{id:"dg-sep-edit",separator:true}]:[],Le]:le,Ve=oi(ie,Me.length>0),Oe=Sa(i,t,G.key,Me.length+Ve.length>0),tt=[...Me,...Ve,...Oe,...ri(Me.length+Ve.length+Oe.length>0)];tt.length!==0&&(or.current={x:o,y},ao(null),tr({x:o,y,items:tt,context:ie}));},[He,i,t,oi,ri,St,j.editRowMenuItem]),ai=react.useCallback((o,y,G)=>{let V=Sa(i,t,o,false);if(V.length===0)return;G.preventDefault(),St();let pe={row:y,node:{kind:"data",key:o,sourceIndex:-1,data:y},rowIndex:-1,columnId:G.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:i.getSelectedKeys()};or.current={x:G.clientX,y:G.clientY},ao(null),tr({x:G.clientX,y:G.clientY,items:V,context:pe});},[i,t,St]),ii=react.useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),fn=react.useCallback((o,y,G,V,pe)=>{let ie=V??-1;o&&i.notifyRow(o,G,ie);let le=ii(pe);le!==null&&i.notifyCell(y,G,ie,le);},[i,ii]),vs=react.useCallback((o,y,G)=>{Ne?.(o),fn("rowClicked","cellClicked",o,y,G);},[Ne,fn]),Ts=react.useCallback((o,y,G)=>{w?.(o),fn("rowDoubleClicked","cellDoubleClicked",o,y,G);},[w,fn]),xs=react.useCallback((o,y,G)=>{if(fn(null,"cellContextMenu",o,y,G),o.kind!=="data"||!He&&!eo&&Xe===false&&!i.isRowPinningEnabled()&&j.editRowMenuItem(o.key)===null)return;G.preventDefault(),i.isRowSelected(o.key)||i.handleRowClick(o.key,{});let V=G.target.closest("[data-column-id]")?.dataset.columnId??null;io(G.clientX,G.clientY,o,y,V);},[He,eo,Xe,i,io,fn,j.editRowMenuItem]),[Ds,Ss]=react.useState(null),[Es,Gs]=react.useState(null),[rr,Ms]=react.useState(()=>De.grouping?.groupSummaries??false),[qt,ar]=react.useState(null),[li,ir]=react.useState(null),lr=pn!==null||qt!==null||We!==null||cn!==null,si=react.useRef(false);react.useEffect(()=>{if(si.current&&!lr){let o=er.current;er.current=null;let y=o?.el?.isConnected?o.el:o?.columnId?it.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,G=!document.activeElement||document.activeElement===document.body;y&&G&&y.focus({preventScroll:true});}si.current=lr;},[lr]);let Ns=react.useCallback(()=>{i.getSelectedCount()>0?i.clearSelection():i.selectAll();},[i]),sr=Qe?i.getSelectableCount():m,dr=i.getSelectedCount(),Ps=sr>0&&dr>=sr?"all":dr>0?"some":"none",Ls=react.useCallback(o=>{let y=o.target;if(y.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let G=y.tagName;if(G==="INPUT"||G==="TEXTAREA"||G==="SELECT"||y.isContentEditable||j.handleKeyDown(o))return;if((He||eo||Xe!==false||i.isRowPinningEnabled())&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let ie=i.getFocus(),le=ie?je.findIndex(Me=>Me.key===ie.rowKey):-1,Le=le>=0?je[le]:void 0;if(Le){let Ve=Rt.current?.querySelector(`[data-row-key="${CSS.escape(String(Le.key))}"]`)?.getBoundingClientRect();io(Ve?Ve.left+16:0,Ve?Ve.bottom:0,Le,le,ie?.columnId??null),o.preventDefault();}return}let V=datagridCore.resolveGridCommand({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!V)return;if(V.type==="copy"){Sn(i);return}if(V.type==="activate"){let ie=i.getFocus(),le=ie?je.find(Le=>Le.key===ie.rowKey):void 0;le&&w?.(le),V.preventDefault&&o.preventDefault();return}i.executeCommand(V),V.preventDefault&&o.preventDefault();let pe=i.getFocusIndices();if(pe&&Rt.current){let le=i.getColumnLayout().center.findIndex(Me=>Me.state.id===i.getFocus()?.columnId),Le=i.ensureVisible(pe.rowIndex,le===-1?void 0:le);if(Le){let Me=Rt.current;Le.scrollTop!==void 0&&(Me.scrollTop=Le.scrollTop),Le.scrollLeft!==void 0&&(Me.scrollLeft=Zl(Le.scrollLeft,Me)),i.setScroll(Me.scrollTop,Me.scrollLeft);}}},[i,je,w,He,eo,Xe,io,j.handleKeyDown]),Xt=react.useMemo(()=>datagridCore.bandDepth([...Ie.left,...Ie.center,...Ie.right]),[Ie]),gn=vn,ur=(C?2:1)+Xt,di=i.getPinnedRows("top"),ui=i.getPinnedRows("bottom"),cr=[...K??[],...di.map(o=>o.row)],mr=[...Y??[],...ui.map(o=>o.row)],Is=[...(K??[]).map(()=>null),...di.map(o=>o.key)],Fs=[...(Y??[]).map(()=>null),...ui.map(o=>o.key)],lo=cr.length,Hs=mr.length,so=ur+lo,uo=Ds??De.grouping?.panel??c,ci=i.getGroupLevels(),As=react.useCallback(o=>i.groupBy(o.slice(0,Ye)),[i,Ye]),Os=react.useCallback(o=>i.toggleGroup(o),[i]),mi=react.useCallback(o=>i.toggleGroupSelection(o),[i]),Ks=i.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),ft=i.hasMasterDetail()&&!!Ge,et=e.rowNumbers??false,wt=!!O?.icons&&!te,Bs=et&&i.isPaginated()?i.getPage()*i.getPageSize():0;react.useEffect(()=>{i.setLeadWidth(Jr(Qe,ft,et,wt));},[i,Qe,ft,et,wt]);let _s=react.useCallback(o=>i.toggleDetail(o),[i]),$s=react.useCallback(o=>i.toggleTreeRow(o),[i]),pi=i.getSummaryDefs(),Ws=i.getSummaries(),wn=Es??xe??pi.length>0,Hn=wn&&de==="top",pr=C?2:1,fi=ue.grouping?.groupSummaries&&rr?De.summaries:void 0,gi=i.getGroupDisplay(),wi=react.useCallback(()=>{Ms(o=>(i.setGroupSummaries(!o),!o));},[i]),Vs=react.useCallback((o,y)=>{if(!se)return;y.preventDefault();let G=i.getColumnModel().getDef(o),V=i.getColumnSummary(o),pe={columnId:o,headerName:G?.headerName??G?.field??o},ie=[{id:"none",label:t.noTotal,disabled:V===null,onSelect:()=>i.setColumnSummary(o,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(G?.dataType).map(le=>({id:le,label:datagridCore.summaryTypeLabels(t)[le],disabled:V?.type===le,onSelect:()=>i.setColumnSummary(o,le)}))];St(),ar({x:y.clientX,y:y.clientY,items:ie,context:pe});},[i,se,St]),Us=react.useCallback((o,y)=>{if(L===false)return;y.preventDefault();let G=i.getColumnModel().getDef(o),V={columnId:o,headerName:G?.headerName??G?.field??o},pe=Aa(V,{controller:i,groupPanelVisible:uo,footerVisible:wn,groupFootersAvailable:Z&&i.getGroupLevels().length>0,groupFootersVisible:rr,onToggleGroupPanel:()=>Ss(!uo),onToggleFooter:()=>Gs(!wn),onToggleGroupFooters:wi,onOpenFieldChooser:()=>ir({left:y.clientX,top:y.clientY}),onBestFit:Uo,onBestFitAll:zo,maxGroupLevels:Ye,labels:Bo(t)}),ie=typeof L=="function"?L(V,pe):pe;!ie||ie.length===0||(St(),ar({x:y.clientX,y:y.clientY,items:ie,context:V}));},[L,i,uo,wn,Z,rr,wi,Uo,zo,Ye,t,St]),hn=i.getFocus(),zs=hn?`${e.gridId}-cell-${String(hn.rowKey)}-${hn.columnId}`:void 0,fr=i.getSelectedCount(),Ys=react.useMemo(()=>{let o=[datagridCore.fillText(t.announceRows,{n:m})];if(ut.length>0){let y=ut.map(G=>{let V=i.getColumnModel().getDef(G.columnId),pe=String(V?.headerName??V?.field??G.columnId),ie=G.direction==="desc"?t.announceDescending:t.announceAscending;return `${pe} ${ie}`}).join(", ");o.push(datagridCore.fillText(t.announceSortedBy,{columns:y}));}return fr>0&&o.push(datagridCore.fillText(t.announceSelected,{n:fr})),o.join(", ")},[i,m,ut,fr,t]),{centerColumns:Ht,centerIndices:co,stickyInsets:bn,leadingSpacer:At,trailingSpacer:Ot,rowStart:qs,rowEnd:hi}=dl(Ie,Ln),mo=i.getColumnModel(),yn=qs,Xs=o=>{if(In)return;let y=i.getRowHeightAt(o);return y===u?void 0:y},Js=Array.from(je.slice(yn,hi)),js=react.useMemo(()=>!et||i.getGroupLevels().length===0&&!i.hasMasterDetail()&&!i.hasTreePathRows()?null:ul(je),[et,i,je]),Zs=i.hasCellSpans(),bi=react.useRef({start:0,end:0});bi.current={start:yn,end:hi-1};let yi=react.useRef(Ln.columns);yi.current=Ln.columns;let Qs=react.useCallback(o=>i.planRowColSpans(o,yi.current),[i]),ed=datagridCore.hasColSpans(Ie),td=react.useCallback((o,y)=>{let G=i.getCellSpans(y);if(G.length===0)return null;let{start:V,end:pe}=bi.current,ie=datagridCore.spanRoleAt(G,o,V,pe);if(!ie)return null;if(ie.role==="covered")return {kind:"covered"};let le=i.getRowOffset(ie.drawStart);return {kind:"draw",height:i.getRowOffset(ie.drawEnd)+i.getRowHeightAt(ie.drawEnd)-le,offset:0}},[i]),Ri=i.getFindNeedle()||(Be?datagridCore.normalizeSearch(i.getSearchText()):""),Ci=i.getFindState(),po=Ci.count>0?`${i.getFindNeedle()}\0${Ci.activeIndex}`:"",ki=react.useCallback((o,y)=>i.getFindMatchKind(o,y),[i]),nd={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}},vi={layout:Ie,centerColumns:Ht,leadingSpacer:At,trailingSpacer:Ot,defs:pi,values:Ws,checkboxColumn:Qe,detailColumn:ft,statusColumn:wt,rowNumberColumn:et,onPickSummary:se?Vs:void 0,emptyHint:se?"\xB7":""};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${Ua.active?" kanuni-datagrid-print":""}${te?" kanuni-datagrid-cards":""}${datagridCore.themeClassName(a,Ke,s)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${u}px`,"--dg-grip-inset":`${(et?Rn:0)+(wt?Cn:0)}px`,...r},dir:datagridCore.isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":a,"data-palette":s,"data-auto-height":In?"":void 0,"data-auto-header-height":R?"":void 0,"data-row-session":j.rowSessionAttr,ref:it,children:[j.bar&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:j.bar}),Ze.show&&jsxRuntime.jsx(ya,{controller:i,dark:l,search:Ze.search!==null,searchOptions:Ze.search??void 0,exportMenu:Ze.export,columnChooser:Ze.columns??e.toolbarColumnChooser??true,exportExcel:Z&&$,exportPdf:Z&&W,itemsBefore:N,itemsAfter:g,onOpenColumnChooser:o=>ir(y=>y?null:o)}),uo&&jsxRuntime.jsx(wa,{columns:Ks,levels:ci,onSetLevels:As,maxLevels:Ye,onExpandAll:()=>i.expandAllGroups(),onCollapseAll:()=>i.collapseAllGroups()}),te&&jsxRuntime.jsx(Al,{controller:i,sort:ut,text:t,columns:h?i.getColumnModel().getOrder().filter(o=>{let y=i.getColumnModel();return y.getState(o)?.visible!==false&&y.getDef(o)?.sortable!==false}).map(o=>({id:o,label:i.getColumnModel().getDef(o)?.headerName??o})):[]}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-scroller",ref:Rt,onScroll:os,onKeyDown:Ls,tabIndex:0,role:"grid","aria-rowcount":m+ur+lo+Hs,"aria-colcount":Ie.left.length+Ie.center.length+Ie.right.length+(Qe?1:0)+(ft?1:0)+(et?1:0),"aria-multiselectable":mn==="multiple"||void 0,"aria-activedescendant":zs,"aria-label":e.ariaLabel??e.gridId,children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(Ie.totalWidth||0)+Jr(Qe,ft,et,wt)||"100%"},role:"rowgroup",children:[jsxRuntime.jsx(ta,{layout:Ie,centerColumns:Ht,leadingSpacer:At,trailingSpacer:Ot,depth:Xt,checkboxColumn:Qe,detailColumn:ft,statusColumn:wt,rowNumberColumn:et,rowHeight:gn,bandFold:nd}),jsxRuntime.jsx(oa,{bandOffset:Xt*gn,stickyInsets:bn,layout:Ie,centerColumns:Ht,leadingSpacer:At,trailingSpacer:Ot,sort:ut,sortable:h,onSort:rs,groupLevels:ci,headerFilter:za,filteredColumns:hs,onOpenFilter:gs,filterIconMode:M,checkboxColumn:Qe,detailColumn:ft,statusColumn:wt,rowNumberColumn:et,selectAllState:Ps,selectAllDisabled:sr===0&&dr===0,onToggleSelectAll:Ns,draggable:c,reorderable:v,onReorder:ss,resizable:F,onResize:ds,onAutoFit:Uo,onHeaderContextMenu:L===false?void 0:Us,onHeaderClick:P,getHeaderClassName:ae,renderHeaderLabel:X}),C&&jsxRuntime.jsx(ia,{bandOffset:Xt*gn,stickyInsets:bn,layout:Ie,centerColumns:Ht,leadingSpacer:At,trailingSpacer:Ot,values:Xo,checkboxColumn:Qe,detailColumn:ft,statusColumn:wt,rowNumberColumn:et,onChange:cs,onCommit:fs,periodSuggestions:us,periodListId:`${e.gridId}-filter-periods`,operators:Jo,onOperatorChange:ms,renderCustom:ps}),Hn&&jsxRuntime.jsx(Po,{...vi,position:"top",bandOffset:Xt*gn,headerRowsBetween:pr}),cr.length>0&&jsxRuntime.jsx(Lo,{gridId:e.gridId,side:"top",rows:cr,rowKeys:Is,onUserRowContextMenu:ai,layout:Ie,columnModel:mo,centerColumns:Ht,centerIndices:co,stickyInsets:bn,leadingSpacer:At,trailingSpacer:Ot,checkboxColumn:Qe,detailColumn:ft,statusColumn:wt,rowNumberColumn:et,rowHeight:u,bandOffset:Xt*gn,headerRowsBetween:pr+(Hn?1:0),ariaRowBase:ur}),i.hasStickyGroupHeaders()&&jsxRuntime.jsx(Tl,{controller:i,width:Ie.totalWidth,bandOffset:Xt*gn,headerRowsBetween:pr+(Hn?1:0),belowPinned:lo>0?lo*u+1:0,renderRow:(o,y,G)=>jsxRuntime.jsx(kn,{gridId:e.gridId,node:o,index:y,layout:Ie,columnModel:mo,centerColumns:Ht,centerIndices:co,stickyInsets:bn,leadingSpacer:At,trailingSpacer:Ot,striped:false,selected:false,groupSelection:Qe&&mn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:mi,groupDisplay:gi,focusedColumnId:null,checkboxColumn:Qe,statusColumn:wt,rowNumberColumn:et,rowNumber:null,headerRowCount:so,onToggleGroup:V=>{i.toggleGroup(V),i.scrollToRow(V);},revision:Xa,searchNeedle:Ri,findStamp:po,findKind:po?ki:void 0,summaryDefs:fi,detailColumn:ft,height:G,renderCellContent:Qn,getCellClassName:Pn})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:Ln.rows.totalHeight},onDragOver:ln.bodyHandlers?.onDragOver,onDrop:ln.bodyHandlers?.onDrop,onDragLeave:ln.bodyHandlers?.onDragLeave,children:[jsxRuntime.jsx("div",{ref:Yo,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${Ln.rows.offsetY}px)`},children:Js.map((o,y)=>o?jsxRuntime.jsx(kn,{gridId:e.gridId,node:o,index:yn+y,layout:Ie,columnModel:mo,centerColumns:Ht,centerIndices:co,stickyInsets:bn,leadingSpacer:At,trailingSpacer:Ot,striped:f,selected:i.isRowSelected(o.key),ariaSelectable:mn!=="none",selectable:Qe&&o.kind==="data"?i.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&Qe&&mn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:mi,groupDisplay:gi,focusedColumnId:hn?.rowKey===o.key?hn.columnId:null,rowFocused:z&&hn?.rowKey===o.key,rowDrag:ln.handlers,dropSide:ln.dropAt?.key===o.key?ln.dropAt.side:null,...Se(o),renderRow:te?Nn:d,checkboxColumn:Qe,statusColumn:wt,rowNumberColumn:et,getSpan:Zs?td:void 0,resolveColSpans:ed?Qs:void 0,getNote:ct?to:void 0,rowNumber:et?cl(yn+y,js,Bs):null,headerRowCount:so,onRowClick:vs,onRowMouseDown:mn==="none"?void 0:bs,onRowDoubleClick:Ts,onToggleSelect:Rs,onCellMouseDown:ys,onRowContextMenu:xs,onToggleGroup:Os,onToggleTreeRow:$s,revision:Xa,searchNeedle:Ri,findStamp:po,findKind:po?ki:void 0,summaryDefs:fi,detailColumn:ft,detailExpanded:ft&&i.isDetailExpanded(o.key),onToggleDetail:_s,renderDetail:Ge,renderEditForm:Pe??j.renderEditForm,renderRowMessage:o.kind==="message"?ne:void 0,height:Xs(yn+y),renderCellContent:Qn,getCellClassName:Pn,onCellPointerDown:Re,onCellPointerEnter:Ce,onCellDoubleClick:ns},String(o.key)):(()=>{let G=yn+y,V=i.isRowLoadFailed(G);return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${V?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":G+1+so,"aria-busy":V?void 0:"true",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:V?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-${G}`)})())}),re?.()]}),mr.length>0&&jsxRuntime.jsx(Lo,{gridId:e.gridId,side:"bottom",rows:mr,rowKeys:Fs,onUserRowContextMenu:ai,layout:Ie,columnModel:mo,centerColumns:Ht,centerIndices:co,stickyInsets:bn,leadingSpacer:At,trailingSpacer:Ot,checkboxColumn:Qe,detailColumn:ft,statusColumn:wt,rowNumberColumn:et,rowHeight:u,headerRowsBetween:wn&&!Hn?1:0,ariaRowBase:so+m}),wn&&!Hn&&jsxRuntime.jsx(Po,{...vi,position:"bottom"})]})}),(Vo==="noRows"||Vo===null&&m===0)&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-empty",children:D??t.noData}),j.active&&jsxRuntime.jsx(Kr,{open:j.saveError!==null,title:t.editCannotSave,message:j.saveError?j.saveError.columnId?`${i.getColumnModel().getDef(j.saveError.columnId)?.headerName??j.saveError.columnId}: ${j.saveError.message}`:j.saveError.message:"",confirmLabel:t.ok,dark:l,onConfirm:j.clearSaveError,onCancel:j.clearSaveError}),j.popup&&jsxRuntime.jsx(mt,{dark:l,children:j.popup}),H&&jsxRuntime.jsx(ka,{controller:i,alwaysVisible:H==="always",onOpenBuilder:B,describeOptions:k}),A!==false&&jsxRuntime.jsx(Na,{controller:i,delay:typeof A=="number"?A:void 0,forced:Vo==="loading"}),i.isPaginated()&&jsxRuntime.jsx(Ca,{page:i.getPage(),pageCount:i.getPageCount(),pageSize:i.getPageSize(),pageSizes:De.pagination?.pageSizes,pageButtons:De.pagination?.pageButtons,maxPageButtons:De.pagination?.maxPageButtons,totalRows:m,onPage:o=>i.setPage(o),onNext:()=>i.nextPage(),onPrevious:()=>i.previousPage(),onPageSize:o=>i.setPageSize(o)}),E&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:Ys}),Fn&&jsxRuntime.jsx(Ga,{anchor:Fn.anchor,value:Fn.text,dark:l,onCommit:ks,onCancel:()=>nr(null)}),pn&&jsxRuntime.jsx(Ao,{x:pn.x,y:pn.y,items:pn.items,context:pn.context,dark:l,onClose:Cs}),ro&&jsxRuntime.jsx(mt,{dark:l,children:jsxRuntime.jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:ro.x,top:ro.y},onClick:()=>ao(null),children:ro.message})}),qt&&jsxRuntime.jsx(Ao,{x:qt.x,y:qt.y,items:qt.items,context:qt.context,dark:l,label:`${qt.context.headerName} column`,onClose:()=>ar(null)}),qa&&jsxRuntime.jsx(Ha,{state:qa,dark:l}),li&&jsxRuntime.jsx(Ra,{controller:i,columns:i.getColumnStates(),anchor:li,dark:l,onClose:()=>ir(null)}),cn&&jsxRuntime.jsx(Rl,{controller:i,columnId:cn.columnId,headerLabel:cn.label,anchor:cn.anchor,dark:l,onClose:()=>Qo(null)},cn.columnId),We&&jsxRuntime.jsx(ca,{gridId:e.gridId,columnId:We.columnId,headerLabel:We.label,entries:We.entries,initialSelected:We.selected,anchor:We.anchor,loading:We.loading,truncated:We.truncated,pager:We.pager,onSearch:We.capped&&!i.isRemote()?o=>{let{entries:y,truncated:G}=i.searchDistinctValues(We.columnId,o);kt(V=>V&&V.columnId===We.columnId?{...V,entries:y,truncated:G}:V);}:void 0,dark:l,onApply:ws,onClose:()=>kt(null)},We.columnId)]})}function up({defs:e,values:t,columnModel:n,rowCount:r,rowCountLabel:l}){let a=ve(),s=datagridCore.summaryTypeLabels(a);return e.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]}),e.map(f=>{let D=t[datagridCore.summaryKey(f.columnId,f.type)],h=n.getDef(f.columnId),R=datagridCore.formatSummaryValue(f,D,h);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-label",children:[datagridCore.summaryLabel(f,s)," ",h?.headerName??f.columnId,":"]}),jsxRuntime.jsx("strong",{children:R})]},datagridCore.summaryKey(f.columnId,f.type))})]})}var cp=react.memo(up);function mp({icon:e,label:t,shortcut:n,disabledReason:r,showLabel:l=false,onClick:a,testId:s}){let f=r!==void 0,D=n?`${t} (${n})`:t;return jsxRuntime.jsxs("button",{type:"button",className:`kanuni-datagrid-app-button${l?"":" kanuni-datagrid-toolbar-icon-button"}`,"aria-label":l?void 0:t,"aria-keyshortcuts":n,"aria-disabled":f||void 0,"aria-description":f?r:void 0,title:f?`${D} \u2014 ${r}`:D,"data-testid":s,onClick:h=>{if(f){h.preventDefault();return}a?.();},children:[e,l&&jsxRuntime.jsx("span",{children:t})]})}function bp(e,t){return Va(e,t,t?.source,(n,r)=>n.computeChartData(r))}function yp(e,t){return Va(e,t,t?.source,(n,r)=>n.computeChartXYData(r))}function Rp(e,t){return Va(e,t,t?.source,(n,r)=>n.computeChartBoxData(r))}function Va(e,t,n,r){let[l,a]=react.useState(null);return react.useEffect(()=>{if(!e||!t){a(null);return}let s=n??"view",f=datagridCore.chartNeedsOrder(t),D=false,h=0,R=false,C=false,b=null,M=()=>{let A=++h;r(e,t).then(E=>{!D&&A===h&&a(E);},()=>{});},v=(A=false)=>{C||=A,!R&&(R=true,queueMicrotask(()=>{if(R=false,D)return;let E=e.chartBasis(s,f);!C&&E===b||(C=false,b=E,M());}));};b=e.chartBasis(s,f),M();let F=[e.events.on("contentReady",()=>v()),e.events.on("rowsChanged",()=>v()),e.events.on("dataUpdated",()=>v()),...s==="selection"?[e.events.on("selectionChanged",()=>v(true))]:[]];return ()=>{D=true,h++,F.forEach(A=>A());}},[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=vn;exports.DEFAULT_EDIT_FORM_LABELS=nu;exports.DEFAULT_HEADER_MENU_LABELS=zl;exports.DataGrid=ip;exports.GridCellEditor=Ar;exports.GridColumnChooser=Ra;exports.GridContextMenu=Ao;exports.GridDateEditor=Zt;exports.GridDialog=Kr;exports.GridEditForm=Mr;exports.GridFilterPanel=ka;exports.GridFilterRow=ia;exports.GridFooterRow=Po;exports.GridGroupPanel=wa;exports.GridHeader=oa;exports.GridHeaderBands=ta;exports.GridHeaderFilterPopup=ca;exports.GridLoadingOverlay=Na;exports.GridLookupEditor=jt;exports.GridNoteEditor=Ga;exports.GridPager=Ca;exports.GridPinnedRows=Lo;exports.GridPopupPanel=on;exports.GridPortal=mt;exports.GridRow=kn;exports.GridRowEditor=Nr;exports.GridSummaryBar=cp;exports.GridSurfaceProvider=Tr;exports.GridTextProvider=hr;exports.GridToolbar=ya;exports.GridToolbarButton=mp;exports.GridTooltip=Ha;exports.PRINT_MAX_ROWS=Br;exports.ROW_DRAG_MIME=Ko;exports.SHORTCUT_COPY=Nl;exports.SHORTCUT_CUT=am;exports.SHORTCUT_PASTE=im;exports.ToolbarIcon=ha;exports.buildCellMenuItems=Da;exports.buildHeaderMenu=Aa;exports.copyToClipboard=Sn;exports.editFormColumnIds=ji;exports.editFormLabels=Gr;exports.headerMenuLabels=Bo;exports.matchOptions=Ad;exports.measureBestFitWidth=Oo;exports.reconcileFilterInputs=aa;exports.runGridExport=Yn;exports.useAlignedGrids=Wr;exports.useAnchoredPopup=tn;exports.useCellTooltip=Fa;exports.useDataGrid=wr;exports.useEditModes=Fr;exports.useGridChartBoxData=Rp;exports.useGridChartData=bp;exports.useGridChartXYData=yp;exports.useGridEditing=Rr;exports.useGridPortalTarget=Pt;exports.useGridSurfaceClass=Tt;exports.useGridText=ve;exports.usePrintLayout=_r;exports.useRowDrag=Ia;exports.useStateStoring=Pa;exports.writeClipboardText=lm;
1
+ 'use strict';var react=require('react'),datagridCore=require('@kanunilabs/datagrid-core'),jsxRuntime=require('react/jsx-runtime'),reactDom=require('react-dom');var md=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],Pi=new WeakMap;function br(e){let t=Pi.get(e);if(!t){let n={version:0,listeners:new Set},r=()=>{n.version++,n.listeners.forEach(l=>l());};for(let l of md)e.events.on(l,r);Pi.set(e,n),t=n;}return t}function yr(e){let t=e.sorting?.postSort,n=react.useRef(t);react.useEffect(()=>{n.current=t;},[t]);let[r]=react.useState(()=>((B,N)=>n.current?.(B,N))),l=()=>{let B=new datagridCore.DataGridController(t?{...e,sorting:{...e.sorting,postSort:r}}:e);return br(B),B},[a,s]=react.useState(l);react.useEffect(()=>{if(a.isDisposed()){s(l());return}return ()=>a.dispose()},[a]);let p=react.useCallback(B=>{let{listeners:N}=br(a);return N.add(B),()=>{N.delete(B);}},[a]),T=react.useCallback(()=>br(a).version,[a]);react.useSyncExternalStore(p,T,T);let{dataSource:w,columns:v}=e,R=react.useRef(true);react.useEffect(()=>{if(R.current){R.current=false;return}Array.isArray(w)&&a.setData(w);},[a,w]);let M=react.useRef(true);react.useEffect(()=>{if(M.current){M.current=false;return}a.setColumns(v);},[a,v]);let f=e.pagination?e.pagination.enabled!==false:false;react.useEffect(()=>{a.setPaginationEnabled(f);},[a,f]);let S=e.rowHeight,A=react.useRef(true);react.useEffect(()=>{if(A.current){A.current=false;return}S!==void 0&&a.setRowHeight(S);},[a,S]);let P=e.selection?.mode??"none";react.useEffect(()=>{a.setSelectionMode(P);},[a,P]);let y=e.rowPinning;react.useEffect(()=>{a.setRowPinning(y);},[a,y]);let c=e.selection?.isRowSelectable,D=react.useRef(true);react.useEffect(()=>{if(D.current){D.current=false;return}a.setRowSelectable(c??null);},[a,c]);let L=t!==void 0,W=react.useRef(true);react.useEffect(()=>{if(W.current){W.current=false;return}a.setPostSort(L?r:null);},[a,L,r]);let V=e.grouping?.groupBy??null,H=JSON.stringify(V==null?[]:typeof V=="string"?[V]:V),C=react.useRef(true);return react.useEffect(()=>{if(C.current){C.current=false;return}a.groupBy(JSON.parse(H));},[a,H]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var Ii=react.createContext(datagridCore.getGridDictionary("en"));function Rr({locale:e,messages:t,children:n}){let r=react.useMemo(()=>datagridCore.getGridDictionary(e,t),[e,t]);return jsxRuntime.jsx(Ii.Provider,{value:r,children:n})}function ve(){return react.useContext(Ii)}var ho=new WeakMap,Md=1e5,Nd=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function Pd(e){let{controller:t,canEditColumn:n}=e;return {controller:t,mode:e.mode??"cell",onSave:e.onSave,editOnKeyPress:e.editOnKeyPress,focusCellOnTab:e.focusCellOnTab,focusCellOnCycle:e.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,enabled:e.enabled,savedDuration:e.savedDuration,range:false,history:false,canEditColumn:r=>{let l=t?.getColumnModel().getDef(r);return l?.lookup||l?.renderEditor||l?.allowFormulas===true?false:n?.(r)??true}}}function vr(e){let t=e.controller?.isEnterpriseEdition()??false;return Ld(t?e:Pd(e))}function Ld({controller:e,mode:t="batch",rules:n,onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:p,onInitNewRow:T,onRowInserted:w,onRowUpdated:v,onRowRemoved:R,editOnKeyPress:M,confirmDelete:f,confirmDeleteMessage:S,insertKey:A,appendOnArrowDown:P,newRowPosition:y,focusCellOnTab:c,focusCellOnCycle:D,keepEditingOnTab:L,enabled:W=true,savedDuration:V,range:H=true,history:C=true,canEditColumn:B}){let N=ve(),[h,d]=react.useState(0),E=react.useCallback(()=>d(u=>u+1),[]),F=react.useMemo(()=>new datagridCore.RangeSelectionEngine,[]),q=react.useMemo(()=>({start(u,m){F.start(u,m),E();},add(u,m){F.add(u,m),E();},extend(u,m){F.extend(u,m)&&E();},finish(){F.finish(),E(),e?.notifyViewStateChanged();},clear(){F.clear()&&(E(),e?.notifyViewStateChanged());},contains:(u,m)=>F.contains(u,m),isAnchor:(u,m)=>F.isAnchor(u,m),getRange:()=>F.getRange(),getBounds:()=>F.getBounds(),toTsv:u=>F.toTsv(u),selectColumn(u,m,x){return F.selectColumn(u,m,x)?(E(),e?.notifyViewStateChanged(),true):false},fullColumns:u=>F.fullColumns(u)}),[F,E,e]),z=react.useRef(null);react.useEffect(()=>{if(!(!e||!H))return e.registerViewStatePart("ranges",{session:true,get:()=>datagridCore.rangesToSaved(F.getRanges(),e.getVisualColumnIds()),apply:u=>{F.setRanges(datagridCore.rangesFromSaved(u,e.getVisualColumnIds())),E();}})},[e,H,F,E]);let[fe,Te]=react.useState(null),se=react.useRef({onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:p,onInitNewRow:T,onRowInserted:w,onRowUpdated:v,onRowRemoved:R,editOnKeyPress:M,confirmDelete:f,confirmDeleteMessage:S,insertKey:A,appendOnArrowDown:P,newRowPosition:y,focusCellOnTab:c,focusCellOnCycle:D,keepEditingOnTab:L,canEditColumn:B});se.current={onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:p,onInitNewRow:T,onRowInserted:w,onRowUpdated:v,onRowRemoved:R,editOnKeyPress:M,confirmDelete:f,confirmDeleteMessage:S,insertKey:A,appendOnArrowDown:P,newRowPosition:y,focusCellOnTab:c,focusCellOnCycle:D,keepEditingOnTab:L,canEditColumn:B};let Fe=react.useRef(null),b=react.useMemo(()=>{if(!e||!W)return null;let u=m=>e.getRowByKey(m);return new datagridCore.EditingEngine({mode:t,rules:n,messages:N,onChange:E,onAutoSaveFailed:m=>Fe.current?.(m),onCellValueChanged:m=>e.notifyCellValueChanged(m),onEditingStarted:m=>e.notifyEditingStarted(m),onEditingStopped:m=>e.notifyEditingStopped(m),onRowEditingStarted:m=>e.notifyRowEditingStarted(m),onRowEditingStopped:m=>e.notifyRowEditingStopped(m),onHistoryStarted:({kind:m,label:x})=>e.notifyHistoryStarted(m,x),onHistoryEnded:({kind:m,...x})=>e.notifyHistoryEnded(m,x),readValue:(m,x)=>{let _=u(m);return _?e.getColumnModel().getStoredValue(_,x):void 0},formatForEdit:(m,x,_)=>e.formatCellForEdit(x,_),parseFromEdit:(m,x,_)=>e.parseCellFromEdit(x,_,m),readRow:u,editableColumns:m=>{let x=e.getColumnLayout(),_=u(m);return [...x.left,...x.center,...x.right].map(Q=>Q.state.id).filter(Q=>{if(e.getColumnModel().getDef(Q)?.editable===false||se.current.canEditColumn&&!se.current.canEditColumn(Q))return false;let ne=se.current.allowUpdating;return ne===void 0?true:typeof ne=="function"?ne(_,Q):ne})},isColumnEditable:m=>e.getColumnModel().getDef(m)?.editable!==false&&(se.current.canEditColumn?.(m)??true),applyValue:(m,x,_)=>e.writeCellValue(m,x,_),storedValue:(m,x,_)=>e.valueAfterWrite(m,x,_),insertRow:(m,x,_,Q)=>{let ne=e.getRowKeyField(),pe={...x};ne&&(pe[ne]=m),e.applyTransaction({add:[pe],addPosition:_,addBeforeKey:Q});},dropRow:m=>e.applyTransaction({remove:[m]}),replaceRow:(m,x)=>{let _=e.getRowKey(x);return _===m?(e.applyTransaction({update:[x]}),_):(e.applyTransaction({remove:[m],add:[x]}),_)},allowAdding:()=>se.current.allowAdding??false,allowUpdating:(m,x)=>{let _=se.current.allowUpdating;return _===void 0?true:typeof _=="function"?_(m,x):_},allowDeleting:m=>{let x=se.current.allowDeleting;return x===void 0?false:typeof x=="function"?x(m):x},onInitNewRow:m=>se.current.onInitNewRow?.(m),get newRowPosition(){return se.current.newRowPosition},onRowInserted:(m,x)=>se.current.onRowInserted?.(m,x),onRowUpdated:(m,x,_)=>se.current.onRowUpdated?.(m,x,_),onRowRemoved:(m,x)=>se.current.onRowRemoved?.(m,x),crud:{get insert(){let m=se.current.crud?.insert;return m&&(x=>m(x))},get update(){let m=se.current.crud?.update;return m&&((x,_,Q)=>m(x,_,Q))},get remove(){let m=se.current.crud?.remove;return m&&((x,_)=>m(x,_))}},onSave:m=>se.current.onSave?.(m)})},[e,W]);react.useEffect(()=>{b?.setMessages(N);},[b,N]),react.useEffect(()=>{b?.setMode(t);},[b,t]),react.useEffect(()=>{V!==void 0&&b?.setSavedDuration(V);},[b,V]),react.useEffect(()=>(b?.resume(),()=>b?.dispose()),[b]),react.useEffect(()=>{if(!e||!b)return;let u=false,m=e.events.on("rowsChanged",_=>{u=_.removed===0;}),x=e.events.on("dataUpdated",()=>{let _=u;u=false,!_&&b.retainKeys(new Set(e.getDataRows().map(Q=>Q.key)));});return ()=>{m(),x();}},[e,b]),react.useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>q.clear())},[e,q]),react.useEffect(()=>{if(!(!e||!b))return e.setPendingValueReader({effectiveValue:(u,m,x)=>b.changes.effectiveValue(u,m,x),effectiveRow:(u,m)=>b.changes.applyPendingTo(u,m),hasPending:()=>b.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,b]),react.useEffect(()=>{if(!(!e||!b||!C))return e.setHistoryDelegate({undo:()=>b.undo(),redo:()=>b.redo(),canUndo:()=>b.canUndo(),canRedo:()=>b.canRedo(),depth:()=>b.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,b,C]);let Y=react.useMemo(()=>datagridCore.createDebouncedCommit(150),[]);react.useEffect(()=>()=>Y.cancelAll(),[Y]);let Me=react.useRef(h);react.useEffect(()=>{!e||!b||h===Me.current||(Me.current=h,Y.schedule("footer",()=>e.refreshSummaries()));},[e,b,h,Y]);let te=react.useCallback(u=>{let m=e?.getRows()[u];return m&&m.kind==="data"?m.key:null},[e]),ie=react.useCallback(u=>e?.getColumnIdAt(u)??null,[e]),ge=react.useCallback((u,m)=>{e?.scrollToCell(u,m),b?.beginEdit(u,m);},[b,e]),De=react.useCallback((u={},m)=>{let x=b?.addRow(u,m)??null;if(x===null||!e)return x;if(datagridCore.isRowEditMode(t))return e.revealRow(x),x;let _=e.getRowKeyField(),Q=e.getColumnModel().runtime().find(ne=>ne.state.visible&&ne.def.editable!==false&&(_===null||(ne.def.field??ne.state.id)!==_));return e.revealRow(x),Q&&(e.focusCell(x,Q.state.id),b?.beginEdit(x,Q.state.id)),x},[b,e]),Se=react.useCallback(u=>{if(!b)return false;let m=se.current.confirmDelete;if(m===false)return b.removeRow(u);let x=e?.getRowByKey(u);if(typeof m!="function")return Oe({rowKey:u,message:se.current.confirmDeleteMessage??N.editDeleteConfirm}),false;let _=m(u,x);return typeof _=="boolean"?_?b.removeRow(u):false:(_.then(Q=>{Q&&b.removeRow(u);}),false)},[b,e]),I=react.useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),le=react.useCallback((u,m={})=>{if(!b||!e)return false;let x=b.getSession(),_=x?{rowKey:x.rowKey,columnId:x.columnId}:e.getFocus();if(!_||!b.commitEdit())return false;let Q=Ke=>e.getColumnModel().getDef(Ke)?.editable!==false&&(se.current.canEditColumn?.(Ke)??true),ne=e.getColumnModel().runtime().filter(Ke=>Ke.state.visible).map(Ke=>Ke.state.id);if(datagridCore.edgeEditableColumn(ne,Q,1)===null)return false;let pe=e.getRows(),ye=pe.findIndex(Ke=>Ke.key===_.rowKey);if(ye<0)return false;let Re=datagridCore.nextEditableColumn(ne,Q,_.columnId,u);if(Re===null){if(m.cycle===false)return false;let Ke=u;do ye+=Ke;while(ye>=0&&ye<pe.length&&pe[ye]?.kind!=="data");if(ye<0||ye>=pe.length)return false;Re=datagridCore.edgeEditableColumn(ne,Q,u);}let Ce=pe[ye];return !Ce||Ce.kind!=="data"?false:(e.focusCell(Ce.key,Re),e.scrollToCell(Ce.key,Re),m.open===true?b.beginEdit(Ce.key,Re):(I(),true))},[b,e]),U=react.useCallback((u,m,x)=>!b||!e||b.isEditingRow()||!b.canEditRow(u)||(e.scrollToCell(u,m),!b.beginRowEdit(u))?false:(x!==void 0&&b.getMode()==="row"&&(ho.set(b,m),b.setRowEditValue(m,x)),true),[b,e]),j=react.useCallback(u=>{if(!b||!e||b.getSession())return false;let m=e.getFocus();if(!m||e.getColumnModel().getDef(m.columnId)?.editable===false)return false;let _=e.getColumnModel().getEditorDataType(m.columnId);if(_==="boolean"||_==="date")return false;let Q=_==="number"?Number.isNaN(Number(u))?null:Number(u):u;return Q===null?false:datagridCore.isRowEditMode(b.getMode())?U(m.rowKey,m.columnId,Q):(e.scrollToCell(m.rowKey,m.columnId),b.beginEdit(m.rowKey,m.columnId,Q))},[b,e,U]),[Ge,Le]=react.useState(null),[_e,Oe]=react.useState(null),it=react.useCallback(u=>{let m=_e;Oe(null),u&&m&&b&&b.removeRow(m.rowKey);},[_e,b]),st=react.useCallback(u=>{Le({message:u.error??N.editSaveFailed,rowKey:u.rowKey,columnId:u.columnId}),u.rowKey!==void 0&&u.columnId!==void 0&&(e?.revealRow(u.rowKey),e?.focusCell(u.rowKey,u.columnId));},[e,N]);Fe.current=st;let dt=react.useCallback(async()=>{if(!b)return;Le(null);let u=await b.saveChanges();u.saved||u.superseded||st(u);},[b,st]),ee=react.useCallback(()=>Le(null),[]),ae=react.useCallback(()=>{Le(null),b?.cancelChanges();},[b]);react.useEffect(()=>{(b?.getSession()||b?.isEditingRow())&&Le(null);},[h,b]);let k=react.useMemo(()=>{if(!e||!F.getRange())return null;let u=F.cellCount();if(u>Md)return {cells:u,truncated:true,numeric:null};let m=e.getColumnModel(),x=e.getVisualColumnIds(),_=e.getRows(),Q=F.getStats((ne,pe)=>{let ye=_[ne],Re=x[pe];if(!ye||ye.kind!=="data"||!Re)return;let Ce=b?b.effectiveValue(ye.key,Re):m.getCellValue(ye.data,Re);return typeof Ce=="string"&&Ce.trim()!==""&&!Number.isNaN(Number(Ce))?Number(Ce):Ce});return {cells:u,truncated:false,numeric:Q}},[e,F,b,h]),Z=react.useCallback((u,m)=>!!b&&!datagridCore.isChromeColumn(m)&&b.canUpdate(u,m),[b]),K=react.useCallback((u,m)=>{let x=q.getRange();z.current=x??{startRow:u,startColumn:m,endRow:u,endColumn:m},Te(null);},[q]),de=react.useCallback((u,m)=>{let x=z.current;if(!x)return;let _=datagridCore.computeFillTarget(x,u,m);Te(_?{startRow:_.bounds.minRow,startColumn:_.bounds.minColumn,endRow:_.bounds.maxRow,endColumn:_.bounds.maxColumn}:null);},[]),X=react.useCallback((u,m)=>{if(!b||!e)return 0;let _=datagridCore.computeFillValues(u,m,(Q,ne)=>{let pe=te(Q),ye=ie(ne);return pe!==null&&ye?b.effectiveValue(pe,ye):void 0}).map(Q=>{let ne=te(Q.row),pe=ie(Q.column);if(ne===null||!pe||!Z(ne,pe))return null;let ye=Q.from?e.shiftCellFormula(pe,Q.value,Q.row-Q.from.row,Q.column-Q.from.column):Q.value;return {rowKey:ne,columnId:pe,value:ye}}).filter(Q=>Q!==null);return e.notifyClipboardGesture("fill",_.length,()=>_.length===0?false:(b.applyEdits(_,datagridCore.fillText(N.editFillUndo,{count:_.length}),"fill"),true)),_.length},[b,e,te,ie,Z,N]),He=react.useCallback(()=>{let u=z.current,m=fe;if(z.current=null,Te(null),!u||!m||!b||!e)return;let x=datagridCore.computeFillTarget(u,m.endRow,m.endColumn);x&&X(u,x);},[fe,b,e,X]),re=react.useCallback((u,m)=>{if(!e)return "";let x=e.getRows()[u],_=e.getColumnIdAt(m);if(!x||x.kind!=="data"||!_)return "";let Q=e.getColumnModel(),ne=b?b.effectiveValue(x.key,_):Q.getCellValue(x.data,_),pe=datagridCore.cellDisplayText(Q.getDef(_),ne,x.data);return e.clipboardCellText(x,_,ne,pe).replace(/[\t\r\n]+/g," ")},[e,b]),Xe=react.useCallback((u="copy")=>{if(!e||!q.getRange())return false;let m=q.toTsv(re);return e.notifyClipboardGesture("copy",m?m.split(`
2
+ `).length:0,()=>e.writeClipboard(m,u)),true},[e,q,re]),Ve=react.useCallback(u=>{if(!e||!b)return false;let m=q.getRange()!==null,x=u??e.getFocus();if(!m&&!x)return false;if(!Xe("cut")){let pe=x?e.getVisualColumnIds().indexOf(x.columnId):-1,ye=x?e.getRows().findIndex(Ce=>Ce.key===x.rowKey):-1;if(ye<0||pe<0)return false;let Re=re(ye,pe);e.notifyClipboardGesture("copy",Re?1:0,()=>e.writeClipboard(Re,"cut"));}let _=[];if(m)F.forEachCell((pe,ye)=>_.push([pe,ye]));else {let pe=e.getRows().findIndex(Re=>Re.key===x.rowKey),ye=e.getVisualColumnIds().indexOf(x.columnId);if(pe<0||ye<0)return false;_.push([pe,ye]);}let Q=e.getRows(),ne=[];for(let[pe,ye]of _){let Re=Q[pe];if(!Re||Re.kind!=="data")continue;let Ce=e.getColumnIdAt(ye);!Ce||datagridCore.isChromeColumn(Ce)||b.canUpdate(Re.key,Ce)&&ne.push({rowKey:Re.key,columnId:Ce,value:null});}return e.notifyClipboardGesture("cut",ne.length,()=>ne.length===0?false:(b.applyEdits(ne,datagridCore.fillText(N.editCutUndo,{count:ne.length}),"cut"),true)),true},[e,b,q,F,Xe,re,N]),ze=react.useCallback(async u=>{if(!b||!e)return;let m="";try{m=await navigator.clipboard.readText();}catch{return}if(!m)return;let x=e.processPastedTable(datagridCore.parseClipboardTable(m));if(!x)return;let _=q.getBounds(),Q,ne;if(_)Q=_.minRow,ne=_.minColumn;else {let Ce=u??e.getFocus();if(!Ce||(Q=e.getRows().findIndex(Ke=>Ke.key===Ce.rowKey),ne=e.getVisualColumnIds().indexOf(Ce.columnId),Q<0||ne<0))return}let pe=datagridCore.computePasteCells(x,Q,ne,{target:_,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),ye=e.getColumnModel(),Re=pe.map(Ce=>{let Ke=te(Ce.row),Rt=ie(Ce.column);return Ke===null||!Rt||!Z(Ke,Rt)?null:{rowKey:Ke,columnId:Rt,value:e.pastedCellValue(Ke,Rt,Ce.text,datagridCore.coercePastedValue(Ce.text,ye.getEditorDataType(Rt)))}}).filter(Ce=>Ce!==null);e.notifyClipboardGesture("paste",Re.length,()=>Re.length===0?false:(b.applyEdits(Re,datagridCore.fillText(N.editPasteUndo,{count:Re.length}),"paste"),true));},[b,e,q,te,ie,Z,N]),[we,i]=react.useState(null),Ze=react.useCallback(u=>b?(i(null),b.beginRowEdit(u)):false,[b]),Je=react.useCallback(async()=>{if(!b||!b.getRowSession())return false;let m=e?.getVisualColumnIds()??[],x=await b.saveRowEdit(m);return i(x.saved?null:x.error??null),x.saved&&I(),x.saved},[b,e,I]),Ne=react.useCallback(()=>{b&&(i(null),b.cancelRowEdit(),I());},[b,I]);react.useEffect(()=>{if(!(!e||!b))return e.setEditingDelegate({startEditingCell:(u,m)=>(e.scrollToCell(u,m),b.beginEdit(u,m)),stopEditing:async u=>{if(b.isEditingRow())return u?(Ne(),true):Je();if(!b.getSession())return false;if(u)return b.cancelEdit(),I(),true;let m=b.commitEdit();return m&&I(),m},getEditingCells:()=>{let u=b.getRowSession();if(u)return e.getVisualColumnIds().filter(x=>!datagridCore.isChromeColumn(x)&&b.canUpdate(u.rowKey,x)).map(x=>({rowKey:u.rowKey,columnId:x}));let m=b.getSession();return m?[{rowKey:m.rowKey,columnId:m.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,b,Je,Ne,I]);let Qe=react.useCallback(u=>{if(!b||!e)return false;let m=u.ctrlKey||u.metaKey;if(C&&m&&(u.key==="z"||u.key==="Z"))return u.preventDefault(),u.shiftKey?b.redo():b.undo(),true;if(C&&m&&(u.key==="y"||u.key==="Y"))return u.preventDefault(),b.redo(),true;if(H&&m&&(u.key==="v"||u.key==="V"))return u.preventDefault(),ze(),true;if(H&&m&&(u.key==="x"||u.key==="X"))return u.preventDefault(),Ve(),true;if(m&&(u.key==="c"||u.key==="C"))return Xe()?(u.stopPropagation(),true):false;if(b.isEditingRow()){if(u.key==="Enter")return u.preventDefault(),Je(),true;if(u.key==="Escape")return u.preventDefault(),Ne(),true}if(u.key==="Escape"&&b.getSession())return u.preventDefault(),b.cancelEdit(),true;if(u.key==="Tab"&&se.current.focusCellOnTab!==false&&!b.getSession()&&e.getFocus()&&le(u.shiftKey?-1:1,{open:se.current.keepEditingOnTab===true,cycle:se.current.focusCellOnCycle!==false}))return u.preventDefault(),true;if(H&&u.shiftKey&&!u.altKey&&!b.getSession()&&datagridCore.RANGE_KEY_DIRECTIONS[u.key]){let x=e.getFocus(),_=e.getVisualColumnIds(),Q=_.flatMap((ye,Re)=>datagridCore.isChromeColumn(ye)?[]:[Re]),ne=x?e.getRowIndex(x.rowKey):-1,pe=x?_.indexOf(x.columnId):-1;if(ne>=0&&pe>=0&&Q.length>0){u.preventDefault(),u.stopPropagation();let ye=e.getRows(),Re=datagridCore.extendRangeByKey(q.getRange(),{row:ne,column:pe},datagridCore.RANGE_KEY_DIRECTIONS[u.key],m,{rows:ye.length,firstColumn:Q[0],lastColumn:Q[Q.length-1]});q.getRange()||q.start(Re.startRow,Re.startColumn),q.extend(Re.endRow,Re.endColumn),e.notifyViewStateChanged();let Ce=ye[Re.endRow]?.key;return Ce!==void 0&&e.scrollToCell(Ce,_[Re.endColumn]),true}}if(H&&m&&!u.shiftKey&&!u.altKey&&!b.getSession()&&(u.key==="d"||u.key==="D"||u.key==="r"||u.key==="R")){let x=e.getFocus(),_=e.getVisualColumnIds(),Q=_.findIndex(Ce=>!datagridCore.isChromeColumn(Ce)),ne=x?e.getRowIndex(x.rowKey):-1,pe=x?_.indexOf(x.columnId):-1,ye=q.getRange()??(ne>=0&&pe>=0?{startRow:ne,startColumn:pe,endRow:ne,endColumn:pe}:null),Re=ye?datagridCore.keyboardFill(ye,u.key.toLowerCase()==="d"?"down":"right",Math.max(0,Q)):null;if(Re)return u.preventDefault(),u.stopPropagation(),X(Re.source,Re.target),true}if(!m&&!u.shiftKey&&!b.getSession()&&Nd.has(u.key)&&q.clear(),u.key==="Insert"&&se.current.insertKey===true&&!m&&!b.getSession()){let x=e.getFocus();if(x&&b.canAdd())return u.preventDefault(),De({},x.rowKey),true}if(u.key==="ArrowDown"&&se.current.appendOnArrowDown===true&&!m&&!u.shiftKey&&!b.getSession()){let x=e.getFocus(),_=e.getRows(),Q=_.length>0?_[_.length-1]:void 0;if(x&&Q&&Q.key===x.rowKey&&b.canAdd())return u.preventDefault(),De({}),true}if(u.key==="F2"){let x=e.getFocus();if(x)return u.preventDefault(),datagridCore.isRowEditMode(b.getMode())?(U(x.rowKey,x.columnId),true):(e.scrollToCell(x.rowKey,x.columnId),b.beginEdit(x.rowKey,x.columnId),true)}return se.current.editOnKeyPress!==false&&!m&&!u.altKey&&u.key.length===1&&u.key!==" "&&!b.getSession()&&j(u.key)?(u.preventDefault(),true):false},[b,e,H,C,ze,Ve,Xe,j,U,le,De,Je,Ne,X]);return {engine:b,range:q,version:h,beginEdit:ge,beginRowEdit:Ze,saveRowEdit:Je,cancelRowEdit:Ne,rowSaveError:we,addRow:De,editAdjacentCell:le,editFocusedCellWith:j,focusScroller:I,deleteRow:Se,saveChanges:dt,cancelChanges:ae,selectionStats:k,handleKeyDown:Qe,cut:Ve,copySelection:Xe,paste:ze,saveError:Ge,clearSaveError:ee,pendingDelete:_e,resolveDelete:it,fillPreview:fe,startFillDrag:K,moveFillDrag:de,endFillDrag:He,isDraggingFill:z.current!==null}}var $i=react.createContext(""),Wi=react.createContext(()=>document.body),_d=typeof window<"u"?react.useLayoutEffect:react.useEffect;function Sr({theme:e,density:t,palette:n,portalContainer:r,children:l}){let a=react.useMemo(()=>datagridCore.themeClassName(e,t,n),[e,t,n]),s=react.useRef(r);_d(()=>{s.current=r;},[r]);let p=react.useMemo(()=>()=>datagridCore.portalTarget(s.current),[]);return jsxRuntime.jsx($i.Provider,{value:a,children:jsxRuntime.jsx(Wi.Provider,{value:p,children:l})})}function Pt(){return react.useContext(Wi)}function Tt(){return react.useContext($i)}var Mr=8,Lt=26,zi=4;function Yi(e,t,n){let r=datagridCore.foldText(t.trim());if(r==="")return null;let l=[];for(let a=0;a<e.length;a++){let s=e[a];(n==="contains"?s.includes(r):s.startsWith(r))&&l.push(a);}return l}function Vd(e,t,n){let r=e.map(a=>datagridCore.foldText(a.label)),l=Yi(r,t,n);return l===null?e:l.map(a=>e[a])}function Zt({options:e,value:t,matchMode:n="startsWith",allowCustom:r=false,invalid:l,autoFocus:a=true,testId:s,columnId:p,ariaLabel:T,onChange:w,onCommit:v,commitOnPick:R=true,onCancel:M,onTab:f}){let S=ve(),A=Tt(),P=Pt(),y=react.useRef(null),c=react.useRef(null),[D,L]=react.useState(null),[W,V]=react.useState(false),[H,C]=react.useState(0),[B,N]=react.useState(0),[h,d]=react.useState(null),E=react.useMemo(()=>e.map(I=>datagridCore.foldText(I.label)),[e]),F=react.useMemo(()=>{let I=e.find(le=>le.value===t);return I?I.label:t==null||t===""?"":String(t)},[e,t]),q=react.useMemo(()=>D===null?null:Yi(E,D,n),[E,D,n]),z=q===null?e.length:q.length,fe=I=>e[q===null?I:q[I]],Te=D??F;react.useEffect(()=>{C(I=>I<z?I:0);},[z]),react.useLayoutEffect(()=>{a&&(y.current?.focus({preventScroll:true}),y.current?.select());},[]);let se=()=>{let I=y.current;if(!I)return;let le=I.getBoundingClientRect(),U=datagridCore.placeAnchoredLayer({anchor:{left:le.left,top:le.top,bottom:le.bottom},width:le.width,height:Math.min(Math.max(z,1),Mr)*Lt,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});d({left:U.left,top:U.top,width:le.width});};react.useLayoutEffect(()=>{W&&se();},[W,z]),react.useEffect(()=>{if(!W)return;let I=()=>se();return window.addEventListener("scroll",I,true),window.addEventListener("resize",I),()=>{window.removeEventListener("scroll",I,true),window.removeEventListener("resize",I);}},[W]),react.useLayoutEffect(()=>{let I=c.current;if(!I||!W||z===0)return;let le=H*Lt,U=le+Lt,j=I.scrollTop;le<j?j=le:U>j+I.clientHeight&&(j=U-I.clientHeight),j!==I.scrollTop&&(I.scrollTop=j,N(j));},[H,W,z]);let Fe=Math.min(Math.max(z,1),Mr)*Lt,b=Math.max(0,Math.floor(B/Lt)-zi),Y=Math.min(z,Math.ceil((B+Fe)/Lt)+zi),Me=I=>{w(I.value),L(null),V(false),R&&v();},te=()=>{W||(V(true),N(0),c.current&&(c.current.scrollTop=0));},ie=()=>{if(D===null)return true;let I=D.trim();if(I==="")return r&&w(""),true;let le=datagridCore.foldText(I),U=E.indexOf(le);return U>=0?(w(e[U].value),true):z===1?(w(fe(0).value),true):r?(w(I),true):false},ge=I=>{if(!(I.nativeEvent.isComposing||I.keyCode===229)){if(I.key==="ArrowDown"||I.key==="ArrowUp"){if(I.preventDefault(),I.stopPropagation(),!W){te();return}if(z===0)return;C(le=>((I.key==="ArrowDown"?le+1:le-1)+z)%z);return}if(I.key==="PageDown"||I.key==="PageUp"){if(!W||z===0)return;I.preventDefault(),I.stopPropagation();let le=Mr*(I.key==="PageDown"?1:-1);C(U=>Math.min(z-1,Math.max(0,U+le)));return}if(I.key==="Home"||I.key==="End"){if(!W||z===0)return;I.preventDefault(),I.stopPropagation(),C(I.key==="Home"?0:z-1);return}if(I.key==="Enter"){if(I.preventDefault(),I.stopPropagation(),W&&z>0){Me(fe(H));return}ie()?v():te();return}if(I.key==="Escape"){if(I.preventDefault(),I.stopPropagation(),W){V(false);return}L(null),M();return}if(I.key==="Tab"){if(!ie()){I.preventDefault(),I.stopPropagation(),te();return}V(false),f&&(I.preventDefault(),I.stopPropagation(),f(I.shiftKey));return}I.stopPropagation();}},De=[];for(let I=b;I<Y;I++){let le=fe(I);De.push(jsxRuntime.jsx("div",{role:"option","aria-selected":I===H,"aria-posinset":I+1,"aria-setsize":z,className:`kanuni-datagrid-lookup-item${I===H?" kanuni-datagrid-lookup-item--active":""}`,style:{position:"absolute",top:I*Lt,height:Lt,left:0,right:0},onMouseEnter:()=>C(I),onClick:()=>Me(le),children:le.label},String(le.value)));}let Se=W&&h?reactDom.createPortal(jsxRuntime.jsx("div",{ref:c,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${A}`,"data-kanuni-portal":"popup",role:"listbox","aria-label":T,"data-testid":s?`${s}-list`:void 0,style:{left:h.left,top:h.top,width:h.width,height:Fe},onScroll:I=>N(I.currentTarget.scrollTop),onMouseDown:I=>I.preventDefault(),children:z===0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-lookup-empty",children:S.editNoMatch}):jsxRuntime.jsx("div",{style:{position:"relative",height:z*Lt},children:De})}),P()):null;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{ref:y,type:"text",role:"combobox","aria-expanded":W,"aria-autocomplete":"list","aria-label":T,"data-testid":s,"data-column-id":p,className:`kanuni-datagrid-editor${l?" kanuni-datagrid-editor--invalid":""}`,value:Te,onChange:I=>{L(I.target.value),C(0),N(0),c.current&&(c.current.scrollTop=0),V(true);},onFocus:te,onClick:te,onKeyDown:ge,onBlur:()=>{D!==null&&!ie()&&L(null),V(false);}}),Se]})}function tu(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=el(e);return [...t.slice(n),...t.slice(0,n)]}function el(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function nu(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 ou(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Qt({value:e,format:t=datagridCore.DEFAULT_DATE_FORMAT,invalid:n,disabled:r,autoFocus:l=true,testId:a,columnId:s,ariaLabel:p,onChange:T,onCommit:w,onCancel:v,onTab:R}){let M=ve(),f=Tt(),S=Pt(),A=react.useMemo(()=>nu(M),[M]),P=react.useMemo(()=>tu(M),[M]),y=react.useRef(null),[c,D]=react.useState(null),[L,W]=react.useState(false),[V,H]=react.useState(null),C=react.useMemo(()=>datagridCore.toDate(e),[e]),B=c===null?datagridCore.formatDateValue(e,t):datagridCore.maskDate(c,t),N=c===null?null:datagridCore.parseDateValue(B,t),h=c!==null&&c.length===datagridCore.dateDigitCount(t)&&N===null,[d,E]=react.useState(()=>C??new Date);react.useEffect(()=>{L&&E(N??C??new Date);},[L]),react.useLayoutEffect(()=>{l&&(y.current?.focus({preventScroll:true}),y.current?.select());},[]);let F=react.useRef(null),q=react.useCallback(()=>{let Y=y.current;if(!Y)return;let Me=Y.getBoundingClientRect(),te=datagridCore.placeAnchoredLayer({anchor:{left:Me.left,top:Me.top,bottom:Me.bottom},width:F.current?.offsetWidth??0,height:F.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});H({left:te.left,top:te.top});},[]),z=react.useCallback(Y=>{F.current=Y,Y&&q();},[q]);react.useLayoutEffect(()=>{L&&q();},[L,q]),react.useEffect(()=>{if(!L)return;let Y=()=>q();return window.addEventListener("scroll",Y,true),window.addEventListener("resize",Y),()=>{window.removeEventListener("scroll",Y,true),window.removeEventListener("resize",Y);}},[L,q]);let fe=react.useCallback(Y=>{if(Y===null){T(null);return}T(e instanceof Date?Y:datagridCore.toIsoDate(Y));},[T,e]),Te=Y=>{D(null),W(false),fe(Y),y.current?.focus({preventScroll:true});},se=react.useCallback(()=>{if(c!==null){if(c.length===0){fe(null),D(null);return}N&&fe(N),D(null);}},[c,N,fe]),Fe=Y=>{if(Y.key==="Escape"){if(Y.preventDefault(),Y.stopPropagation(),L){W(false);return}D(null),v();return}if(L){let Me=Y.key==="ArrowLeft"?-1:Y.key==="ArrowRight"?1:Y.key==="ArrowUp"?-7:Y.key==="ArrowDown"?7:0;if(Me!==0){Y.preventDefault(),Y.stopPropagation();let te=N??C??new Date,ie=new Date(te.getFullYear(),te.getMonth(),te.getDate()+Me);D(datagridCore.dateDigits(datagridCore.formatDateValue(ie,t),t)),E(ie);return}if(Y.key==="Enter"){Y.preventDefault(),Y.stopPropagation(),W(false),N&&Te(N);return}}if(Y.key==="Enter"){Y.preventDefault(),Y.stopPropagation(),se(),w();return}if(Y.key==="Tab"){se(),W(false),R&&(Y.preventDefault(),Y.stopPropagation(),R(Y.shiftKey));return}if(Y.key.length===1&&!Y.ctrlKey&&!Y.metaKey&&!/\d/.test(Y.key)){Y.preventDefault();return}Y.stopPropagation();},b=L&&V?reactDom.createPortal(jsxRuntime.jsxs("div",{ref:z,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${f}`,"data-kanuni-portal":"popup",style:{left:V.left,top:V.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":p?`${p} ${M.dateCalendar}`:M.dateCalendar,onMouseDown:Y=>Y.preventDefault(),children:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsxRuntime.jsx("button",{type:"button","aria-label":M.datePreviousMonth,"data-testid":"dg-date-prev",onClick:()=>E(new Date(d.getFullYear(),d.getMonth()-1,1)),children:"\u2039"}),jsxRuntime.jsxs("span",{"data-testid":"dg-date-title",children:[A[d.getMonth()]," ",d.getFullYear()]}),jsxRuntime.jsx("button",{type:"button","aria-label":M.dateNextMonth,"data-testid":"dg-date-next",onClick:()=>E(new Date(d.getFullYear(),d.getMonth()+1,1)),children:"\u203A"})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[P.map(Y=>jsxRuntime.jsx("span",{className:"kanuni-datagrid-date-weekday",role:"columnheader",children:Y},Y)),(()=>{let Me=(new Date(d.getFullYear(),d.getMonth(),1).getDay()-el(M)+7)%7,te=datagridCore.daysInMonth(d.getFullYear(),d.getMonth()+1),ie=[];for(let ge=0;ge<42;ge++){let De=ge-Me+1,Se=new Date(d.getFullYear(),d.getMonth(),De),I=De<1||De>te,le=ou(Se,N??C);ie.push(jsxRuntime.jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${I?" kanuni-datagrid-date-day--outside":""}${le?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":le,"data-testid":"dg-date-day","data-date":datagridCore.toIsoDate(Se),onClick:()=>Te(Se),children:Se.getDate()},ge));}return ie})()]})]}),S()):null;return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsxRuntime.jsx("input",{ref:y,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":p,"aria-invalid":h||n?true:void 0,"data-testid":a,"data-column-id":s,disabled:r,className:`kanuni-datagrid-editor${h||n?" kanuni-datagrid-editor--invalid":""}`,value:B,onChange:Y=>{D(datagridCore.dateDigits(Y.target.value,t));},onKeyDown:Fe,onBlur:()=>{L||se();}}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-date-button","aria-label":p?`${p} \u2014 ${M.dateOpenCalendar}`:M.dateOpenCalendar,"aria-expanded":L,"data-testid":"dg-date-open",disabled:r,tabIndex:-1,onMouseDown:Y=>Y.preventDefault(),onClick:()=>{W(Y=>!Y),y.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"})})}),b]})}function Pr(e){return {save:e.save,cancel:e.cancel,editTitle:e.formEditTitle,addTitle:e.formAddTitle,saving:e.editSaving,shortcut:e.formShortcut}}var du=Pr(datagridCore.getGridDictionary("en"));function uu(e,t){switch(e){case "number":return t==null||t===""||!Number.isNaN(Number(t))?"number":"text";case "date":return t==null||t===""||!Number.isNaN(Date.parse(String(t)))?"date":"text";case "boolean":return "checkbox";default:return "text"}}function nl(e,t){if(e==null)return "";if(t==="date"){if(e instanceof Date)return e.toISOString().slice(0,10);let n=String(e);return n.length>10&&n.includes("-")?n.slice(0,10):n}return String(e)}function cu(e,t){if(t==="number"){if(e==="")return null;let n=Number(e);return Number.isNaN(n)?e:n}return e}function Lr({rowKey:e,fields:t,getValue:n,errors:r,lookups:l,customEditors:a=false,row:s,saving:p,saveError:T,isNew:w,dark:v=false,popup:R=false,inline:M=false,onNaturalHeight:f,labels:S,onChange:A,onSave:P,onCancel:y}){let c=ve(),D=Tt(),L=react.useMemo(()=>({...Pr(c),...S}),[c,S]),W=react.useRef(null),V=Object.keys(r)[0]??null,H=react.useCallback(d=>{if(W.current=d,!d)return;let E=d.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");if(E?.focus(),E instanceof HTMLInputElement&&E.type==="text"&&E.select(),f){let F=d.querySelector(".kanuni-datagrid-edit-form-fields");F&&f(d.clientHeight-F.clientHeight+F.scrollHeight);}},[f]);react.useEffect(()=>{if(!V||!W.current)return;W.current.querySelector(`[data-field-id="${CSS.escape(V)}"] input, [data-field-id="${CSS.escape(V)}"] select`)?.focus();},[V]);let C=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),B=L.shortcut.replace("{key}",C?"\u2318":"Ctrl"),N=react.useCallback(d=>{if(d.key==="Escape"){d.preventDefault(),d.stopPropagation(),y();return}if(d.key==="Enter"&&(d.ctrlKey||d.metaKey)){d.preventDefault(),d.stopPropagation(),P();return}if(d.key==="Enter"&&!(d.target instanceof HTMLButtonElement)){d.preventDefault();return}if(d.key!=="Tab"||!R||!W.current)return;let E=Array.from(W.current.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(E.length===0)return;let F=E[0],q=E[E.length-1];!d.shiftKey&&document.activeElement===q?(d.preventDefault(),F.focus()):d.shiftKey&&document.activeElement===F&&(d.preventDefault(),q.focus());},[y,P,R]),h=jsxRuntime.jsxs("div",{ref:H,className:`kanuni-datagrid-edit-form${M?" kanuni-datagrid-edit-form--inline":""}`,"data-testid":"dg-edit-form","data-row-key":String(e),"data-popup":R?"":void 0,role:R?"dialog":"group","aria-modal":R?true:void 0,"aria-label":w?L.addTitle:L.editTitle,onKeyDown:N,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-header",children:jsxRuntime.jsx("strong",{children:w?L.addTitle:L.editTitle})}),T&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-form-error",children:T}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-fields",children:t.map(d=>{let E=n(d.columnId),F=r[d.columnId],q=l?.[d.columnId],z=p||!d.editable,fe=`dg-field-${String(e)}-${d.columnId}`;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":d.columnId,"data-invalid":F?"":void 0,htmlFor:fe,children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-label",children:d.label}),a&&d.def?.renderEditor?d.def.renderEditor({value:E,row:s,columnId:d.columnId,error:F??null,setValue:Te=>A(d.columnId,Te),commit:P,cancel:y}):q!==void 0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(Zt,{options:q??[],value:E,matchMode:d.def?.lookup?.matchMode,allowCustom:d.def?.lookup?.allowCustom,invalid:!!F,testId:fe,ariaLabel:d.label,onChange:Te=>A(d.columnId,Te),onCommit:()=>{},onCancel:y})}):d.def?.lookup?jsxRuntime.jsx("input",{id:fe,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:datagridCore.lookupLabel(d.def,E)??nl(E,d.dataType)}):d.dataType==="date"?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(Qt,{value:E,format:d.def?.dateFormat,invalid:!!F,disabled:z,autoFocus:false,testId:fe,columnId:d.columnId,ariaLabel:d.label,onChange:Te=>A(d.columnId,Te),onCommit:()=>{},onCancel:y})}):d.dataType==="boolean"?jsxRuntime.jsx("input",{id:fe,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:z,checked:E===true,onChange:Te=>A(d.columnId,Te.target.checked)}):jsxRuntime.jsx("input",{id:fe,className:"kanuni-datagrid-edit-form-input",type:uu(d.dataType,E),disabled:z,"aria-invalid":F?true:void 0,value:nl(E,d.dataType),onChange:Te=>A(d.columnId,cu(Te.target.value,d.dataType))}),F&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-message",role:"alert",children:F})]},d.columnId)})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:B}),jsxRuntime.jsx("button",{type:"button",onClick:y,disabled:p,"data-testid":"dg-form-cancel",children:L.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-edit-form-save",onClick:P,disabled:p,"data-testid":"dg-form-save",children:p?L.saving:L.save})]})]});return R?jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-edit-popup${v?" kanuni-datagrid-dark":""}${D}`,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:y}),h]}):h}function Ir({controller:e,engine:t,columnId:n,message:r,saving:l,lookupOptions:a,onSave:s,onCancel:p}){let T=e.getColumnModel(),w=T.getDef(n);if(a!==void 0)return jsxRuntime.jsx(Zt,{options:a??[],value:t.rowEditValue(n),matchMode:w?.lookup?.matchMode,allowCustom:w?.lookup?.allowCustom,invalid:!!r,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:f=>t.setRowEditValue(n,f),commitOnPick:false,onCommit:s,onCancel:p});let v=T.getDataType(n);if(v==="date")return jsxRuntime.jsx(Qt,{value:t.rowEditValue(n),format:w?.dateFormat,invalid:!!r,disabled:l,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:f=>t.setRowEditValue(n,f),onCommit:s,onCancel:p});let R=v==="number",M=f=>{f.key==="Enter"?(f.preventDefault(),f.stopPropagation(),s()):f.key==="Escape"&&(f.preventDefault(),f.stopPropagation(),p());};return v==="boolean"?jsxRuntime.jsx("input",{className:"kanuni-datagrid-editor","data-testid":"dg-row-editor","data-column-id":n,"aria-label":w?.headerName??n,title:r??void 0,disabled:l,type:"checkbox",checked:t.rowEditValue(n)===true,onChange:f=>t.setRowEditValue(n,f.target.checked),onKeyDown:M}):jsxRuntime.jsx("input",{className:`kanuni-datagrid-editor${r?" kanuni-datagrid-editor--invalid":""}`,"data-testid":"dg-row-editor","data-column-id":n,"aria-label":w?.headerName??n,title:r??void 0,disabled:l,type:R?"number":"text",value:String(t.rowEditValue(n)??""),onChange:f=>{let S=f.target.value;t.setRowEditValue(n,R?S===""?null:Number(S):S);},onKeyDown:M})}function ol(e,t){if(!e)return [];let n=e.getColumnLayout();return [...n.left,...n.center,...n.right].map(r=>r.state.id).filter(r=>!datagridCore.isChromeColumn(r)&&(t?.(r)??true))}function Or({controller:e,editing:t,mode:n,active:r,rootRef:l,rowHeight:a,formLabels:s,formHeight:p,dark:T,rowLookups:w,customEditors:v=false,isFormColumn:R,batchBar:M=true}){let f=ve(),{engine:S,version:A,beginRowEdit:P,saveRowEdit:y,cancelRowEdit:c,rowSaveError:D,saveChanges:L,cancelChanges:W}=t,V=r&&datagridCore.isRowEditMode(n),H=V?S?.getRowSession()??null:null,C=react.useRef(R);C.current=R;let B=react.useMemo(()=>{if(!e||!H)return [];let U=e.getColumnModel();return ol(e,C.current).map(j=>{let Ge=U.getDef(j);return {columnId:j,label:Ge?.headerName??Ge?.field??j,dataType:U.getEditorDataType(j),def:Ge,editable:S?.canUpdate(H.rowKey,j)??true}})},[e,S,H]),N=n==="row"?H?.rowKey??null:null;react.useEffect(()=>{if(N===null)return;let U=l.current;if(!U)return;let j=U.querySelectorAll('[data-testid="dg-row-editor"]');if(j.length===0)return;let Ge=e?.getFocus(),_e=(Ge&&String(Ge.rowKey)===String(N)?U.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Ge.columnId)}"]`):null)??j[0],Oe=S?ho.get(S):void 0;S&&ho.delete(S),_e.focus({preventScroll:true}),_e instanceof HTMLInputElement&&(Oe!==void 0&&_e.getAttribute("data-column-id")===Oe?_e.setSelectionRange(_e.value.length,_e.value.length):_e.select());},[N]);let h=react.useCallback(U=>V&&H?.rowKey===U,[V,H]),d=react.useCallback((U,j)=>{let Ge=e?.getColumnModel().getDef(U.columnId);if(Ge?.renderCell&&U.node.kind==="data")return Ge.renderCell({value:j,row:U.node.data,node:U.node,column:Ge});let Le=Ge?datagridCore.lookupLabel(Ge,j):null;return Le!==null?Le:Ge?.valueFormatter&&U.node.kind==="data"?Ge.valueFormatter(j,U.node.data):Ge?.dateFormat&&Ge.dataType==="date"?datagridCore.formatDateValue(j,Ge.dateFormat):j==null?"":String(j)},[e]),E=react.useCallback(U=>{if(!(n!=="row"||!S||!e||U.node.kind!=="data"||!h(U.node.key)))return S.canUpdate(U.node.key,U.columnId)?jsxRuntime.jsx(Ir,{controller:e,engine:S,columnId:U.columnId,message:H?.errors[U.columnId]??null,saving:H?.saving??false,lookupOptions:w?.[U.columnId],onSave:()=>{y();},onCancel:c}):d(U,S.rowEditValue(U.columnId))},[n,S,e,A,h,H,w,d,y,c]),F=react.useCallback(U=>{if(!S||U.node.kind!=="data")return;let j=S.changes.get(U.node.key,U.columnId);return j?d(U,j.newValue):void 0},[S,A,d]),[q,z]=react.useState(null),fe=q??p??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,Te=react.useCallback(U=>{U>0&&z(j=>j!==null&&Math.abs(j-U)<a?j:U);},[a]);react.useEffect(()=>{H||z(null);},[H]);let se=(U,j)=>H?jsxRuntime.jsx(Lr,{rowKey:U,fields:B,getValue:Ge=>S?.rowEditValue(Ge),errors:H.errors,lookups:w,customEditors:v,row:S?.effectiveRow(H.rowKey),saving:H.saving,saveError:D,isNew:H.isNew,dark:T,popup:n==="popup",inline:j,onNaturalHeight:j?Te:void 0,labels:s,onChange:(Ge,Le)=>S?.setRowEditValue(Ge,Le),onSave:()=>{y();},onCancel:c}):null,Fe=H&&n==="popup"?se(H.rowKey,false):null,b=react.useRef(se);b.current=se;let Y=react.useCallback(U=>b.current(U,true),[]),Me=n==="form"?H?.rowKey??null:null,te=H?.isNew??false,ie=react.useRef(null);react.useEffect(()=>{if(e){if(Me===null){if(ie.current!==e)return;ie.current=null,e.setEditFormRow(null);return}ie.current=e,e.setEditFormRow(Me,{height:fe,atTop:te});}},[e,Me,te,fe]),react.useEffect(()=>()=>{let U=ie.current;ie.current=null,U?.setEditFormRow(null);},[]);let ge=V&&n==="row"&&!!H,De=M&&r&&n==="batch"&&(S?.hasChanges()??false),Se=ge||De?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[ge&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-active","data-testid":"dg-row-editing",children:H?.isNew?f.formAddTitle:datagridCore.fillText(f.editEditingRow,{row:String(H?.rowKey)})}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-row",disabled:H?.saving,onClick:()=>{y();},children:H?.saving?f.editSaving:f.editSaveRow}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:c,children:f.cancel}),D&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:D})]}),De&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:S?.isSaving(),onClick:()=>{L();},children:datagridCore.fillText(f.editSaveCount,{n:S?.getChanges().length??0})}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:W,children:f.cancel})]})]}):null,I=react.useCallback(U=>!V||!S||S.isEditingRow()?null:{id:"dg-edit-row",label:f.editRowMenu,onSelect:()=>P(U)},[V,S,P,f,A]),le=react.useCallback(U=>V?(P(U),true):false,[V,P]);return {rowModeActive:V,rowSession:H,isRowEditing:h,defaultContent:d,renderRowCell:E,renderPending:F,renderEditForm:n==="form"?Y:void 0,popup:Fe,bar:Se,rowSessionAttr:H&&(n==="form"||n==="popup")?n:void 0,editRowMenuItem:I,openRow:le}}function Kr(e,t){return e==null?"":t==="date"&&e instanceof Date?e.toISOString().slice(0,10):String(e)}function Br({value:e,dataType:t,error:n,seeded:r=false,options:l,allowCustom:a=false,matchMode:s,ariaLabel:p,dateFormat:T,onChange:w,onCommit:v,onTab:R,onCancel:M}){let f=react.useRef(null),S=react.useRef(false);react.useEffect(()=>{let c=f.current;if(c&&(c.focus({preventScroll:true}),!(!(c instanceof HTMLInputElement)||c.type==="checkbox")))if(r){if(c.type==="text"||c.type==="search"){let D=c.value.length;c.setSelectionRange(D,D);}}else c.select();},[]);let P={ref:f,onKeyDown:c=>{c.nativeEvent.isComposing||c.keyCode===229||(c.key==="Enter"?(c.preventDefault(),c.stopPropagation(),v(c.shiftKey?"none":"down")):c.key==="Tab"?(c.preventDefault(),c.stopPropagation(),S.current=true,R(c.shiftKey?-1:1)):c.key==="Escape"?(c.preventDefault(),c.stopPropagation(),M()):c.stopPropagation());},onBlur:()=>{S.current||v("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"},y;return l===null?y=jsxRuntime.jsx("input",{...P,type:"text",value:"\u2026",readOnly:true,disabled:true}):l&&l.length>0?y=a?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{...P,type:"text",list:`${P["data-testid"]}-list`,value:Kr(e,t),onChange:c=>{let D=l.find(L=>L.label===c.target.value);w(D?D.value:c.target.value);}}),jsxRuntime.jsx("datalist",{id:`${P["data-testid"]}-list`,children:l.map(c=>jsxRuntime.jsx("option",{value:c.label},String(c.value)))})]}):jsxRuntime.jsx(Zt,{options:l,value:e,matchMode:s,allowCustom:false,invalid:!!n,testId:P["data-testid"],ariaLabel:p,onChange:w,onCommit:()=>v("none"),onCancel:M,onTab:c=>{S.current=true,R(c?-1:1);}}):t==="boolean"?y=jsxRuntime.jsx("input",{...P,type:"checkbox",checked:e===true,onChange:c=>w(c.target.checked)}):t==="number"?y=jsxRuntime.jsx("input",{...P,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:Kr(e,t),onChange:c=>w(c.target.value===""?null:Number(c.target.value))}):t==="date"?y=jsxRuntime.jsx(Qt,{value:e,format:T,invalid:!!n,testId:P["data-testid"],ariaLabel:p,onChange:w,onCommit:()=>v("none"),onCancel:M,onTab:c=>{S.current=true,R(c?-1:1);}}):y=jsxRuntime.jsx("input",{...P,type:"text",value:Kr(e,t),onChange:c=>w(c.target.value)}),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[y,n&&jsxRuntime.jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function ll(e,t,n,r,l,a){let s=!n&&t!==void 0&&t.enabled!==false,p=s&&!l,T=t?.mode??"cell",w=react.useCallback(E=>{let F=e?.getColumnModel().getDef(E);return !F?.lookup&&!F?.renderEditor&&F?.allowFormulas!==true},[e]),v=vr({controller:e,enabled:s,mode:T,onSave:t?.onSave,editOnKeyPress:t?.editOnKeyPress,focusCellOnTab:t?.focusCellOnTab,focusCellOnCycle:t?.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,range:false,history:false,canEditColumn:w,savedDuration:a.savedDuration}),{engine:R,version:M,handleKeyDown:f,editAdjacentCell:S,focusScroller:A,saveError:P,clearSaveError:y}=v,c=Or({controller:e,editing:v,mode:T,active:p,rootRef:a.rootRef,rowHeight:a.rowHeight,formLabels:t?.formLabels,formHeight:t?.formHeight,dark:a.dark}),{renderRowCell:D,renderPending:L,openRow:W}=c,{renderCellContent:V,getCellClassName:H,onCellDoubleClick:C}=r,B=react.useCallback(E=>{if(!s||!R||E.node.kind!=="data")return V?.(E);let F=D(E);if(F!==void 0)return F;if(!R.isEditing(E.node.key,E.columnId))return L(E)??V?.(E);let q=R.getSession(),z=e.getColumnModel(),fe=z.getDef(E.columnId);return jsxRuntime.jsx(Br,{value:q.value,dataType:z.getEditorDataType(E.columnId),ariaLabel:fe?.headerName??E.columnId,dateFormat:fe?.dateFormat,error:q.validation.message,seeded:q.seeded,onChange:Te=>R.setEditValue(Te),onCommit:Te=>{R.commitEdit()&&(Te==="down"&&e?.moveFocus("down"),A());},onTab:Te=>{if(t?.focusCellOnTab===false){R.commitEdit();return}S(Te,{open:false,cycle:t?.focusCellOnCycle!==false}),A();},onCancel:()=>{R.cancelEdit(),A();}})},[s,R,e,M,V,D,L,S,A,t?.focusCellOnTab,t?.focusCellOnCycle]),N=react.useCallback(E=>{let F=H?.(E);if(!s||!R||E.node.kind!=="data")return F;let q=F?[F]:[];return R.isEditing(E.node.key,E.columnId)&&q.push("kanuni-datagrid-cell--editing"),R.changes.isDirty(E.node.key,E.columnId)&&q.push("kanuni-datagrid-cell--dirty"),q.length>0?q.join(" "):void 0},[s,R,M,H]),h=react.useCallback(E=>{C?.(E),!(!s||!R||E.node.kind!=="data")&&(W(E.node.key)||R.beginEdit(E.node.key,E.columnId));},[s,R,C,W]),d=react.useCallback(E=>p?f(E):false,[p,f]);return {active:s,renderCellContent:p?B:V,getCellClassName:p?N:H,onCellDoubleClick:p?h:C,handleKeyDown:d,saveError:s?P:null,clearSaveError:y,renderEditForm:p?c.renderEditForm:void 0,bar:p?c.bar:null,popup:p?c.popup:null,rowSessionAttr:p?c.rowSessionAttr:void 0,editRowMenuItem:c.editRowMenuItem,rowStatusSource:s?R:null}}function $r({open:e,title:t,message:n,cancelLabel:r,confirmLabel:l,danger:a,dark:s,onConfirm:p,onCancel:T}){let w=react.useRef(null),v=react.useRef(null),R=react.useId(),M=react.useId(),f=Tt(),S=Pt();return react.useEffect(()=>{if(!e)return;let A=document.activeElement;w.current?.focus();let P=v.current;return ()=>{let y=document.activeElement;P&&(P.contains(y)||y===document.body||y===null)&&A?.isConnected&&A.focus({preventScroll:true});}},[e]),react.useEffect(()=>{if(!e)return;let A=P=>{if(P.key==="Escape"){P.stopPropagation(),T();return}if(P.key==="Tab"&&v.current){let y=Array.from(v.current.querySelectorAll("button:not([disabled])"));if(y.length===0)return;let c=y.indexOf(document.activeElement),D=P.shiftKey?c<=0?y.length-1:c-1:c===y.length-1?0:c+1;P.preventDefault(),P.stopPropagation(),y[D].focus();}};return document.addEventListener("keydown",A,true),()=>document.removeEventListener("keydown",A,true)},[e,T]),!e||typeof document>"u"?null:reactDom.createPortal(jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${s?" kanuni-datagrid-dark":""}${f}`,"data-kanuni-portal":"popup",role:"presentation",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:T}),jsxRuntime.jsxs("div",{ref:v,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":R,"aria-describedby":M,"data-testid":"dg-dialog",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-title",id:R,children:t}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-message",id:M,children:n}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-dialog-actions",children:[r!==void 0&&jsxRuntime.jsx("button",{type:"button","data-testid":"dg-dialog-cancel",onClick:T,children:r}),jsxRuntime.jsx("button",{ref:w,type:"button",className:`kanuni-datagrid-dialog-primary${a?" kanuni-datagrid-dialog-primary--danger":""}`,"data-testid":"dg-dialog-confirm",onClick:p,children:l})]})]})]}),S())}var To=0,Vr=5e3;function Tu(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Vr,onLimit:t.onLimit}}function xu(e,t){return e<=t}function Ur(e,t){let n=Tu(t),r=n!==null,l=n?.always??false,a=n?.maxRows??Vr,s=n?.onLimit,p=react.useRef(s);react.useEffect(()=>{p.current=s;},[s]);let[T,w]=react.useState(false),v=react.useCallback(()=>w(true),[]),R=react.useCallback(()=>w(false),[]);react.useEffect(()=>{if(!r||l||typeof window>"u"||typeof window.addEventListener!="function")return;let f=()=>{let A=e.getRows().length;if(!xu(A,a)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${A} rows exceeds maxRows (${a}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`),p.current?.({rows:A,maxRows:a});return}reactDom.flushSync(()=>w(true));},S=()=>reactDom.flushSync(()=>w(false));return window.addEventListener("beforeprint",f),window.addEventListener("afterprint",S),()=>{window.removeEventListener("beforeprint",f),window.removeEventListener("afterprint",S);}},[r,l,a,e]);let M=l||T;return react.useEffect(()=>{if(!M||typeof document>"u")return;let f=document.documentElement;return To++,f.classList.add("kanuni-datagrid-printing"),()=>{To--,To<=0&&(To=0,f.classList.remove("kanuni-datagrid-printing"));}},[M]),{active:M,begin:v,end:R}}var xo=new Map,zr=new Set;function pl(e,t){let n=xo.get(e);return n?[...n].filter(r=>r!==t):[]}function Yr(e,t,n){let r=react.useRef(null);return react.useEffect(()=>{if(!t)return;let a={controller:e,scroller:()=>n.current};r.current=a;let s=xo.get(t)??new Set;s.add(a),xo.set(t,s);let p=e.events.on("columnStateChanged",()=>{if(zr.has(t))return;let T=pl(t,a);if(T.length===0)return;let w=e.getColumnStates();zr.add(t);try{for(let v of T)v.controller.applyColumnStates(w);}finally{zr.delete(t);}});return ()=>{p(),s.delete(a),s.size===0&&xo.delete(t),r.current=null;}},[e,t,n]),{syncScroll:react.useCallback(a=>{let s=r.current;if(!t||!s)return;let p=pl(t,s);if(p.length!==0)for(let T of p){let w=T.scroller();w&&w.scrollLeft!==a&&(w.scrollLeft=a);}},[t])}}function Do(e,t,n){return e==="left"?t:e==="center"?n.left+t:n.left+n.center+t}function fl(e,t){let{start:n,end:r}=t.columns,l=e.centerOffsets,a=l[n]??0,s=(l[r]??0)-a,p=Math.max(0,e.centerWidth-a-s),T=a,w=e.center.slice(n,r),v=Array.from({length:w.length},(f,S)=>n+S),R=e.stickyIndices.filter(f=>f<n);if(R.length>0){let f=R.map(S=>e.center[S]);T-=f.reduce((S,A)=>S+A.state.width,0),w=[...f,...w],v=[...R,...v];}let M=new Map;for(let f of e.stickyIndices){let S=e.centerStickyOffsets[f];S!==null&&M.set(e.center[f].state.id,S);}return {centerColumns:w,centerIndices:v,leadingSpacer:Math.max(0,T),trailingSpacer:p,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:M}}function gl(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];r&&r.kind!=="data"&&t.push(n);}return t.length>0?t:null}function wl(e,t,n=0){if(!t)return n+e+1;let r=0,l=t.length;for(;r<l;){let a=r+l>>1;t[a]<e?r=a+1:l=a;}return n+e-r+1}var Eo=36,Go=28,Cn=60,kn=24,Ku=[["statusColumn",kn],["rowNumberColumn",Cn],["detailColumn",Go],["checkboxColumn",Eo]];function ea(e,t,n=false,r=false){return Gt({checkboxColumn:e,detailColumn:t,rowNumberColumn:n,statusColumn:r}).total}function Gt(e){let t=new Map,n=new Map,r=0,l=0;for(let[a,s]of Ku)e[a]&&(t.set(a,r),a!=="statusColumn"&&n.set(a,++l),r+=s);return {total:r,count:l,inset:a=>t.get(a)??0,colIndex:a=>n.get(a)??1}}function Jr(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function jr(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 Zr(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 So(e,t){if(t===""||e==="")return e;let n=datagridCore.foldText(e),r=n.indexOf(t);if(r===-1)return e;let l=[],a=0,s=0;for(;r!==-1;)r>a&&l.push(e.slice(a,r)),l.push(jsxRuntime.jsx("mark",{className:"kanuni-datagrid-highlight",children:e.slice(r,r+t.length)},s++)),a=r+t.length,r=n.indexOf(t,a);return a<e.length&&l.push(e.slice(a)),jsxRuntime.jsx("span",{className:"kanuni-datagrid-cell-text",children:l})}function Bu(e,t,n,r=""){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 So(l,r);if(e.valueFormatter){let a=e.valueFormatter(t,n.data);return typeof a=="string"?So(a,r):a}return e.dateFormat&&e.dataType==="date"?So(datagridCore.formatDateValue(t,e.dateFormat),r):t==null?"":So(String(t),r)}function _u({gridId:e,node:t,index:n,layout:r,columnModel:l,centerColumns:a,centerIndices:s,stickyInsets:p,leadingSpacer:T,trailingSpacer:w,striped:v,selected:R,ariaSelectable:M=true,selectable:f=true,groupSelection:S,onToggleGroupSelect:A,groupDisplay:P="fullWidth",focusedColumnId:y,rowFocused:c=false,renderRow:D,checkboxColumn:L,statusColumn:W=false,rowNumberColumn:V=false,rowNumber:H=null,getNote:C,getSpan:B,resolveColSpans:N,findKind:h,headerRowCount:d,onRowClick:E,onRowMouseDown:F,onRowDoubleClick:q,onToggleSelect:z,onCellMouseDown:fe,onRowContextMenu:Te,searchNeedle:se="",onToggleGroup:Fe,summaryDefs:b,detailColumn:Y=false,detailExpanded:Me=false,onToggleDetail:te,onToggleTreeRow:ie,renderDetail:ge,renderEditForm:De,renderRowMessage:Se,renderCellContent:I,getCellClassName:le,onCellPointerDown:U,onCellPointerEnter:j,onCellDoubleClick:Ge,rowDrag:Le,dropSide:_e=null,rowStatus:Oe,rowStatusText:it,rowStatusTint:st=false,height:dt}){let ee=ve();if(datagridCore.isDetailRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+d,"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:ge?.(t.data)})});if(datagridCore.isEditFormRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+d,"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:De?.(t.parentKey,t.data)})});if(datagridCore.isMessageRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-message-row",role:"row","aria-rowindex":n+1+d,"data-row-key":String(t.key),"data-message-for":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-message-cell",role:"gridcell","aria-colindex":1,children:Se?.(t.parentKey,t.data)})});if(datagridCore.isFillerRow(t))return null;if(datagridCore.isGroupRow(t)&&P==="fullWidth"){let O=l.getDef(t.columnId),J=O?.headerName??t.columnId,he=datagridCore.lookupLabel(O,t.value)??t.display??(t.label===""?ee.filterBlank:t.label),Ee=t.aggregates??null;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${y?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+d,"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:()=>Fe?.(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:[S&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:S==="all",ref:oe=>{oe&&(oe.indeterminate=S==="some");},"aria-label":datagridCore.fillText(ee.selectGroupAria,{count:String(t.count),group:he}),onChange:()=>A?.(String(t.key)),onClick:oe=>oe.stopPropagation(),onMouseDown:oe=>oe.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:[J,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:he}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),Ee&&b?.map(oe=>jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[datagridCore.summaryLabel(oe)," ",l.getDef(oe.columnId)?.headerName??oe.columnId,":"]})," ",datagridCore.formatSummaryValue(oe,Ee[datagridCore.summaryKey(oe.columnId,oe.type)],l.getDef(oe.columnId))]},datagridCore.summaryKey(oe.columnId,oe.type)))]})})}let ae=[],k=Gt({statusColumn:W,rowNumberColumn:V,detailColumn:Y,checkboxColumn:L}),Z=k.count,K=(O,J)=>({node:t,columnId:O,rowIndex:n,columnIndex:J,value:re?void 0:l.getCellValue(t.data,O)}),de=(O,J)=>{let he=()=>K(O,J);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${O}`,"aria-colindex":Z+J+1,"data-column-id":O,onMouseDown:Ee=>{fe?.(t,O),U?.(he(),Ee);},onMouseEnter:j?Ee=>j(he(),Ee):void 0,onDoubleClick:Ge?()=>Ge(he()):void 0}},X=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,He=t.kind==="treePath",re=datagridCore.isGroupRow(t)?t:null,Xe=He||re!==null,Ve=re?P==="column"?datagridCore.GROUP_COLUMN_ID:(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,ze=()=>{let O=re,J=l.getDef(O.columnId),he=datagridCore.lookupLabel(J,O.value)??O.display??(O.label===""?ee.filterBlank:O.label);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:O.level*16},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:O.expanded?"\u25BE":"\u25B8"}),P!=="column"&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[J?.headerName??O.columnId,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:he}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",O.count,")"]})]})},we=(O,J)=>{let he=re.aggregates?b?.find(Ee=>Ee.columnId===J):void 0;return he?jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:datagridCore.formatSummaryValue(he,re.aggregates[datagridCore.summaryKey(J,he.type)],O)}):null},i=X?(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,Ze=(O,J,he)=>{if(re){if(J===Ve)return ze();if(I){let oe=I(K(J,he));if(oe!==void 0)return oe}return we(O,J)}if(I&&!He){let oe=I(K(J,he));if(oe!==void 0)return oe}let Ee=He?J===i?jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:Bu(O,l.getCellValue(t.data,J),t,se);return X&&J===i?jsxRuntime.jsxs("span",{className:X.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:X.depth*16},children:[X.hasChildren?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":X.expanded,"aria-label":X.expanded?ee.collapseTreeRow:ee.expandTreeRow,onClick:oe=>{oe.stopPropagation(),ie?.(t.key);},children:X.expanded?"\u25BE":"\u25B8"}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),Ee]}):Ee},Je=(O,J)=>{if(!le||re)return "";let he=le(K(O,J));return he?` ${he}`:""},Ne=O=>!C||t.kind!=="data"?"":C(t.key,O,t.data)?" kanuni-datagrid-cell--noted":"",Qe=O=>B&&t.kind==="data"?B(n,O):null,u=(O,J)=>{let he=O.autoHeight?" kanuni-datagrid-cell--wrap":"";return !O.cellClassName||Xe?he:he+m(O,J)},m=(O,J)=>{let he=O.cellClassName;if(!he)return "";if(typeof he=="string")return ` ${he}`;let Ee=t.data,oe=he({value:l.getCellValue(Ee,J),row:Ee,node:t,column:O});return oe?` ${oe}`:""};if(W&&ae.push(jsxRuntime.jsx("div",{role:"presentation","aria-hidden":"true",className:"kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell",style:{width:kn,insetInlineStart:k.inset("statusColumn")},children:jsxRuntime.jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),V){let O=t.kind==="data"&&H!==null;ae.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":k.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:Cn,insetInlineStart:k.inset("rowNumberColumn")},children:O?H:""},"__rownum"));}Y&&ae.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":k.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:Go,insetInlineStart:k.inset("detailColumn")},children:Xe?null:jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Me,"aria-label":Me?ee.collapseDetails:ee.expandDetails,onMouseDown:O=>O.stopPropagation(),onClick:O=>{O.stopPropagation(),te?.(t.key);},children:Me?"\u25BE":"\u25B8"})},"__detail")),L&&ae.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":k.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:Eo,insetInlineStart:k.inset("checkboxColumn")},onMouseDown:O=>O.stopPropagation(),onClick:O=>{O.target.tagName!=="INPUT"&&(O.stopPropagation(),z?.(t));},children:re?S&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:S==="all",ref:O=>{O&&(O.indeterminate=S==="some");},"aria-label":datagridCore.fillText(ee.selectGroupAria,{count:String(re.count),group:re.display??re.label}),onChange:()=>A?.(String(re.key)),onClick:O=>O.stopPropagation(),onMouseDown:O=>O.stopPropagation()}):He?null:jsxRuntime.jsx("input",{type:"checkbox",checked:R,disabled:!f,tabIndex:-1,"aria-label":datagridCore.fillText(ee.selectRowAria,{row:String(t.key)}),onChange:()=>z?.(t),onClick:O=>O.stopPropagation(),onMouseDown:O=>O.stopPropagation()})},"__select"));let x=k.total,_=O=>y===O?" kanuni-datagrid-cell--focused":"",Q=O=>{let J=h&&t.kind==="data"?h(t.key,O):null;return J==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":J==="match"?" kanuni-datagrid-cell--find-match":""},ne={left:r.left.length,center:r.center.length},pe=t.kind==="data"&&N?N(t):null,ye=O=>pe?.widths.get(O.state.id)??O.state.width,Re=O=>{let J=pe?.spans.get(O);return J?{"aria-colspan":J}:null};r.left.forEach((O,J)=>{let he=O.def,Ee=J===r.left.length-1,oe=O.state.id;if(pe?.covered.has(oe))return;let et=Do("left",J,ne);ae.push(jsxRuntime.jsx("div",{...de(oe,et),className:`${Zr(he.align,he.dataType)} kanuni-datagrid-cell--pinned${Ee?" kanuni-datagrid-pin-edge-left":""}${_(oe)}${Q(oe)}${u(he,oe)}${Je(oe,et)}${Ne(oe)}${Jr(Qe(oe))}`,...Re(oe),style:{width:ye(O),insetInlineStart:r.leftOffsets[J]+x},children:jr(Qe(oe),y===oe,()=>Ze(he,oe,et))},oe));});let Ce=pe?.lead??null,Ke=T-(pe?.leadingDelta??0),Rt=w-(pe?.trailingDelta??0);Ke>0&&ae.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Ke}},"__lead"));let ln=(O,J)=>{let he=O.def,Ee=O.state.id,oe=Do("center",J,ne),et=p?.get(Ee),eo=et===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",Ln=Ce&&Ce.column.state.id===Ee?Ce.width:ye(O);return jsxRuntime.jsx("div",{...de(Ee,oe),...Re(Ee),className:`${Zr(he.align,he.dataType)}${eo}${_(Ee)}${Q(Ee)}${u(he,Ee)}${Je(Ee,oe)}${Ne(Ee)}${Jr(Qe(Ee))}`,style:et===void 0?{width:Ln}:{width:Ln,insetInlineStart:et+x},children:jr(Qe(Ee),y===Ee,()=>Ze(he,Ee,oe))},Ee)},Pn=Ce?r.center.indexOf(Ce.column):-1,We=Ce===null;return a.forEach((O,J)=>{let he=s?.[J]??J;!We&&he>Pn&&(ae.push(ln(Ce.column,Pn)),We=true),!pe?.covered.has(O.state.id)&&ae.push(ln(O,he));}),We||ae.push(ln(Ce.column,Pn)),Rt>0&&ae.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Rt}},"__trail")),r.right.forEach((O,J)=>{let he=O.def,Ee=J===0,oe=O.state.id;if(pe?.covered.has(oe))return;let et=Do("right",J,ne);ae.push(jsxRuntime.jsx("div",{...de(oe,et),className:`${Zr(he.align,he.dataType)} kanuni-datagrid-cell--pinned${Ee?" kanuni-datagrid-pin-edge-right":""}${_(oe)}${Q(oe)}${u(he,oe)}${Je(oe,et)}${Ne(oe)}${Jr(Qe(oe))}`,...Re(oe),style:{width:ye(O),insetInlineEnd:r.rightOffsets[J]},children:jr(Qe(oe),y===oe,()=>Ze(he,oe,et))},oe));}),jsxRuntime.jsxs("div",{className:`kanuni-datagrid-row${v&&n%2===1?" kanuni-datagrid-row--odd":""}${R?" kanuni-datagrid-row--selected":""}${c?" kanuni-datagrid-row--focused":""}${He?" kanuni-datagrid-row--tree-path":""}${re?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${re.level}`:""}${_e?` kanuni-datagrid-row--drop-${_e}`:""}${Oe?` ${datagridCore.rowStatusClassName(Oe,st)}`:""}`,role:"row","aria-rowindex":n+1+d,"aria-selected":re||!M?void 0:R,"aria-expanded":re?re.expanded:void 0,"aria-level":re?re.level+1:void 0,"data-row-key":String(t.key),"data-row-status":Oe,"aria-description":Oe?it:void 0,"aria-busy":Oe==="saving"?true:void 0,"aria-invalid":Oe==="error"?true:void 0,"data-group-key":re?String(re.key):void 0,"data-group-level":re?re.level:void 0,style:dt===void 0?void 0:{height:dt},draggable:Le?.draggable&&!re?true:void 0,onDragStart:Le&&!re?O=>Le.onDragStart(t,O):void 0,onDragEnd:Le&&!re?()=>Le.onDragEnd():void 0,onDragOver:Le&&!re?O=>Le.onDragOver(t,O):void 0,onDrop:Le&&!re?O=>Le.onDrop(t,O):void 0,onMouseDown:F&&!re?O=>F(t,O):void 0,onClick:re?()=>Fe?.(String(re.key)):E?O=>E(t,n,O):void 0,onDoubleClick:q?O=>q(t,n,O):void 0,onContextMenu:Te?O=>Te(t,n,O):void 0,children:[Le&&!re&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:ee.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"})]})})}),D&&t.kind==="data"?D({row:t.data,node:t,rowIndex:n,selected:R,focused:c}):ae]})}var vn=react.memo(_u);var Tn=26;function ta(e,t){return datagridCore.computeHeaderBands(e,t)}function na(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function oa(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 r=t.pathOf(e.columnIds[0]).slice(0,e.level+1);if(r.length!==e.level+1||!t.collapsible(r))return n;let l=t.collapsed(r);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:a=>{a.stopPropagation(),t.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 Vu({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,depth:l,checkboxColumn:a=false,detailColumn:s=false,statusColumn:p=false,rowNumberColumn:T=false,rowHeight:w=Tn,bandFold:v}){if(l<=0)return null;let R=Gt({statusColumn:p,rowNumberColumn:T,detailColumn:s,checkboxColumn:a}).total,M=ta(e.left,l),f=ta(t,l),S=ta(e.right,l),A=(P,y,c)=>{let D=c;for(let L=0;L<y;L++)D+=P[L].width;return D};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:l},(P,y)=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":y+1,style:{width:e.totalWidth+R,height:w,top:y*w},children:[R>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned",style:{width:R,insetInlineStart:0},"aria-hidden":"true"}),(M[y]??[]).map((c,D)=>jsxRuntime.jsx("div",{className:na(c,` kanuni-datagrid-band-cell--pinned${D===(M[y]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:c.spacer?"presentation":"columnheader","aria-colspan":c.spacer?void 0:c.columnIds.length,style:{width:c.width,insetInlineStart:A(M[y]??[],D,R)},title:c.spacer?void 0:c.label,children:oa(c,v)},c.columnIds[0])),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(f[y]??[]).map(c=>jsxRuntime.jsx("div",{className:na(c),role:c.spacer?"presentation":"columnheader","aria-colspan":c.spacer?void 0:c.columnIds.length,style:{width:c.width},title:c.spacer?void 0:c.label,children:oa(c,v)},c.columnIds[0])),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),(S[y]??[]).map((c,D)=>{let L=S[y]??[],W=0;for(let V=D+1;V<L.length;V++)W+=L[V].width;return jsxRuntime.jsx("div",{className:na(c,` kanuni-datagrid-band-cell--pinned${D===0?" kanuni-datagrid-pin-edge-right":""}`),role:c.spacer?"presentation":"columnheader","aria-colspan":c.spacer?void 0:c.columnIds.length,style:{width:c.width,insetInlineEnd:W},title:c.spacer?void 0:c.label,children:oa(c,v)},c.columnIds[0])})]},y))})}var aa=react.memo(Vu);var Xu=()=>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 Ju(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function ju({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,sort:s,sortable:p,onSort:T,headerFilter:w=false,filteredColumns:v,onOpenFilter:R,filterIconMode:M="hover",checkboxColumn:f=false,detailColumn:S=false,statusColumn:A=false,rowNumberColumn:P=false,rowNumberHeader:y="#",selectAllState:c="none",selectAllDisabled:D=false,onToggleSelectAll:L,draggable:W=false,reorderable:V=false,onReorder:H,resizable:C=false,onResize:B,onAutoFit:N,onHeaderContextMenu:h,groupLevels:d,onHeaderClick:E,getHeaderClassName:F,renderHeaderLabel:q}){let z=ve(),fe=Gt({statusColumn:A,rowNumberColumn:P,detailColumn:S,checkboxColumn:f}),Te=new Map(s.map((ee,ae)=>[ee.columnId,{direction:ee.direction,order:ae}])),se=new Set(v??[]),Fe=[...n.left.map(ee=>ee.state.id),...r.map(ee=>ee.state.id),...n.right.map(ee=>ee.state.id)],[b,Y]=react.useState(null),Me=react.useId(),te=b&&Fe.includes(b)?b:Fe[0],ie=ee=>{Y(ee),document.querySelector(`[data-column-id="${ee}"].kanuni-datagrid-header-cell`)?.focus();},ge=ee=>{let ae=Fe.indexOf(te),k=Math.min(Fe.length-1,Math.max(0,ae+ee));k!==ae&&ie(Fe[k]);},De=react.useRef(null),Se=react.useRef(false),[I,le]=react.useState(null),U=Fe,j=ee=>[...n.left,...n.center,...n.right].find(ae=>ae.state.id===ee)?.state.pinned??null,Ge=(ee,ae)=>(Se.current?ee>ae.left+ae.width/2:ee<ae.left+ae.width/2)?"before":"after",Le=(ee,ae)=>{let k=De.current;if(!V||!k||k===ee||j(k)!==j(ee))return;ae.preventDefault(),ae.dataTransfer.dropEffect="move";let Z=Ge(ae.clientX,ae.currentTarget.getBoundingClientRect());le(K=>K?.id===ee&&K.side===Z?K:{id:ee,side:Z});},_e=(ee,ae)=>{let k=De.current;if(le(null),!V||!k||k===ee||j(k)!==j(ee))return;if(ae.preventDefault(),ae.stopPropagation(),Ge(ae.clientX,ae.currentTarget.getBoundingClientRect())==="before")H?.(k,ee);else {let K=U[U.indexOf(ee)+1];H?.(k,K===k?U[U.indexOf(ee)+2]:K);}De.current=null;},[Oe,it]=react.useState(null),st=(ee,ae)=>{if(!C)return;ae.preventDefault(),ae.stopPropagation();let k=ae.currentTarget,Z=ae.clientX,K=ee.state.width,de=Se.current?-1:1,X=ee.state.id;it(X),k.setPointerCapture(ae.pointerId);let He=K,re=false,Xe=ze=>{re=true,He=K+(ze.clientX-Z)*de,B?.(X,He,false);},Ve=()=>{k.releasePointerCapture?.(ae.pointerId),k.removeEventListener("pointermove",Xe),k.removeEventListener("pointerup",Ve),k.removeEventListener("pointercancel",Ve),re&&B?.(X,He,true),it(null);};k.addEventListener("pointermove",Xe),k.addEventListener("pointerup",Ve),k.addEventListener("pointercancel",Ve);},dt=(ee,ae,k)=>{let Z=ee.def,K=ee.state.id,de=p&&Z.sortable!==false,X=w&&Z.filterable!==false,He=K===datagridCore.GROUP_COLUMN_ID,re=Te.get(He?d?.[0]??K:K),Xe=W&&Z.groupable!==false||V&&Z.reorderable!==false,Ve=I?.id===K?I.side:null,ze=F?.(K);return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-header-cell${ae}${ze?` ${ze}`:""}${de?" kanuni-datagrid-header-cell--sortable":""}${Ve?` kanuni-datagrid-header-cell--drop-${Ve}`:""}${Oe===K?" kanuni-datagrid-header-cell--resizing":""}${Z.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:k,role:"columnheader","aria-labelledby":`${Me}-${encodeURIComponent(K)}`,"aria-sort":re?re.direction==="asc"?"ascending":"descending":"none","data-column-id":K,tabIndex:K===te?0:-1,onFocus:()=>Y(K),draggable:Xe&&Oe===null,onDragStart:we=>{we.dataTransfer.setData("text/x-kanuni-column",K),we.dataTransfer.effectAllowed="move",De.current=K,Se.current=getComputedStyle(we.currentTarget).direction==="rtl";},onDragEnd:()=>{De.current=null,le(null);},onDragOver:V?we=>Le(K,we):void 0,onDragLeave:V?()=>le(we=>we?.id===K?null:we):void 0,onDrop:V?we=>_e(K,we):void 0,onContextMenu:h&&!datagridCore.isChromeColumn(K)?we=>h(K,we):void 0,onClick:de||E?we=>{E?.(K,we)||de&&T(K,we.shiftKey);}:void 0,onKeyDown:we=>{we.key==="ArrowRight"?(we.preventDefault(),ge(1)):we.key==="ArrowLeft"?(we.preventDefault(),ge(-1)):we.key==="Home"?(we.preventDefault(),ie(Fe[0])):we.key==="End"?(we.preventDefault(),ie(Fe[Fe.length-1])):X&&we.altKey&&we.key==="ArrowDown"?(we.preventDefault(),R?.(K,we.currentTarget)):de&&(we.key==="Enter"||we.key===" ")&&(we.preventDefault(),T(K,we.shiftKey));},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-header-label",id:`${Me}-${encodeURIComponent(K)}`,children:q?.(K)??Ju(Z,K)}),re&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:re.direction==="asc"?"\u25B2":"\u25BC"}),re&&s.length>1&&!He&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:re.order+1}),w&&Z.filterable!==false&&jsxRuntime.jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${se.has(K)?" kanuni-datagrid-filter-button--active":""}${M==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":datagridCore.fillText(z.filterColumnAria,{column:Z.headerName??K}),"aria-haspopup":"dialog","data-filter-button":K,tabIndex:-1,onClick:we=>{we.stopPropagation(),R?.(K,we.currentTarget);},children:jsxRuntime.jsx(Xu,{})}),C&&Z.resizable!==false&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":K,role:"presentation",onPointerDown:we=>st(ee,we),onDoubleClick:we=>{we.stopPropagation(),N?.(K);},onClick:we=>we.stopPropagation()})]},K)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/Tn)+1,style:{width:n.totalWidth+fe.total,top:e||void 0},children:[A&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell",role:"presentation","aria-hidden":"true",style:{width:kn,insetInlineStart:fe.inset("statusColumn")}}),P&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":fe.colIndex("rowNumberColumn"),"aria-label":z.rowNumberAria,style:{width:Cn,insetInlineStart:fe.inset("rowNumberColumn")},children:y??""}),S&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":fe.colIndex("detailColumn"),"aria-label":z.detailsAria,style:{width:Go,insetInlineStart:fe.inset("detailColumn")}}),f&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":fe.colIndex("checkboxColumn"),style:{width:Eo,insetInlineStart:fe.inset("checkboxColumn")},children:jsxRuntime.jsx("input",{type:"checkbox",checked:c==="all",ref:ee=>{ee&&(ee.indeterminate=c==="some");},"aria-label":z.selectAllRows,disabled:D,onChange:()=>L?.()})}),n.left.map((ee,ae)=>dt(ee,` kanuni-datagrid-header-cell--pinned${ae===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:ee.state.width,insetInlineStart:n.leftOffsets[ae]+fe.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(ee=>{let ae=t?.get(ee.state.id);return ae===void 0?dt(ee,"",{width:ee.state.width}):dt(ee," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:ee.state.width,insetInlineStart:ae+fe.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((ee,ae)=>dt(ee,` kanuni-datagrid-header-cell--pinned${ae===0?" kanuni-datagrid-pin-edge-right":""}`,{width:ee.state.width,insetInlineEnd:n.rightOffsets[ae]}))]})}var la=react.memo(ju);function da(e,t,n=[]){let r=null,l=new Set,a=s=>{if(l.has(s)||(l.add(s),t.isPending(s)))return;let p=t.textFor(s);if(p===null)return;let T=e[s]??"";T!==p&&(T===""&&p===""||(r??={...e},r[s]=p));};for(let s of Object.keys(e))a(s);for(let s of n)a(s);return r??e}function ec({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,values:s,checkboxColumn:p=false,detailColumn:T=false,statusColumn:w=false,rowNumberColumn:v=false,placeholder:R,onChange:M,onCommit:f,periodSuggestions:S,periodListId:A,operators:P,onOperatorChange:y,renderCustom:c}){let D=ve(),L=Gt({statusColumn:w,rowNumberColumn:v,detailColumn:T,checkboxColumn:p}),W=R??D.filterPlaceholder,V=(H,C,B)=>{let N=H.state.id,h=H.def.filterable!==false,d=h?c?.(N):void 0,E=h&&d===void 0?datagridCore.customFilterOperators(H.def):[],F=E.some(z=>z.id===P?.[N])?P[N]:"",q=E.find(z=>z.id===F)?.operandType==="none";return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-cell${C}`,role:"gridcell",style:B,"data-column-id":N,children:[h&&d!==void 0&&d,h&&d===void 0&&E.length>0&&jsxRuntime.jsxs("select",{className:"kanuni-datagrid-filter-operator",value:F,"aria-label":datagridCore.fillText(D.filterOperatorAria,{column:H.def.headerName??N}),"data-filter-operator-for":N,onChange:z=>y?.(N,z.target.value),children:[jsxRuntime.jsx("option",{value:"",children:D.filterOperatorDefault}),E.map(z=>jsxRuntime.jsx("option",{value:z.id,children:z.label},z.id))]}),h&&d===void 0&&jsxRuntime.jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:s[N]??"",placeholder:W,"aria-label":datagridCore.fillText(D.filterColumnAria,{column:H.def.headerName??N}),"data-filter-for":N,disabled:q||void 0,list:H.def.dataType==="date"&&A&&F===""?A:void 0,onChange:z=>M(N,z.target.value),onKeyDown:z=>{z.key==="Enter"&&f?.(N,z.target.value);},onBlur:z=>f?.(N,z.target.value)})]},N)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+L.total,"--dg-band-offset":`${e}px`},children:[A&&S&&S.length>0&&jsxRuntime.jsx("datalist",{id:A,children:S.map(H=>jsxRuntime.jsx("option",{value:H},H))}),L.total>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",role:"gridcell",style:{width:L.total,insetInlineStart:0}}),n.left.map((H,C)=>V(H,` kanuni-datagrid-filter-cell--pinned${C===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:H.state.width,insetInlineStart:n.leftOffsets[C]+L.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(H=>{let C=t?.get(H.state.id);return C===void 0?V(H,"",{width:H.state.width}):V(H," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:H.state.width,insetInlineStart:C+L.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((H,C)=>V(H,` kanuni-datagrid-filter-cell--pinned${C===0?" kanuni-datagrid-pin-edge-right":""}`,{width:H.state.width,insetInlineEnd:n.rightOffsets[C]}))]})}var ua=react.memo(ec);function pt({children:e,dark:t=false,kind:n="popup"}){let[r,l]=react.useState(null),a=Tt(),s=Pt();return react.useEffect(()=>{let p=document.createElement("div");return p.className=`kanuni-datagrid-root kanuni-datagrid-portal${t?" kanuni-datagrid-dark":""}${a}`,p.setAttribute(datagridCore.PORTAL_ATTRIBUTE,n),p.style.pointerEvents="auto",s().appendChild(p),l(p),()=>{p.remove();}},[t,a,s,n]),r?reactDom.createPortal(e,r):null}function nn({anchor:e,onClose:t,margin:n=8,autoFocus:r=false}){let l=react.useRef(null),[a,s]=react.useState(e),p=react.useCallback(T=>{if(l.current=T,!T)return;let w=T.getBoundingClientRect(),v=e.top+w.height+n>window.innerHeight,R=e.top-w.height-n*2,M=v&&R>n?R:e.top;s({left:Math.max(n,Math.min(e.left,window.innerWidth-w.width-n)),top:Math.max(n,Math.min(M,window.innerHeight-w.height-n))}),r&&T.focus();},[e.left,e.top,n,r]);return react.useEffect(()=>{let T=R=>{let M=l.current;M&&!M.contains(R.target)&&t();},w=R=>{R.key==="Escape"&&t();},v=R=>{let M=l.current,f=R.target;M&&f instanceof Node&&M.contains(f)||t();};return document.addEventListener("mousedown",T),document.addEventListener("keydown",w),window.addEventListener("scroll",v,true),()=>{document.removeEventListener("mousedown",T),document.removeEventListener("keydown",w),window.removeEventListener("scroll",v,true);}},[t]),{position:a,ref:p,elementRef:l}}var xn=25,Yn=new Map,Cl=200,pc=200,kl=8;function fc(e){let t=ve();return react.useMemo(()=>({search:t.search,selectAll:t.filterSelectAll,clear:t.clear,apply:t.apply,cancel:t.cancel,blank:t.filterBlank,custom:t.filterCustom,popupAria:t.filterPopupAria,nonBlank:t.filterNonBlank,emptyText:t.filterEmptyText,space:t.filterSpace,spaces:t.filterSpaces,noMatch:t.filterNoMatch,loading:t.filterLoading,truncated:t.filterTruncated,...e}),[t,e])}var gc=react.memo(function({itemKey:t,label:n,display:r,index:l,active:a,checked:s,onToggle:p,onFocus:T}){return jsxRuntime.jsxs("div",{role:"option","aria-selected":s,tabIndex:0,className:`kanuni-datagrid-filter-item${a?" kanuni-datagrid-filter-item--active":""}`,"data-value":n,"data-index":l,onFocus:()=>T(l),onClick:()=>p(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:s,tabIndex:-1}),jsxRuntime.jsx("span",{children:r})]})});function wc(e,t){return e.nonBlank?t.nonBlank:vl({value:e.blank?null:e.value,label:e.label},t)}function vl(e,t){return datagridCore.distinctDisplayText(e,{filterBlank:t.blank,filterEmptyText:t.emptyText,filterSpace:t.space,filterSpaces:t.spaces})}var wa={value:void 0,label:""},Po=e=>e.value===null||e.value===void 0;function hc({index:e,row:t,active:n,checked:r,text:l,onToggle:a,onFocus:s}){return t?jsxRuntime.jsxs("div",{role:"option","aria-selected":r,tabIndex:0,className:`kanuni-datagrid-filter-item${n?" kanuni-datagrid-filter-item--active":""}`,"data-value":t.label,"data-index":e,onFocus:()=>s(e),onClick:()=>a(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:r,tabIndex:-1}),jsxRuntime.jsx("span",{children:wc(t,l)})]}):jsxRuntime.jsx("div",{role:"option","aria-selected":false,"aria-busy":"true",className:"kanuni-datagrid-filter-item kanuni-datagrid-filter-item--pending","data-index":e,children:jsxRuntime.jsx("span",{"aria-hidden":"true",children:"\u2026"})})}function ha({gridId:e,columnId:t,headerLabel:n,entries:r,initialSelected:l,anchor:a,loading:s=false,dark:p,onApply:T,onClose:w,onCustom:v,truncated:R=false,onSearch:M,pager:f,labels:S}){let A=fc(S),[,P]=react.useReducer(k=>k+1,0);react.useEffect(()=>f?f.subscribe(P):void 0,[f]);let[y,c]=react.useState(""),[D,L]=react.useState(0),[W,V]=react.useState(()=>new Set(l??r.map(datagridCore.distinctEntryKey))),[H,C]=react.useState(false),B=react.useRef(null),N=react.useRef(null),[h,d]=react.useState(0),[E,F]=react.useState(240),q=`${e??""}:${t}`,z=Yn.get(q),fe=react.useRef(z?.scrollTop??null),[Te,se]=react.useState(z&&z.width&&z.height?{width:z.width,height:z.height}:null),Fe=react.useCallback(k=>{B.current=k,k?.focus();},[]),b=react.useRef(null),Y=react.useMemo(()=>{let k=datagridCore.foldText(y.trim());if(!k||R)return r;let Z=b.current;(!Z||Z.entries!==r)&&(Z={entries:r,lowered:r.map(de=>datagridCore.foldText(de.label)),needle:"",result:[]},b.current=Z);let K=Z.needle!==""&&k.includes(Z.needle)?Z.result.filter(de=>datagridCore.foldText(de.label).includes(k)):r.filter((de,X)=>Z.lowered[X].includes(k));return Z.needle=k,Z.result=K,K},[r,y,R]);react.useEffect(()=>{if(!M)return;let k=setTimeout(()=>M(y),150);return ()=>clearTimeout(k)},[y,M]),react.useEffect(()=>{if(!f)return;let k=setTimeout(()=>{if(f.getSearch()===y.trim())return;f.setSearch(y);let Z=N.current;Z&&(Z.scrollTop=0),d(0),L(0);},150);return ()=>clearTimeout(k)},[f,y]),react.useEffect(()=>{H||!l||V(new Set(l));},[l,H]),react.useEffect(()=>{H||l||V(new Set(r.map(datagridCore.distinctEntryKey)));},[r,H,l]);let Me=react.useCallback(k=>{N.current=k,k&&F(k.clientHeight||240);},[]);react.useEffect(()=>{let k=N.current;!k||fe.current===null||s||k.scrollHeight<=k.clientHeight||(k.scrollTop=fe.current,fe.current=null,d(k.scrollTop));});let te=react.useMemo(()=>{if(y.trim()!=="")return Y;let k=Y.findIndex(Po);return k<0?Y:[...Y.slice(0,k+1),wa,...Y.slice(k+1)]},[Y,y]),ie=react.useMemo(()=>{let k=te.length,Z=Math.max(0,Math.floor(h/xn)-kl),K=Math.ceil(E/xn)+kl*2,de=Math.min(Z,Math.max(0,k-1)),X=Math.min(k,de+K);return {start:de,end:X,count:k,rows:te.slice(de,X)}},[te,h,E]);react.useEffect(()=>{let k=N.current;f&&k&&F(k.clientHeight||240);},[f,s,f?.isLoading(),f?.getRowCount()]);let ge=f?f.getWindow(h,Math.max(E,150)):null,De=ge?.start??0,Se=ge?.end??0;react.useEffect(()=>{f&&f.ensure(De,Se);},[f,De,Se,h]);let I=f?f.getRowCount():te.length,le=s||(f?f.isLoading():false),U=nn({anchor:a,onClose:w}),[j,Ge]=react.useState(null),Le=(j??U.position.left)+(Te?.width??260)+48<window.innerWidth?"right":"left",_e=k=>{k.preventDefault(),k.stopPropagation();let Z=U.elementRef.current;if(!Z)return;let K=Z.getBoundingClientRect(),de=Le,X={x:k.clientX,y:k.clientY,w:K.width,h:K.height,left:K.left},He=null,re=Ve=>{let ze=Ve.clientX-X.x,we=Ve.clientY-X.y,i=window.innerHeight-K.top-12,Ze=Math.min(i,Math.max(pc,X.h+we));if(de==="right"){let Je=window.innerWidth-X.left-12;He={width:Math.min(Je,Math.max(Cl,X.w+ze)),height:Ze},se(He);}else {let Je=X.left+X.w,Ne=Je-12,Qe=Math.min(Ne,Math.max(Cl,X.w-ze));He={width:Qe,height:Ze},se(He),Ge(Je-Qe);}N.current&&F(N.current.clientHeight);},Xe=()=>{if(window.removeEventListener("pointermove",re),window.removeEventListener("pointerup",Xe),He){let Ve=Yn.get(q);Yn.set(q,{scrollTop:Ve?.scrollTop??N.current?.scrollTop??0,width:Math.round(He.width),height:Math.round(He.height)});}};window.addEventListener("pointermove",re),window.addEventListener("pointerup",Xe);},Oe=react.useCallback(k=>{C(true),V(Z=>{let K=new Set(Z);if(k===datagridCore.NONBLANK_KEY){let de=datagridCore.distinctNonBlankTicked(r,Z);for(let X of r)Po(X)&&!de?K.delete(datagridCore.BLANK_KEY):K.add(datagridCore.distinctEntryKey(X));return K}return K.has(k)?K.delete(k):K.add(k),K});},[r]),it=react.useCallback(k=>L(k),[]),st=()=>{if(le)return;if(f){T(f.buildFilter(t));return}if(W.size===r.length){T(null);return}let k=r.filter(X=>W.has(datagridCore.distinctEntryKey(X))),Z=k.some(Po),K=k.filter(X=>!Po(X)),de;datagridCore.distinctNonBlankTicked(r,W)?de={columnId:t,operator:"isnotnull"}:K.length===0?de={columnId:t,operator:"isnull"}:Z?de={logic:"or",nodes:[{columnId:t,operator:"in",value:K.map(X=>X.value)},{columnId:t,operator:"isnull"}]}:de={columnId:t,operator:"in",value:K.map(X=>X.value)},T(de);},dt=k=>{let Z=Math.max(0,Math.min(I-1,k));if(L(Z),f){let de=N.current;de&&(k<=0||k>=I-1)&&(de.scrollTop=k<=0?0:de.scrollHeight),requestAnimationFrame(()=>{let X=U.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${Z}"]`);X?.focus(),X?.scrollIntoView({block:"nearest"});});return}let K=U.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${Z}"]`);K?.focus(),K?.scrollIntoView({block:"nearest"});},ee=k=>k.key.length===1&&!k.ctrlKey&&!k.metaKey&&!k.altKey,ae=k=>{let Z=k.target===B.current;if(!((k.key==="Enter"||k.key===" ")&&k.target instanceof HTMLButtonElement)){if(k.key==="Tab"){let K=U.elementRef.current,de=K?Array.from(K.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')):[],X=de[0],He=de[de.length-1],re=document.activeElement;X&&He&&(!k.shiftKey&&(re===He||re===K)?(k.preventDefault(),X.focus()):k.shiftKey&&(re===X||re===K)&&(k.preventDefault(),He.focus()));return}if(k.key==="Backspace"&&!Z){k.preventDefault(),B.current?.focus(),c(K=>K.slice(0,-1)),L(0);return}if(k.key==="ArrowDown"){k.preventDefault(),dt(Z?0:D+1);return}if(k.key==="ArrowUp"){k.preventDefault(),dt(Z?f?0:te.length-1:D-1);return}if(!Z&&(k.key==="Home"||k.key==="End")){k.preventDefault(),dt(k.key==="Home"?0:I-1);return}if(k.key===" "&&!Z){if(k.preventDefault(),f){let de=f.getRow(D);de&&f.toggle(de);return}let K=te[D];K&&Oe(K===wa?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(K));return}if(k.key==="Enter"){k.preventDefault(),st();return}!Z&&ee(k)&&k.key!==" "&&(k.preventDefault(),B.current?.focus(),c(K=>K+k.key),L(0));}};return jsxRuntime.jsx(pt,{dark:p,children:jsxRuntime.jsxs("div",{ref:U.ref,className:"kanuni-datagrid-filter-popup",style:{left:j??U.position.left,top:U.position.top,...Te?{width:Te.width,height:Te.height,maxHeight:"none"}:null},role:"dialog","aria-label":A.popupAria.replace("{column}",n),tabIndex:-1,onKeyDown:ae,children:[jsxRuntime.jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${Le}`,"data-testid":"dg-filter-resize",onPointerDown:_e}),jsxRuntime.jsx("input",{ref:Fe,className:"kanuni-datagrid-filter-search",type:"search",placeholder:A.search,value:y,onChange:k=>{c(k.target.value),L(0);},"data-testid":"dg-filter-search"}),!f&&R&&jsxRuntime.jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:A.truncated}),v&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-custom","data-testid":"dg-filter-custom",onClick:v,children:A.custom}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(f)return f.selectAll();C(true),y.trim()===""?V(new Set(r.map(datagridCore.distinctEntryKey))):V(k=>{let Z=new Set(k);for(let K of Y)Z.add(datagridCore.distinctEntryKey(K));return Z});},children:A.selectAll}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(f)return f.clear();C(true),y.trim()===""?V(new Set):V(k=>{let Z=new Set(k);for(let K of Y)Z.delete(datagridCore.distinctEntryKey(K));return Z});},children:A.clear})]}),jsxRuntime.jsxs("div",{ref:Me,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true","aria-busy":le||void 0,"aria-setsize":I,onScroll:k=>{let Z=k.target.scrollTop;d(Z),fe.current=null;let K=Yn.get(q);Yn.set(q,{...K,scrollTop:Z});},children:[le&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:A.loading}),!le&&I===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:A.noMatch}),f&&ge&&I>0&&jsxRuntime.jsx("div",{style:{height:ge.totalHeight,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${ge.offsetY}px)`},children:Array.from({length:ge.end-ge.start},(k,Z)=>{let K=ge.start+Z,de=f.getRow(K);return jsxRuntime.jsx(hc,{index:K,row:de,active:K===D,checked:de?f.isChecked(de):false,text:A,onToggle:X=>f.toggle(X),onFocus:it},K)})})}),!f&&ie.count>0&&jsxRuntime.jsx("div",{style:{height:te.length*xn,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${ie.start*xn}px)`},children:ie.rows.map((k,Z)=>{let K=ie.start+Z,de=k===wa,X=de?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(k);return jsxRuntime.jsx(gc,{itemKey:X,label:k.label,display:de?A.nonBlank:vl(k,A),index:K,active:K===D,checked:de?datagridCore.distinctNonBlankTicked(r,W):W.has(X),onToggle:Oe,onFocus:it},X)})})})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:w,children:A.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:st,disabled:le,"data-testid":"dg-filter-apply",children:A.apply})]})]})})}function ba(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 Ra({controller:e,columnId:t,surface:n,close:r}){let[l,a]=react.useState(()=>ba(e,t,n));react.useEffect(()=>(a(ba(e,t,n)),e.events.on("filterChanged",()=>{a(ba(e,t,n));})),[e,t,n]);let s=react.useCallback(w=>{e.setColumnFilter(t,w,n==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET);},[e,t,n]),p=react.useCallback(()=>{},[]),T=e.getColumnModel().getDef(t);return T?.renderFilter?jsxRuntime.jsx(jsxRuntime.Fragment,{children:T.renderFilter({columnId:t,column:T,surface:n,value:l,setValue:s,close:r??p})}):null}var kc='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function Dl({controller:e,columnId:t,headerLabel:n,anchor:r,dark:l,onClose:a}){let s=ve(),p=nn({anchor:r,onClose:a}),T=react.useRef(false),w=p.ref,v=react.useCallback(R=>{w(R),!(!R||T.current)&&(T.current=true,(R.querySelector(kc)??R).focus({preventScroll:true}));},[w]);return jsxRuntime.jsx(pt,{dark:l,children:jsxRuntime.jsx("div",{ref:v,tabIndex:-1,className:"kanuni-datagrid-filter-popup kanuni-datagrid-filter-popup--custom",style:{left:p.position.left,top:p.position.top},role:"dialog","aria-label":s.filterPopupAria.replace("{column}",n),"data-column-id":t,children:jsxRuntime.jsx(Ra,{controller:e,columnId:t,surface:"popup",close:a})})})}var Ca="text/x-kanuni-column";function Dc({columns:e,levels:t,onSetLevels:n,maxLevels:r=1,onExpandAll:l,onCollapseAll:a,emptyText:s}){let p=ve(),T=s??p.groupPanelHint,[w,v]=react.useState(false),R=react.useRef(null),[M,f]=react.useState(null),S=C=>e.find(N=>N.state.id===C)?.def.headerName??C,A=C=>{if(!C||t.includes(C))return;let B=t.length>=r?t.slice(0,r-1):[...t];n([...B,C]);},P=C=>n(t.filter(B=>B!==C)),y=(C,B)=>{let N=t.filter(d=>d!==C),h=Math.max(0,Math.min(N.length,B));n([...N.slice(0,h),C,...N.slice(h)]);},c=(C,B,N)=>{if(C===B)return;let d=t.filter(E=>E!==C).indexOf(B);d<0||y(C,N==="before"?d:d+1);},D=(C,B)=>{let N=C+B;N<0||N>=t.length||c(t[C],t[N],B<0?"before":"after");},L=(C,B)=>C<B.top+B.height/2?"before":"after",W=(C,B)=>{B.preventDefault(),B.stopPropagation();let N=L(B.clientY,B.currentTarget.getBoundingClientRect());f(null),v(false);let h=R.current;if(R.current=null,h){c(h,t[C],N);return}let d=B.dataTransfer.getData(Ca);if(!d||t.includes(d))return;if(t.length>=r){A(d);return}let E=N==="before"?C:C+1;n([...t.slice(0,E),d,...t.slice(E)]);},V=(C,B,N)=>{let h=N.ctrlKey||N.metaKey;h&&(N.key==="ArrowUp"||N.key==="ArrowLeft")?(N.preventDefault(),D(C,-1)):h&&(N.key==="ArrowDown"||N.key==="ArrowRight")?(N.preventDefault(),D(C,1)):(N.key==="Delete"||N.key==="Backspace")&&(N.preventDefault(),P(B));},H=e.filter(C=>!t.includes(C.state.id));return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-group-panel${w?" kanuni-datagrid-group-panel--over":""}`,onDragOver:C=>{C.preventDefault(),v(true);},onDragLeave:()=>v(false),onDrop:C=>{if(C.preventDefault(),v(false),f(null),R.current){R.current=null;return}A(C.dataTransfer.getData(Ca));},children:[t.length>0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((C,B)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-group-level${M?.index===B?` kanuni-datagrid-group-level--drop-${M.side}`:""}`,style:{"--dg-group-level":B},"data-group-level":B,onDragOver:N=>{N.preventDefault(),N.stopPropagation();let h=L(N.clientY,N.currentTarget.getBoundingClientRect());f(d=>d?.index===B&&d.side===h?d:{index:B,side:h});},onDragLeave:()=>f(N=>N?.index===B?null:N),onDrop:N=>W(B,N),children:jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:r>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${datagridCore.fillText(p.groupLevelAria,{n:B+1})}: ${S(C)}`,onDragStart:N=>{R.current=C,N.dataTransfer.effectAllowed="move",N.dataTransfer.setData(Ca,C);},onDragEnd:()=>{R.current=null,f(null);},onKeyDown:N=>V(B,C,N),children:[r>1&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-chip-level",children:B+1}),S(C),jsxRuntime.jsx("button",{type:"button","aria-label":datagridCore.fillText(p.groupRemoveAria,{column:S(C)}),onClick:()=>P(C),children:"\xD7"})]})},C))}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-panel-hint",children:T}),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:p.groupExpandAll}),jsxRuntime.jsx("button",{type:"button",onClick:a,children:p.groupCollapseAll})]}),jsxRuntime.jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-sr-only",children:r>1?p.groupAddLevel:p.groupByColumn}),r>1?jsxRuntime.jsxs("select",{value:"",disabled:H.length===0,onChange:C=>A(C.target.value),children:[jsxRuntime.jsx("option",{value:"",children:p.groupAddLevelButton}),H.map(C=>jsxRuntime.jsx("option",{value:C.state.id,children:C.def.headerName??C.state.id},C.state.id))]}):jsxRuntime.jsxs("select",{value:t[0]??"",onChange:C=>n(C.target.value?[C.target.value]:[]),children:[jsxRuntime.jsx("option",{value:"",children:p.groupNoGrouping}),e.map(C=>jsxRuntime.jsx("option",{value:C.state.id,children:C.def.headerName??C.state.id},C.state.id))]})]})]})]})}var ka=react.memo(Dc);function Nc({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,defs:l,values:a,checkboxColumn:s=false,detailColumn:p=false,statusColumn:T=false,rowNumberColumn:w=false,onPickSummary:v,emptyHint:R="",position:M="bottom",bandOffset:f=0,headerRowsBetween:S=0}){let A=ve(),P=datagridCore.summaryTypeLabels(A),y=new Map(l.map(L=>[L.columnId,L])),c=Gt({statusColumn:T,rowNumberColumn:w,detailColumn:p,checkboxColumn:s}).total,D=(L,W,V)=>{let H=L.state.id,C=y.get(H),B=C?a[datagridCore.summaryKey(C.columnId,C.type)]:void 0,N=L.def.dataType==="number"||L.def.dataType==="bigint",h=datagridCore.isChromeColumn(H)?void 0:v;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-footer-cell${W}${N?" kanuni-datagrid-footer-cell--number":""}${C?" kanuni-datagrid-footer-cell--active":""}`,style:V,role:"gridcell","data-column-id":H,"data-summary-type":C?.type??"",title:C?`${datagridCore.summaryLabel(C,P)} \u2014 ${L.def.headerName??H}`:void 0,onContextMenu:h?d=>h(H,d):void 0,onClick:h?d=>h(H,d):void 0,children:C?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-value",children:datagridCore.formatSummaryValue(C,B,L.def)}):h?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-hint",children:R}):null},H)};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${M}`,role:"row","aria-label":A.columnTotalsAria,style:{width:e.totalWidth+c,"--dg-band-offset":`${f}px`,"--dg-pinned-gap":String(S)},children:[c>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:c,insetInlineStart:0}}),e.left.map((L,W)=>D(L,` kanuni-datagrid-footer-cell--pinned${W===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:L.state.width,insetInlineStart:e.leftOffsets[W]+c})),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(L=>D(L,"",{width:L.state.width})),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),e.right.map((L,W)=>D(L,` kanuni-datagrid-footer-cell--pinned${W===0?" kanuni-datagrid-pin-edge-right":""}`,{width:L.state.width,insetInlineEnd:e.rightOffsets[W]}))]})}var Fo=react.memo(Nc);function Ic(e,t){return `__dg_pinned_${e}_${t}`}function Fc({gridId:e,side:t,rows:n,rowKeys:r,onUserRowContextMenu:l,layout:a,columnModel:s,centerColumns:p,centerIndices:T,stickyInsets:w,leadingSpacer:v,trailingSpacer:R,checkboxColumn:M=false,detailColumn:f=false,statusColumn:S=false,rowNumberColumn:A=false,rowHeight:P,bandOffset:y=0,headerRowsBetween:c,ariaRowBase:D}){return n.length===0?null:jsxRuntime.jsx("div",{className:`kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--${t}`,role:"rowgroup",style:{width:a.totalWidth||"100%","--dg-band-offset":`${y}px`,"--dg-pinned-gap":String(c)},children:n.map((L,W)=>{let V=r?.[W]??null,H={kind:"data",key:Ic(t,W),sourceIndex:-1,data:L};return jsxRuntime.jsx(vn,{gridId:e,node:H,index:W,layout:a,columnModel:s,centerColumns:p,centerIndices:T,stickyInsets:w,leadingSpacer:v,trailingSpacer:R,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:M,detailColumn:f,statusColumn:S,rowNumberColumn:A,rowNumber:null,headerRowCount:D,height:P,onRowContextMenu:V!==null&&l?(C,B,N)=>l(V,L,N):void 0},H.key)})})}var Ho=react.memo(Fc);function Ml({controller:e,renderRow:t,width:n,bandOffset:r,headerRowsBetween:l,belowPinned:a}){let[,s]=react.useReducer(w=>w+1,0);react.useEffect(()=>{let w=[e.events.on("bodyScroll",s),e.events.on("contentReady",s),e.events.on("viewportChanged",s)];return ()=>w.forEach(v=>v())},[e]);let p=react.useRef(null);react.useLayoutEffect(()=>{p.current?.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(w=>w.setAttribute("tabindex","-1"));});let T=e.getStickyGroupRows();return T.length===0?null:jsxRuntime.jsx("div",{ref:p,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:T.map((w,v)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-sticky-group${v===T.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:w.offset,height:w.height,zIndex:T.length-v},children:t(w.node,w.index,w.height)},String(w.node.key)))})}function va({name:e,size:t=14}){return jsxRuntime.jsx("svg",{width:t,height:t,viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",className:"kanuni-datagrid-icon",children:jsxRuntime.jsx("path",{d:datagridCore.TOOLBAR_ICON_PATHS[e],fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}async function qn(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 rn({anchor:e,onClose:t,children:n,dark:r,className:l="",label:a,role:s="dialog"}){let p=nn({anchor:e,onClose:t});return jsxRuntime.jsx(pt,{dark:r,children:jsxRuntime.jsx("div",{ref:p.ref,className:`kanuni-datagrid-filter-popup ${l}`.trim(),style:{left:p.position.left,top:p.position.top},role:s,"aria-label":a,children:n})})}function zc(e){let t=ve();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 Yc=()=>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 qc({controller:e,search:t=true,exportCsv:n=true,exportExcel:r=false,exportPdf:l=false,columnChooser:a=true,dark:s,onOpenColumnChooser:p,itemsBefore:T,itemsAfter:w,searchDebounce:v=200,searchOptions:R,exportMenu:M=true,labels:f}){let S=zc(f),[A,P]=react.useState(e.getSearchText()),[y,c]=react.useState(null),[D,L]=react.useState(null),[W,V]=react.useState(null),H=react.useId(),C=R?.debounce??v,B=R?.validate?.(A)??null,N=()=>{B===null&&e.getSearchText()!==A&&e.setSearchText(A);};react.useEffect(()=>{if(B!==null)return;let F=setTimeout(()=>{e.getSearchText()!==A&&e.setSearchText(A);},C);return ()=>clearTimeout(F)},[e,A,C,B]);let[h,d]=react.useState(()=>e.getSelectedCount());react.useEffect(()=>(d(e.getSelectedCount()),e.events.on("selectionChanged",()=>d(e.getSelectedCount()))),[e]);let E=async F=>{c(F),V(null);let q=await qn(e,F);q.error?V(q.error):L(null),c(null);};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-toolbar",children:[T,t&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:R?.placeholder??S.search,value:A,maxLength:R?.maxLength,"aria-label":S.search,"aria-invalid":B!==null||void 0,"aria-describedby":B!==null?H:void 0,"data-testid":"dg-toolbar-search",onChange:F=>P(F.target.value),onBlur:()=>{R?.applyOnBlur!==false&&N();},onKeyDown:F=>{F.key==="Enter"&&R?.applyOnBlur!==false&&N();}}),t&&B!==null&&jsxRuntime.jsx("span",{id:H,className:"kanuni-datagrid-toolbar-search-error",role:"alert","data-testid":"dg-toolbar-search-error",children:B}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxRuntime.jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:F=>{let q=F.currentTarget.getBoundingClientRect();p?.({left:q.left,top:q.bottom+2});},children:[jsxRuntime.jsx(va,{name:"columns"}),jsxRuntime.jsx("span",{children:S.columns})]}),M&&(n&&e.canExportAll()||r||l)&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":S.exportMenu,title:S.exportMenu,disabled:y!==null,"data-testid":"dg-export-menu",onClick:F=>{let q=F.currentTarget.getBoundingClientRect();L(D?null:{left:q.right-190,top:q.bottom+2});},children:y?jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsxRuntime.jsx(Yc,{})}),D&&jsxRuntime.jsxs(rn,{anchor:D,onClose:()=>L(null),dark:s,role:"menu",label:S.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:y!==null,"data-testid":"dg-export-csv",onClick:()=>E("csv"),children:y==="csv"?S.exporting:S.csv}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:y!==null,"data-testid":"dg-export-excel",onClick:()=>E("excel"),children:y==="excel"?S.exporting:S.excel}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:y!==null||h===0,"data-testid":"dg-export-excel-selected",onClick:()=>E("excel-selected"),children:y==="excel-selected"?S.exporting:S.excelSelected}),l&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:y!==null,"data-testid":"dg-export-pdf",onClick:()=>E("pdf"),children:y==="pdf"?S.exporting:S.pdf})]}),w,W&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:W})]})}var xa=react.memo(qc);var Zc=8;function Qc(e){let t=ve();return react.useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function Da({controller:e,columns:t,anchor:n,onClose:r,dark:l,labels:a}){let s=Qc(a),[p,T]=react.useState(""),w=e.getColumnModel(),v=P=>w.getDef(P.id)?.headerName??P.id,R=t.filter(P=>!datagridCore.isChromeColumn(P.id)),M=R.filter(P=>!w.getDef(P.id)?.hideInChooser),f=R.filter(P=>P.visible).length,S=p.trim().toLocaleLowerCase(),A=S?M.filter(P=>v(P).toLocaleLowerCase().includes(S)):M;return jsxRuntime.jsxs(rn,{anchor:n,onClose:r,dark:l,label:s.title,className:"kanuni-datagrid-column-chooser",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-title",children:s.title}),M.length>Zc&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:s.search,"aria-label":s.search,value:p,onChange:P=>T(P.target.value)}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-list",children:[A.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-empty",children:s.empty}),A.map(P=>{let y=P.visible&&f===1;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsxRuntime.jsx("input",{type:"checkbox",checked:P.visible,disabled:y,"data-column-toggle":P.id,onChange:()=>e.setColumnVisible(P.id,!P.visible)}),jsxRuntime.jsx("span",{children:v(P)})]},P.id)})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",disabled:f===M.length,onClick:()=>M.forEach(P=>!P.visible&&e.setColumnVisible(P.id,true)),children:s.showAll}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:r,children:s.ok})]})]})}function rm(e){let t=ve();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 am({page:e,pageCount:t,pageSize:n,pageSizes:r=[25,50,100,250],totalRows:l,onPage:a,onNext:s,onPrevious:p,onPageSize:T,pageButtons:w=false,maxPageButtons:v,labels:R}){let M=rm(R),f=e<=0,S=e>=t-1,A=l===0?0:e*n+1,P=Math.min(l,(e+1)*n),y=react.useRef(null),c=react.useRef(null);return react.useEffect(()=>{let D=c.current,L=y.current;if(!L||!(D instanceof HTMLButtonElement)||!D.disabled)return;let W=document.activeElement;if(W&&W!==document.body&&W!==D)return;let V=L.querySelector('[aria-current="page"]')??L.querySelector("button:not(:disabled)");V?.focus(),c.current=V;},[e,t]),jsxRuntime.jsxs("div",{ref:y,className:"kanuni-datagrid-pager",role:"navigation","aria-label":M.navigation,onFocus:D=>{c.current=D.target;},onBlur:D=>{let L=D.relatedTarget;L&&!y.current?.contains(L)&&(c.current=null);},children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsxRuntime.jsx("span",{children:M.rowsPerPage}),jsxRuntime.jsx("select",{value:n,"data-testid":"dg-page-size",onChange:D=>T(Number(D.target.value)),children:r.map(D=>jsxRuntime.jsx("option",{value:D,children:D},D))})]}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[A.toLocaleString(),"\u2013",P.toLocaleString()," ",M.of," ",l.toLocaleString()]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsxRuntime.jsx("button",{type:"button","aria-label":M.first,disabled:f,onClick:()=>a(0),children:"\xAB"}),jsxRuntime.jsx("button",{type:"button","aria-label":M.previous,disabled:f,"data-testid":"dg-page-prev",onClick:p,children:"\u2039"}),w?datagridCore.pageButtonItems(e,t,v).map(D=>typeof D=="number"?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":datagridCore.fillText(M.pageButton,{n:String(D+1)}),"aria-current":D===e?"page":void 0,onClick:()=>a(D),children:D+1},D):jsxRuntime.jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},D)):jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[M.page," ",e+1," ",M.of," ",t]}),jsxRuntime.jsx("button",{type:"button","aria-label":M.next,disabled:S,"data-testid":"dg-page-next",onClick:s,children:"\u203A"}),jsxRuntime.jsx("button",{type:"button","aria-label":M.last,disabled:S,onClick:()=>a(t-1),children:"\xBB"})]})]})}var Sa=react.memo(am);function mm(e){let t=ve();return react.useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function pm({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:r,labels:l}){let a=mm(l),s=ve(),[,p]=react.useState(0);react.useEffect(()=>e.events.on("filterChanged",()=>p(R=>R+1)),[e]);let T=e.getEffectiveFilter(),w=e.isFilterEnabled(),v=datagridCore.describeFilter(T,e.getColumnModel(),{...r,labels:{...datagridCore.filterLabels(s),...r?.labels}});return !T&&!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":a.toggle,children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-clear",title:a.clear,"aria-label":a.clear,disabled:!T,"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:!T,title:a.toggle,"aria-label":a.toggle,"data-testid":"dg-filter-panel-toggle",onChange:R=>e.setFilterEnabled(R.target.checked)}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:v??void 0,"data-testid":"dg-filter-panel-text",children:v??a.empty}),t&&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:()=>t(),children:"\u25BE"})]})}var Ea=react.memo(pm);var Ko=e=>!e.separator&&!e.disabled;function Bo({x:e,y:t,items:n,context:r,onClose:l,dark:a=false,label:s}){let p=ve(),T=react.useRef(null),[w,v]=react.useState({left:e,top:t}),[R,M]=react.useState(()=>n.findIndex(Ko)),[f,S]=react.useState(null),[A,P]=react.useState(null),y=react.useRef(null),[c,D]=react.useState(null);react.useEffect(()=>P(null),[f]);let L=react.useCallback((h,d)=>{if(S(h),h===null||!d)return;let E=d.getBoundingClientRect();D({left:E.left,right:E.right,top:E.top});},[]),W=h=>T.current?.querySelector(`[data-item-index="${h}"]`)??null,V=react.useCallback(h=>{if(y.current=h,!h||!c)return;let d=8,E=h.getBoundingClientRect(),F=Math.max(d,Math.min(c.top-4,window.innerHeight-E.height-d)),z=c.right+E.width+d<=window.innerWidth?c.right:Math.max(d,c.left-E.width);P({left:z,top:F});},[c]),H=react.useCallback(h=>{if(T.current=h,!h)return;let d=h.getBoundingClientRect(),E=8;v({left:Math.max(E,Math.min(e,window.innerWidth-d.width-E)),top:Math.max(E,Math.min(t,window.innerHeight-d.height-E))}),h.focus();},[e,t]);react.useEffect(()=>{let h=E=>{let F=E.target;y.current?.contains(F)||T.current&&!T.current.contains(F)&&l();},d=()=>l();return document.addEventListener("mousedown",h),window.addEventListener("scroll",d,true),()=>{document.removeEventListener("mousedown",h),window.removeEventListener("scroll",d,true);}},[l]);let C=(h,d)=>{let E=n.length;for(let F=1;F<=E;F++){let q=(h+d*F+E*E)%E;if(Ko(n[q]))return q}return h},B=h=>{let d=n[h];if(!(!d||!Ko(d))){if(d.items?.length){L(h,W(h));return}d.onSelect?.(r),l();}},N=h=>{switch(h.key){case "ArrowDown":M(d=>C(d,1));break;case "ArrowUp":M(d=>C(d,-1));break;case "Home":M(n.findIndex(Ko));break;case "End":M(C(0,-1));break;case "ArrowRight":if(n[R]?.items?.length)L(R,W(R));else return;break;case "ArrowLeft":if(f!==null)L(null);else return;break;case "Enter":case " ":B(R);break;case "Escape":l();break;case "Tab":l();return;default:return}h.preventDefault(),h.stopPropagation();};return jsxRuntime.jsxs(pt,{dark:a,children:[jsxRuntime.jsx("div",{ref:H,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":s??p.rowActions,tabIndex:-1,style:{left:w.left,top:w.top},onKeyDown:N,children:n.map((h,d)=>h.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},h.id??`sep-${d}`):jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${d===R?" kanuni-datagrid-menu-item--active":""}`,disabled:h.disabled,"data-item-index":d,"aria-haspopup":h.items?.length?"menu":void 0,"aria-expanded":h.items?.length?f===d:void 0,onMouseEnter:E=>{M(d),L(h.items?.length?d:null,E.currentTarget);},onClick:()=>B(d),children:[h.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:h.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:h.label}),h.shortcut&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:h.shortcut}),h.items?.length?jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},h.id??d))}),f!==null&&n[f]?.items?.length?jsxRuntime.jsx("div",{ref:V,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:A?{left:A.left,top:A.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[f].items.map((h,d)=>h.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},h.id??`sub-sep-${d}`):jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:h.disabled,onClick:()=>{h.onSelect?.(r),l();},children:[h.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:h.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:h.label})]},h.id??d))}):null]})}var gm=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),Na=gm?"\u2318":"Ctrl+",Al=`${Na}C`,wm=`${Na}X`,hm=`${Na}V`;function En(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
3
+ `).length:0,()=>e.writeClipboard(n,"copy"));}function bm(e){navigator.clipboard?.writeText(e).catch(()=>{});}function ym(e){let t=e.getColumnModel();return e.getVisualColumnIds().some(n=>{let r=t.getDef(n)?.band;return typeof r=="string"?r!=="":Array.isArray(r)&&r.length>0})}function Rm(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var Cm={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function Pa(e,t,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:t.menuCopy,shortcut:Al,onSelect:()=>En(e)}),a.copyWithHeaders!==false&&s.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>En(e,{includeHeaders:true})}),a.copyWithGroupHeaders!==false&&ym(e)&&s.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>En(e,{includeGroupHeaders:true})});let p=Rm(a.export).filter(T=>T!=="csv"||e.canExportAll());if(p.length>0){let T=e.getSelectedCount()===0;s.push({id:"__dg-export",label:t.menuExport,items:p.map(w=>({id:`__dg-export-${w}`,label:t[Cm[w]],disabled:w==="excel-selected"&&T,onSelect:()=>{qn(e,w).then(v=>{v.error&&l?.(v.error);});}}))});}return s.length>0&&r&&s.unshift({id:"__dg-sep-builtin",separator:true}),s}function La(e,t,n,r){if(!e.isRowPinningEnabled()||!e.canPinRow(n))return [];let l=e.getRowPinSide(n),a=[];return l!=="top"&&a.push({id:"__dg-pin-top",label:t.pinRowTop,onSelect:()=>e.pinRow(n,"top")}),l!=="bottom"&&a.push({id:"__dg-pin-bottom",label:t.pinRowBottom,onSelect:()=>e.pinRow(n,"bottom")}),l&&a.push({id:"__dg-unpin",label:t.unpinRow,onSelect:()=>e.pinRow(n,null)}),r?[{id:"__dg-sep-pin",separator:true},...a]:a}function Fa({anchor:e,value:t,dark:n,onCommit:r,onCancel:l}){let a=ve(),[s,p]=react.useState(t),T=react.useRef(null);react.useEffect(()=>{let v=T.current;v&&(v.focus(),v.select());},[]);let w=()=>{let v=s.trim();r(v===""?null:v);};return jsxRuntime.jsxs(rn,{anchor:e,onClose:l,dark:n,label:a.noteEditorAria,className:"kanuni-datagrid-note-editor",children:[jsxRuntime.jsx("textarea",{ref:T,className:"kanuni-datagrid-note-input",value:s,rows:4,"aria-label":a.noteEditorAria,placeholder:a.notePlaceholder,onChange:v=>p(v.target.value),onKeyDown:v=>{v.key==="Enter"&&(v.ctrlKey||v.metaKey)&&(v.preventDefault(),w()),v.key==="Escape"&&(v.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:w,children:a.save})]})]})}function Dm(e){let t=ve();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 Sm=new Set(["filtering","sorting","computing","encoding","exporting"]);function Aa({controller:e,delay:t=300,labels:n,cancellable:r=true,forced:l=false}){let[a,s]=react.useState(()=>e.getBusy()),[p,T]=react.useState(false);react.useEffect(()=>(s(e.getBusy()),e.events.on("busyChanged",S=>s(S))),[e]);let w=a.busy&&a.background!==true;react.useEffect(()=>{if(!w){T(false);return}let S=setTimeout(()=>T(true),t);return ()=>clearTimeout(S)},[w,t]);let v=Dm(n);if(!l&&(!p||!w))return null;let R=a.phase?v[a.phase]:v.busy,M=a.progress===null?null:Math.max(0,Math.min(100,a.progress)),f=r&&a.phase!==null&&Sm.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:R}),M!==null&&jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(M),"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:`${M}%`}})}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(M),"%"]})]}),f&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:v.cancel})]})})}function $l({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(r=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-card-field",children:[jsxRuntime.jsx("dt",{children:r.label}),jsxRuntime.jsx("dd",{children:r.text})]},r.columnId))})]})}function Wl({controller:e,sort:t,columns:n,text:r}){if(n.length===0)return null;let l=t[0],a=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:r.cardSortBy}),jsxRuntime.jsxs("select",{className:"kanuni-datagrid-cardbar-select",value:l?.columnId??"",onChange:s=>e.setSort(s.target.value?[{columnId:s.target.value,direction:l?.direction??"asc"}]:[]),children:[jsxRuntime.jsx("option",{value:"",children:r.none}),n.map(s=>jsxRuntime.jsx("option",{value:s.id,children:s.label},s.id))]})]}),l&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-cardbar-dir","aria-label":a?r.sortAsc:r.sortDesc,title:a?r.sortAsc:r.sortDesc,onClick:()=>e.setSort([{columnId:l.columnId,direction:a?"asc":"desc"}]),children:jsxRuntime.jsx("span",{"aria-hidden":"true",children:a?"\u2193":"\u2191"})})]})}var Vl=null;function Em(){return typeof document>"u"?null:(Vl??=document.createElement("canvas"),Vl.getContext("2d"))}function Ul(e){let t=getComputedStyle(e);return `${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function Gm(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function Mm(e){let t=e.map(r=>[r.style.width,r.style.minWidth,r.style.maxWidth]);for(let r of e)r.style.width="max-content",r.style.minWidth="0",r.style.maxWidth="none";let n=0;for(let r of e){let l=Math.ceil(r.getBoundingClientRect().width);l>n&&(n=l);}return e.forEach((r,l)=>{[r.style.width,r.style.minWidth,r.style.maxWidth]=t[l];}),n}function _o(e,t){let n=Em();if(!n)return null;let r=typeof CSS<"u"&&CSS.escape?CSS.escape(t):t.replace(/"/g,'\\"'),l=e.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${r}"]`),a=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${r}"]`);if(!l&&a.length===0)return null;let s=0;if(l){let p=l.querySelector(".kanuni-datagrid-header-label")??l;n.font=Ul(p),s=n.measureText(p.textContent??"").width+44;}if(a.length>0){n.font=Ul(a[0]);let p=[];for(let T=0;T<a.length;T++){if(Gm(a[T])){p.push(a[T]);continue}let w=a[T].textContent??"";if(w==="")continue;let v=n.measureText(w).width+20;v>s&&(s=v);}p.length>0&&(s=Math.max(s,Mm(p)));}return s===0?null:Math.round(Math.min(640,Math.max(48,s)))}function Oa(e,t){let n=react.useRef(t);n.current=t;let r=!!t?.enabled,l=t?.storageKey,a=t?.type;react.useEffect(()=>{if(r)return datagridCore.attachStateStoring(e,{...n.current,enabled:true})},[e,r,l,a]);}var $o="application/x-kanuni-row";function Ba(e,t){let n=!!t?.enabled,r=t?.group??null,l=t?.allowReordering??true,a=t?.allowDropInsert??r!==null,[s,p]=react.useState(false),[T,w]=react.useState(null),v=react.useRef(null),R=react.useRef(false),M=react.useRef(null),f=react.useRef(null),S=react.useRef(t);S.current=t;let A=react.useCallback(h=>e.getRowByKey(h),[e]),P=(h,d)=>{let E=d.getBoundingClientRect();return h.clientY<E.top+E.height/2?"before":"after"},y=react.useCallback((h,d)=>{if(!datagridCore.isDataRow(h))return;f.current=h.key,M.current=h.key,R.current=false,v.current=null;let E={gridId:e.gridId,group:r,rowKey:h.key,row:h.data};d.dataTransfer.setData($o,JSON.stringify(E)),d.dataTransfer.setData("text/plain",String(h.key)),d.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:h.key}),d.stopPropagation();},[e,r]),c=react.useCallback(()=>{let h=M.current;h!==null&&e.notifyRowDragEnd({rowKey:h,dropped:R.current,overKey:v.current?.key??null,position:v.current?.side??null}),R.current=false,v.current=null,M.current=null,f.current=null,w(null),p(false);},[e]),D=react.useCallback(h=>h.dataTransfer.types.includes($o)?f.current!==null?l:a&&r!==null:false,[l,a,r]),L=react.useCallback((h,d)=>{if(!datagridCore.isDataRow(h)||!D(d))return;if(d.preventDefault(),d.dataTransfer.dropEffect="move",f.current===h.key){v.current=null,w(null);return}let E=P(d,d.currentTarget),F=v.current?.key!==h.key||v.current.side!==E;v.current={key:h.key,side:E},w(q=>q?.key===h.key&&q.side===E?q:{key:h.key,side:E}),F&&f.current!==null&&e.notifyRowDrag("move",{rowKey:f.current,overKey:h.key,position:E});},[D,e]),W=react.useCallback((h,d,E)=>{let F=null;try{let z=h.dataTransfer.getData($o);F=z?JSON.parse(z):null;}catch{F=null;}if(!F)return;if(F.gridId===e.gridId){if(!l)return;let z=S.current?.onReorder;if(z){z({dragKey:F.rowKey,targetKey:d,position:E,row:A(F.rowKey)});return}e.moveRow(F.rowKey,d,E);return}!a||r===null||F.group!==r||S.current?.onAdd?.({row:F.row,rowKey:F.rowKey,otherGridId:F.gridId,targetKey:d,position:E});},[e,l,a,r,A]),V=react.useCallback((h,d)=>{if(w(null),!datagridCore.isDataRow(h)||!D(d))return;d.preventDefault(),d.stopPropagation();let E=P(d,d.currentTarget);R.current=true,v.current={key:h.key,side:E},W(d,h.key,E),f.current=null;},[D,W]),H=react.useCallback(h=>{D(h)&&(h.preventDefault(),h.dataTransfer.dropEffect="move");},[D]),C=react.useCallback(h=>{w(null),D(h)&&(h.preventDefault(),R.current=true,v.current=null,W(h,null,"after"),f.current=null);},[D,W]),B=react.useCallback(h=>{let d=h.relatedTarget;d&&h.currentTarget.contains(d)||f.current!==null&&(v.current=null,w(null),e.notifyRowDrag("leave",{rowKey:f.current}));},[e]);return {handlers:n?{draggable:s,setDraggable:p,onDragStart:y,onDragEnd:c,onDragOver:L,onDrop:V}:void 0,dropAt:n?T:null,bodyHandlers:n?{onDragOver:H,onDrop:C,onDragLeave:B}:void 0}}var Am=400;function Yl(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function ql(e){return (e.textContent??"").trim()}function Om(e){let{def:t,node:n,value:r,clipped:l,note:a}=e;if(a)return a;if(t&&n){if(typeof t.tooltip=="function"){let s=t.tooltip({value:r,row:n.data,node:n,column:t});return s||null}if(typeof t.tooltip=="string")return t.tooltip||null;if(t.tooltipField){let s=n.data[t.tooltipField];return s==null||s===""?null:String(s)}}return l&&l.length>0?l:null}function _a({rootRef:e,columnModel:t,getRowNode:n,getNote:r,config:l,controller:a,gridId:s}){let p=l?.enabled!==false,T=l?.delay??Am,w=l?.showOnTruncation!==false,v=l?.trigger??"hover",R=v!=="focus",M=v!=="hover"&&!!a&&!!s,f=l?.interactive===true,[S,A]=react.useState(null),P=react.useRef({columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:T});return P.current={columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:T},react.useEffect(()=>{if(!p){A(null);return}let y=e.current;if(!y)return;let c=null,D=null,L=null,W=null,V=s?`${s}-tooltip`:void 0,H=()=>{W?.removeAttribute("aria-describedby"),W=null;},C=()=>{c!==null&&(clearTimeout(c),c=null),D!==null&&(clearTimeout(D),D=null),L=null,H(),A(null);},B=()=>{D!==null&&(clearTimeout(D),D=null);},N=()=>{D=null,H(),A(null);},h=()=>{B(),c!==null&&(clearTimeout(c),c=null);},d=()=>{if(!f){C();return}D!==null&&clearTimeout(D),D=setTimeout(N,150);},E=(te,ie)=>{let{columnModel:ge,getRowNode:De,getNote:Se}=P.current,I=ge.getDef(ie);if(!I?.renderTooltip)return;let le=te.closest("[data-row-key]")?.dataset.rowKey,U=le===void 0?void 0:De(le);if(!U||Se&&Se(U.key,ie,U.data))return;let j=I.renderTooltip({value:ge.getCellValue(U.data,ie),row:U.data,node:U,column:I});return j==null||j===false?null:{content:j}},F=(te,ie,ge,De)=>{let Se=ge?void 0:E(te,ie);if(Se===null)return;let I=Se?"":ge?z(ie,te):q(te,ie);if(!Se&&!I)return;let le=te.getBoundingClientRect();B(),H(),De&&V&&(te.setAttribute("aria-describedby",V),W=te),A({text:I??"",...Se?{content:Se.content}:{},anchor:{top:le.top,left:le.left,width:le.width,height:le.height},...f?{interactive:true,hold:h,release:C}:{},...V?{id:V}:{}});},q=(te,ie)=>{let{columnModel:ge,getRowNode:De,getNote:Se,showOnTruncation:I}=P.current,le=ge.getDef(ie),U=te.closest("[data-row-key]")?.dataset.rowKey,j=U===void 0?void 0:De(U);return Om({def:le,node:j,value:j?ge.getCellValue(j.data,ie):void 0,clipped:I&&Yl(te)?ql(te):null,note:j&&Se?Se(j.key,ie,j.data):null})},z=(te,ie)=>{let ge=P.current.columnModel.getDef(te);if(ge?.headerTooltip)return ge.headerTooltip;if(!P.current.showOnTruncation)return null;let De=ie.querySelector(".kanuni-datagrid-header-label")??ie;if(!Yl(De))return null;let Se=ql(De);return Se.length>0?Se:null},fe=te=>{if(!R)return;let ge=te.target?.closest("[data-column-id]")??null;if(ge===L){B();return}if(f&&D!==null?(c!==null&&(clearTimeout(c),c=null),L=null):C(),!ge||!y.contains(ge))return;let De=ge.dataset.columnId;if(!De)return;let Se=ge.classList.contains("kanuni-datagrid-header-cell");!Se&&!ge.closest("[data-row-key]")||(L=ge,c=setTimeout(()=>{c=null,!(L!==ge||!ge.isConnected)&&F(ge,De,Se,false);},P.current.delay));},Te=te=>{if(!R)return;let ie=te.relatedTarget;L&&ie&&L.contains(ie)||d();},se=-1/0,Fe=()=>{se=Date.now();},b=()=>{C();let te=a?.getFocus();!te||!s||(c=setTimeout(()=>{if(c=null,!y.contains(document.activeElement)&&Date.now()-se>1500)return;let ie=document.getElementById(`${s}-cell-${String(te.rowKey)}-${te.columnId}`);!ie||!y.contains(ie)||(L=ie,F(ie,te.columnId,false,true));},P.current.delay));},Y=M?a.events.on("focusChanged",b):null,Me=te=>{(!M||te.key==="Escape")&&C();};return y.addEventListener("mouseover",fe),y.addEventListener("mouseout",Te),y.addEventListener("mousedown",C),y.addEventListener("pointerdown",Fe),y.addEventListener("keydown",Me),y.addEventListener("scroll",C,true),window.addEventListener("blur",C),()=>{C(),Y?.(),y.removeEventListener("mouseover",fe),y.removeEventListener("mouseout",Te),y.removeEventListener("mousedown",C),y.removeEventListener("pointerdown",Fe),y.removeEventListener("keydown",Me),y.removeEventListener("scroll",C,true),window.removeEventListener("blur",C);}},[p,e,R,M,f,a,s]),p?S:null}var Jl=6,Mn=8;function $a({state:e,dark:t}){let[n,r]=react.useState(null),[l,a]=react.useState(null),{text:s,anchor:p,content:T,interactive:w,hold:v,release:R,id:M}=e;return react.useLayoutEffect(()=>{if(!n)return;let{width:f,height:S}=n.getBoundingClientRect(),A=document.documentElement.clientWidth,P=document.documentElement.clientHeight,y=p.top+p.height+Jl,c=p.top-S-Jl,L=y+S+Mn<=P||c<Mn?y:c,W=Math.min(Math.max(Mn,p.left),Math.max(Mn,A-f-Mn));a({top:Math.min(L,P-S-Mn),left:W});},[n,s,T,p]),jsxRuntime.jsx(pt,{dark:t,kind:"tooltip",children:jsxRuntime.jsx("div",{ref:r,id:M,className:w?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:w?v:void 0,onMouseLeave:w?R:void 0,style:l?{top:l.top,left:l.left}:{top:0,left:0,visibility:"hidden"},children:T??s})})}function Wo(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 Zl=Wo(datagridCore.getGridDictionary("en"));function Wa(e,t){let n={...Zl,...t.labels},{controller:r,maxGroupLevels:l}=t,a=e.columnId,s=r.getColumnModel().getDef(a),p=r.getSort(),T=p.find(D=>D.columnId===a),w=r.getGroupLevels(),v=w.includes(a),R=s?.sortable!==false,M=r.getColumnStates().find(D=>D.id===a)?.pinned??null,f=s?.groupable!==false,S=r.canGroup(),A=[{id:"sort-asc",label:n.sortAsc,disabled:!R||T?.direction==="asc",onSelect:()=>r.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!R||T?.direction==="desc",onSelect:()=>r.setSort([{columnId:a,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!T,onSelect:()=>r.setSort(p.filter(D=>D.columnId!==a))},{id:"sep-1",separator:true}];S&&A.push({id:"group",label:v?n.ungroup:n.groupBy,disabled:!f,onSelect:()=>{v?r.groupBy(w.filter(D=>D!==a)):r.groupBy([...w,a].slice(-l));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&A.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),A.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:r.getColumnStates().filter(D=>D.visible).length<=1,onSelect:()=>r.setColumnVisible(a,false)},{id:"field-chooser",label:n.fieldChooser,onSelect:t.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:n.bestFit,disabled:s?.resizable===false,onSelect:()=>t.onBestFit(a)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll});let P=r.getColumnStates().filter(D=>D.visible&&D.pinned===M).map(D=>D.id),y=P.indexOf(a),c=s?.reorderable!==false&&y>=0;return A.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!c||y<=0,onSelect:()=>r.moveColumn(a,P[y-1])},{id:"move-right",label:n.moveRight,disabled:!c||y<0||y>=P.length-1,onSelect:()=>r.moveColumn(a,P[y+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:M==="left",onSelect:()=>r.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:M==="right",onSelect:()=>r.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:M==="sticky",onSelect:()=>r.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:M===null,onSelect:()=>r.setColumnPinned(a,null)}),A}var Yt=typeof window<"u"?react.useLayoutEffect:react.useEffect,rs=1e8,Vo=null;function is(){if(Vo!==null)return Vo;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=`${rs}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=rs;let n=e.scrollTop;return Xa=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(Vo=n),Vo}var Xa=null;function wp(){return Xa===null&&is(),Xa}function Ya(e){return Math.abs(e)}function as(e,t){return getComputedStyle(t).direction==="rtl"?-e:e}function Uo(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 s={...e};return delete s.grouping,Uo(s,t)}if(e.columns?.some(s=>s.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 s={...e,columns:e.columns.map(p=>p.spanRows?{...p,spanRows:void 0}:p)};return Uo(s,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 s={...e};return delete s.tree,Uo(s,t)}if(!e.grouping)return e.masterDetail?qa(e):e;let{groupBy:n,groupSummaries:r}=e.grouping,l=n==null?[]:typeof n=="string"?[n]:n;if(l.length<=1&&!r)return e.masterDetail?qa(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 a={...e,grouping:{...e.grouping,groupBy:l.slice(0,1),groupSummaries:false}};return e.masterDetail?qa(a):a}function qa(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 hp(e){return jsxRuntime.jsx(Rr,{locale:e.locale,messages:e.messages,children:jsxRuntime.jsx(Sr,{theme:e.theme,density:e.density,palette:e.palette,portalContainer:e.portalContainer,children:jsxRuntime.jsx(bp,{...e})})})}function bp(e){let t=ve(),{className:n,style:r,dark:l=false,theme:a,palette:s,striped:p=true,emptyText:T,sortable:w=true,autoHeaderHeight:v=false,filterRow:R=false,headerFilter:M=false,filterIconMode:f="hover",columnReorder:S=true,columnResize:A=true,loadingOverlay:P=true,announcements:y=true,groupPanel:c=false,showRowCount:D=false,toolbar:L=false,toolbarExcel:W=false,toolbarPdf:V=false,filterPanel:H=false,filterPanelLabels:C,onOpenFilterBuilder:B,toolbarItemsBefore:N,toolbarItemsAfter:h,renderRow:d,stateStoring:E,headerMenu:F=true,focusedRow:q=false,focusedRowKey:z,onFocusedRowChanged:fe,footer:Te,footerMenu:se=true,onRowClick:Fe,onRowActivate:b,onReady:Y,renderCellContent:Me,getCellClassName:te,renderOverlay:ie,onCellPointerDown:ge,onCellPointerEnter:De,onCellDoubleClick:Se,onHeaderClick:I,getHeaderClassName:le,renderHeaderLabel:U,enterpriseEdition:j=false,renderDetail:Ge,renderEditForm:Le,density:_e,rowMenu:Oe,cellMenu:it,autoColumns:st,rowDrag:dt,tooltip:ee,pinnedTopRows:ae,pinnedBottomRows:k,footerPosition:Z="bottom",autoSizeStrategy:K="none",highlightSearch:de=true,...X}=e,He=react.useMemo(()=>{let o=X.columns;if(o&&o.length>0)return o;let g=X.dataSource;if(!Array.isArray(g)||g.length===0)return o??[];let G=typeof st=="object"?st:void 0;return st===false?o??[]:datagridCore.inferColumns(g,G)},[X.columns,X.dataSource,st]),re={...X,columns:He},Xe=datagridCore.isPackagedTheme(a)?datagridCore.THEME_ROW_HEIGHT[a][_e??"normal"]:_e?datagridCore.DENSITY_ROW_HEIGHT[_e]:datagridCore.DEFAULT_ROW_HEIGHT,Ve=re.rowHeight===void 0?{...re,rowHeight:Xe}:re,ze=j?Number.POSITIVE_INFINITY:1,we=Uo(Ve,j),{controller:i,rows:Ze,window:Je,layout:Ne,sort:Qe,rowHeight:u,visibleCount:m}=yr(we),x=e.cardView,_=x?x===true?"on":`${x.breakpoint??""}|${(x.columns??[]).join("|")}`:"",Q=react.useMemo(()=>datagridCore.resolveCardView(x),[_]),[ne,pe]=react.useState(false),ye=react.useRef(Q);Yt(()=>{ye.current=Q;let o=Ct.current;pe(o?datagridCore.showsCards(datagridCore.cardViewWidth(o),Q):false);},[Q]);let Re=ne?datagridCore.cardColumnIds(i.getColumnModel(),Q):null,Ce=Re?JSON.stringify(Re):"",Ke=react.useMemo(()=>Re,[Ce]);react.useEffect(()=>{i.setDataRowHeight(Ke?datagridCore.cardHeight(Ke.length):null);},[i,Ke]);let Rt=e.onCardViewChange,ln=react.useRef(false);react.useEffect(()=>{ne!==ln.current&&(ln.current=ne,Rt?.(ne));},[ne,Rt]);let Pn=react.useCallback(o=>jsxRuntime.jsx($l,{fields:datagridCore.cardFields(i.getColumnModel(),Ke??[],o.row)}),[i,Ke]),We=react.useRef(null),O=datagridCore.normalizeRowStatus(e.rowStatus),J=ll(i,e.editing,j,{renderCellContent:Me,getCellClassName:te,onCellDoubleClick:Se},ne,{rootRef:We,rowHeight:u,dark:l,savedDuration:O?.savedDuration??0}),he=J.rowStatusSource??e.rowStatusSource??null,Ee=o=>{if(!O||o.kind!=="data")return {};let g=datagridCore.resolveRowStatus(O,o.data,o.key,he);return g?{rowStatus:g.status,rowStatusText:datagridCore.rowStatusDescription(g,t),rowStatusTint:O.tint}:{}};react.useEffect(()=>{if(ne||!O?.messages){i.setMessageRows([],u);return}let o=O.get,g=datagridCore.rowMessageKeys(O,he).filter(G=>{if(!o)return true;let $=i.getDataRowNode(G)?.data;if($===void 0)return true;let ue=o({row:$,rowKey:G});return ue===void 0||ue==="error"});i.setMessageRows(g,u);});let oe=(o,g)=>{if(!O)return null;let G=datagridCore.rowMessageModel(O,o,g,he,t);return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-row-message","data-testid":"dg-row-message",children:[jsxRuntime.jsxs("svg",{className:"kanuni-datagrid-row-message-icon",viewBox:"0 0 16 16",width:"14",height:"14","aria-hidden":"true",children:[jsxRuntime.jsx("path",{d:"M8 1.5 15 14H1z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsxRuntime.jsx("path",{d:"M8 6v3.5M8 11.6v.4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-message-text",title:G.text,children:G.text}),G.retry&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-retry",onClick:G.retry,children:t.rowStatusRetry}),G.remove&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-delete",onClick:G.remove,children:t.rowStatusDelete})]})},et=datagridCore.resolveToolbar(L),eo=J.renderCellContent,Ln=J.getCellClassName,ds=J.onCellDoubleClick,ja=Ur(i,e.printLayout),In=ja.active?{...Je,rows:{...Je.rows,start:0,end:Ze.length,offsetY:0,totalHeight:0}}:Je,Fn=react.useMemo(()=>He.some(o=>o.autoHeight===true),[He]),Za=M&&i.canListDistinctValues();M&&!Za&&X.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 Ct=react.useRef(null);Yt(()=>{i.setEnterpriseEdition(j);},[i,j]),react.useEffect(()=>{Y?.(i);},[i,Y]),Yt(()=>{let o=is();o!==null&&o<datagridCore.DEFAULT_MAX_SCROLL_OFFSET&&i.setMaxScrollOffset(o);let g=wp();g!==null&&i.setMaxCanvasHeight(g);},[i]),Yt(()=>{let o=Ct.current;if(!o)return;let g=()=>{i.setViewportSize(o.clientWidth,o.clientHeight),ye.current&&pe(datagridCore.showsCards(datagridCore.cardViewWidth(o),ye.current)),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let ue=o.querySelector(".kanuni-datagrid-rows"),ce=o.querySelector(".kanuni-datagrid-canvas");if(ue&&ce){let me=ue.getBoundingClientRect(),Ie=ce.getBoundingClientRect();i.setChromeOffsets(me.top-Ie.top,Ie.bottom-me.bottom);}datagridCore.calibrateMaxScrollOffset(o,i);};if(g(),typeof ResizeObserver>"u")return;let G=new ResizeObserver(g);G.observe(o);let $=o.querySelector(".kanuni-datagrid-canvas");return $&&G.observe($),()=>G.disconnect()},[i]),Yt(()=>{if(!v)return;let o=Ct.current?.querySelector(".kanuni-datagrid-canvas"),g=o?.querySelector(".kanuni-datagrid-header");if(!o||!g)return;let G=null,$=()=>{let ce=g.offsetHeight,me=ce>0?`${ce}px`:null;me!==G&&(G=me,me?o.style.setProperty("--dg-header-actual",me):o.style.removeProperty("--dg-header-actual"));};$();let ue=typeof ResizeObserver>"u"?null:new ResizeObserver($);return ue?.observe(g),()=>{ue?.disconnect(),o.style.removeProperty("--dg-header-actual");}},[i,v]),Yt(()=>{if(!Fn)return;let o=Ct.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let g=i.getVirtualWindow(),G=i.getRows(),$=new Map(i.getMeasuredRowHeights()),ue=false;for(let ce=g.rows.start;ce<g.rows.end;ce++){let me=G[ce];if(!me||me.kind!=="data")continue;let Ie=o.querySelector(`[data-row-key="${CSS.escape(String(me.key))}"]`);if(!Ie)continue;let Pe=Ie.getBoundingClientRect().height;Pe>0&&$.get(me.key)!==Pe&&($.set(me.key,Pe),ue=true);}ue&&i.setMeasuredRowHeights($);}),react.useEffect(()=>{if(Fn)return i.events.on("columnStateChanged",()=>{i.clearMeasuredRowHeights();})},[i,Fn]),react.useEffect(()=>i.events.on("scrollRequested",o=>{let g=Ct.current;if(!g)return;o.scrollTop!==void 0&&(g.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(g.scrollLeft=as(o.scrollLeft,g)),i.setScroll(g.scrollTop,Ya(g.scrollLeft));let G=o.scrollTop;G===void 0||Math.abs(g.scrollTop-G)<=1||setTimeout(()=>{let $=Ct.current;!$||Math.abs($.scrollTop-G)<=1||($.scrollTop=G,i.setScroll($.scrollTop,Ya($.scrollLeft)));},0);}),[i]);let Qa=Yr(i,e.alignedGrids,Ct),us=react.useCallback(o=>{let g=o.currentTarget;i.setScroll(g.scrollTop,Ya(g.scrollLeft)),Qa.syncScroll(g.scrollLeft);},[i,Qa]),cs=react.useCallback((o,g)=>i.toggleSort(o,g),[i]);Oa(i,E);let sn=Ba(i,dt);react.useEffect(()=>{z!=null&&i.getFocusedRowKey()!==z&&i.focusRow(z);},[i,z]),react.useEffect(()=>{if(fe)return i.events.on("focusedRowChanged",o=>fe({rowKey:o.rowKey,row:o.row}))},[i,fe]);let[Yo,ms]=react.useState(null);react.useEffect(()=>i.events.on("overlayChanged",o=>{ms(o.manual?o.overlay:null);}),[i]);let ps=react.useCallback(o=>{let g=i.getDataRowNode(o);if(g)return g;if(o==="")return;let G=Number(o);return Number.isNaN(G)?void 0:i.getDataRowNode(G)},[i]),mt=j?e.notes:void 0;!j&&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 to=!!mt?.onChange&&mt.menu!==false,no=react.useCallback((o,g,G)=>mt?mt.get({rowKey:o,columnId:g,row:G})??null:null,[mt]),ei=_a({rootRef:We,columnModel:i.getColumnModel(),getRowNode:ps,getNote:mt?no:void 0,config:ee,controller:i,gridId:X.gridId}),[ti,fs]=react.useState(0);react.useEffect(()=>{let o=new Set,g=[i.events.on("cellsFlashed",({rowKeys:G,columnIds:$,duration:ue})=>{let ce=We.current;if(!ce)return;let me=G.length?G.map(Be=>`[data-row-key="${CSS.escape(String(Be))}"]`).join(","):".kanuni-datagrid-row",Ie=$.length?$.map(Be=>`[data-column-id="${CSS.escape(Be)}"]`).join(","):"[data-column-id]",Pe=[];ce.querySelectorAll(me).forEach(Be=>{Be.querySelectorAll(Ie).forEach(ot=>Pe.push(ot));});for(let Be of Pe)Be.classList.remove("kanuni-datagrid-cell--flash");ce.offsetWidth;for(let Be of Pe)Be.classList.add("kanuni-datagrid-cell--flash");let Ye=setTimeout(()=>{for(let Be of Pe)Be.classList.remove("kanuni-datagrid-cell--flash");o.delete(Ye);},ue);o.add(Ye);}),i.events.on("cellsRefreshed",({revision:G})=>fs(G))];return ()=>{g.forEach(G=>G()),o.forEach(clearTimeout);}},[i]);let gs=react.useCallback((o,g)=>i.moveColumn(o,g),[i]),ws=react.useCallback((o,g,G)=>i.setColumnWidth(o,g,G??true),[i]),qo=react.useCallback(o=>{if(!We.current)return;let g=_o(We.current,o);g!==null&&i.setColumnWidth(o,g);},[i]),Xo=react.useCallback(()=>{let o=We.current;if(o)for(let g of i.getColumnStates()){if(!g.visible||g.flex)continue;let G=_o(o,g.id);G!==null&&i.setColumnWidth(g.id,G);}},[i]),Jo=react.useRef(null),[oo]=react.useState(()=>new datagridCore.RowMotion),ni=e.animateRows===true;react.useEffect(()=>{i.setAnimateRows(ni);},[i,ni]),react.useEffect(()=>{let o=()=>{i.getAnimateRows()&&oo.capture(Jo.current);},g=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(G=>i.events.on(G,o));return ()=>{g.forEach(G=>G()),oo.dispose();}},[i,oo]),Yt(()=>{i.getAnimateRows()&&oo.play(Jo.current);}),react.useEffect(()=>{if(K!=="fitGrid")return;let o=()=>i.sizeColumnsToFit();return o(),i.events.on("gridSizeChanged",o)},[i,K]);let jo=react.useRef(null);Yt(()=>{if(K!=="fitCells"){jo.current=null;return}jo.current!==i&&We.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(jo.current=i,Xo());});let[Zo,oi]=react.useState({}),[Qo,ri]=react.useState({}),dn=react.useRef(Qo);dn.current=Qo;let ai=react.useRef(Zo);ai.current=Zo;let ii=e.filterDebounce??(i.isRemote()?200:0),er=react.useRef(false),ro=react.useMemo(()=>datagridCore.datePeriodLabels(t),[t]),tr=react.useRef(ro);tr.current=ro;let hs=react.useMemo(()=>datagridCore.periodSuggestionList(ro),[ro]),un=react.useCallback((o,g)=>{let G=i.getColumnModel(),$=G.getDataType(o),ue=datagridCore.findCustomFilterOperator(G.getDef(o),dn.current[o]??"");er.current=true;try{i.setColumnFilter(o,ue?datagridCore.parseCustomFilterInput(o,g,ue):datagridCore.parseFilterInput(o,g,$,tr.current),datagridCore.FILTER_PART_ROW);}finally{er.current=false;}},[i]),kt=react.useMemo(()=>datagridCore.createDebouncedCommit(ii),[ii]);react.useEffect(()=>()=>kt.cancelAll(),[kt]);let bs=react.useCallback((o,g)=>{oi(G=>({...G,[o]:g})),kt.schedule(o,()=>un(o,g));},[un,kt]),ys=react.useCallback((o,g)=>{dn.current={...dn.current,[o]:g},ri(dn.current),kt.cancel(o),un(o,ai.current[o]??"");},[un,kt]),Rs=react.useCallback(o=>{if(i.getColumnModel().getDef(o)?.renderFilter)return jsxRuntime.jsx(Ra,{controller:i,columnId:o,surface:"row"})},[i]),Cs=react.useCallback((o,g)=>{kt.cancel(o),un(o,g);},[un,kt]);react.useEffect(()=>i.events.on("filterChanged",()=>{if(er.current)return;let o=i.getColumnModel();ri(g=>{let G=null;for(let $ of o.getOrder()){let ue=o.getDef($);if(!ue?.filterOperators?.length||kt.isPending($))continue;let ce=i.getColumnFilter($,datagridCore.FILTER_PART_ROW),me=g[$]??"",Ie=me;ce?Ie=datagridCore.customFilterInputFromNode(ce,ue)?.operatorId??"":datagridCore.findCustomFilterOperator(ue,me)?.operandType==="none"&&(Ie=""),Ie!==me&&(G??={...g},G[$]=Ie);}return G&&(dn.current=G),G??g}),oi(g=>da(g,{isPending:G=>kt.isPending(G),textFor:G=>{let $=i.getColumnFilter(G,datagridCore.FILTER_PART_ROW);if(!$)return "";let ue=datagridCore.customFilterInputFromNode($,o.getDef(G));return ue?ue.text:!datagridCore.isFilterGroup($)&&!datagridCore.isBuiltInFilterOperator($.operator)?null:datagridCore.filterInputFromNode(G,$,o.getDataType(G),tr.current)}},o.getOrder()));}),[i,kt]);let[Ue,wt]=react.useState(null),qt=react.useRef(null);react.useEffect(()=>{!Ue&&qt.current&&(qt.current.dispose(),qt.current=null);},[Ue]);let cn=react.useRef(0),[mn,nr]=react.useState(null),or=react.useRef(null),St=react.useCallback(o=>{let g=document.activeElement instanceof HTMLElement?document.activeElement:null;if(g?.closest(".kanuni-datagrid-portal"))return;let G=g&&We.current&&g!==We.current&&g.contains(We.current)?null:g;or.current={el:G,columnId:G?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??o??null};},[]),ks=react.useCallback((o,g)=>{St(o);let G=g.getBoundingClientRect(),$=i.getColumnModel().getDef(o),ue={left:G.left,top:G.bottom+2},ce=$?.headerName??o;if($?.renderFilter){++cn.current,wt(null),nr({columnId:o,label:ce,anchor:ue});return}nr(null);let me=i.getColumnFilter(o,datagridCore.FILTER_PART_SET)??i.getColumnFilter(o,datagridCore.FILTER_PART_DEFAULT);if(!i.isRemote()){let Ye=++cn.current;wt({columnId:o,label:ce,entries:[],selected:null,anchor:ue,loading:true}),i.getDistinctValueSetAsync(o).then(({entries:Be,truncated:ot})=>{cn.current===Ye&&wt(go=>go&&go.columnId===o?{...go,entries:Be,truncated:ot,capped:ot,selected:datagridCore.selectedLabelsFromFilter(me,Be,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:go);});return}let Ie=++cn.current,Pe=i.openRemoteDistinct(o,xn);if(Pe){qt.current?.dispose(),qt.current=Pe,wt({columnId:o,label:ce,entries:[],selected:null,anchor:ue,loading:true,pager:Pe}),Pe.start().then(Ye=>{if(cn.current!==Ie){Pe.dispose();return}if(Ye.kind==="paged"){wt(ot=>ot&&ot.columnId===o?{...ot,loading:false}:ot);return}Pe.dispose(),qt.current===Pe&&(qt.current=null);let Be=i.sortDistinctEntries(Ye.values);wt(ot=>ot&&ot.columnId===o?{...ot,pager:void 0,entries:Be,selected:datagridCore.selectedLabelsFromFilter(me,Be,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:ot);});return}wt({columnId:o,label:ce,entries:[],selected:null,anchor:ue,loading:true}),i.getDistinctValuesAsync(o).then(Ye=>{cn.current===Ie&&wt(Be=>Be&&Be.columnId===o?{...Be,entries:Ye,selected:datagridCore.selectedLabelsFromFilter(me,Ye,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:Be);});},[i,St]),vs=react.useCallback(o=>{Ue&&(i.setColumnFilter(Ue.columnId,o,datagridCore.FILTER_PART_SET),wt(null));},[i,Ue]),Ts=Object.keys(i.getColumnStates().reduce((o,g)=>(i.getColumnFilter(g.id)&&(o[g.id]=true),o),{})),pn=i.getSelectionMode(),tt=pn!=="none"&&(X.selection?.checkboxColumn??false),li=(X.selection?.rowClick??(tt?"toggle":"replace"))==="toggle",xs=react.useCallback((o,g)=>{i.handleRowClick(o.key,{ctrlKey:g.ctrlKey||li&&!g.shiftKey,metaKey:g.metaKey,shiftKey:g.shiftKey});},[i,li]),Ds=react.useCallback((o,g)=>i.focusCell(o.key,g),[i]),Ss=react.useCallback(o=>i.toggleRow(o.key),[i]),[fn,rr]=react.useState(null),Es=react.useCallback(()=>rr(null),[]),[Hn,ar]=react.useState(null),si=react.useCallback((o,g)=>{let $=(We.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(g)}"]`)??We.current)?.getBoundingClientRect();return {left:$?.left??0,top:($?.bottom??0)+2}},[]),Gs=react.useCallback(o=>{let g=Hn;ar(null),!(!g||!mt?.onChange)&&mt.onChange({rowKey:g.rowKey,columnId:g.columnId,row:g.row,text:o});},[Hn,mt]),di=react.useCallback((o,g)=>{if(!mt?.onChange||mt.menu===false)return [];let G=o.columnId;if(!G)return [];let $=i.getRowKey(o.row),ue=no($,G,o.row),ce=()=>ar({rowKey:$,columnId:G,row:o.row,text:ue??"",anchor:si($,G)}),me=[];return g&&me.push({separator:true,id:"__note-sep"}),me.push({id:"__note-edit",label:ue?t.editNote:t.addNote,onSelect:ce}),ue&&me.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>mt.onChange?.({rowKey:$,columnId:G,row:o.row,text:null})}),me},[mt,i,no,si,t]),[ao,io]=react.useState(null),ir=react.useRef({x:0,y:0}),ui=react.useCallback(o=>Pa(i,t,it,o,g=>{io({message:g,...ir.current}),console.error("[datagrid] export failed:",g);}),[i,t,it]),lo=react.useCallback((o,g,G,$,ue)=>{if(G.kind!=="data")return;St();let ce={row:G.data,node:G,rowIndex:$,columnId:ue,selectedKeys:i.getSelectedKeys()},me=(typeof Oe=="function"?Oe(ce):Oe)??[],Ie=J.editRowMenuItem(G.key),Pe=Ie?[...me,...me.length>0?[{id:"dg-sep-edit",separator:true}]:[],Ie]:me,Ye=di(ce,Pe.length>0),Be=La(i,t,G.key,Pe.length+Ye.length>0),ot=[...Pe,...Ye,...Be,...ui(Pe.length+Ye.length+Be.length>0)];ot.length!==0&&(ir.current={x:o,y:g},io(null),rr({x:o,y:g,items:ot,context:ce}));},[Oe,i,t,di,ui,St,J.editRowMenuItem]),ci=react.useCallback((o,g,G)=>{let $=La(i,t,o,false);if($.length===0)return;G.preventDefault(),St();let ue={row:g,node:{kind:"data",key:o,sourceIndex:-1,data:g},rowIndex:-1,columnId:G.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:i.getSelectedKeys()};ir.current={x:G.clientX,y:G.clientY},io(null),rr({x:G.clientX,y:G.clientY,items:$,context:ue});},[i,t,St]),mi=react.useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),gn=react.useCallback((o,g,G,$,ue)=>{let ce=$??-1;o&&i.notifyRow(o,G,ce);let me=mi(ue);me!==null&&i.notifyCell(g,G,ce,me);},[i,mi]),Ms=react.useCallback((o,g,G)=>{Fe?.(o),gn("rowClicked","cellClicked",o,g,G);},[Fe,gn]),Ns=react.useCallback((o,g,G)=>{b?.(o),gn("rowDoubleClicked","cellDoubleClicked",o,g,G);},[b,gn]),Ps=react.useCallback((o,g,G)=>{if(gn(null,"cellContextMenu",o,g,G),o.kind!=="data"||!Oe&&!to&&it===false&&!i.isRowPinningEnabled()&&J.editRowMenuItem(o.key)===null)return;G.preventDefault(),i.isRowSelected(o.key)||i.handleRowClick(o.key,{});let $=G.target.closest("[data-column-id]")?.dataset.columnId??null;lo(G.clientX,G.clientY,o,g,$);},[Oe,to,it,i,lo,gn,J.editRowMenuItem]),[Ls,Is]=react.useState(null),[Fs,Hs]=react.useState(null),[lr,As]=react.useState(()=>X.grouping?.groupSummaries??false),[Xt,sr]=react.useState(null),[pi,dr]=react.useState(null),ur=fn!==null||Xt!==null||Ue!==null||mn!==null,fi=react.useRef(false);react.useEffect(()=>{if(fi.current&&!ur){let o=or.current;or.current=null;let g=o?.columnId?We.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,G=o?.el?.isConnected?o.el:g,$=document.activeElement,ue=!$||$===document.body||!!We.current&&$!==We.current&&$.contains(We.current);G&&ue&&(G.focus({preventScroll:true}),document.activeElement!==G&&g&&g.focus({preventScroll:true}));}fi.current=ur;},[ur]);let Os=react.useCallback(()=>{i.getSelectedCount()>0?i.clearSelection():i.selectAll();},[i]),cr=tt?i.getSelectableCount():m,mr=i.getSelectedCount(),Ks=cr>0&&mr>=cr?"all":mr>0?"some":"none",Bs=react.useCallback(o=>{let g=o.target;if(g.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let G=g.tagName;if(G==="INPUT"||G==="TEXTAREA"||G==="SELECT"||g.isContentEditable||J.handleKeyDown(o))return;if((Oe||to||it!==false||i.isRowPinningEnabled())&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let ce=i.getFocus(),me=ce?Ze.findIndex(Pe=>Pe.key===ce.rowKey):-1,Ie=me>=0?Ze[me]:void 0;if(Ie){let Ye=Ct.current?.querySelector(`[data-row-key="${CSS.escape(String(Ie.key))}"]`)?.getBoundingClientRect();lo(Ye?Ye.left+16:0,Ye?Ye.bottom:0,Ie,me,ce?.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"){En(i);return}if($.type==="activate"){let ce=i.getFocus(),me=ce?Ze.find(Ie=>Ie.key===ce.rowKey):void 0;me&&b?.(me),$.preventDefault&&o.preventDefault();return}i.executeCommand($),$.preventDefault&&o.preventDefault();let ue=i.getFocusIndices();if(ue&&Ct.current){let me=i.getColumnLayout().center.findIndex(Pe=>Pe.state.id===i.getFocus()?.columnId),Ie=i.ensureVisible(ue.rowIndex,me===-1?void 0:me);if(Ie){let Pe=Ct.current;Ie.scrollTop!==void 0&&(Pe.scrollTop=Ie.scrollTop),Ie.scrollLeft!==void 0&&(Pe.scrollLeft=as(Ie.scrollLeft,Pe)),i.setScroll(Pe.scrollTop,Pe.scrollLeft);}}},[i,Ze,b,Oe,to,it,lo,J.handleKeyDown]),Jt=react.useMemo(()=>datagridCore.bandDepth([...Ne.left,...Ne.center,...Ne.right]),[Ne]),wn=Tn,pr=(R?2:1)+Jt,gi=i.getPinnedRows("top"),wi=i.getPinnedRows("bottom"),fr=[...ae??[],...gi.map(o=>o.row)],gr=[...k??[],...wi.map(o=>o.row)],_s=[...(ae??[]).map(()=>null),...gi.map(o=>o.key)],$s=[...(k??[]).map(()=>null),...wi.map(o=>o.key)],so=fr.length,Ws=gr.length,uo=pr+so,co=Ls??X.grouping?.panel??c,hi=i.getGroupLevels(),Vs=react.useCallback(o=>i.groupBy(o.slice(0,ze)),[i,ze]),Us=react.useCallback(o=>i.toggleGroup(o),[i]),bi=react.useCallback(o=>i.toggleGroupSelection(o),[i]),zs=i.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),ft=i.hasMasterDetail()&&!!Ge,nt=e.rowNumbers??false,ht=!!O?.icons&&!ne,Ys=nt&&i.isPaginated()?i.getPage()*i.getPageSize():0;react.useEffect(()=>{i.setLeadWidth(ea(tt,ft,nt,ht));},[i,tt,ft,nt,ht]);let qs=react.useCallback(o=>i.toggleDetail(o),[i]),Xs=react.useCallback(o=>i.toggleTreeRow(o),[i]),yi=i.getSummaryDefs(),Js=i.getSummaries(),hn=Fs??Te??yi.length>0,An=hn&&Z==="top",wr=R?2:1,Ri=we.grouping?.groupSummaries&&lr?X.summaries:void 0,Ci=i.getGroupDisplay(),ki=react.useCallback(()=>{As(o=>(i.setGroupSummaries(!o),!o));},[i]),js=react.useCallback((o,g)=>{if(!se)return;g.preventDefault();let G=i.getColumnModel().getDef(o),$=i.getColumnSummary(o),ue={columnId:o,headerName:G?.headerName??G?.field??o},ce=[{id:"none",label:t.noTotal,disabled:$===null,onSelect:()=>i.setColumnSummary(o,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(G?.dataType).map(me=>({id:me,label:datagridCore.summaryTypeLabels(t)[me],disabled:$?.type===me,onSelect:()=>i.setColumnSummary(o,me)}))];St(),sr({x:g.clientX,y:g.clientY,items:ce,context:ue});},[i,se,St]),Zs=react.useCallback((o,g)=>{if(F===false)return;g.preventDefault();let G=i.getColumnModel().getDef(o),$={columnId:o,headerName:G?.headerName??G?.field??o},ue=Wa($,{controller:i,groupPanelVisible:co,footerVisible:hn,groupFootersAvailable:j&&i.getGroupLevels().length>0,groupFootersVisible:lr,onToggleGroupPanel:()=>Is(!co),onToggleFooter:()=>Hs(!hn),onToggleGroupFooters:ki,onOpenFieldChooser:()=>dr({left:g.clientX,top:g.clientY}),onBestFit:qo,onBestFitAll:Xo,maxGroupLevels:ze,labels:Wo(t)}),ce=typeof F=="function"?F($,ue):ue;!ce||ce.length===0||(St(),sr({x:g.clientX,y:g.clientY,items:ce,context:$}));},[F,i,co,hn,j,lr,ki,qo,Xo,ze,t,St]),bn=i.getFocus(),Qs=bn?`${e.gridId}-cell-${String(bn.rowKey)}-${bn.columnId}`:void 0,hr=i.getSelectedCount(),ed=react.useMemo(()=>{let o=[datagridCore.fillText(t.announceRows,{n:m})];if(Qe.length>0){let g=Qe.map(G=>{let $=i.getColumnModel().getDef(G.columnId),ue=String($?.headerName??$?.field??G.columnId),ce=G.direction==="desc"?t.announceDescending:t.announceAscending;return `${ue} ${ce}`}).join(", ");o.push(datagridCore.fillText(t.announceSortedBy,{columns:g}));}return hr>0&&o.push(datagridCore.fillText(t.announceSelected,{n:hr})),o.join(", ")},[i,m,Qe,hr,t]),{centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,rowStart:td,rowEnd:vi}=fl(Ne,In),po=i.getColumnModel(),Rn=td,nd=o=>{if(Fn)return;let g=i.getRowHeightAt(o);return g===u?void 0:g},od=Array.from(Ze.slice(Rn,vi)),rd=react.useMemo(()=>!nt||i.getGroupLevels().length===0&&!i.hasMasterDetail()&&!i.hasTreePathRows()?null:gl(Ze),[nt,i,Ze]),ad=i.hasCellSpans(),Ti=react.useRef({start:0,end:0});Ti.current={start:Rn,end:vi-1};let xi=react.useRef(In.columns);xi.current=In.columns;let id=react.useCallback(o=>i.planRowColSpans(o,xi.current),[i]),ld=datagridCore.hasColSpans(Ne),sd=react.useCallback((o,g)=>{let G=i.getCellSpans(g);if(G.length===0)return null;let{start:$,end:ue}=Ti.current,ce=datagridCore.spanRoleAt(G,o,$,ue);if(!ce)return null;if(ce.role==="covered")return {kind:"covered"};let me=i.getRowOffset(ce.drawStart);return {kind:"draw",height:i.getRowOffset(ce.drawEnd)+i.getRowHeightAt(ce.drawEnd)-me,offset:0}},[i]),Di=i.getFindNeedle()||(de?datagridCore.normalizeSearch(i.getSearchText()):""),Si=i.getFindState(),fo=Si.count>0?`${i.getFindNeedle()}\0${Si.activeIndex}`:"",Ei=react.useCallback((o,g)=>i.getFindMatchKind(o,g),[i]),dd={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}},Gi={layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,defs:yi,values:Js,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,onPickSummary:se?js:void 0,emptyHint:se?"\xB7":""};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${ja.active?" kanuni-datagrid-print":""}${ne?" kanuni-datagrid-cards":""}${datagridCore.themeClassName(a,_e,s)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${u}px`,"--dg-grip-inset":`${(nt?Cn:0)+(ht?kn:0)}px`,...r},dir:datagridCore.isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":a,"data-palette":s,"data-auto-height":Fn?"":void 0,"data-auto-header-height":v?"":void 0,"data-row-session":J.rowSessionAttr,ref:We,children:[J.bar&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:J.bar}),et.show&&jsxRuntime.jsx(xa,{controller:i,dark:l,search:et.search!==null,searchOptions:et.search??void 0,exportMenu:et.export,columnChooser:et.columns??e.toolbarColumnChooser??true,exportExcel:j&&W,exportPdf:j&&V,itemsBefore:N,itemsAfter:h,onOpenColumnChooser:o=>dr(g=>g?null:o)}),co&&jsxRuntime.jsx(ka,{columns:zs,levels:hi,onSetLevels:Vs,maxLevels:ze,onExpandAll:()=>i.expandAllGroups(),onCollapseAll:()=>i.collapseAllGroups()}),ne&&jsxRuntime.jsx(Wl,{controller:i,sort:Qe,text:t,columns:w?i.getColumnModel().getOrder().filter(o=>{let g=i.getColumnModel();return g.getState(o)?.visible!==false&&g.getDef(o)?.sortable!==false}).map(o=>({id:o,label:i.getColumnModel().getDef(o)?.headerName??o})):[]}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-scroller",ref:Ct,onScroll:us,onKeyDown:Bs,tabIndex:0,role:"grid","aria-rowcount":m+pr+so+Ws,"aria-colcount":Ne.left.length+Ne.center.length+Ne.right.length+(tt?1:0)+(ft?1:0)+(nt?1:0),"aria-multiselectable":pn==="multiple"||void 0,"aria-activedescendant":Qs,"aria-label":e.ariaLabel??e.gridId,children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(Ne.totalWidth||0)+ea(tt,ft,nt,ht)||"100%"},role:"rowgroup",children:[jsxRuntime.jsx(aa,{layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,depth:Jt,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,rowHeight:wn,bandFold:dd}),jsxRuntime.jsx(la,{bandOffset:Jt*wn,stickyInsets:yn,layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,sort:Qe,sortable:w,onSort:cs,groupLevels:hi,headerFilter:Za,filteredColumns:Ts,onOpenFilter:ks,filterIconMode:f,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,selectAllState:Ks,selectAllDisabled:cr===0&&mr===0,onToggleSelectAll:Os,draggable:c,reorderable:S,onReorder:gs,resizable:A,onResize:ws,onAutoFit:qo,onHeaderContextMenu:F===false?void 0:Zs,onHeaderClick:I,getHeaderClassName:le,renderHeaderLabel:U}),R&&jsxRuntime.jsx(ua,{bandOffset:Jt*wn,stickyInsets:yn,layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,values:Zo,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,onChange:bs,onCommit:Cs,periodSuggestions:hs,periodListId:`${e.gridId}-filter-periods`,operators:Qo,onOperatorChange:ys,renderCustom:Rs}),An&&jsxRuntime.jsx(Fo,{...Gi,position:"top",bandOffset:Jt*wn,headerRowsBetween:wr}),fr.length>0&&jsxRuntime.jsx(Ho,{gridId:e.gridId,side:"top",rows:fr,rowKeys:_s,onUserRowContextMenu:ci,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,rowHeight:u,bandOffset:Jt*wn,headerRowsBetween:wr+(An?1:0),ariaRowBase:pr}),i.hasStickyGroupHeaders()&&jsxRuntime.jsx(Ml,{controller:i,width:Ne.totalWidth,bandOffset:Jt*wn,headerRowsBetween:wr+(An?1:0),belowPinned:so>0?so*u+1:0,renderRow:(o,g,G)=>jsxRuntime.jsx(vn,{gridId:e.gridId,node:o,index:g,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,striped:false,selected:false,groupSelection:tt&&pn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:bi,groupDisplay:Ci,focusedColumnId:null,checkboxColumn:tt,statusColumn:ht,rowNumberColumn:nt,rowNumber:null,headerRowCount:uo,onToggleGroup:$=>{i.toggleGroup($),i.scrollToRow($);},revision:ti,searchNeedle:Di,findStamp:fo,findKind:fo?Ei:void 0,summaryDefs:Ri,detailColumn:ft,height:G,renderCellContent:eo,getCellClassName:Ln})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:In.rows.totalHeight},onDragOver:sn.bodyHandlers?.onDragOver,onDrop:sn.bodyHandlers?.onDrop,onDragLeave:sn.bodyHandlers?.onDragLeave,children:[jsxRuntime.jsx("div",{ref:Jo,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${In.rows.offsetY}px)`},children:od.map((o,g)=>o?jsxRuntime.jsx(vn,{gridId:e.gridId,node:o,index:Rn+g,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,striped:p,selected:i.isRowSelected(o.key),ariaSelectable:pn!=="none",selectable:tt&&o.kind==="data"?i.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&tt&&pn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:bi,groupDisplay:Ci,focusedColumnId:bn?.rowKey===o.key?bn.columnId:null,rowFocused:q&&bn?.rowKey===o.key,rowDrag:sn.handlers,dropSide:sn.dropAt?.key===o.key?sn.dropAt.side:null,...Ee(o),renderRow:ne?Pn:d,checkboxColumn:tt,statusColumn:ht,rowNumberColumn:nt,getSpan:ad?sd:void 0,resolveColSpans:ld?id:void 0,getNote:mt?no:void 0,rowNumber:nt?wl(Rn+g,rd,Ys):null,headerRowCount:uo,onRowClick:Ms,onRowMouseDown:pn==="none"?void 0:xs,onRowDoubleClick:Ns,onToggleSelect:Ss,onCellMouseDown:Ds,onRowContextMenu:Ps,onToggleGroup:Us,onToggleTreeRow:Xs,revision:ti,searchNeedle:Di,findStamp:fo,findKind:fo?Ei:void 0,summaryDefs:Ri,detailColumn:ft,detailExpanded:ft&&i.isDetailExpanded(o.key),onToggleDetail:qs,renderDetail:Ge,renderEditForm:Le??J.renderEditForm,renderRowMessage:o.kind==="message"?oe:void 0,height:nd(Rn+g),renderCellContent:eo,getCellClassName:Ln,onCellPointerDown:ge,onCellPointerEnter:De,onCellDoubleClick:ds},String(o.key)):(()=>{let G=Rn+g,$=i.isRowLoadFailed(G);return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${$?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":G+1+uo,"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-${G}`)})())}),ie?.()]}),gr.length>0&&jsxRuntime.jsx(Ho,{gridId:e.gridId,side:"bottom",rows:gr,rowKeys:$s,onUserRowContextMenu:ci,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,rowHeight:u,headerRowsBetween:hn&&!An?1:0,ariaRowBase:uo+m}),hn&&!An&&jsxRuntime.jsx(Fo,{...Gi,position:"bottom"})]})}),(Yo==="noRows"||Yo===null&&m===0)&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-empty",children:T??t.noData}),J.active&&jsxRuntime.jsx($r,{open:J.saveError!==null,title:t.editCannotSave,message:J.saveError?J.saveError.columnId?`${i.getColumnModel().getDef(J.saveError.columnId)?.headerName??J.saveError.columnId}: ${J.saveError.message}`:J.saveError.message:"",confirmLabel:t.ok,dark:l,onConfirm:J.clearSaveError,onCancel:J.clearSaveError}),J.popup&&jsxRuntime.jsx(pt,{dark:l,children:J.popup}),H&&jsxRuntime.jsx(Ea,{controller:i,alwaysVisible:H==="always",onOpenBuilder:B,describeOptions:C}),P!==false&&jsxRuntime.jsx(Aa,{controller:i,delay:typeof P=="number"?P:void 0,forced:Yo==="loading"}),i.isPaginated()&&jsxRuntime.jsx(Sa,{page:i.getPage(),pageCount:i.getPageCount(),pageSize:i.getPageSize(),pageSizes:X.pagination?.pageSizes,pageButtons:X.pagination?.pageButtons,maxPageButtons:X.pagination?.maxPageButtons,totalRows:m,onPage:o=>i.setPage(o),onNext:()=>i.nextPage(),onPrevious:()=>i.previousPage(),onPageSize:o=>i.setPageSize(o)}),y&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:ed}),Hn&&jsxRuntime.jsx(Fa,{anchor:Hn.anchor,value:Hn.text,dark:l,onCommit:Gs,onCancel:()=>ar(null)}),fn&&jsxRuntime.jsx(Bo,{x:fn.x,y:fn.y,items:fn.items,context:fn.context,dark:l,onClose:Es}),ao&&jsxRuntime.jsx(pt,{dark:l,kind:"toast",children:jsxRuntime.jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:ao.x,top:ao.y},onClick:()=>io(null),children:ao.message})}),Xt&&jsxRuntime.jsx(Bo,{x:Xt.x,y:Xt.y,items:Xt.items,context:Xt.context,dark:l,label:`${Xt.context.headerName} column`,onClose:()=>sr(null)}),ei&&jsxRuntime.jsx($a,{state:ei,dark:l}),pi&&jsxRuntime.jsx(Da,{controller:i,columns:i.getColumnStates(),anchor:pi,dark:l,onClose:()=>dr(null)}),mn&&jsxRuntime.jsx(Dl,{controller:i,columnId:mn.columnId,headerLabel:mn.label,anchor:mn.anchor,dark:l,onClose:()=>nr(null)},mn.columnId),Ue&&jsxRuntime.jsx(ha,{gridId:e.gridId,columnId:Ue.columnId,headerLabel:Ue.label,entries:Ue.entries,initialSelected:Ue.selected,anchor:Ue.anchor,loading:Ue.loading,truncated:Ue.truncated,pager:Ue.pager,onSearch:Ue.capped&&!i.isRemote()?o=>{let{entries:g,truncated:G}=i.searchDistinctValues(Ue.columnId,o);wt($=>$&&$.columnId===Ue.columnId?{...$,entries:g,truncated:G}:$);}:void 0,dark:l,onApply:vs,onClose:()=>wt(null),onCustom:B?()=>{let o=Ue.columnId;wt(null),B({columnId:o});}:void 0},Ue.columnId)]})}function Cp({defs:e,values:t,columnModel:n,rowCount:r,rowCountLabel:l}){let a=ve(),s=datagridCore.summaryTypeLabels(a);return e.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]}),e.map(p=>{let T=t[datagridCore.summaryKey(p.columnId,p.type)],w=n.getDef(p.columnId),v=datagridCore.formatSummaryValue(p,T,w);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-label",children:[datagridCore.summaryLabel(p,s)," ",w?.headerName??p.columnId,":"]}),jsxRuntime.jsx("strong",{children:v})]},datagridCore.summaryKey(p.columnId,p.type))})]})}var kp=react.memo(Cp);function vp({icon:e,label:t,shortcut:n,disabledReason:r,showLabel:l=false,onClick:a,testId:s}){let p=r!==void 0,T=n?`${t} (${n})`:t;return jsxRuntime.jsxs("button",{type:"button",className:`kanuni-datagrid-app-button${l?"":" kanuni-datagrid-toolbar-icon-button"}`,"aria-label":l?void 0:t,"aria-keyshortcuts":n,"aria-disabled":p||void 0,"aria-description":p?r:void 0,title:p?`${T} \u2014 ${r}`:T,"data-testid":s,onClick:w=>{if(p){w.preventDefault();return}a?.();},children:[e,l&&jsxRuntime.jsx("span",{children:t})]})}function Gp(e,t){return Ja(e,t,t?.source,(n,r)=>n.computeChartData(r))}function Mp(e,t){return Ja(e,t,t?.source,(n,r)=>n.computeChartXYData(r))}function Np(e,t){return Ja(e,t,t?.source,(n,r)=>n.computeChartBoxData(r))}function Ja(e,t,n,r){let[l,a]=react.useState(null);return react.useEffect(()=>{if(!e||!t){a(null);return}let s=n??"view",p=datagridCore.chartNeedsOrder(t),T=false,w=0,v=false,R=false,M=null,f=()=>{let P=++w;r(e,t).then(y=>{!T&&P===w&&a(y);},()=>{});},S=(P=false)=>{R||=P,!v&&(v=true,queueMicrotask(()=>{if(v=false,T)return;let y=e.chartBasis(s,p);!R&&y===M||(R=false,M=y,f());}));};M=e.chartBasis(s,p),f();let A=[e.events.on("contentReady",()=>S()),e.events.on("rowsChanged",()=>S()),e.events.on("dataUpdated",()=>S()),...s==="selection"?[e.events.on("selectionChanged",()=>S(true))]:[]];return ()=>{T=true,w++,A.forEach(P=>P());}},[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=Tn;exports.DEFAULT_EDIT_FORM_LABELS=du;exports.DEFAULT_HEADER_MENU_LABELS=Zl;exports.DataGrid=hp;exports.GridCellEditor=Br;exports.GridColumnChooser=Da;exports.GridContextMenu=Bo;exports.GridDateEditor=Qt;exports.GridDialog=$r;exports.GridEditForm=Lr;exports.GridFilterPanel=Ea;exports.GridFilterRow=ua;exports.GridFooterRow=Fo;exports.GridGroupPanel=ka;exports.GridHeader=la;exports.GridHeaderBands=aa;exports.GridHeaderFilterPopup=ha;exports.GridLoadingOverlay=Aa;exports.GridLookupEditor=Zt;exports.GridNoteEditor=Fa;exports.GridPager=Sa;exports.GridPinnedRows=Ho;exports.GridPopupPanel=rn;exports.GridPortal=pt;exports.GridRow=vn;exports.GridRowEditor=Ir;exports.GridSummaryBar=kp;exports.GridSurfaceProvider=Sr;exports.GridTextProvider=Rr;exports.GridToolbar=xa;exports.GridToolbarButton=vp;exports.GridTooltip=$a;exports.PRINT_MAX_ROWS=Vr;exports.ROW_DRAG_MIME=$o;exports.SHORTCUT_COPY=Al;exports.SHORTCUT_CUT=wm;exports.SHORTCUT_PASTE=hm;exports.ToolbarIcon=va;exports.buildCellMenuItems=Pa;exports.buildHeaderMenu=Wa;exports.copyToClipboard=En;exports.editFormColumnIds=ol;exports.editFormLabels=Pr;exports.headerMenuLabels=Wo;exports.matchOptions=Vd;exports.measureBestFitWidth=_o;exports.reconcileFilterInputs=da;exports.runGridExport=qn;exports.useAlignedGrids=Yr;exports.useAnchoredPopup=nn;exports.useCellTooltip=_a;exports.useDataGrid=yr;exports.useEditModes=Or;exports.useGridChartBoxData=Np;exports.useGridChartData=Gp;exports.useGridChartXYData=Mp;exports.useGridEditing=vr;exports.useGridPortalTarget=Pt;exports.useGridSurfaceClass=Tt;exports.useGridText=ve;exports.usePrintLayout=Ur;exports.useRowDrag=Ba;exports.useStateStoring=Oa;exports.writeClipboardText=bm;