@kanunilabs/datagrid-react 1.8.2 → 1.8.4

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 Js=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],ki=new WeakMap;function cr(e){let t=ki.get(e);if(!t){let n={version:0,listeners:new Set},r=()=>{n.version++,n.listeners.forEach(l=>l());};for(let l of Js)e.events.on(l,r);ki.set(e,n),t=n;}return t}function mr(e){let t=e.sorting?.postSort,n=react.useRef(t);react.useEffect(()=>{n.current=t;},[t]);let[r]=react.useState(()=>((K,H)=>n.current?.(K,H))),l=()=>{let K=new datagridCore.DataGridController(t?{...e,sorting:{...e.sorting,postSort:r}}:e);return cr(K),K},[a,d]=react.useState(l);react.useEffect(()=>{if(a.isDisposed()){d(l());return}return ()=>a.dispose()},[a]);let g=react.useCallback(K=>{let{listeners:H}=cr(a);return H.add(K),()=>{H.delete(K);}},[a]),T=react.useCallback(()=>cr(a).version,[a]);react.useSyncExternalStore(g,T,T);let{dataSource:h,columns:b}=e,R=react.useRef(true);react.useEffect(()=>{if(R.current){R.current=false;return}Array.isArray(h)&&a.setData(h);},[a,h]);let x=react.useRef(true);react.useEffect(()=>{if(x.current){x.current=false;return}a.setColumns(b);},[a,b]);let k=e.pagination?e.pagination.enabled!==false:false;react.useEffect(()=>{a.setPaginationEnabled(k);},[a,k]);let E=e.rowHeight,M=react.useRef(true);react.useEffect(()=>{if(M.current){M.current=false;return}E!==void 0&&a.setRowHeight(E);},[a,E]);let L=e.selection?.mode??"none";react.useEffect(()=>{a.setSelectionMode(L);},[a,L]);let S=e.rowPinning;react.useEffect(()=>{a.setRowPinning(S);},[a,S]);let p=e.selection?.isRowSelectable,v=react.useRef(true);react.useEffect(()=>{if(v.current){v.current=false;return}a.setRowSelectable(p??null);},[a,p]);let P=t!==void 0,U=react.useRef(true);react.useEffect(()=>{if(U.current){U.current=false;return}a.setPostSort(P?r:null);},[a,P,r]);let $=e.grouping?.groupBy??null,N=JSON.stringify($==null?[]:typeof $=="string"?[$]:$),y=react.useRef(true);return react.useEffect(()=>{if(y.current){y.current=false;return}a.groupBy(JSON.parse(N));},[a,N]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var Ti=react.createContext(datagridCore.getGridDictionary("en"));function pr({locale:e,messages:t,children:n}){let r=react.useMemo(()=>datagridCore.getGridDictionary(e,t),[e,t]);return jsxRuntime.jsx(Ti.Provider,{value:r,children:n})}function ke(){return react.useContext(Ti)}var co=new WeakMap,fd=1e5,gd=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function wd(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 wr(e){let t=e.controller?.isEnterpriseEdition()??false;return hd(t?e:wd(e))}function hd({controller:e,mode:t="batch",rules:n,onSave:r,crud:l,allowAdding:a,allowUpdating:d,allowDeleting:g,onInitNewRow:T,onRowInserted:h,onRowUpdated:b,onRowRemoved:R,editOnKeyPress:x,confirmDelete:k,confirmDeleteMessage:E,insertKey:M,appendOnArrowDown:L,newRowPosition:S,focusCellOnTab:p,focusCellOnCycle:v,keepEditingOnTab:P,enabled:U=true,savedDuration:$,range:N=true,history:y=true,canEditColumn:K}){let H=ke(),[f,c]=react.useState(0),D=react.useCallback(()=>c(u=>u+1),[]),O=react.useMemo(()=>new datagridCore.RangeSelectionEngine,[]),W=react.useMemo(()=>({start(u,m){O.start(u,m),D();},add(u,m){O.add(u,m),D();},extend(u,m){O.extend(u,m)&&D();},finish(){O.finish(),D(),e?.notifyViewStateChanged();},clear(){O.clear()&&(D(),e?.notifyViewStateChanged());},contains:(u,m)=>O.contains(u,m),isAnchor:(u,m)=>O.isAnchor(u,m),getRange:()=>O.getRange(),getBounds:()=>O.getBounds(),toTsv:u=>O.toTsv(u),selectColumn(u,m,C){return O.selectColumn(u,m,C)?(D(),e?.notifyViewStateChanged(),true):false},fullColumns:u=>O.fullColumns(u)}),[O,D,e]),X=react.useRef(null);react.useEffect(()=>{if(!(!e||!N))return e.registerViewStatePart("ranges",{session:true,get:()=>datagridCore.rangesToSaved(O.getRanges(),e.getVisualColumnIds()),apply:u=>{O.setRanges(datagridCore.rangesFromSaved(u,e.getVisualColumnIds())),D();}})},[e,N,O,D]);let[ye,ve]=react.useState(null),ne=react.useRef({onSave:r,crud:l,allowAdding:a,allowUpdating:d,allowDeleting:g,onInitNewRow:T,onRowInserted:h,onRowUpdated:b,onRowRemoved:R,editOnKeyPress:x,confirmDelete:k,confirmDeleteMessage:E,insertKey:M,appendOnArrowDown:L,newRowPosition:S,focusCellOnTab:p,focusCellOnCycle:v,keepEditingOnTab:P,canEditColumn:K});ne.current={onSave:r,crud:l,allowAdding:a,allowUpdating:d,allowDeleting:g,onInitNewRow:T,onRowInserted:h,onRowUpdated:b,onRowRemoved:R,editOnKeyPress:x,confirmDelete:k,confirmDeleteMessage:E,insertKey:M,appendOnArrowDown:L,newRowPosition:S,focusCellOnTab:p,focusCellOnCycle:v,keepEditingOnTab:P,canEditColumn:K};let Le=react.useRef(null),s=react.useMemo(()=>{if(!e||!U)return null;let u=m=>e.getRowByKey(m);return new datagridCore.EditingEngine({mode:t,rules:n,messages:H,onChange:D,onAutoSaveFailed:m=>Le.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:C})=>e.notifyHistoryStarted(m,C),onHistoryEnded:({kind:m,...C})=>e.notifyHistoryEnded(m,C),readValue:(m,C)=>{let B=u(m);return B?e.getColumnModel().getStoredValue(B,C):void 0},formatForEdit:(m,C,B)=>e.formatCellForEdit(C,B),parseFromEdit:(m,C,B)=>e.parseCellFromEdit(C,B,m),readRow:u,editableColumns:m=>{let C=e.getColumnLayout(),B=u(m);return [...C.left,...C.center,...C.right].map(Y=>Y.state.id).filter(Y=>{if(e.getColumnModel().getDef(Y)?.editable===false||ne.current.canEditColumn&&!ne.current.canEditColumn(Y))return false;let Q=ne.current.allowUpdating;return Q===void 0?true:typeof Q=="function"?Q(B,Y):Q})},isColumnEditable:m=>e.getColumnModel().getDef(m)?.editable!==false&&(ne.current.canEditColumn?.(m)??true),applyValue:(m,C,B)=>e.writeCellValue(m,C,B),storedValue:(m,C,B)=>e.valueAfterWrite(m,C,B),insertRow:(m,C,B,Y)=>{let Q=e.getRowKeyField(),se={...C};Q&&(se[Q]=m),e.applyTransaction({add:[se],addPosition:B,addBeforeKey:Y});},dropRow:m=>e.applyTransaction({remove:[m]}),replaceRow:(m,C)=>{let B=e.getRowKey(C);return B===m?(e.applyTransaction({update:[C]}),B):(e.applyTransaction({remove:[m],add:[C]}),B)},allowAdding:()=>ne.current.allowAdding??false,allowUpdating:(m,C)=>{let B=ne.current.allowUpdating;return B===void 0?true:typeof B=="function"?B(m,C):B},allowDeleting:m=>{let C=ne.current.allowDeleting;return C===void 0?false:typeof C=="function"?C(m):C},onInitNewRow:m=>ne.current.onInitNewRow?.(m),get newRowPosition(){return ne.current.newRowPosition},onRowInserted:(m,C)=>ne.current.onRowInserted?.(m,C),onRowUpdated:(m,C,B)=>ne.current.onRowUpdated?.(m,C,B),onRowRemoved:(m,C)=>ne.current.onRowRemoved?.(m,C),crud:{get insert(){let m=ne.current.crud?.insert;return m&&(C=>m(C))},get update(){let m=ne.current.crud?.update;return m&&((C,B,Y)=>m(C,B,Y))},get remove(){let m=ne.current.crud?.remove;return m&&((C,B)=>m(C,B))}},onSave:m=>ne.current.onSave?.(m)})},[e,U]);react.useEffect(()=>{s?.setMessages(H);},[s,H]),react.useEffect(()=>{s?.setMode(t);},[s,t]),react.useEffect(()=>{$!==void 0&&s?.setSavedDuration($);},[s,$]),react.useEffect(()=>(s?.resume(),()=>s?.dispose()),[s]),react.useEffect(()=>{if(!e||!s)return;let u=false,m=e.events.on("rowsChanged",B=>{u=B.removed===0;}),C=e.events.on("dataUpdated",()=>{let B=u;u=false,!B&&s.retainKeys(new Set(e.getDataRows().map(Y=>Y.key)));});return ()=>{m(),C();}},[e,s]),react.useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>W.clear())},[e,W]),react.useEffect(()=>{if(!(!e||!s))return e.setPendingValueReader({effectiveValue:(u,m,C)=>s.changes.effectiveValue(u,m,C),effectiveRow:(u,m)=>s.changes.applyPendingTo(u,m),hasPending:()=>s.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,s]),react.useEffect(()=>{if(!(!e||!s||!y))return e.setHistoryDelegate({undo:()=>s.undo(),redo:()=>s.redo(),canUndo:()=>s.canUndo(),canRedo:()=>s.canRedo(),depth:()=>s.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,s,y]);let Me=react.useMemo(()=>datagridCore.createDebouncedCommit(150),[]);react.useEffect(()=>()=>Me.cancelAll(),[Me]);let Ne=react.useRef(f);react.useEffect(()=>{!e||!s||f===Ne.current||(Ne.current=f,Me.schedule("footer",()=>e.refreshSummaries()));},[e,s,f,Me]);let ie=react.useCallback(u=>{let m=e?.getRows()[u];return m&&m.kind==="data"?m.key:null},[e]),le=react.useCallback(u=>e?.getColumnIdAt(u)??null,[e]),Re=react.useCallback((u,m)=>{e?.scrollToCell(u,m),s?.beginEdit(u,m);},[s,e]),Ee=react.useCallback((u={},m)=>{let C=s?.addRow(u,m)??null;if(C===null||!e)return C;if(datagridCore.isRowEditMode(t))return e.revealRow(C),C;let B=e.getRowKeyField(),Y=e.getColumnModel().runtime().find(Q=>Q.state.visible&&Q.def.editable!==false&&(B===null||(Q.def.field??Q.state.id)!==B));return e.revealRow(C),Y&&(e.focusCell(C,Y.state.id),s?.beginEdit(C,Y.state.id)),C},[s,e]),F=react.useCallback(u=>{if(!s)return false;let m=ne.current.confirmDelete;if(m===false)return s.removeRow(u);let C=e?.getRowByKey(u);if(typeof m!="function")return xe({rowKey:u,message:ne.current.confirmDeleteMessage??H.editDeleteConfirm}),false;let B=m(u,C);return typeof B=="boolean"?B?s.removeRow(u):false:(B.then(Y=>{Y&&s.removeRow(u);}),false)},[s,e]),te=react.useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),Te=react.useCallback((u,m={})=>{if(!s||!e)return false;let C=s.getSession(),B=C?{rowKey:C.rowKey,columnId:C.columnId}:e.getFocus();if(!B||!s.commitEdit())return false;let Y=Ke=>e.getColumnModel().getDef(Ke)?.editable!==false&&(ne.current.canEditColumn?.(Ke)??true),Q=e.getColumnModel().runtime().filter(Ke=>Ke.state.visible).map(Ke=>Ke.state.id);if(datagridCore.edgeEditableColumn(Q,Y,1)===null)return false;let se=e.getRows(),ge=se.findIndex(Ke=>Ke.key===B.rowKey);if(ge<0)return false;let we=datagridCore.nextEditableColumn(Q,Y,B.columnId,u);if(we===null){if(m.cycle===false)return false;let Ke=u;do ge+=Ke;while(ge>=0&&ge<se.length&&se[ge]?.kind!=="data");if(ge<0||ge>=se.length)return false;we=datagridCore.edgeEditableColumn(Q,Y,u);}let he=se[ge];return !he||he.kind!=="data"?false:(e.focusCell(he.key,we),e.scrollToCell(he.key,we),m.open===true?s.beginEdit(he.key,we):(te(),true))},[s,e]),V=react.useCallback((u,m,C)=>!s||!e||s.isEditingRow()||!s.canEditRow(u)||(e.scrollToCell(u,m),!s.beginRowEdit(u))?false:(C!==void 0&&s.getMode()==="row"&&(co.set(s,m),s.setRowEditValue(m,C)),true),[s,e]),J=react.useCallback(u=>{if(!s||!e||s.getSession())return false;let m=e.getFocus();if(!m||e.getColumnModel().getDef(m.columnId)?.editable===false)return false;let B=e.getColumnModel().getEditorDataType(m.columnId);if(B==="boolean"||B==="date")return false;let Y=B==="number"?Number.isNaN(Number(u))?null:Number(u):u;return Y===null?false:datagridCore.isRowEditMode(s.getMode())?V(m.rowKey,m.columnId,Y):(e.scrollToCell(m.rowKey,m.columnId),s.beginEdit(m.rowKey,m.columnId,Y))},[s,e,V]),[I,j]=react.useState(null),[oe,xe]=react.useState(null),Ge=react.useCallback(u=>{let m=oe;xe(null),u&&m&&s&&s.removeRow(m.rowKey);},[oe,s]),_e=react.useCallback(u=>{j({message:u.error??H.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,H]);Le.current=_e;let at=react.useCallback(async()=>{if(!s)return;j(null);let u=await s.saveChanges();u.saved||u.superseded||_e(u);},[s,_e]),q=react.useCallback(()=>j(null),[]),Z=react.useCallback(()=>{j(null),s?.cancelChanges();},[s]);react.useEffect(()=>{(s?.getSession()||s?.isEditingRow())&&j(null);},[f,s]);let Ce=react.useMemo(()=>{if(!e||!O.getRange())return null;let u=O.cellCount();if(u>fd)return {cells:u,truncated:true,numeric:null};let m=e.getColumnModel(),C=e.getVisualColumnIds(),B=e.getRows(),Y=O.getStats((Q,se)=>{let ge=B[Q],we=C[se];if(!ge||ge.kind!=="data"||!we)return;let he=s?s.effectiveValue(ge.key,we):m.getCellValue(ge.data,we);return typeof he=="string"&&he.trim()!==""&&!Number.isNaN(Number(he))?Number(he):he});return {cells:u,truncated:false,numeric:Y}},[e,O,s,f]),Oe=react.useCallback((u,m)=>!!s&&!datagridCore.isChromeColumn(m)&&s.canUpdate(u,m),[s]),ae=react.useCallback((u,m)=>{let C=W.getRange();X.current=C??{startRow:u,startColumn:m,endRow:u,endColumn:m},ve(null);},[W]),Ue=react.useCallback((u,m)=>{let C=X.current;if(!C)return;let B=datagridCore.computeFillTarget(C,u,m);ve(B?{startRow:B.bounds.minRow,startColumn:B.bounds.minColumn,endRow:B.bounds.maxRow,endColumn:B.bounds.maxColumn}:null);},[]),De=react.useCallback((u,m)=>{if(!s||!e)return 0;let B=datagridCore.computeFillValues(u,m,(Y,Q)=>{let se=ie(Y),ge=le(Q);return se!==null&&ge?s.effectiveValue(se,ge):void 0}).map(Y=>{let Q=ie(Y.row),se=le(Y.column);if(Q===null||!se||!Oe(Q,se))return null;let ge=Y.from?e.shiftCellFormula(se,Y.value,Y.row-Y.from.row,Y.column-Y.from.column):Y.value;return {rowKey:Q,columnId:se,value:ge}}).filter(Y=>Y!==null);return e.notifyClipboardGesture("fill",B.length,()=>B.length===0?false:(s.applyEdits(B,datagridCore.fillText(H.editFillUndo,{count:B.length}),"fill"),true)),B.length},[s,e,ie,le,Oe,H]),Be=react.useCallback(()=>{let u=X.current,m=ye;if(X.current=null,ve(null),!u||!m||!s||!e)return;let C=datagridCore.computeFillTarget(u,m.endRow,m.endColumn);C&&De(u,C);},[ye,s,e,De]),re=react.useCallback((u,m)=>{if(!e)return "";let C=e.getRows()[u],B=e.getColumnIdAt(m);if(!C||C.kind!=="data"||!B)return "";let Y=e.getColumnModel(),Q=s?s.effectiveValue(C.key,B):Y.getCellValue(C.data,B),se=datagridCore.cellDisplayText(Y.getDef(B),Q,C.data);return e.clipboardCellText(C,B,Q,se).replace(/[\t\r\n]+/g," ")},[e,s]),et=react.useCallback((u="copy")=>{if(!e||!W.getRange())return false;let m=W.toTsv(re);return e.notifyClipboardGesture("copy",m?m.split(`
2
- `).length:0,()=>e.writeClipboard(m,u)),true},[e,W,re]),tt=react.useCallback(u=>{if(!e||!s)return false;let m=W.getRange()!==null,C=u??e.getFocus();if(!m&&!C)return false;if(!et("cut")){let se=C?e.getVisualColumnIds().indexOf(C.columnId):-1,ge=C?e.getRows().findIndex(he=>he.key===C.rowKey):-1;if(ge<0||se<0)return false;let we=re(ge,se);e.notifyClipboardGesture("copy",we?1:0,()=>e.writeClipboard(we,"cut"));}let B=[];if(m)O.forEachCell((se,ge)=>B.push([se,ge]));else {let se=e.getRows().findIndex(we=>we.key===C.rowKey),ge=e.getVisualColumnIds().indexOf(C.columnId);if(se<0||ge<0)return false;B.push([se,ge]);}let Y=e.getRows(),Q=[];for(let[se,ge]of B){let we=Y[se];if(!we||we.kind!=="data")continue;let he=e.getColumnIdAt(ge);!he||datagridCore.isChromeColumn(he)||s.canUpdate(we.key,he)&&Q.push({rowKey:we.key,columnId:he,value:null});}return e.notifyClipboardGesture("cut",Q.length,()=>Q.length===0?false:(s.applyEdits(Q,datagridCore.fillText(H.editCutUndo,{count:Q.length}),"cut"),true)),true},[e,s,W,O,et,re,H]),je=react.useCallback(async u=>{if(!s||!e)return;let m="";try{m=await navigator.clipboard.readText();}catch{return}if(!m)return;let C=e.processPastedTable(datagridCore.parseClipboardTable(m));if(!C)return;let B=W.getBounds(),Y,Q;if(B)Y=B.minRow,Q=B.minColumn;else {let he=u??e.getFocus();if(!he||(Y=e.getRows().findIndex(Ke=>Ke.key===he.rowKey),Q=e.getVisualColumnIds().indexOf(he.columnId),Y<0||Q<0))return}let se=datagridCore.computePasteCells(C,Y,Q,{target:B,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),ge=e.getColumnModel(),we=se.map(he=>{let Ke=ie(he.row),bt=le(he.column);return Ke===null||!bt||!Oe(Ke,bt)?null:{rowKey:Ke,columnId:bt,value:e.pastedCellValue(Ke,bt,he.text,datagridCore.coercePastedValue(he.text,ge.getEditorDataType(bt)))}}).filter(he=>he!==null);e.notifyClipboardGesture("paste",we.length,()=>we.length===0?false:(s.applyEdits(we,datagridCore.fillText(H.editPasteUndo,{count:we.length}),"paste"),true));},[s,e,W,ie,le,Oe,H]),[me,i]=react.useState(null),it=react.useCallback(u=>s?(i(null),s.beginRowEdit(u)):false,[s]),mt=react.useCallback(async()=>{if(!s||!s.getRowSession())return false;let m=e?.getVisualColumnIds()??[],C=await s.saveRowEdit(m);return i(C.saved?null:C.error??null),C.saved&&te(),C.saved},[s,e,te]),Fe=react.useCallback(()=>{s&&(i(null),s.cancelRowEdit(),te());},[s,te]);react.useEffect(()=>{if(!(!e||!s))return e.setEditingDelegate({startEditingCell:(u,m)=>(e.scrollToCell(u,m),s.beginEdit(u,m)),stopEditing:async u=>{if(s.isEditingRow())return u?(Fe(),true):mt();if(!s.getSession())return false;if(u)return s.cancelEdit(),te(),true;let m=s.commitEdit();return m&&te(),m},getEditingCells:()=>{let u=s.getRowSession();if(u)return e.getVisualColumnIds().filter(C=>!datagridCore.isChromeColumn(C)&&s.canUpdate(u.rowKey,C)).map(C=>({rowKey:u.rowKey,columnId:C}));let m=s.getSession();return m?[{rowKey:m.rowKey,columnId:m.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,s,mt,Fe,te]);let lt=react.useCallback(u=>{if(!s||!e)return false;let m=u.ctrlKey||u.metaKey;if(y&&m&&(u.key==="z"||u.key==="Z"))return u.preventDefault(),u.shiftKey?s.redo():s.undo(),true;if(y&&m&&(u.key==="y"||u.key==="Y"))return u.preventDefault(),s.redo(),true;if(N&&m&&(u.key==="v"||u.key==="V"))return u.preventDefault(),je(),true;if(N&&m&&(u.key==="x"||u.key==="X"))return u.preventDefault(),tt(),true;if(m&&(u.key==="c"||u.key==="C"))return et()?(u.stopPropagation(),true):false;if(s.isEditingRow()){if(u.key==="Enter")return u.preventDefault(),mt(),true;if(u.key==="Escape")return u.preventDefault(),Fe(),true}if(u.key==="Escape"&&s.getSession())return u.preventDefault(),s.cancelEdit(),true;if(u.key==="Tab"&&ne.current.focusCellOnTab!==false&&!s.getSession()&&e.getFocus()&&Te(u.shiftKey?-1:1,{open:ne.current.keepEditingOnTab===true,cycle:ne.current.focusCellOnCycle!==false}))return u.preventDefault(),true;if(N&&u.shiftKey&&!u.altKey&&!s.getSession()&&datagridCore.RANGE_KEY_DIRECTIONS[u.key]){let C=e.getFocus(),B=e.getVisualColumnIds(),Y=B.flatMap((ge,we)=>datagridCore.isChromeColumn(ge)?[]:[we]),Q=C?e.getRowIndex(C.rowKey):-1,se=C?B.indexOf(C.columnId):-1;if(Q>=0&&se>=0&&Y.length>0){u.preventDefault(),u.stopPropagation();let ge=e.getRows(),we=datagridCore.extendRangeByKey(W.getRange(),{row:Q,column:se},datagridCore.RANGE_KEY_DIRECTIONS[u.key],m,{rows:ge.length,firstColumn:Y[0],lastColumn:Y[Y.length-1]});W.getRange()||W.start(we.startRow,we.startColumn),W.extend(we.endRow,we.endColumn),e.notifyViewStateChanged();let he=ge[we.endRow]?.key;return he!==void 0&&e.scrollToCell(he,B[we.endColumn]),true}}if(N&&m&&!u.shiftKey&&!u.altKey&&!s.getSession()&&(u.key==="d"||u.key==="D"||u.key==="r"||u.key==="R")){let C=e.getFocus(),B=e.getVisualColumnIds(),Y=B.findIndex(he=>!datagridCore.isChromeColumn(he)),Q=C?e.getRowIndex(C.rowKey):-1,se=C?B.indexOf(C.columnId):-1,ge=W.getRange()??(Q>=0&&se>=0?{startRow:Q,startColumn:se,endRow:Q,endColumn:se}:null),we=ge?datagridCore.keyboardFill(ge,u.key.toLowerCase()==="d"?"down":"right",Math.max(0,Y)):null;if(we)return u.preventDefault(),u.stopPropagation(),De(we.source,we.target),true}if(!m&&!u.shiftKey&&!s.getSession()&&gd.has(u.key)&&W.clear(),u.key==="Insert"&&ne.current.insertKey===true&&!m&&!s.getSession()){let C=e.getFocus();if(C&&s.canAdd())return u.preventDefault(),Ee({},C.rowKey),true}if(u.key==="ArrowDown"&&ne.current.appendOnArrowDown===true&&!m&&!u.shiftKey&&!s.getSession()){let C=e.getFocus(),B=e.getRows(),Y=B.length>0?B[B.length-1]:void 0;if(C&&Y&&Y.key===C.rowKey&&s.canAdd())return u.preventDefault(),Ee({}),true}if(u.key==="F2"){let C=e.getFocus();if(C)return u.preventDefault(),datagridCore.isRowEditMode(s.getMode())?(V(C.rowKey,C.columnId),true):(e.scrollToCell(C.rowKey,C.columnId),s.beginEdit(C.rowKey,C.columnId),true)}return ne.current.editOnKeyPress!==false&&!m&&!u.altKey&&u.key.length===1&&u.key!==" "&&!s.getSession()&&J(u.key)?(u.preventDefault(),true):false},[s,e,N,y,je,tt,et,J,V,Te,Ee,mt,Fe,De]);return {engine:s,range:W,version:f,beginEdit:Re,beginRowEdit:it,saveRowEdit:mt,cancelRowEdit:Fe,rowSaveError:me,addRow:Ee,editAdjacentCell:Te,editFocusedCellWith:J,focusScroller:te,deleteRow:F,saveChanges:at,cancelChanges:Z,selectionStats:Ce,handleKeyDown:lt,cut:tt,copySelection:et,paste:je,saveError:I,clearSaveError:q,pendingDelete:oe,resolveDelete:Ge,fillPreview:ye,startFillDrag:ae,moveFillDrag:Ue,endFillDrag:Be,isDraggingFill:X.current!==null}}var Ei=react.createContext("");function Rr({theme:e,density:t,palette:n,children:r}){let l=react.useMemo(()=>datagridCore.themeClassName(e,t,n),[e,t,n]);return jsxRuntime.jsx(Ei.Provider,{value:l,children:r})}function kt(){return react.useContext(Ei)}var vr=8,Nt=26,Ni=4;function Pi(e,t,n){let r=datagridCore.foldText(t.trim());if(r==="")return null;let l=[];for(let a=0;a<e.length;a++){let d=e[a];(n==="contains"?d.includes(r):d.startsWith(r))&&l.push(a);}return l}function Sd(e,t,n){let r=e.map(a=>datagridCore.foldText(a.label)),l=Pi(r,t,n);return l===null?e:l.map(a=>e[a])}function qt({options:e,value:t,matchMode:n="startsWith",allowCustom:r=false,invalid:l,autoFocus:a=true,testId:d,columnId:g,ariaLabel:T,onChange:h,onCommit:b,commitOnPick:R=true,onCancel:x,onTab:k}){let E=ke(),M=kt(),L=react.useRef(null),S=react.useRef(null),[p,v]=react.useState(null),[P,U]=react.useState(false),[$,N]=react.useState(0),[y,K]=react.useState(0),[H,f]=react.useState(null),c=react.useMemo(()=>e.map(F=>datagridCore.foldText(F.label)),[e]),D=react.useMemo(()=>{let F=e.find(te=>te.value===t);return F?F.label:t==null||t===""?"":String(t)},[e,t]),O=react.useMemo(()=>p===null?null:Pi(c,p,n),[c,p,n]),W=O===null?e.length:O.length,X=F=>e[O===null?F:O[F]],ye=p??D;react.useEffect(()=>{N(F=>F<W?F:0);},[W]),react.useLayoutEffect(()=>{a&&(L.current?.focus({preventScroll:true}),L.current?.select());},[]);let ve=()=>{let F=L.current;if(!F)return;let te=F.getBoundingClientRect(),Te=datagridCore.placeAnchoredLayer({anchor:{left:te.left,top:te.top,bottom:te.bottom},width:te.width,height:Math.min(Math.max(W,1),vr)*Nt,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});f({left:Te.left,top:Te.top,width:te.width});};react.useLayoutEffect(()=>{P&&ve();},[P,W]),react.useEffect(()=>{if(!P)return;let F=()=>ve();return window.addEventListener("scroll",F,true),window.addEventListener("resize",F),()=>{window.removeEventListener("scroll",F,true),window.removeEventListener("resize",F);}},[P]),react.useLayoutEffect(()=>{let F=S.current;if(!F||!P||W===0)return;let te=$*Nt,Te=te+Nt,V=F.scrollTop;te<V?V=te:Te>V+F.clientHeight&&(V=Te-F.clientHeight),V!==F.scrollTop&&(F.scrollTop=V,K(V));},[$,P,W]);let ne=Math.min(Math.max(W,1),vr)*Nt,Le=Math.max(0,Math.floor(y/Nt)-Ni),s=Math.min(W,Math.ceil((y+ne)/Nt)+Ni),Me=F=>{h(F.value),v(null),U(false),R&&b();},Ne=()=>{P||(U(true),K(0),S.current&&(S.current.scrollTop=0));},ie=()=>{if(p===null)return true;let F=p.trim();if(F==="")return r&&h(""),true;let te=datagridCore.foldText(F),Te=c.indexOf(te);return Te>=0?(h(e[Te].value),true):W===1?(h(X(0).value),true):r?(h(F),true):false},le=F=>{if(!(F.nativeEvent.isComposing||F.keyCode===229)){if(F.key==="ArrowDown"||F.key==="ArrowUp"){if(F.preventDefault(),F.stopPropagation(),!P){Ne();return}if(W===0)return;N(te=>((F.key==="ArrowDown"?te+1:te-1)+W)%W);return}if(F.key==="PageDown"||F.key==="PageUp"){if(!P||W===0)return;F.preventDefault(),F.stopPropagation();let te=vr*(F.key==="PageDown"?1:-1);N(Te=>Math.min(W-1,Math.max(0,Te+te)));return}if(F.key==="Home"||F.key==="End"){if(!P||W===0)return;F.preventDefault(),F.stopPropagation(),N(F.key==="Home"?0:W-1);return}if(F.key==="Enter"){if(F.preventDefault(),F.stopPropagation(),P&&W>0){Me(X($));return}ie()?b():Ne();return}if(F.key==="Escape"){if(F.preventDefault(),F.stopPropagation(),P){U(false);return}v(null),x();return}if(F.key==="Tab"){if(!ie()){F.preventDefault(),F.stopPropagation(),Ne();return}U(false),k&&(F.preventDefault(),F.stopPropagation(),k(F.shiftKey));return}F.stopPropagation();}},Re=[];for(let F=Le;F<s;F++){let te=X(F);Re.push(jsxRuntime.jsx("div",{role:"option","aria-selected":F===$,"aria-posinset":F+1,"aria-setsize":W,className:`kanuni-datagrid-lookup-item${F===$?" kanuni-datagrid-lookup-item--active":""}`,style:{position:"absolute",top:F*Nt,height:Nt,left:0,right:0},onMouseEnter:()=>N(F),onClick:()=>Me(te),children:te.label},String(te.value)));}let Ee=P&&H?reactDom.createPortal(jsxRuntime.jsx("div",{ref:S,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${M}`,role:"listbox","aria-label":T,"data-testid":d?`${d}-list`:void 0,style:{left:H.left,top:H.top,width:H.width,height:ne},onScroll:F=>K(F.currentTarget.scrollTop),onMouseDown:F=>F.preventDefault(),children:W===0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-lookup-empty",children:E.editNoMatch}):jsxRuntime.jsx("div",{style:{position:"relative",height:W*Nt},children:Re})}),document.body):null;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{ref:L,type:"text",role:"combobox","aria-expanded":P,"aria-autocomplete":"list","aria-label":T,"data-testid":d,"data-column-id":g,className:`kanuni-datagrid-editor${l?" kanuni-datagrid-editor--invalid":""}`,value:ye,onChange:F=>{v(F.target.value),N(0),K(0),S.current&&(S.current.scrollTop=0),U(true);},onFocus:Ne,onClick:Ne,onKeyDown:le,onBlur:()=>{p!==null&&!ie()&&v(null),U(false);}}),Ee]})}function Od(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=Ki(e);return [...t.slice(n),...t.slice(0,n)]}function Ki(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function Kd(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 Bd(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Xt({value:e,format:t=datagridCore.DEFAULT_DATE_FORMAT,invalid:n,disabled:r,autoFocus:l=true,testId:a,columnId:d,ariaLabel:g,onChange:T,onCommit:h,onCancel:b,onTab:R}){let x=ke(),k=kt(),E=react.useMemo(()=>Kd(x),[x]),M=react.useMemo(()=>Od(x),[x]),L=react.useRef(null),[S,p]=react.useState(null),[v,P]=react.useState(false),[U,$]=react.useState(null),N=react.useMemo(()=>datagridCore.toDate(e),[e]),y=S===null?datagridCore.formatDateValue(e,t):datagridCore.maskDate(S,t),K=S===null?null:datagridCore.parseDateValue(y,t),H=S!==null&&S.length===datagridCore.dateDigitCount(t)&&K===null,[f,c]=react.useState(()=>N??new Date);react.useEffect(()=>{v&&c(K??N??new Date);},[v]),react.useLayoutEffect(()=>{l&&(L.current?.focus({preventScroll:true}),L.current?.select());},[]);let D=react.useRef(null),O=react.useCallback(()=>{let s=L.current;if(!s)return;let Me=s.getBoundingClientRect(),Ne=datagridCore.placeAnchoredLayer({anchor:{left:Me.left,top:Me.top,bottom:Me.bottom},width:D.current?.offsetWidth??0,height:D.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});$({left:Ne.left,top:Ne.top});},[]),W=react.useCallback(s=>{D.current=s,s&&O();},[O]);react.useLayoutEffect(()=>{v&&O();},[v,O]),react.useEffect(()=>{if(!v)return;let s=()=>O();return window.addEventListener("scroll",s,true),window.addEventListener("resize",s),()=>{window.removeEventListener("scroll",s,true),window.removeEventListener("resize",s);}},[v,O]);let X=react.useCallback(s=>{if(s===null){T(null);return}T(e instanceof Date?s:datagridCore.toIsoDate(s));},[T,e]),ye=s=>{p(null),P(false),X(s),L.current?.focus({preventScroll:true});},ve=react.useCallback(()=>{if(S!==null){if(S.length===0){X(null),p(null);return}K&&X(K),p(null);}},[S,K,X]),ne=s=>{if(s.key==="Escape"){if(s.preventDefault(),s.stopPropagation(),v){P(false);return}p(null),b();return}if(v){let Me=s.key==="ArrowLeft"?-1:s.key==="ArrowRight"?1:s.key==="ArrowUp"?-7:s.key==="ArrowDown"?7:0;if(Me!==0){s.preventDefault(),s.stopPropagation();let Ne=K??N??new Date,ie=new Date(Ne.getFullYear(),Ne.getMonth(),Ne.getDate()+Me);p(datagridCore.dateDigits(datagridCore.formatDateValue(ie,t),t)),c(ie);return}if(s.key==="Enter"){s.preventDefault(),s.stopPropagation(),P(false),K&&ye(K);return}}if(s.key==="Enter"){s.preventDefault(),s.stopPropagation(),ve(),h();return}if(s.key==="Tab"){ve(),P(false),R&&(s.preventDefault(),s.stopPropagation(),R(s.shiftKey));return}if(s.key.length===1&&!s.ctrlKey&&!s.metaKey&&!/\d/.test(s.key)){s.preventDefault();return}s.stopPropagation();},Le=v&&U?reactDom.createPortal(jsxRuntime.jsxs("div",{ref:W,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${k}`,style:{left:U.left,top:U.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":g?`${g} ${x.dateCalendar}`:x.dateCalendar,onMouseDown:s=>s.preventDefault(),children:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsxRuntime.jsx("button",{type:"button","aria-label":x.datePreviousMonth,"data-testid":"dg-date-prev",onClick:()=>c(new Date(f.getFullYear(),f.getMonth()-1,1)),children:"\u2039"}),jsxRuntime.jsxs("span",{"data-testid":"dg-date-title",children:[E[f.getMonth()]," ",f.getFullYear()]}),jsxRuntime.jsx("button",{type:"button","aria-label":x.dateNextMonth,"data-testid":"dg-date-next",onClick:()=>c(new Date(f.getFullYear(),f.getMonth()+1,1)),children:"\u203A"})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[M.map(s=>jsxRuntime.jsx("span",{className:"kanuni-datagrid-date-weekday",role:"columnheader",children:s},s)),(()=>{let Me=(new Date(f.getFullYear(),f.getMonth(),1).getDay()-Ki(x)+7)%7,Ne=datagridCore.daysInMonth(f.getFullYear(),f.getMonth()+1),ie=[];for(let le=0;le<42;le++){let Re=le-Me+1,Ee=new Date(f.getFullYear(),f.getMonth(),Re),F=Re<1||Re>Ne,te=Bd(Ee,K??N);ie.push(jsxRuntime.jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${F?" kanuni-datagrid-date-day--outside":""}${te?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":te,"data-testid":"dg-date-day","data-date":datagridCore.toIsoDate(Ee),onClick:()=>ye(Ee),children:Ee.getDate()},le));}return ie})()]})]}),document.body):null;return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsxRuntime.jsx("input",{ref:L,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":g,"aria-invalid":H||n?true:void 0,"data-testid":a,"data-column-id":d,disabled:r,className:`kanuni-datagrid-editor${H||n?" kanuni-datagrid-editor--invalid":""}`,value:y,onChange:s=>{p(datagridCore.dateDigits(s.target.value,t));},onKeyDown:ne,onBlur:()=>{v||ve();}}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-date-button","aria-label":g?`${g} \u2014 ${x.dateOpenCalendar}`:x.dateOpenCalendar,"aria-expanded":v,"data-testid":"dg-date-open",disabled:r,tabIndex:-1,onMouseDown:s=>s.preventDefault(),onClick:()=>{P(s=>!s),L.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"})})}),Le]})}function xr(e){return {save:e.save,cancel:e.cancel,editTitle:e.formEditTitle,addTitle:e.formAddTitle,saving:e.editSaving,shortcut:e.formShortcut}}var zd=xr(datagridCore.getGridDictionary("en"));function Yd(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 _i(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 qd(e,t){if(t==="number"){if(e==="")return null;let n=Number(e);return Number.isNaN(n)?e:n}return e}function Dr({rowKey:e,fields:t,getValue:n,errors:r,lookups:l,customEditors:a=false,row:d,saving:g,saveError:T,isNew:h,dark:b=false,popup:R=false,inline:x=false,onNaturalHeight:k,labels:E,onChange:M,onSave:L,onCancel:S}){let p=ke(),v=kt(),P=react.useMemo(()=>({...xr(p),...E}),[p,E]),U=react.useRef(null),$=Object.keys(r)[0]??null,N=react.useCallback(c=>{if(U.current=c,!c)return;let D=c.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");if(D?.focus(),D instanceof HTMLInputElement&&D.type==="text"&&D.select(),k){let O=c.querySelector(".kanuni-datagrid-edit-form-fields");O&&k(c.clientHeight-O.clientHeight+O.scrollHeight);}},[k]);react.useEffect(()=>{if(!$||!U.current)return;U.current.querySelector(`[data-field-id="${CSS.escape($)}"] input, [data-field-id="${CSS.escape($)}"] select`)?.focus();},[$]);let y=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),K=P.shortcut.replace("{key}",y?"\u2318":"Ctrl"),H=react.useCallback(c=>{if(c.key==="Escape"){c.preventDefault(),c.stopPropagation(),S();return}if(c.key==="Enter"&&(c.ctrlKey||c.metaKey)){c.preventDefault(),c.stopPropagation(),L();return}if(c.key==="Enter"&&!(c.target instanceof HTMLButtonElement)){c.preventDefault();return}if(c.key!=="Tab"||!R||!U.current)return;let D=Array.from(U.current.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(D.length===0)return;let O=D[0],W=D[D.length-1];!c.shiftKey&&document.activeElement===W?(c.preventDefault(),O.focus()):c.shiftKey&&document.activeElement===O&&(c.preventDefault(),W.focus());},[S,L,R]),f=jsxRuntime.jsxs("div",{ref:N,className:`kanuni-datagrid-edit-form${x?" 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":h?P.addTitle:P.editTitle,onKeyDown:H,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-header",children:jsxRuntime.jsx("strong",{children:h?P.addTitle:P.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(c=>{let D=n(c.columnId),O=r[c.columnId],W=l?.[c.columnId],X=g||!c.editable,ye=`dg-field-${String(e)}-${c.columnId}`;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":c.columnId,"data-invalid":O?"":void 0,htmlFor:ye,children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-label",children:c.label}),a&&c.def?.renderEditor?c.def.renderEditor({value:D,row:d,columnId:c.columnId,error:O??null,setValue:ve=>M(c.columnId,ve),commit:L,cancel:S}):W!==void 0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(qt,{options:W??[],value:D,matchMode:c.def?.lookup?.matchMode,allowCustom:c.def?.lookup?.allowCustom,invalid:!!O,testId:ye,ariaLabel:c.label,onChange:ve=>M(c.columnId,ve),onCommit:()=>{},onCancel:S})}):c.def?.lookup?jsxRuntime.jsx("input",{id:ye,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:datagridCore.lookupLabel(c.def,D)??_i(D,c.dataType)}):c.dataType==="date"?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(Xt,{value:D,format:c.def?.dateFormat,invalid:!!O,disabled:X,autoFocus:false,testId:ye,columnId:c.columnId,ariaLabel:c.label,onChange:ve=>M(c.columnId,ve),onCommit:()=>{},onCancel:S})}):c.dataType==="boolean"?jsxRuntime.jsx("input",{id:ye,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:X,checked:D===true,onChange:ve=>M(c.columnId,ve.target.checked)}):jsxRuntime.jsx("input",{id:ye,className:"kanuni-datagrid-edit-form-input",type:Yd(c.dataType,D),disabled:X,"aria-invalid":O?true:void 0,value:_i(D,c.dataType),onChange:ve=>M(c.columnId,qd(ve.target.value,c.dataType))}),O&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-message",role:"alert",children:O})]},c.columnId)})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:K}),jsxRuntime.jsx("button",{type:"button",onClick:S,disabled:g,"data-testid":"dg-form-cancel",children:P.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-edit-form-save",onClick:L,disabled:g,"data-testid":"dg-form-save",children:g?P.saving:P.save})]})]});return R?jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-edit-popup${b?" kanuni-datagrid-dark":""}${v}`,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:S}),f]}):f}function Sr({controller:e,engine:t,columnId:n,message:r,saving:l,lookupOptions:a,onSave:d,onCancel:g}){let T=e.getColumnModel(),h=T.getDef(n);if(a!==void 0)return jsxRuntime.jsx(qt,{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:k=>t.setRowEditValue(n,k),commitOnPick:false,onCommit:d,onCancel:g});let b=T.getDataType(n);if(b==="date")return jsxRuntime.jsx(Xt,{value:t.rowEditValue(n),format:h?.dateFormat,invalid:!!r,disabled:l,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:h?.headerName??n,onChange:k=>t.setRowEditValue(n,k),onCommit:d,onCancel:g});let R=b==="number",x=k=>{k.key==="Enter"?(k.preventDefault(),k.stopPropagation(),d()):k.key==="Escape"&&(k.preventDefault(),k.stopPropagation(),g());};return b==="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:k=>t.setRowEditValue(n,k.target.checked),onKeyDown:x}):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:R?"number":"text",value:String(t.rowEditValue(n)??""),onChange:k=>{let E=k.target.value;t.setRowEditValue(n,R?E===""?null:Number(E):E);},onKeyDown:x})}function $i(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 Nr({controller:e,editing:t,mode:n,active:r,rootRef:l,rowHeight:a,formLabels:d,formHeight:g,dark:T,rowLookups:h,customEditors:b=false,isFormColumn:R,batchBar:x=true}){let k=ke(),{engine:E,version:M,beginRowEdit:L,saveRowEdit:S,cancelRowEdit:p,rowSaveError:v,saveChanges:P,cancelChanges:U}=t,$=r&&datagridCore.isRowEditMode(n),N=$?E?.getRowSession()??null:null,y=react.useRef(R);y.current=R;let K=react.useMemo(()=>{if(!e||!N)return [];let V=e.getColumnModel();return $i(e,y.current).map(J=>{let I=V.getDef(J);return {columnId:J,label:I?.headerName??I?.field??J,dataType:V.getEditorDataType(J),def:I,editable:E?.canUpdate(N.rowKey,J)??true}})},[e,E,N]),H=n==="row"?N?.rowKey??null:null;react.useEffect(()=>{if(H===null)return;let V=l.current;if(!V)return;let J=V.querySelectorAll('[data-testid="dg-row-editor"]');if(J.length===0)return;let I=e?.getFocus(),oe=(I&&String(I.rowKey)===String(H)?V.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(I.columnId)}"]`):null)??J[0],xe=E?co.get(E):void 0;E&&co.delete(E),oe.focus({preventScroll:true}),oe instanceof HTMLInputElement&&(xe!==void 0&&oe.getAttribute("data-column-id")===xe?oe.setSelectionRange(oe.value.length,oe.value.length):oe.select());},[H]);let f=react.useCallback(V=>$&&N?.rowKey===V,[$,N]),c=react.useCallback((V,J)=>{let I=e?.getColumnModel().getDef(V.columnId);if(I?.renderCell&&V.node.kind==="data")return I.renderCell({value:J,row:V.node.data,node:V.node,column:I});let j=I?datagridCore.lookupLabel(I,J):null;return j!==null?j:I?.valueFormatter&&V.node.kind==="data"?I.valueFormatter(J,V.node.data):I?.dateFormat&&I.dataType==="date"?datagridCore.formatDateValue(J,I.dateFormat):J==null?"":String(J)},[e]),D=react.useCallback(V=>{if(!(n!=="row"||!E||!e||V.node.kind!=="data"||!f(V.node.key)))return E.canUpdate(V.node.key,V.columnId)?jsxRuntime.jsx(Sr,{controller:e,engine:E,columnId:V.columnId,message:N?.errors[V.columnId]??null,saving:N?.saving??false,lookupOptions:h?.[V.columnId],onSave:()=>{S();},onCancel:p}):c(V,E.rowEditValue(V.columnId))},[n,E,e,M,f,N,h,c,S,p]),O=react.useCallback(V=>{if(!E||V.node.kind!=="data")return;let J=E.changes.get(V.node.key,V.columnId);return J?c(V,J.newValue):void 0},[E,M,c]),[W,X]=react.useState(null),ye=W??g??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,ve=react.useCallback(V=>{V>0&&X(J=>J!==null&&Math.abs(J-V)<a?J:V);},[a]);react.useEffect(()=>{N||X(null);},[N]);let ne=(V,J)=>N?jsxRuntime.jsx(Dr,{rowKey:V,fields:K,getValue:I=>E?.rowEditValue(I),errors:N.errors,lookups:h,customEditors:b,row:E?.effectiveRow(N.rowKey),saving:N.saving,saveError:v,isNew:N.isNew,dark:T,popup:n==="popup",inline:J,onNaturalHeight:J?ve:void 0,labels:d,onChange:(I,j)=>E?.setRowEditValue(I,j),onSave:()=>{S();},onCancel:p}):null,Le=N&&n==="popup"?ne(N.rowKey,false):null,s=react.useRef(ne);s.current=ne;let Me=react.useCallback(V=>s.current(V,true),[]),Ne=n==="form"?N?.rowKey??null:null,ie=N?.isNew??false,le=react.useRef(null);react.useEffect(()=>{if(e){if(Ne===null){if(le.current!==e)return;le.current=null,e.setEditFormRow(null);return}le.current=e,e.setEditFormRow(Ne,{height:ye,atTop:ie});}},[e,Ne,ie,ye]),react.useEffect(()=>()=>{let V=le.current;le.current=null,V?.setEditFormRow(null);},[]);let Re=$&&n==="row"&&!!N,Ee=x&&r&&n==="batch"&&(E?.hasChanges()??false),F=Re||Ee?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:N?.isNew?k.formAddTitle:datagridCore.fillText(k.editEditingRow,{row:String(N?.rowKey)})}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-row",disabled:N?.saving,onClick:()=>{S();},children:N?.saving?k.editSaving:k.editSaveRow}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:p,children:k.cancel}),v&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:v})]}),Ee&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:E?.isSaving(),onClick:()=>{P();},children:datagridCore.fillText(k.editSaveCount,{n:E?.getChanges().length??0})}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:U,children:k.cancel})]})]}):null,te=react.useCallback(V=>!$||!E||E.isEditingRow()?null:{id:"dg-edit-row",label:k.editRowMenu,onSelect:()=>L(V)},[$,E,L,k,M]),Te=react.useCallback(V=>$?(L(V),true):false,[$,L]);return {rowModeActive:$,rowSession:N,isRowEditing:f,defaultContent:c,renderRowCell:D,renderPending:O,renderEditForm:n==="form"?Me:void 0,popup:Le,bar:F,rowSessionAttr:N&&(n==="form"||n==="popup")?n:void 0,editRowMenuItem:te,openRow:Te}}function Pr(e,t){return e==null?"":t==="date"&&e instanceof Date?e.toISOString().slice(0,10):String(e)}function Ir({value:e,dataType:t,error:n,seeded:r=false,options:l,allowCustom:a=false,matchMode:d,ariaLabel:g,dateFormat:T,onChange:h,onCommit:b,onTab:R,onCancel:x}){let k=react.useRef(null),E=react.useRef(false);react.useEffect(()=>{let p=k.current;if(p&&(p.focus({preventScroll:true}),!(!(p instanceof HTMLInputElement)||p.type==="checkbox")))if(r){if(p.type==="text"||p.type==="search"){let v=p.value.length;p.setSelectionRange(v,v);}}else p.select();},[]);let L={ref:k,onKeyDown:p=>{p.nativeEvent.isComposing||p.keyCode===229||(p.key==="Enter"?(p.preventDefault(),p.stopPropagation(),b(p.shiftKey?"none":"down")):p.key==="Tab"?(p.preventDefault(),p.stopPropagation(),E.current=true,R(p.shiftKey?-1:1)):p.key==="Escape"?(p.preventDefault(),p.stopPropagation(),x()):p.stopPropagation());},onBlur:()=>{E.current||b("none");},className:`kanuni-datagrid-editor${n?" kanuni-datagrid-editor--invalid":""}`,"aria-invalid":!!n,"aria-errormessage":n?"kanuni-datagrid-editor-error":void 0,"data-testid":"dg-cell-editor"},S;return l===null?S=jsxRuntime.jsx("input",{...L,type:"text",value:"\u2026",readOnly:true,disabled:true}):l&&l.length>0?S=a?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{...L,type:"text",list:`${L["data-testid"]}-list`,value:Pr(e,t),onChange:p=>{let v=l.find(P=>P.label===p.target.value);h(v?v.value:p.target.value);}}),jsxRuntime.jsx("datalist",{id:`${L["data-testid"]}-list`,children:l.map(p=>jsxRuntime.jsx("option",{value:p.label},String(p.value)))})]}):jsxRuntime.jsx(qt,{options:l,value:e,matchMode:d,allowCustom:false,invalid:!!n,testId:L["data-testid"],ariaLabel:g,onChange:h,onCommit:()=>b("none"),onCancel:x,onTab:p=>{E.current=true,R(p?-1:1);}}):t==="boolean"?S=jsxRuntime.jsx("input",{...L,type:"checkbox",checked:e===true,onChange:p=>h(p.target.checked)}):t==="number"?S=jsxRuntime.jsx("input",{...L,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:Pr(e,t),onChange:p=>h(p.target.value===""?null:Number(p.target.value))}):t==="date"?S=jsxRuntime.jsx(Xt,{value:e,format:T,invalid:!!n,testId:L["data-testid"],ariaLabel:g,onChange:h,onCommit:()=>b("none"),onCancel:x,onTab:p=>{E.current=true,R(p?-1:1);}}):S=jsxRuntime.jsx("input",{...L,type:"text",value:Pr(e,t),onChange:p=>h(p.target.value)}),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[S,n&&jsxRuntime.jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function zi(e,t,n,r,l,a){let d=!n&&t!==void 0&&t.enabled!==false,g=d&&!l,T=t?.mode??"cell",h=react.useCallback(D=>{let O=e?.getColumnModel().getDef(D);return !O?.lookup&&!O?.renderEditor&&O?.allowFormulas!==true},[e]),b=wr({controller:e,enabled:d,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:h,savedDuration:a.savedDuration}),{engine:R,version:x,handleKeyDown:k,editAdjacentCell:E,focusScroller:M,saveError:L,clearSaveError:S}=b,p=Nr({controller:e,editing:b,mode:T,active:g,rootRef:a.rootRef,rowHeight:a.rowHeight,formLabels:t?.formLabels,formHeight:t?.formHeight,dark:a.dark}),{renderRowCell:v,renderPending:P,openRow:U}=p,{renderCellContent:$,getCellClassName:N,onCellDoubleClick:y}=r,K=react.useCallback(D=>{if(!d||!R||D.node.kind!=="data")return $?.(D);let O=v(D);if(O!==void 0)return O;if(!R.isEditing(D.node.key,D.columnId))return P(D)??$?.(D);let W=R.getSession(),X=e.getColumnModel(),ye=X.getDef(D.columnId);return jsxRuntime.jsx(Ir,{value:W.value,dataType:X.getEditorDataType(D.columnId),ariaLabel:ye?.headerName??D.columnId,dateFormat:ye?.dateFormat,error:W.validation.message,seeded:W.seeded,onChange:ve=>R.setEditValue(ve),onCommit:ve=>{R.commitEdit()&&(ve==="down"&&e?.moveFocus("down"),M());},onTab:ve=>{if(t?.focusCellOnTab===false){R.commitEdit();return}E(ve,{open:false,cycle:t?.focusCellOnCycle!==false}),M();},onCancel:()=>{R.cancelEdit(),M();}})},[d,R,e,x,$,v,P,E,M,t?.focusCellOnTab,t?.focusCellOnCycle]),H=react.useCallback(D=>{let O=N?.(D);if(!d||!R||D.node.kind!=="data")return O;let W=O?[O]:[];return R.isEditing(D.node.key,D.columnId)&&W.push("kanuni-datagrid-cell--editing"),R.changes.isDirty(D.node.key,D.columnId)&&W.push("kanuni-datagrid-cell--dirty"),W.length>0?W.join(" "):void 0},[d,R,x,N]),f=react.useCallback(D=>{y?.(D),!(!d||!R||D.node.kind!=="data")&&(U(D.node.key)||R.beginEdit(D.node.key,D.columnId));},[d,R,y,U]),c=react.useCallback(D=>g?k(D):false,[g,k]);return {active:d,renderCellContent:g?K:$,getCellClassName:g?H:N,onCellDoubleClick:g?f:y,handleKeyDown:c,saveError:d?L:null,clearSaveError:S,renderEditForm:g?p.renderEditForm:void 0,bar:g?p.bar:null,popup:g?p.popup:null,rowSessionAttr:g?p.rowSessionAttr:void 0,editRowMenuItem:p.editRowMenuItem,rowStatusSource:d?R:null}}function Fr({open:e,title:t,message:n,cancelLabel:r,confirmLabel:l,danger:a,dark:d,onConfirm:g,onCancel:T}){let h=react.useRef(null),b=react.useRef(null),R=react.useId(),x=react.useId(),k=kt();return react.useEffect(()=>{if(!e)return;let E=document.activeElement;h.current?.focus();let M=b.current;return ()=>{let L=document.activeElement;M&&(M.contains(L)||L===document.body||L===null)&&E?.isConnected&&E.focus({preventScroll:true});}},[e]),react.useEffect(()=>{if(!e)return;let E=M=>{if(M.key==="Escape"){M.stopPropagation(),T();return}if(M.key==="Tab"&&b.current){let L=Array.from(b.current.querySelectorAll("button:not([disabled])"));if(L.length===0)return;let S=L.indexOf(document.activeElement),p=M.shiftKey?S<=0?L.length-1:S-1:S===L.length-1?0:S+1;M.preventDefault(),M.stopPropagation(),L[p].focus();}};return document.addEventListener("keydown",E,true),()=>document.removeEventListener("keydown",E,true)},[e,T]),!e||typeof document>"u"?null:reactDom.createPortal(jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${d?" kanuni-datagrid-dark":""}${k}`,role:"presentation",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:T}),jsxRuntime.jsxs("div",{ref:b,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":R,"aria-describedby":x,"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:x,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:h,type:"button",className:`kanuni-datagrid-dialog-primary${a?" kanuni-datagrid-dialog-primary--danger":""}`,"data-testid":"dg-dialog-confirm",onClick:g,children:l})]})]})]}),document.body)}var bo=0,Hr=5e3;function iu(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Hr}}function lu(e,t){return e<=t}function Ar(e,t){let n=iu(t),r=n!==null,l=n?.always??false,a=n?.maxRows??Hr,[d,g]=react.useState(false),T=react.useCallback(()=>g(true),[]),h=react.useCallback(()=>g(false),[]);react.useEffect(()=>{if(!r||l||typeof window>"u"||typeof window.addEventListener!="function")return;let R=()=>{let k=e.getRows().length;if(!lu(k,a)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${k} rows exceeds maxRows (${a}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}reactDom.flushSync(()=>g(true));},x=()=>reactDom.flushSync(()=>g(false));return window.addEventListener("beforeprint",R),window.addEventListener("afterprint",x),()=>{window.removeEventListener("beforeprint",R),window.removeEventListener("afterprint",x);}},[r,l,a,e]);let b=l||d;return react.useEffect(()=>{if(!b||typeof document>"u")return;let R=document.documentElement;return bo++,R.classList.add("kanuni-datagrid-printing"),()=>{bo--,bo<=0&&(bo=0,R.classList.remove("kanuni-datagrid-printing"));}},[b]),{active:b,begin:T,end:h}}var yo=new Map,Or=new Set;function Qi(e,t){let n=yo.get(e);return n?[...n].filter(r=>r!==t):[]}function Kr(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 d=yo.get(t)??new Set;d.add(a),yo.set(t,d);let g=e.events.on("columnStateChanged",()=>{if(Or.has(t))return;let T=Qi(t,a);if(T.length===0)return;let h=e.getColumnStates();Or.add(t);try{for(let b of T)b.controller.applyColumnStates(h);}finally{Or.delete(t);}});return ()=>{g(),d.delete(a),d.size===0&&yo.delete(t),r.current=null;}},[e,t,n]),{syncScroll:react.useCallback(a=>{let d=r.current;if(!t||!d)return;let g=Qi(t,d);if(g.length!==0)for(let T of g){let h=T.scroller();h&&h.scrollLeft!==a&&(h.scrollLeft=a);}},[t])}}function Ro(e,t,n){return e==="left"?t:e==="center"?n.left+t:n.left+n.center+t}function el(e,t){let{start:n,end:r}=t.columns,l=e.centerOffsets,a=l[n]??0,d=(l[r]??0)-a,g=Math.max(0,e.centerWidth-a-d),T=a,h=e.center.slice(n,r),b=Array.from({length:h.length},(k,E)=>n+E),R=e.stickyIndices.filter(k=>k<n);if(R.length>0){let k=R.map(E=>e.center[E]);T-=k.reduce((E,M)=>E+M.state.width,0),h=[...k,...h],b=[...R,...b];}let x=new Map;for(let k of e.stickyIndices){let E=e.centerStickyOffsets[k];E!==null&&x.set(e.center[k].state.id,E);}return {centerColumns:h,centerIndices:b,leadingSpacer:Math.max(0,T),trailingSpacer:g,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:x}}function tl(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 nl(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 ko=36,vo=28,wn=60,hn=24,Cu=[["statusColumn",hn],["rowNumberColumn",wn],["detailColumn",vo],["checkboxColumn",ko]];function zr(e,t,n=false,r=false){return St({checkboxColumn:e,detailColumn:t,rowNumberColumn:n,statusColumn:r}).total}function St(e){let t=new Map,n=new Map,r=0,l=0;for(let[a,d]of Cu)e[a]&&(t.set(a,r),a!=="statusColumn"&&n.set(a,++l),r+=d);return {total:r,count:l,inset:a=>t.get(a)??0,colIndex:a=>n.get(a)??1}}function $r(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function Wr(e,t,n){return e?e.kind==="covered"?t?n():null:jsxRuntime.jsx("div",{className:"kanuni-datagrid-span-box",style:{height:e.height},children:n()}):n()}function Vr(e,t){let n=e??(t==="number"||t==="bigint"?"right":"left");return n==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":n==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function Co(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,d=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)},d++)),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 ku(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 Co(l,r);if(e.valueFormatter){let a=e.valueFormatter(t,n.data);return typeof a=="string"?Co(a,r):a}return e.dateFormat&&e.dataType==="date"?Co(datagridCore.formatDateValue(t,e.dateFormat),r):t==null?"":Co(String(t),r)}function vu({gridId:e,node:t,index:n,layout:r,columnModel:l,centerColumns:a,centerIndices:d,stickyInsets:g,leadingSpacer:T,trailingSpacer:h,striped:b,selected:R,ariaSelectable:x=true,selectable:k=true,groupSelection:E,onToggleGroupSelect:M,groupDisplay:L="fullWidth",focusedColumnId:S,rowFocused:p=false,renderRow:v,checkboxColumn:P,statusColumn:U=false,rowNumberColumn:$=false,rowNumber:N=null,getNote:y,getSpan:K,resolveColSpans:H,findKind:f,headerRowCount:c,onRowClick:D,onRowMouseDown:O,onRowDoubleClick:W,onToggleSelect:X,onCellMouseDown:ye,onRowContextMenu:ve,searchNeedle:ne="",onToggleGroup:Le,summaryDefs:s,detailColumn:Me=false,detailExpanded:Ne=false,onToggleDetail:ie,onToggleTreeRow:le,renderDetail:Re,renderEditForm:Ee,renderRowMessage:F,renderCellContent:te,getCellClassName:Te,onCellPointerDown:V,onCellPointerEnter:J,onCellDoubleClick:I,rowDrag:j,dropSide:oe=null,rowStatus:xe,rowStatusText:Ge,rowStatusTint:_e=false,height:at}){let q=ke();if(datagridCore.isDetailRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+c,"data-row-key":String(t.key),"data-detail-for":String(t.parentKey),style:{height:t.height},children: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+c,"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:Ee?.(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+c,"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:F?.(t.parentKey,t.data)})});if(datagridCore.isFillerRow(t))return null;if(datagridCore.isGroupRow(t)&&L==="fullWidth"){let A=l.getDef(t.columnId),z=A?.headerName??t.columnId,pe=datagridCore.lookupLabel(A,t.value)??t.display??(t.label===""?q.filterBlank:t.label),Pe=t.aggregates??null;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${S?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+c,"aria-expanded":t.expanded,"aria-level":t.level+1,"data-row-key":String(t.key),"data-group-key":String(t.key),"data-group-level":t.level,onClick:()=>Le?.(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:[E&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:E==="all",ref:ee=>{ee&&(ee.indeterminate=E==="some");},"aria-label":datagridCore.fillText(q.selectGroupAria,{count:String(t.count),group:pe}),onChange:()=>M?.(String(t.key)),onClick:ee=>ee.stopPropagation(),onMouseDown:ee=>ee.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:[z,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:pe}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),Pe&&s?.map(ee=>jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[datagridCore.summaryLabel(ee)," ",l.getDef(ee.columnId)?.headerName??ee.columnId,":"]})," ",datagridCore.formatSummaryValue(ee,Pe[datagridCore.summaryKey(ee.columnId,ee.type)],l.getDef(ee.columnId))]},datagridCore.summaryKey(ee.columnId,ee.type)))]})})}let Z=[],Ce=St({statusColumn:U,rowNumberColumn:$,detailColumn:Me,checkboxColumn:P}),Oe=Ce.count,ae=(A,z)=>({node:t,columnId:A,rowIndex:n,columnIndex:z,value:re?void 0:l.getCellValue(t.data,A)}),Ue=(A,z)=>{let pe=()=>ae(A,z);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${A}`,"aria-colindex":Oe+z+1,"data-column-id":A,onMouseDown:Pe=>{ye?.(t,A),V?.(pe(),Pe);},onMouseEnter:J?Pe=>J(pe(),Pe):void 0,onDoubleClick:I?()=>I(pe()):void 0}},De=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,Be=t.kind==="treePath",re=datagridCore.isGroupRow(t)?t:null,et=Be||re!==null,tt=re?L==="column"?datagridCore.GROUP_COLUMN_ID:(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,je=()=>{let A=re,z=l.getDef(A.columnId),pe=datagridCore.lookupLabel(z,A.value)??A.display??(A.label===""?q.filterBlank:A.label);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:A.level*16},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:A.expanded?"\u25BE":"\u25B8"}),L!=="column"&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[z?.headerName??A.columnId,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:pe}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",A.count,")"]})]})},me=(A,z)=>{let pe=re.aggregates?s?.find(Pe=>Pe.columnId===z):void 0;return pe?jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:datagridCore.formatSummaryValue(pe,re.aggregates[datagridCore.summaryKey(z,pe.type)],A)}):null},i=De?(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,it=(A,z,pe)=>{if(re){if(z===tt)return je();if(te){let ee=te(ae(z,pe));if(ee!==void 0)return ee}return me(A,z)}if(te&&!Be){let ee=te(ae(z,pe));if(ee!==void 0)return ee}let Pe=Be?z===i?jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:ku(A,l.getCellValue(t.data,z),t,ne);return De&&z===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?q.collapseTreeRow:q.expandTreeRow,onClick:ee=>{ee.stopPropagation(),le?.(t.key);},children:De.expanded?"\u25BE":"\u25B8"}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),Pe]}):Pe},mt=(A,z)=>{if(!Te||re)return "";let pe=Te(ae(A,z));return pe?` ${pe}`:""},Fe=A=>!y||t.kind!=="data"?"":y(t.key,A,t.data)?" kanuni-datagrid-cell--noted":"",lt=A=>K&&t.kind==="data"?K(n,A):null,u=(A,z)=>{let pe=A.autoHeight?" kanuni-datagrid-cell--wrap":"";return !A.cellClassName||et?pe:pe+m(A,z)},m=(A,z)=>{let pe=A.cellClassName;if(!pe)return "";if(typeof pe=="string")return ` ${pe}`;let Pe=t.data,ee=pe({value:l.getCellValue(Pe,z),row:Pe,node:t,column:A});return ee?` ${ee}`:""};if(U&&Z.push(jsxRuntime.jsx("div",{role:"presentation","aria-hidden":"true",className:"kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell",style:{width:hn,insetInlineStart:Ce.inset("statusColumn")},children:jsxRuntime.jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),$){let A=t.kind==="data"&&N!==null;Z.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":Ce.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:wn,insetInlineStart:Ce.inset("rowNumberColumn")},children:A?N:""},"__rownum"));}Me&&Z.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":Ce.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:vo,insetInlineStart:Ce.inset("detailColumn")},children:et?null:jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Ne,"aria-label":Ne?q.collapseDetails:q.expandDetails,onMouseDown:A=>A.stopPropagation(),onClick:A=>{A.stopPropagation(),ie?.(t.key);},children:Ne?"\u25BE":"\u25B8"})},"__detail")),P&&Z.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":Ce.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:ko,insetInlineStart:Ce.inset("checkboxColumn")},onMouseDown:A=>A.stopPropagation(),onClick:A=>{A.target.tagName!=="INPUT"&&(A.stopPropagation(),X?.(t));},children:re?E&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:E==="all",ref:A=>{A&&(A.indeterminate=E==="some");},"aria-label":datagridCore.fillText(q.selectGroupAria,{count:String(re.count),group:re.display??re.label}),onChange:()=>M?.(String(re.key)),onClick:A=>A.stopPropagation(),onMouseDown:A=>A.stopPropagation()}):Be?null:jsxRuntime.jsx("input",{type:"checkbox",checked:R,disabled:!k,tabIndex:-1,"aria-label":datagridCore.fillText(q.selectRowAria,{row:String(t.key)}),onChange:()=>X?.(t),onClick:A=>A.stopPropagation(),onMouseDown:A=>A.stopPropagation()})},"__select"));let C=Ce.total,B=A=>S===A?" kanuni-datagrid-cell--focused":"",Y=A=>{let z=f&&t.kind==="data"?f(t.key,A):null;return z==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":z==="match"?" kanuni-datagrid-cell--find-match":""},Q={left:r.left.length,center:r.center.length},se=t.kind==="data"&&H?H(t):null,ge=A=>se?.widths.get(A.state.id)??A.state.width,we=A=>{let z=se?.spans.get(A);return z?{"aria-colspan":z}:null};r.left.forEach((A,z)=>{let pe=A.def,Pe=z===r.left.length-1,ee=A.state.id;if(se?.covered.has(ee))return;let st=Ro("left",z,Q);Z.push(jsxRuntime.jsx("div",{...Ue(ee,st),className:`${Vr(pe.align,pe.dataType)} kanuni-datagrid-cell--pinned${Pe?" kanuni-datagrid-pin-edge-left":""}${B(ee)}${Y(ee)}${u(pe,ee)}${mt(ee,st)}${Fe(ee)}${$r(lt(ee))}`,...we(ee),style:{width:ge(A),insetInlineStart:r.leftOffsets[z]+C},children:Wr(lt(ee),S===ee,()=>it(pe,ee,st))},ee));});let he=se?.lead??null,Ke=T-(se?.leadingDelta??0),bt=h-(se?.trailingDelta??0);Ke>0&&Z.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Ke}},"__lead"));let nn=(A,z)=>{let pe=A.def,Pe=A.state.id,ee=Ro("center",z,Q),st=g?.get(Pe),qn=st===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",Xn=he&&he.column.state.id===Pe?he.width:ge(A);return jsxRuntime.jsx("div",{...Ue(Pe,ee),...we(Pe),className:`${Vr(pe.align,pe.dataType)}${qn}${B(Pe)}${Y(Pe)}${u(pe,Pe)}${mt(Pe,ee)}${Fe(Pe)}${$r(lt(Pe))}`,style:st===void 0?{width:Xn}:{width:Xn,insetInlineStart:st+C},children:Wr(lt(Pe),S===Pe,()=>it(pe,Pe,ee))},Pe)},xn=he?r.center.indexOf(he.column):-1,nt=he===null;return a.forEach((A,z)=>{let pe=d?.[z]??z;!nt&&pe>xn&&(Z.push(nn(he.column,xn)),nt=true),!se?.covered.has(A.state.id)&&Z.push(nn(A,pe));}),nt||Z.push(nn(he.column,xn)),bt>0&&Z.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:bt}},"__trail")),r.right.forEach((A,z)=>{let pe=A.def,Pe=z===0,ee=A.state.id;if(se?.covered.has(ee))return;let st=Ro("right",z,Q);Z.push(jsxRuntime.jsx("div",{...Ue(ee,st),className:`${Vr(pe.align,pe.dataType)} kanuni-datagrid-cell--pinned${Pe?" kanuni-datagrid-pin-edge-right":""}${B(ee)}${Y(ee)}${u(pe,ee)}${mt(ee,st)}${Fe(ee)}${$r(lt(ee))}`,...we(ee),style:{width:ge(A),insetInlineEnd:r.rightOffsets[z]},children:Wr(lt(ee),S===ee,()=>it(pe,ee,st))},ee));}),jsxRuntime.jsxs("div",{className:`kanuni-datagrid-row${b&&n%2===1?" kanuni-datagrid-row--odd":""}${R?" kanuni-datagrid-row--selected":""}${p?" kanuni-datagrid-row--focused":""}${Be?" kanuni-datagrid-row--tree-path":""}${re?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${re.level}`:""}${oe?` kanuni-datagrid-row--drop-${oe}`:""}${xe?` ${datagridCore.rowStatusClassName(xe,_e)}`:""}`,role:"row","aria-rowindex":n+1+c,"aria-selected":re||!x?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":xe,"aria-description":xe?Ge:void 0,"aria-busy":xe==="saving"?true:void 0,"aria-invalid":xe==="error"?true:void 0,"data-group-key":re?String(re.key):void 0,"data-group-level":re?re.level:void 0,style:at===void 0?void 0:{height:at},draggable:j?.draggable&&!re?true:void 0,onDragStart:j&&!re?A=>j.onDragStart(t,A):void 0,onDragEnd:j&&!re?()=>j.onDragEnd():void 0,onDragOver:j&&!re?A=>j.onDragOver(t,A):void 0,onDrop:j&&!re?A=>j.onDrop(t,A):void 0,onMouseDown:O&&!re?A=>O(t,A):void 0,onClick:re?()=>Le?.(String(re.key)):D?A=>D(t,n,A):void 0,onDoubleClick:W?A=>W(t,n,A):void 0,onContextMenu:ve?A=>ve(t,n,A):void 0,children:[j&&!re&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:q.dragToReorder,onMouseEnter:()=>j.setDraggable(true),onMouseLeave:()=>j.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"})]})})}),v&&t.kind==="data"?v({row:t.data,node:t,rowIndex:n,selected:R,focused:p}):Z]})}var bn=react.memo(vu);var yn=26;function Yr(e,t){return datagridCore.computeHeaderBands(e,t)}function qr(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function Xr(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 Du({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,depth:l,checkboxColumn:a=false,detailColumn:d=false,statusColumn:g=false,rowNumberColumn:T=false,rowHeight:h=yn,bandFold:b}){if(l<=0)return null;let R=St({statusColumn:g,rowNumberColumn:T,detailColumn:d,checkboxColumn:a}).total,x=Yr(e.left,l),k=Yr(t,l),E=Yr(e.right,l),M=(L,S,p)=>{let v=p;for(let P=0;P<S;P++)v+=L[P].width;return v};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:l},(L,S)=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":S+1,style:{width:e.totalWidth+R,height:h,top:S*h},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"}),(x[S]??[]).map((p,v)=>jsxRuntime.jsx("div",{className:qr(p,` kanuni-datagrid-band-cell--pinned${v===(x[S]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:p.spacer?"presentation":"columnheader","aria-colspan":p.spacer?void 0:p.columnIds.length,style:{width:p.width,insetInlineStart:M(x[S]??[],v,R)},title:p.spacer?void 0:p.label,children:Xr(p,b)},p.columnIds[0])),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(k[S]??[]).map(p=>jsxRuntime.jsx("div",{className:qr(p),role:p.spacer?"presentation":"columnheader","aria-colspan":p.spacer?void 0:p.columnIds.length,style:{width:p.width},title:p.spacer?void 0:p.label,children:Xr(p,b)},p.columnIds[0])),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),(E[S]??[]).map((p,v)=>{let P=E[S]??[],U=0;for(let $=v+1;$<P.length;$++)U+=P[$].width;return jsxRuntime.jsx("div",{className:qr(p,` kanuni-datagrid-band-cell--pinned${v===0?" kanuni-datagrid-pin-edge-right":""}`),role:p.spacer?"presentation":"columnheader","aria-colspan":p.spacer?void 0:p.columnIds.length,style:{width:p.width,insetInlineEnd:U},title:p.spacer?void 0:p.label,children:Xr(p,b)},p.columnIds[0])})]},S))})}var jr=react.memo(Du);var Nu=()=>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 Pu(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function Iu({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,sort:d,sortable:g,onSort:T,headerFilter:h=false,filteredColumns:b,onOpenFilter:R,filterIconMode:x="hover",checkboxColumn:k=false,detailColumn:E=false,statusColumn:M=false,rowNumberColumn:L=false,rowNumberHeader:S="#",selectAllState:p="none",selectAllDisabled:v=false,onToggleSelectAll:P,draggable:U=false,reorderable:$=false,onReorder:N,resizable:y=false,onResize:K,onAutoFit:H,onHeaderContextMenu:f,groupLevels:c,onHeaderClick:D,getHeaderClassName:O,renderHeaderLabel:W}){let X=ke(),ye=St({statusColumn:M,rowNumberColumn:L,detailColumn:E,checkboxColumn:k}),ve=new Map(d.map((q,Z)=>[q.columnId,{direction:q.direction,order:Z}])),ne=new Set(b??[]),Le=[...n.left.map(q=>q.state.id),...r.map(q=>q.state.id),...n.right.map(q=>q.state.id)],[s,Me]=react.useState(null),Ne=react.useId(),ie=s&&Le.includes(s)?s:Le[0],le=q=>{Me(q),document.querySelector(`[data-column-id="${q}"].kanuni-datagrid-header-cell`)?.focus();},Re=q=>{let Z=Le.indexOf(ie),Ce=Math.min(Le.length-1,Math.max(0,Z+q));Ce!==Z&&le(Le[Ce]);},Ee=react.useRef(null),F=react.useRef(false),[te,Te]=react.useState(null),V=Le,J=q=>[...n.left,...n.center,...n.right].find(Z=>Z.state.id===q)?.state.pinned??null,I=(q,Z)=>(F.current?q>Z.left+Z.width/2:q<Z.left+Z.width/2)?"before":"after",j=(q,Z)=>{let Ce=Ee.current;if(!$||!Ce||Ce===q||J(Ce)!==J(q))return;Z.preventDefault(),Z.dataTransfer.dropEffect="move";let Oe=I(Z.clientX,Z.currentTarget.getBoundingClientRect());Te(ae=>ae?.id===q&&ae.side===Oe?ae:{id:q,side:Oe});},oe=(q,Z)=>{let Ce=Ee.current;if(Te(null),!$||!Ce||Ce===q||J(Ce)!==J(q))return;if(Z.preventDefault(),Z.stopPropagation(),I(Z.clientX,Z.currentTarget.getBoundingClientRect())==="before")N?.(Ce,q);else {let ae=V[V.indexOf(q)+1];N?.(Ce,ae===Ce?V[V.indexOf(q)+2]:ae);}Ee.current=null;},[xe,Ge]=react.useState(null),_e=(q,Z)=>{if(!y)return;Z.preventDefault(),Z.stopPropagation();let Ce=Z.currentTarget,Oe=Z.clientX,ae=q.state.width,Ue=F.current?-1:1,De=q.state.id;Ge(De),Ce.setPointerCapture(Z.pointerId);let Be=ae,re=false,et=je=>{re=true,Be=ae+(je.clientX-Oe)*Ue,K?.(De,Be,false);},tt=()=>{Ce.releasePointerCapture?.(Z.pointerId),Ce.removeEventListener("pointermove",et),Ce.removeEventListener("pointerup",tt),Ce.removeEventListener("pointercancel",tt),re&&K?.(De,Be,true),Ge(null);};Ce.addEventListener("pointermove",et),Ce.addEventListener("pointerup",tt),Ce.addEventListener("pointercancel",tt);},at=(q,Z,Ce)=>{let Oe=q.def,ae=q.state.id,Ue=g&&Oe.sortable!==false,De=h&&Oe.filterable!==false,Be=ae===datagridCore.GROUP_COLUMN_ID,re=ve.get(Be?c?.[0]??ae:ae),et=U&&Oe.groupable!==false||$&&Oe.reorderable!==false,tt=te?.id===ae?te.side:null,je=O?.(ae);return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-header-cell${Z}${je?` ${je}`:""}${Ue?" kanuni-datagrid-header-cell--sortable":""}${tt?` kanuni-datagrid-header-cell--drop-${tt}`:""}${xe===ae?" kanuni-datagrid-header-cell--resizing":""}${Oe.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:Ce,role:"columnheader","aria-labelledby":`${Ne}-${encodeURIComponent(ae)}`,"aria-sort":re?re.direction==="asc"?"ascending":"descending":"none","data-column-id":ae,tabIndex:ae===ie?0:-1,onFocus:()=>Me(ae),draggable:et&&xe===null,onDragStart:me=>{me.dataTransfer.setData("text/x-kanuni-column",ae),me.dataTransfer.effectAllowed="move",Ee.current=ae,F.current=getComputedStyle(me.currentTarget).direction==="rtl";},onDragEnd:()=>{Ee.current=null,Te(null);},onDragOver:$?me=>j(ae,me):void 0,onDragLeave:$?()=>Te(me=>me?.id===ae?null:me):void 0,onDrop:$?me=>oe(ae,me):void 0,onContextMenu:f&&!datagridCore.isChromeColumn(ae)?me=>f(ae,me):void 0,onClick:Ue||D?me=>{D?.(ae,me)||Ue&&T(ae,me.shiftKey);}:void 0,onKeyDown:me=>{me.key==="ArrowRight"?(me.preventDefault(),Re(1)):me.key==="ArrowLeft"?(me.preventDefault(),Re(-1)):me.key==="Home"?(me.preventDefault(),le(Le[0])):me.key==="End"?(me.preventDefault(),le(Le[Le.length-1])):De&&me.altKey&&me.key==="ArrowDown"?(me.preventDefault(),R?.(ae,me.currentTarget)):Ue&&(me.key==="Enter"||me.key===" ")&&(me.preventDefault(),T(ae,me.shiftKey));},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-header-label",id:`${Ne}-${encodeURIComponent(ae)}`,children:W?.(ae)??Pu(Oe,ae)}),re&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:re.direction==="asc"?"\u25B2":"\u25BC"}),re&&d.length>1&&!Be&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:re.order+1}),h&&Oe.filterable!==false&&jsxRuntime.jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${ne.has(ae)?" kanuni-datagrid-filter-button--active":""}${x==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":datagridCore.fillText(X.filterColumnAria,{column:Oe.headerName??ae}),"aria-haspopup":"dialog","data-filter-button":ae,tabIndex:-1,onClick:me=>{me.stopPropagation(),R?.(ae,me.currentTarget);},children:jsxRuntime.jsx(Nu,{})}),y&&Oe.resizable!==false&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":ae,role:"presentation",onPointerDown:me=>_e(q,me),onDoubleClick:me=>{me.stopPropagation(),H?.(ae);},onClick:me=>me.stopPropagation()})]},ae)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/yn)+1,style:{width:n.totalWidth+ye.total,top:e||void 0},children:[M&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell",role:"presentation","aria-hidden":"true",style:{width:hn,insetInlineStart:ye.inset("statusColumn")}}),L&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":ye.colIndex("rowNumberColumn"),"aria-label":X.rowNumberAria,style:{width:wn,insetInlineStart:ye.inset("rowNumberColumn")},children:S??""}),E&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":ye.colIndex("detailColumn"),"aria-label":X.detailsAria,style:{width:vo,insetInlineStart:ye.inset("detailColumn")}}),k&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":ye.colIndex("checkboxColumn"),style:{width:ko,insetInlineStart:ye.inset("checkboxColumn")},children:jsxRuntime.jsx("input",{type:"checkbox",checked:p==="all",ref:q=>{q&&(q.indeterminate=p==="some");},"aria-label":X.selectAllRows,disabled:v,onChange:()=>P?.()})}),n.left.map((q,Z)=>at(q,` kanuni-datagrid-header-cell--pinned${Z===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:q.state.width,insetInlineStart:n.leftOffsets[Z]+ye.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(q=>{let Z=t?.get(q.state.id);return Z===void 0?at(q,"",{width:q.state.width}):at(q," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:q.state.width,insetInlineStart:Z+ye.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((q,Z)=>at(q,` kanuni-datagrid-header-cell--pinned${Z===0?" kanuni-datagrid-pin-edge-right":""}`,{width:q.state.width,insetInlineEnd:n.rightOffsets[Z]}))]})}var Qr=react.memo(Iu);function ta(e,t,n=[]){let r=null,l=new Set,a=d=>{if(l.has(d)||(l.add(d),t.isPending(d)))return;let g=t.textFor(d);if(g===null)return;let T=e[d]??"";T!==g&&(T===""&&g===""||(r??={...e},r[d]=g));};for(let d of Object.keys(e))a(d);for(let d of n)a(d);return r??e}function Hu({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,values:d,checkboxColumn:g=false,detailColumn:T=false,statusColumn:h=false,rowNumberColumn:b=false,placeholder:R,onChange:x,onCommit:k,periodSuggestions:E,periodListId:M,operators:L,onOperatorChange:S,renderCustom:p}){let v=ke(),P=St({statusColumn:h,rowNumberColumn:b,detailColumn:T,checkboxColumn:g}),U=R??v.filterPlaceholder,$=(N,y,K)=>{let H=N.state.id,f=N.def.filterable!==false,c=f?p?.(H):void 0,D=f&&c===void 0?datagridCore.customFilterOperators(N.def):[],O=D.some(X=>X.id===L?.[H])?L[H]:"",W=D.find(X=>X.id===O)?.operandType==="none";return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-cell${y}`,role:"gridcell",style:K,"data-column-id":H,children:[f&&c!==void 0&&c,f&&c===void 0&&D.length>0&&jsxRuntime.jsxs("select",{className:"kanuni-datagrid-filter-operator",value:O,"aria-label":datagridCore.fillText(v.filterOperatorAria,{column:N.def.headerName??H}),"data-filter-operator-for":H,onChange:X=>S?.(H,X.target.value),children:[jsxRuntime.jsx("option",{value:"",children:v.filterOperatorDefault}),D.map(X=>jsxRuntime.jsx("option",{value:X.id,children:X.label},X.id))]}),f&&c===void 0&&jsxRuntime.jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:d[H]??"",placeholder:U,"aria-label":datagridCore.fillText(v.filterColumnAria,{column:N.def.headerName??H}),"data-filter-for":H,disabled:W||void 0,list:N.def.dataType==="date"&&M&&O===""?M:void 0,onChange:X=>x(H,X.target.value),onKeyDown:X=>{X.key==="Enter"&&k?.(H,X.target.value);},onBlur:X=>k?.(H,X.target.value)})]},H)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+P.total,"--dg-band-offset":`${e}px`},children:[M&&E&&E.length>0&&jsxRuntime.jsx("datalist",{id:M,children:E.map(N=>jsxRuntime.jsx("option",{value:N},N))}),P.total>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",role:"gridcell",style:{width:P.total,insetInlineStart:0}}),n.left.map((N,y)=>$(N,` kanuni-datagrid-filter-cell--pinned${y===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:N.state.width,insetInlineStart:n.leftOffsets[y]+P.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(N=>{let y=t?.get(N.state.id);return y===void 0?$(N,"",{width:N.state.width}):$(N," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:N.state.width,insetInlineStart:y+P.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((N,y)=>$(N,` kanuni-datagrid-filter-cell--pinned${y===0?" kanuni-datagrid-pin-edge-right":""}`,{width:N.state.width,insetInlineEnd:n.rightOffsets[y]}))]})}var na=react.memo(Hu);function ut({children:e,dark:t=false}){let[n,r]=react.useState(null),l=kt();return react.useEffect(()=>{let a=document.createElement("div");return a.className=`kanuni-datagrid-root kanuni-datagrid-portal${t?" kanuni-datagrid-dark":""}${l}`,document.body.appendChild(a),r(a),()=>{a.remove();}},[t,l]),n?reactDom.createPortal(e,n):null}function Zt({anchor:e,onClose:t,margin:n=8,autoFocus:r=false}){let l=react.useRef(null),[a,d]=react.useState(e),g=react.useCallback(T=>{if(l.current=T,!T)return;let h=T.getBoundingClientRect(),b=e.top+h.height+n>window.innerHeight,R=e.top-h.height-n*2,x=b&&R>n?R:e.top;d({left:Math.max(n,Math.min(e.left,window.innerWidth-h.width-n)),top:Math.max(n,Math.min(x,window.innerHeight-h.height-n))}),r&&T.focus();},[e.left,e.top,n,r]);return react.useEffect(()=>{let T=R=>{let x=l.current;x&&!x.contains(R.target)&&t();},h=R=>{R.key==="Escape"&&t();},b=R=>{let x=l.current,k=R.target;x&&k instanceof Node&&x.contains(k)||t();};return document.addEventListener("mousedown",T),document.addEventListener("keydown",h),window.addEventListener("scroll",b,true),()=>{document.removeEventListener("mousedown",T),document.removeEventListener("keydown",h),window.removeEventListener("scroll",b,true);}},[t]),{position:a,ref:g,elementRef:l}}var Do=25,Bn=new Map,ll=200,Uu=200,sl=8;function zu(e){let t=ke();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 Yu=react.memo(function({label:t,display:n,index:r,active:l,checked:a,onToggle:d,onFocus:g}){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:()=>g(r),onClick:()=>d(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:a,tabIndex:-1}),jsxRuntime.jsx("span",{children:n})]})});function sa({gridId:e,columnId:t,headerLabel:n,entries:r,initialSelected:l,anchor:a,loading:d=false,dark:g,onApply:T,onClose:h,truncated:b=false,onSearch:R,labels:x}){let k=zu(x),[E,M]=react.useState(""),[L,S]=react.useState(0),[p,v]=react.useState(()=>new Set(l??r.map(I=>I.label))),[P,U]=react.useState(false),$=react.useRef(null),N=react.useRef(null),[y,K]=react.useState(0),[H,f]=react.useState(240),c=`${e??""}:${t}`,D=Bn.get(c),O=react.useRef(D?.scrollTop??null),[W,X]=react.useState(D&&D.width&&D.height?{width:D.width,height:D.height}:null),ye=react.useCallback(I=>{$.current=I,I?.focus();},[]),ve=react.useRef(null),ne=react.useMemo(()=>{let I=datagridCore.foldText(E.trim());if(!I||b)return r;let j=ve.current;(!j||j.entries!==r)&&(j={entries:r,lowered:r.map(xe=>datagridCore.foldText(xe.label)),needle:"",result:[]},ve.current=j);let oe=j.needle!==""&&I.includes(j.needle)?j.result.filter(xe=>datagridCore.foldText(xe.label).includes(I)):r.filter((xe,Ge)=>j.lowered[Ge].includes(I));return j.needle=I,j.result=oe,oe},[r,E,b]);react.useEffect(()=>{if(!R)return;let I=setTimeout(()=>R(E),150);return ()=>clearTimeout(I)},[E,R]),react.useEffect(()=>{P||l||v(new Set(r.map(I=>I.label)));},[r,P,l]);let Le=react.useCallback(I=>{N.current=I,I&&f(I.clientHeight||240);},[]);react.useEffect(()=>{let I=N.current;!I||O.current===null||d||I.scrollHeight<=I.clientHeight||(I.scrollTop=O.current,O.current=null,K(I.scrollTop));});let s=react.useMemo(()=>{let I=ne.length,j=Math.max(0,Math.floor(y/Do)-sl),oe=Math.ceil(H/Do)+sl*2,xe=Math.min(j,Math.max(0,I-1)),Ge=Math.min(I,xe+oe);return {start:xe,end:Ge,count:I,rows:ne.slice(xe,Ge)}},[ne,y,H]),Me=Zt({anchor:a,onClose:h}),[Ne,ie]=react.useState(null),le=(Ne??Me.position.left)+(W?.width??260)+48<window.innerWidth?"right":"left",Re=I=>{I.preventDefault(),I.stopPropagation();let j=Me.elementRef.current;if(!j)return;let oe=j.getBoundingClientRect(),xe=le,Ge={x:I.clientX,y:I.clientY,w:oe.width,h:oe.height,left:oe.left},_e=null,at=Z=>{let Ce=Z.clientX-Ge.x,Oe=Z.clientY-Ge.y,ae=window.innerHeight-oe.top-12,Ue=Math.min(ae,Math.max(Uu,Ge.h+Oe));if(xe==="right"){let De=window.innerWidth-Ge.left-12;_e={width:Math.min(De,Math.max(ll,Ge.w+Ce)),height:Ue},X(_e);}else {let De=Ge.left+Ge.w,Be=De-12,re=Math.min(Be,Math.max(ll,Ge.w-Ce));_e={width:re,height:Ue},X(_e),ie(De-re);}N.current&&f(N.current.clientHeight);},q=()=>{if(window.removeEventListener("pointermove",at),window.removeEventListener("pointerup",q),_e){let Z=Bn.get(c);Bn.set(c,{scrollTop:Z?.scrollTop??N.current?.scrollTop??0,width:Math.round(_e.width),height:Math.round(_e.height)});}};window.addEventListener("pointermove",at),window.addEventListener("pointerup",q);},Ee=react.useCallback(I=>{U(true),v(j=>{let oe=new Set(j);return oe.has(I)?oe.delete(I):oe.add(I),oe});},[]),F=react.useCallback(I=>S(I),[]),te=()=>{if(d)return;if(p.size===r.length){T(null);return}let I=r.filter(Ge=>p.has(Ge.label)),j=I.some(Ge=>Ge.value===null||Ge.value===void 0),oe=I.filter(Ge=>Ge.value!==null&&Ge.value!==void 0),xe;oe.length===0?xe={columnId:t,operator:"isnull"}:j?xe={logic:"or",nodes:[{columnId:t,operator:"in",value:oe.map(Ge=>Ge.value)},{columnId:t,operator:"isnull"}]}:xe={columnId:t,operator:"in",value:oe.map(Ge=>Ge.value)},T(xe);},Te=I=>{let j=Math.max(0,Math.min(ne.length-1,I));S(j);let oe=Me.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${j}"]`);oe?.focus(),oe?.scrollIntoView({block:"nearest"});},V=I=>I.key.length===1&&!I.ctrlKey&&!I.metaKey&&!I.altKey,J=I=>{let j=I.target===$.current;if(I.key==="Backspace"&&!j){I.preventDefault(),$.current?.focus(),M(oe=>oe.slice(0,-1)),S(0);return}if(I.key==="ArrowDown"){I.preventDefault(),Te(j?0:L+1);return}if(I.key==="ArrowUp"){I.preventDefault(),Te(j?ne.length-1:L-1);return}if(!j&&(I.key==="Home"||I.key==="End")){I.preventDefault(),Te(I.key==="Home"?0:ne.length-1);return}if(I.key===" "&&!j){I.preventDefault();let oe=ne[L];oe&&Ee(oe.label);return}if(I.key==="Enter"){I.preventDefault(),te();return}!j&&V(I)&&I.key!==" "&&(I.preventDefault(),$.current?.focus(),M(oe=>oe+I.key),S(0));};return jsxRuntime.jsx(ut,{dark:g,children:jsxRuntime.jsxs("div",{ref:Me.ref,className:"kanuni-datagrid-filter-popup",style:{left:Ne??Me.position.left,top:Me.position.top,...W?{width:W.width,height:W.height,maxHeight:"none"}:null},role:"dialog","aria-label":`${n} filter`,onKeyDown:J,children:[jsxRuntime.jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${le}`,"data-testid":"dg-filter-resize",onPointerDown:Re}),jsxRuntime.jsx("input",{ref:ye,className:"kanuni-datagrid-filter-search",type:"search",placeholder:k.search,value:E,onChange:I=>{M(I.target.value),S(0);},"data-testid":"dg-filter-search"}),b&&jsxRuntime.jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:k.truncated}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>{U(true),v(new Set(r.map(I=>I.label)));},children:k.selectAll}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{U(true),v(new Set);},children:k.clear})]}),jsxRuntime.jsxs("div",{ref:Le,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true","aria-busy":d||void 0,"aria-setsize":ne.length,onScroll:I=>{let j=I.target.scrollTop;K(j),O.current=null;let oe=Bn.get(c);Bn.set(c,{...oe,scrollTop:j});},children:[d&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:k.loading}),!d&&ne.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:k.noMatch}),s.count>0&&jsxRuntime.jsx("div",{style:{height:ne.length*Do,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${s.start*Do}px)`},children:s.rows.map((I,j)=>{let oe=s.start+j;return jsxRuntime.jsx(Yu,{label:I.label,display:I.label===""?k.blank:I.label,index:oe,active:oe===L,checked:p.has(I.label),onToggle:Ee,onFocus:F},I.label)})})})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:h,children:k.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:te,disabled:d,"data-testid":"dg-filter-apply",children:k.apply})]})]})})}function da(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 ca({controller:e,columnId:t,surface:n,close:r}){let[l,a]=react.useState(()=>da(e,t,n));react.useEffect(()=>(a(da(e,t,n)),e.events.on("filterChanged",()=>{a(da(e,t,n));})),[e,t,n]);let d=react.useCallback(h=>{e.setColumnFilter(t,h,n==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET);},[e,t,n]),g=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:d,close:r??g})}):null}var Zu='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function cl({controller:e,columnId:t,headerLabel:n,anchor:r,dark:l,onClose:a}){let d=Zt({anchor:r,onClose:a}),g=react.useRef(false),T=d.ref,h=react.useCallback(b=>{T(b),!(!b||g.current)&&(g.current=true,(b.querySelector(Zu)??b).focus({preventScroll:true}));},[T]);return jsxRuntime.jsx(ut,{dark:l,children:jsxRuntime.jsx("div",{ref:h,tabIndex:-1,className:"kanuni-datagrid-filter-popup kanuni-datagrid-filter-popup--custom",style:{left:d.position.left,top:d.position.top},role:"dialog","aria-label":`${n} filter`,"data-column-id":t,children:jsxRuntime.jsx(ca,{controller:e,columnId:t,surface:"popup",close:a})})})}var ma="text/x-kanuni-column";function nc({columns:e,levels:t,onSetLevels:n,maxLevels:r=1,onExpandAll:l,onCollapseAll:a,emptyText:d}){let g=ke(),T=d??g.groupPanelHint,[h,b]=react.useState(false),R=react.useRef(null),[x,k]=react.useState(null),E=y=>e.find(H=>H.state.id===y)?.def.headerName??y,M=y=>{if(!y||t.includes(y))return;let K=t.length>=r?t.slice(0,r-1):[...t];n([...K,y]);},L=y=>n(t.filter(K=>K!==y)),S=(y,K)=>{let H=t.filter(c=>c!==y),f=Math.max(0,Math.min(H.length,K));n([...H.slice(0,f),y,...H.slice(f)]);},p=(y,K,H)=>{if(y===K)return;let c=t.filter(D=>D!==y).indexOf(K);c<0||S(y,H==="before"?c:c+1);},v=(y,K)=>{let H=y+K;H<0||H>=t.length||p(t[y],t[H],K<0?"before":"after");},P=(y,K)=>y<K.top+K.height/2?"before":"after",U=(y,K)=>{K.preventDefault(),K.stopPropagation();let H=P(K.clientY,K.currentTarget.getBoundingClientRect());k(null),b(false);let f=R.current;if(R.current=null,f){p(f,t[y],H);return}let c=K.dataTransfer.getData(ma);if(!c||t.includes(c))return;if(t.length>=r){M(c);return}let D=H==="before"?y:y+1;n([...t.slice(0,D),c,...t.slice(D)]);},$=(y,K,H)=>{let f=H.ctrlKey||H.metaKey;f&&(H.key==="ArrowUp"||H.key==="ArrowLeft")?(H.preventDefault(),v(y,-1)):f&&(H.key==="ArrowDown"||H.key==="ArrowRight")?(H.preventDefault(),v(y,1)):(H.key==="Delete"||H.key==="Backspace")&&(H.preventDefault(),L(K));},N=e.filter(y=>!t.includes(y.state.id));return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-group-panel${h?" kanuni-datagrid-group-panel--over":""}`,onDragOver:y=>{y.preventDefault(),b(true);},onDragLeave:()=>b(false),onDrop:y=>{if(y.preventDefault(),b(false),k(null),R.current){R.current=null;return}M(y.dataTransfer.getData(ma));},children:[t.length>0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((y,K)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-group-level${x?.index===K?` kanuni-datagrid-group-level--drop-${x.side}`:""}`,style:{"--dg-group-level":K},"data-group-level":K,onDragOver:H=>{H.preventDefault(),H.stopPropagation();let f=P(H.clientY,H.currentTarget.getBoundingClientRect());k(c=>c?.index===K&&c.side===f?c:{index:K,side:f});},onDragLeave:()=>k(H=>H?.index===K?null:H),onDrop:H=>U(K,H),children:jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:r>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${datagridCore.fillText(g.groupLevelAria,{n:K+1})}: ${E(y)}`,onDragStart:H=>{R.current=y,H.dataTransfer.effectAllowed="move",H.dataTransfer.setData(ma,y);},onDragEnd:()=>{R.current=null,k(null);},onKeyDown:H=>$(K,y,H),children:[r>1&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-chip-level",children:K+1}),E(y),jsxRuntime.jsx("button",{type:"button","aria-label":datagridCore.fillText(g.groupRemoveAria,{column:E(y)}),onClick:()=>L(y),children:"\xD7"})]})},y))}):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:g.groupExpandAll}),jsxRuntime.jsx("button",{type:"button",onClick:a,children:g.groupCollapseAll})]}),jsxRuntime.jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-sr-only",children:r>1?g.groupAddLevel:g.groupByColumn}),r>1?jsxRuntime.jsxs("select",{value:"",disabled:N.length===0,onChange:y=>M(y.target.value),children:[jsxRuntime.jsx("option",{value:"",children:g.groupAddLevelButton}),N.map(y=>jsxRuntime.jsx("option",{value:y.state.id,children:y.def.headerName??y.state.id},y.state.id))]}):jsxRuntime.jsxs("select",{value:t[0]??"",onChange:y=>n(y.target.value?[y.target.value]:[]),children:[jsxRuntime.jsx("option",{value:"",children:g.groupNoGrouping}),e.map(y=>jsxRuntime.jsx("option",{value:y.state.id,children:y.def.headerName??y.state.id},y.state.id))]})]})]})]})}var pa=react.memo(nc);function lc({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,defs:l,values:a,checkboxColumn:d=false,detailColumn:g=false,statusColumn:T=false,rowNumberColumn:h=false,onPickSummary:b,emptyHint:R="",position:x="bottom",bandOffset:k=0,headerRowsBetween:E=0}){let M=ke(),L=datagridCore.summaryTypeLabels(M),S=new Map(l.map(P=>[P.columnId,P])),p=St({statusColumn:T,rowNumberColumn:h,detailColumn:g,checkboxColumn:d}).total,v=(P,U,$)=>{let N=P.state.id,y=S.get(N),K=y?a[datagridCore.summaryKey(y.columnId,y.type)]:void 0,H=P.def.dataType==="number"||P.def.dataType==="bigint",f=datagridCore.isChromeColumn(N)?void 0:b;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-footer-cell${U}${H?" kanuni-datagrid-footer-cell--number":""}${y?" kanuni-datagrid-footer-cell--active":""}`,style:$,role:"gridcell","data-column-id":N,"data-summary-type":y?.type??"",title:y?`${datagridCore.summaryLabel(y,L)} \u2014 ${P.def.headerName??N}`:void 0,onContextMenu:f?c=>f(N,c):void 0,onClick:f?c=>f(N,c):void 0,children:y?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-value",children:datagridCore.formatSummaryValue(y,K,P.def)}):f?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-hint",children:R}):null},N)};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${x}`,role:"row","aria-label":M.columnTotalsAria,style:{width:e.totalWidth+p,"--dg-band-offset":`${k}px`,"--dg-pinned-gap":String(E)},children:[p>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:p,insetInlineStart:0}}),e.left.map((P,U)=>v(P,` kanuni-datagrid-footer-cell--pinned${U===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:P.state.width,insetInlineStart:e.leftOffsets[U]+p})),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(P=>v(P,"",{width:P.state.width})),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),e.right.map((P,U)=>v(P,` kanuni-datagrid-footer-cell--pinned${U===0?" kanuni-datagrid-pin-edge-right":""}`,{width:P.state.width,insetInlineEnd:e.rightOffsets[U]}))]})}var Eo=react.memo(lc);function uc(e,t){return `__dg_pinned_${e}_${t}`}function cc({gridId:e,side:t,rows:n,rowKeys:r,onUserRowContextMenu:l,layout:a,columnModel:d,centerColumns:g,centerIndices:T,stickyInsets:h,leadingSpacer:b,trailingSpacer:R,checkboxColumn:x=false,detailColumn:k=false,statusColumn:E=false,rowNumberColumn:M=false,rowHeight:L,bandOffset:S=0,headerRowsBetween:p,ariaRowBase:v}){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":`${S}px`,"--dg-pinned-gap":String(p)},children:n.map((P,U)=>{let $=r?.[U]??null,N={kind:"data",key:uc(t,U),sourceIndex:-1,data:P};return jsxRuntime.jsx(bn,{gridId:e,node:N,index:U,layout:a,columnModel:d,centerColumns:g,centerIndices:T,stickyInsets:h,leadingSpacer:b,trailingSpacer:R,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:x,detailColumn:k,statusColumn:E,rowNumberColumn:M,rowNumber:null,headerRowCount:v,height:L,onRowContextMenu:$!==null&&l?(y,K,H)=>l($,P,H):void 0},N.key)})})}var Go=react.memo(cc);function gl({controller:e,renderRow:t,width:n,bandOffset:r,headerRowsBetween:l,belowPinned:a}){let[,d]=react.useReducer(h=>h+1,0);react.useEffect(()=>{let h=[e.events.on("bodyScroll",d),e.events.on("contentReady",d),e.events.on("viewportChanged",d)];return ()=>h.forEach(b=>b())},[e]);let g=react.useRef(null);react.useLayoutEffect(()=>{g.current?.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(h=>h.setAttribute("tabindex","-1"));});let T=e.getStickyGroupRows();return T.length===0?null:jsxRuntime.jsx("div",{ref:g,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((h,b)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-sticky-group${b===T.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:h.offset,height:h.height,zIndex:T.length-b},children:t(h.node,h.index,h.height)},String(h.node.key)))})}function fa({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 $n(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 en({anchor:e,onClose:t,children:n,dark:r,className:l="",label:a,role:d="dialog"}){let g=Zt({anchor:e,onClose:t});return jsxRuntime.jsx(ut,{dark:r,children:jsxRuntime.jsx("div",{ref:g.ref,className:`kanuni-datagrid-filter-popup ${l}`.trim(),style:{left:g.position.left,top:g.position.top},role:d,"aria-label":a,children:n})})}function Cc(e){let t=ke();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 kc=()=>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 vc({controller:e,search:t=true,exportCsv:n=true,exportExcel:r=false,exportPdf:l=false,columnChooser:a=true,dark:d,onOpenColumnChooser:g,itemsBefore:T,itemsAfter:h,searchDebounce:b=200,labels:R}){let x=Cc(R),[k,E]=react.useState(e.getSearchText()),[M,L]=react.useState(null),[S,p]=react.useState(null),[v,P]=react.useState(null);react.useEffect(()=>{let y=setTimeout(()=>e.setSearchText(k),b);return ()=>clearTimeout(y)},[e,k,b]);let[U,$]=react.useState(()=>e.getSelectedCount());react.useEffect(()=>($(e.getSelectedCount()),e.events.on("selectionChanged",()=>$(e.getSelectedCount()))),[e]);let N=async y=>{L(y),P(null);let K=await $n(e,y);K.error?P(K.error):p(null),L(null);};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-toolbar",children:[T,t&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:x.search,value:k,"aria-label":x.search,"data-testid":"dg-toolbar-search",onChange:y=>E(y.target.value)}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxRuntime.jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:y=>{let K=y.currentTarget.getBoundingClientRect();g?.({left:K.left,top:K.bottom+2});},children:[jsxRuntime.jsx(fa,{name:"columns"}),jsxRuntime.jsx("span",{children:x.columns})]}),(n&&e.canExportAll()||r||l)&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":x.exportMenu,title:x.exportMenu,disabled:M!==null,"data-testid":"dg-export-menu",onClick:y=>{let K=y.currentTarget.getBoundingClientRect();p(S?null:{left:K.right-190,top:K.bottom+2});},children:M?jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsxRuntime.jsx(kc,{})}),S&&jsxRuntime.jsxs(en,{anchor:S,onClose:()=>p(null),dark:d,role:"menu",label:x.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null,"data-testid":"dg-export-csv",onClick:()=>N("csv"),children:M==="csv"?x.exporting:x.csv}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null,"data-testid":"dg-export-excel",onClick:()=>N("excel"),children:M==="excel"?x.exporting:x.excel}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null||U===0,"data-testid":"dg-export-excel-selected",onClick:()=>N("excel-selected"),children:M==="excel-selected"?x.exporting:x.excelSelected}),l&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null,"data-testid":"dg-export-pdf",onClick:()=>N("pdf"),children:M==="pdf"?x.exporting:x.pdf})]}),h,v&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:v})]})}var wa=react.memo(vc);var Sc=8;function Ec(e){let t=ke();return react.useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function ha({controller:e,columns:t,anchor:n,onClose:r,dark:l,labels:a}){let d=Ec(a),[g,T]=react.useState(""),h=e.getColumnModel(),b=M=>h.getDef(M.id)?.headerName??M.id,R=t.filter(M=>!datagridCore.isChromeColumn(M.id)),x=R.filter(M=>M.visible).length,k=g.trim().toLocaleLowerCase(),E=k?R.filter(M=>b(M).toLocaleLowerCase().includes(k)):R;return jsxRuntime.jsxs(en,{anchor:n,onClose:r,dark:l,label:d.title,className:"kanuni-datagrid-column-chooser",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-title",children:d.title}),R.length>Sc&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:d.search,"aria-label":d.search,value:g,onChange:M=>T(M.target.value)}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-list",children:[E.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-empty",children:d.empty}),E.map(M=>{let L=M.visible&&x===1;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsxRuntime.jsx("input",{type:"checkbox",checked:M.visible,disabled:L,"data-column-toggle":M.id,onChange:()=>e.setColumnVisible(M.id,!M.visible)}),jsxRuntime.jsx("span",{children:b(M)})]},M.id)})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",disabled:x===R.length,onClick:()=>R.forEach(M=>!M.visible&&e.setColumnVisible(M.id,true)),children:d.showAll}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:r,children:d.ok})]})]})}function Ic(e){let t=ke();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 Lc({page:e,pageCount:t,pageSize:n,pageSizes:r=[25,50,100,250],totalRows:l,onPage:a,onNext:d,onPrevious:g,onPageSize:T,pageButtons:h=false,maxPageButtons:b,labels:R}){let x=Ic(R),k=e<=0,E=e>=t-1,M=l===0?0:e*n+1,L=Math.min(l,(e+1)*n),S=react.useRef(null),p=react.useRef(null);return react.useEffect(()=>{let v=p.current,P=S.current;if(!P||!(v instanceof HTMLButtonElement)||!v.disabled)return;let U=document.activeElement;if(U&&U!==document.body&&U!==v)return;let $=P.querySelector('[aria-current="page"]')??P.querySelector("button:not(:disabled)");$?.focus(),p.current=$;},[e,t]),jsxRuntime.jsxs("div",{ref:S,className:"kanuni-datagrid-pager",role:"navigation","aria-label":x.navigation,onFocus:v=>{p.current=v.target;},onBlur:v=>{let P=v.relatedTarget;P&&!S.current?.contains(P)&&(p.current=null);},children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsxRuntime.jsx("span",{children:x.rowsPerPage}),jsxRuntime.jsx("select",{value:n,"data-testid":"dg-page-size",onChange:v=>T(Number(v.target.value)),children:r.map(v=>jsxRuntime.jsx("option",{value:v,children:v},v))})]}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[M.toLocaleString(),"\u2013",L.toLocaleString()," ",x.of," ",l.toLocaleString()]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsxRuntime.jsx("button",{type:"button","aria-label":x.first,disabled:k,onClick:()=>a(0),children:"\xAB"}),jsxRuntime.jsx("button",{type:"button","aria-label":x.previous,disabled:k,"data-testid":"dg-page-prev",onClick:g,children:"\u2039"}),h?datagridCore.pageButtonItems(e,t,b).map(v=>typeof v=="number"?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":datagridCore.fillText(x.pageButton,{n:String(v+1)}),"aria-current":v===e?"page":void 0,onClick:()=>a(v),children:v+1},v):jsxRuntime.jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},v)):jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[x.page," ",e+1," ",x.of," ",t]}),jsxRuntime.jsx("button",{type:"button","aria-label":x.next,disabled:E,"data-testid":"dg-page-next",onClick:d,children:"\u203A"}),jsxRuntime.jsx("button",{type:"button","aria-label":x.last,disabled:E,onClick:()=>a(t-1),children:"\xBB"})]})]})}var ba=react.memo(Lc);function _c(e){let t=ke();return react.useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function $c({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:r,labels:l}){let a=_c(l),d=ke(),[,g]=react.useState(0);react.useEffect(()=>e.events.on("filterChanged",()=>g(R=>R+1)),[e]);let T=e.getEffectiveFilter(),h=e.isFilterEnabled(),b=datagridCore.describeFilter(T,e.getColumnModel(),{...r,labels:{...datagridCore.filterLabels(d),...r?.labels}});return !T&&!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:!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:h,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:b??void 0,"data-testid":"dg-filter-panel-text",children:b??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 ya=react.memo($c);var Po=e=>!e.separator&&!e.disabled;function Io({x:e,y:t,items:n,context:r,onClose:l,dark:a=false,label:d}){let g=ke(),T=react.useRef(null),[h,b]=react.useState({left:e,top:t}),[R,x]=react.useState(()=>n.findIndex(Po)),[k,E]=react.useState(null),[M,L]=react.useState(null),S=react.useRef(null),[p,v]=react.useState(null);react.useEffect(()=>L(null),[k]);let P=react.useCallback((f,c)=>{if(E(f),f===null||!c)return;let D=c.getBoundingClientRect();v({left:D.left,right:D.right,top:D.top});},[]),U=f=>T.current?.querySelector(`[data-item-index="${f}"]`)??null,$=react.useCallback(f=>{if(S.current=f,!f||!p)return;let c=8,D=f.getBoundingClientRect(),O=Math.max(c,Math.min(p.top-4,window.innerHeight-D.height-c)),X=p.right+D.width+c<=window.innerWidth?p.right:Math.max(c,p.left-D.width);L({left:X,top:O});},[p]),N=react.useCallback(f=>{if(T.current=f,!f)return;let c=f.getBoundingClientRect(),D=8;b({left:Math.max(D,Math.min(e,window.innerWidth-c.width-D)),top:Math.max(D,Math.min(t,window.innerHeight-c.height-D))}),f.focus();},[e,t]);react.useEffect(()=>{let f=D=>{let O=D.target;S.current?.contains(O)||T.current&&!T.current.contains(O)&&l();},c=()=>l();return document.addEventListener("mousedown",f),window.addEventListener("scroll",c,true),()=>{document.removeEventListener("mousedown",f),window.removeEventListener("scroll",c,true);}},[l]);let y=(f,c)=>{let D=n.length;for(let O=1;O<=D;O++){let W=(f+c*O+D*D)%D;if(Po(n[W]))return W}return f},K=f=>{let c=n[f];if(!(!c||!Po(c))){if(c.items?.length){P(f,U(f));return}c.onSelect?.(r),l();}},H=f=>{switch(f.key){case "ArrowDown":x(c=>y(c,1));break;case "ArrowUp":x(c=>y(c,-1));break;case "Home":x(n.findIndex(Po));break;case "End":x(y(0,-1));break;case "ArrowRight":if(n[R]?.items?.length)P(R,U(R));else return;break;case "ArrowLeft":if(k!==null)P(null);else return;break;case "Enter":case " ":K(R);break;case "Escape":l();break;case "Tab":l();return;default:return}f.preventDefault(),f.stopPropagation();};return jsxRuntime.jsxs(ut,{dark:a,children:[jsxRuntime.jsx("div",{ref:N,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":d??g.rowActions,tabIndex:-1,style:{left:h.left,top:h.top},onKeyDown:H,children:n.map((f,c)=>f.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},f.id??`sep-${c}`):jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${c===R?" kanuni-datagrid-menu-item--active":""}`,disabled:f.disabled,"data-item-index":c,"aria-haspopup":f.items?.length?"menu":void 0,"aria-expanded":f.items?.length?k===c:void 0,onMouseEnter:D=>{x(c),P(f.items?.length?c:null,D.currentTarget);},onClick:()=>K(c),children:[f.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:f.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:f.label}),f.shortcut&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:f.shortcut}),f.items?.length?jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},f.id??c))}),k!==null&&n[k]?.items?.length?jsxRuntime.jsx("div",{ref:$,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:M?{left:M.left,top:M.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[k].items.map((f,c)=>f.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},f.id??`sub-sep-${c}`):jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:f.disabled,onClick:()=>{f.onSelect?.(r),l();},children:[f.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:f.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:f.label})]},f.id??c))}):null]})}var Vc=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),ka=Vc?"\u2318":"Ctrl+",kl=`${ka}C`,Uc=`${ka}X`,zc=`${ka}V`;function Cn(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
3
- `).length:0,()=>e.writeClipboard(n,"copy"));}function Yc(e){navigator.clipboard?.writeText(e).catch(()=>{});}function qc(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 Xc(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var Jc={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function va(e,t,n,r,l){if(n===false)return [];let a=n===true||n===void 0?{}:n,d=[];a.copy!==false&&d.push({id:"__dg-copy",label:t.menuCopy,shortcut:kl,onSelect:()=>Cn(e)}),a.copyWithHeaders!==false&&d.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>Cn(e,{includeHeaders:true})}),a.copyWithGroupHeaders!==false&&qc(e)&&d.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>Cn(e,{includeGroupHeaders:true})});let g=Xc(a.export).filter(T=>T!=="csv"||e.canExportAll());if(g.length>0){let T=e.getSelectedCount()===0;d.push({id:"__dg-export",label:t.menuExport,items:g.map(h=>({id:`__dg-export-${h}`,label:t[Jc[h]],disabled:h==="excel-selected"&&T,onSelect:()=>{$n(e,h).then(b=>{b.error&&l?.(b.error);});}}))});}return d.length>0&&r&&d.unshift({id:"__dg-sep-builtin",separator:true}),d}function Ta(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 Da({anchor:e,value:t,dark:n,onCommit:r,onCancel:l}){let a=ke(),[d,g]=react.useState(t),T=react.useRef(null);react.useEffect(()=>{let b=T.current;b&&(b.focus(),b.select());},[]);let h=()=>{let b=d.trim();r(b===""?null:b);};return jsxRuntime.jsxs(en,{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:d,rows:4,"aria-label":a.noteEditorAria,placeholder:a.notePlaceholder,onChange:b=>g(b.target.value),onKeyDown:b=>{b.key==="Enter"&&(b.ctrlKey||b.metaKey)&&(b.preventDefault(),h()),b.key==="Escape"&&(b.preventDefault(),l());}}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-note-actions",children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-note-cancel",onClick:l,children:a.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-note-save",onClick:h,children:a.save})]})]})}function tm(e){let t=ke();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 nm=new Set(["filtering","sorting","computing","encoding","exporting"]);function Ea({controller:e,delay:t=300,labels:n,cancellable:r=true,forced:l=false}){let[a,d]=react.useState(()=>e.getBusy()),[g,T]=react.useState(false);react.useEffect(()=>(d(e.getBusy()),e.events.on("busyChanged",E=>d(E))),[e]);let h=a.busy&&a.background!==true;react.useEffect(()=>{if(!h){T(false);return}let E=setTimeout(()=>T(true),t);return ()=>clearTimeout(E)},[h,t]);let b=tm(n);if(!l&&(!g||!h))return null;let R=a.phase?b[a.phase]:b.busy,x=a.progress===null?null:Math.max(0,Math.min(100,a.progress)),k=r&&a.phase!==null&&nm.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}),x!==null&&jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(x),"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:`${x}%`}})}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(x),"%"]})]}),k&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:b.cancel})]})})}function Sl({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 El({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:d=>e.setSort(d.target.value?[{columnId:d.target.value,direction:l?.direction??"asc"}]:[]),children:[jsxRuntime.jsx("option",{value:"",children:r.none}),n.map(d=>jsxRuntime.jsx("option",{value:d.id,children:d.label},d.id))]})]}),l&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-cardbar-dir","aria-label":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 Gl=null;function om(){return typeof document>"u"?null:(Gl??=document.createElement("canvas"),Gl.getContext("2d"))}function Ml(e){let t=getComputedStyle(e);return `${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function rm(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function am(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 Lo(e,t){let n=om();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 d=0;if(l){let g=l.querySelector(".kanuni-datagrid-header-label")??l;n.font=Ml(g),d=n.measureText(g.textContent??"").width+44;}if(a.length>0){n.font=Ml(a[0]);let g=[];for(let T=0;T<a.length;T++){if(rm(a[T])){g.push(a[T]);continue}let h=a[T].textContent??"";if(h==="")continue;let b=n.measureText(h).width+20;b>d&&(d=b);}g.length>0&&(d=Math.max(d,am(g)));}return d===0?null:Math.round(Math.min(640,Math.max(48,d)))}function Ga(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 Fo="application/x-kanuni-row";function Na(e,t){let n=!!t?.enabled,r=t?.group??null,l=t?.allowReordering??true,a=t?.allowDropInsert??r!==null,[d,g]=react.useState(false),[T,h]=react.useState(null),b=react.useRef(null),R=react.useRef(false),x=react.useRef(null),k=react.useRef(null),E=react.useRef(t);E.current=t;let M=react.useCallback(f=>e.getRowByKey(f),[e]),L=(f,c)=>{let D=c.getBoundingClientRect();return f.clientY<D.top+D.height/2?"before":"after"},S=react.useCallback((f,c)=>{if(!datagridCore.isDataRow(f))return;k.current=f.key,x.current=f.key,R.current=false,b.current=null;let D={gridId:e.gridId,group:r,rowKey:f.key,row:f.data};c.dataTransfer.setData(Fo,JSON.stringify(D)),c.dataTransfer.setData("text/plain",String(f.key)),c.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:f.key}),c.stopPropagation();},[e,r]),p=react.useCallback(()=>{let f=x.current;f!==null&&e.notifyRowDragEnd({rowKey:f,dropped:R.current,overKey:b.current?.key??null,position:b.current?.side??null}),R.current=false,b.current=null,x.current=null,k.current=null,h(null),g(false);},[e]),v=react.useCallback(f=>f.dataTransfer.types.includes(Fo)?k.current!==null?l:a&&r!==null:false,[l,a,r]),P=react.useCallback((f,c)=>{if(!datagridCore.isDataRow(f)||!v(c))return;if(c.preventDefault(),c.dataTransfer.dropEffect="move",k.current===f.key){b.current=null,h(null);return}let D=L(c,c.currentTarget),O=b.current?.key!==f.key||b.current.side!==D;b.current={key:f.key,side:D},h(W=>W?.key===f.key&&W.side===D?W:{key:f.key,side:D}),O&&k.current!==null&&e.notifyRowDrag("move",{rowKey:k.current,overKey:f.key,position:D});},[v,e]),U=react.useCallback((f,c,D)=>{let O=null;try{let X=f.dataTransfer.getData(Fo);O=X?JSON.parse(X):null;}catch{O=null;}if(!O)return;if(O.gridId===e.gridId){if(!l)return;let X=E.current?.onReorder;if(X){X({dragKey:O.rowKey,targetKey:c,position:D,row:M(O.rowKey)});return}e.moveRow(O.rowKey,c,D);return}!a||r===null||O.group!==r||E.current?.onAdd?.({row:O.row,rowKey:O.rowKey,otherGridId:O.gridId,targetKey:c,position:D});},[e,l,a,r,M]),$=react.useCallback((f,c)=>{if(h(null),!datagridCore.isDataRow(f)||!v(c))return;c.preventDefault(),c.stopPropagation();let D=L(c,c.currentTarget);R.current=true,b.current={key:f.key,side:D},U(c,f.key,D),k.current=null;},[v,U]),N=react.useCallback(f=>{v(f)&&(f.preventDefault(),f.dataTransfer.dropEffect="move");},[v]),y=react.useCallback(f=>{h(null),v(f)&&(f.preventDefault(),R.current=true,b.current=null,U(f,null,"after"),k.current=null);},[v,U]),K=react.useCallback(f=>{let c=f.relatedTarget;c&&f.currentTarget.contains(c)||k.current!==null&&(b.current=null,h(null),e.notifyRowDrag("leave",{rowKey:k.current}));},[e]);return {handlers:n?{draggable:d,setDraggable:g,onDragStart:S,onDragEnd:p,onDragOver:P,onDrop:$}:void 0,dropAt:n?T:null,bodyHandlers:n?{onDragOver:N,onDrop:y,onDragLeave:K}:void 0}}var mm=400;function Pl(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function Il(e){return (e.textContent??"").trim()}function pm(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 d=t.tooltip({value:r,row:n.data,node:n,column:t});return d||null}if(typeof t.tooltip=="string")return t.tooltip||null;if(t.tooltipField){let d=n.data[t.tooltipField];return d==null||d===""?null:String(d)}}return l&&l.length>0?l:null}function Pa({rootRef:e,columnModel:t,getRowNode:n,getNote:r,config:l,controller:a,gridId:d}){let g=l?.enabled!==false,T=l?.delay??mm,h=l?.showOnTruncation!==false,b=l?.trigger??"hover",R=b!=="focus",x=b!=="hover"&&!!a&&!!d,k=l?.interactive===true,[E,M]=react.useState(null),L=react.useRef({columnModel:t,getRowNode:n,getNote:r,showOnTruncation:h,delay:T});return L.current={columnModel:t,getRowNode:n,getNote:r,showOnTruncation:h,delay:T},react.useEffect(()=>{if(!g){M(null);return}let S=e.current;if(!S)return;let p=null,v=null,P=null,U=null,$=d?`${d}-tooltip`:void 0,N=()=>{U?.removeAttribute("aria-describedby"),U=null;},y=()=>{p!==null&&(clearTimeout(p),p=null),v!==null&&(clearTimeout(v),v=null),P=null,N(),M(null);},K=()=>{v!==null&&(clearTimeout(v),v=null);},H=()=>{v=null,N(),M(null);},f=()=>{K(),p!==null&&(clearTimeout(p),p=null);},c=()=>{if(!k){y();return}v!==null&&clearTimeout(v),v=setTimeout(H,150);},D=(ie,le)=>{let{columnModel:Re,getRowNode:Ee,getNote:F}=L.current,te=Re.getDef(le);if(!te?.renderTooltip)return;let Te=ie.closest("[data-row-key]")?.dataset.rowKey,V=Te===void 0?void 0:Ee(Te);if(!V||F&&F(V.key,le,V.data))return;let J=te.renderTooltip({value:Re.getCellValue(V.data,le),row:V.data,node:V,column:te});return J==null||J===false?null:{content:J}},O=(ie,le,Re,Ee)=>{let F=Re?void 0:D(ie,le);if(F===null)return;let te=F?"":Re?X(le,ie):W(ie,le);if(!F&&!te)return;let Te=ie.getBoundingClientRect();K(),N(),Ee&&$&&(ie.setAttribute("aria-describedby",$),U=ie),M({text:te??"",...F?{content:F.content}:{},anchor:{top:Te.top,left:Te.left,width:Te.width,height:Te.height},...k?{interactive:true,hold:f,release:y}:{},...$?{id:$}:{}});},W=(ie,le)=>{let{columnModel:Re,getRowNode:Ee,getNote:F,showOnTruncation:te}=L.current,Te=Re.getDef(le),V=ie.closest("[data-row-key]")?.dataset.rowKey,J=V===void 0?void 0:Ee(V);return pm({def:Te,node:J,value:J?Re.getCellValue(J.data,le):void 0,clipped:te&&Pl(ie)?Il(ie):null,note:J&&F?F(J.key,le,J.data):null})},X=(ie,le)=>{let Re=L.current.columnModel.getDef(ie);if(Re?.headerTooltip)return Re.headerTooltip;if(!L.current.showOnTruncation)return null;let Ee=le.querySelector(".kanuni-datagrid-header-label")??le;if(!Pl(Ee))return null;let F=Il(Ee);return F.length>0?F:null},ye=ie=>{if(!R)return;let Re=ie.target?.closest("[data-column-id]")??null;if(Re===P){K();return}if(k&&v!==null?(p!==null&&(clearTimeout(p),p=null),P=null):y(),!Re||!S.contains(Re))return;let Ee=Re.dataset.columnId;if(!Ee)return;let F=Re.classList.contains("kanuni-datagrid-header-cell");!F&&!Re.closest("[data-row-key]")||(P=Re,p=setTimeout(()=>{p=null,!(P!==Re||!Re.isConnected)&&O(Re,Ee,F,false);},L.current.delay));},ve=ie=>{if(!R)return;let le=ie.relatedTarget;P&&le&&P.contains(le)||c();},ne=-1/0,Le=()=>{ne=Date.now();},s=()=>{y();let ie=a?.getFocus();!ie||!d||(p=setTimeout(()=>{if(p=null,!S.contains(document.activeElement)&&Date.now()-ne>1500)return;let le=document.getElementById(`${d}-cell-${String(ie.rowKey)}-${ie.columnId}`);!le||!S.contains(le)||(P=le,O(le,ie.columnId,false,true));},L.current.delay));},Me=x?a.events.on("focusChanged",s):null,Ne=ie=>{(!x||ie.key==="Escape")&&y();};return S.addEventListener("mouseover",ye),S.addEventListener("mouseout",ve),S.addEventListener("mousedown",y),S.addEventListener("pointerdown",Le),S.addEventListener("keydown",Ne),S.addEventListener("scroll",y,true),window.addEventListener("blur",y),()=>{y(),Me?.(),S.removeEventListener("mouseover",ye),S.removeEventListener("mouseout",ve),S.removeEventListener("mousedown",y),S.removeEventListener("pointerdown",Le),S.removeEventListener("keydown",Ne),S.removeEventListener("scroll",y,true),window.removeEventListener("blur",y);}},[g,e,R,x,k,a,d]),g?E:null}var Fl=6,vn=8;function Ia({state:e,dark:t}){let[n,r]=react.useState(null),[l,a]=react.useState(null),{text:d,anchor:g,content:T,interactive:h,hold:b,release:R,id:x}=e;return react.useLayoutEffect(()=>{if(!n)return;let{width:k,height:E}=n.getBoundingClientRect(),M=document.documentElement.clientWidth,L=document.documentElement.clientHeight,S=g.top+g.height+Fl,p=g.top-E-Fl,P=S+E+vn<=L||p<vn?S:p,U=Math.min(Math.max(vn,g.left),Math.max(vn,M-k-vn));a({top:Math.min(P,L-E-vn),left:U});},[n,d,T,g]),jsxRuntime.jsx(ut,{dark:t,children:jsxRuntime.jsx("div",{ref:r,id:x,className:h?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:h?b:void 0,onMouseLeave:h?R:void 0,style:l?{top:l.top,left:l.left}:{top:0,left:0,visibility:"hidden"},children:T??d})})}function Ho(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 Al=Ho(datagridCore.getGridDictionary("en"));function La(e,t){let n={...Al,...t.labels},{controller:r,maxGroupLevels:l}=t,a=e.columnId,d=r.getColumnModel().getDef(a),g=r.getSort(),T=g.find(v=>v.columnId===a),h=r.getGroupLevels(),b=h.includes(a),R=d?.sortable!==false,x=r.getColumnStates().find(v=>v.id===a)?.pinned??null,k=d?.groupable!==false,E=r.canGroup(),M=[{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(g.filter(v=>v.columnId!==a))},{id:"sep-1",separator:true}];E&&M.push({id:"group",label:b?n.ungroup:n.groupBy,disabled:!k,onSelect:()=>{b?r.groupBy(h.filter(v=>v!==a)):r.groupBy([...h,a].slice(-l));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&M.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),M.push({id:"footer",label:t.footerVisible?n.hideFooter:n.showFooter,onSelect:t.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:n.hideColumn,disabled:r.getColumnStates().filter(v=>v.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:d?.resizable===false,onSelect:()=>t.onBestFit(a)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll});let L=r.getColumnStates().filter(v=>v.visible&&v.pinned===x).map(v=>v.id),S=L.indexOf(a),p=d?.reorderable!==false&&S>=0;return M.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!p||S<=0,onSelect:()=>r.moveColumn(a,L[S-1])},{id:"move-right",label:n.moveRight,disabled:!p||S<0||S>=L.length-1,onSelect:()=>r.moveColumn(a,L[S+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:x==="left",onSelect:()=>r.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:x==="right",onSelect:()=>r.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:x==="sticky",onSelect:()=>r.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:x===null,onSelect:()=>r.setColumnPinned(a,null)}),M}var Vt=typeof window<"u"?react.useLayoutEffect:react.useEffect,Wl=1e8,Ao=null;function Ul(){if(Ao!==null)return Ao;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=`${Wl}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=Wl;let n=e.scrollTop;return Ka=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(Ao=n),Ao}var Ka=null;function Vm(){return Ka===null&&Ul(),Ka}function Aa(e){return Math.abs(e)}function Vl(e,t){return getComputedStyle(t).direction==="rtl"?-e:e}function Oo(e,t){if(t)return e;if(e.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");if(e.dataSource!=null&&!Array.isArray(e.dataSource)&&e.grouping){e.debugMode&&console.warn("[datagrid] grouping a server-side DataSource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let d={...e};return delete d.grouping,Oo(d,t)}if(e.columns?.some(d=>d.spanRows)){e.debugMode&&console.warn("[datagrid] cell span/merge (spanRows) is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let d={...e,columns:e.columns.map(g=>g.spanRows?{...g,spanRows:void 0}:g)};return Oo(d,t)}if(e.tree){e.debugMode&&console.warn("[datagrid] tree data is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let d={...e};return delete d.tree,Oo(d,t)}if(!e.grouping)return e.masterDetail?Oa(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?Oa(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?Oa(a):a}function Oa(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 Um(e){return jsxRuntime.jsx(pr,{locale:e.locale,messages:e.messages,children:jsxRuntime.jsx(Rr,{theme:e.theme,density:e.density,palette:e.palette,children:jsxRuntime.jsx(zm,{...e})})})}function zm(e){let t=ke(),{className:n,style:r,dark:l=false,theme:a,palette:d,striped:g=true,emptyText:T,sortable:h=true,autoHeaderHeight:b=false,filterRow:R=false,headerFilter:x=false,filterIconMode:k="hover",columnReorder:E=true,columnResize:M=true,loadingOverlay:L=true,announcements:S=true,groupPanel:p=false,showRowCount:v=false,toolbar:P=false,toolbarExcel:U=false,toolbarPdf:$=false,filterPanel:N=false,filterPanelLabels:y,onOpenFilterBuilder:K,toolbarItemsBefore:H,toolbarItemsAfter:f,renderRow:c,stateStoring:D,headerMenu:O=true,focusedRow:W=false,focusedRowKey:X,onFocusedRowChanged:ye,footer:ve,footerMenu:ne=true,onRowClick:Le,onRowActivate:s,onReady:Me,renderCellContent:Ne,getCellClassName:ie,renderOverlay:le,onCellPointerDown:Re,onCellPointerEnter:Ee,onCellDoubleClick:F,onHeaderClick:te,getHeaderClassName:Te,renderHeaderLabel:V,enterpriseEdition:J=false,renderDetail:I,renderEditForm:j,density:oe,rowMenu:xe,cellMenu:Ge,autoColumns:_e,rowDrag:at,tooltip:q,pinnedTopRows:Z,pinnedBottomRows:Ce,footerPosition:Oe="bottom",autoSizeStrategy:ae="none",highlightSearch:Ue=true,...De}=e,Be=react.useMemo(()=>{let o=De.columns;if(o&&o.length>0)return o;let w=De.dataSource;if(!Array.isArray(w)||w.length===0)return o??[];let G=typeof _e=="object"?_e:void 0;return _e===false?o??[]:datagridCore.inferColumns(w,G)},[De.columns,De.dataSource,_e]),re={...De,columns:Be},et=datagridCore.isPackagedTheme(a)?datagridCore.THEME_ROW_HEIGHT[a][oe??"normal"]:oe?datagridCore.DENSITY_ROW_HEIGHT[oe]:datagridCore.DEFAULT_ROW_HEIGHT,tt=re.rowHeight===void 0?{...re,rowHeight:et}:re,je=J?Number.POSITIVE_INFINITY:1,me=Oo(tt,J),{controller:i,rows:it,window:mt,layout:Fe,sort:lt,rowHeight:u,visibleCount:m}=mr(me),C=e.cardView,B=C?C===true?"on":`${C.breakpoint??""}|${(C.columns??[]).join("|")}`:"",Y=react.useMemo(()=>datagridCore.resolveCardView(C),[B]),[Q,se]=react.useState(false),ge=react.useRef(Y);Vt(()=>{ge.current=Y;let o=yt.current;se(o?datagridCore.showsCards(o.clientWidth,Y):false);},[Y]);let we=Q?datagridCore.cardColumnIds(i.getColumnModel(),Y):null,he=we?JSON.stringify(we):"",Ke=react.useMemo(()=>we,[he]);react.useEffect(()=>{i.setDataRowHeight(Ke?datagridCore.cardHeight(Ke.length):null);},[i,Ke]);let bt=e.onCardViewChange,nn=react.useRef(false);react.useEffect(()=>{Q!==nn.current&&(nn.current=Q,bt?.(Q));},[Q,bt]);let xn=react.useCallback(o=>jsxRuntime.jsx(Sl,{fields:datagridCore.cardFields(i.getColumnModel(),Ke??[],o.row)}),[i,Ke]),nt=react.useRef(null),A=datagridCore.normalizeRowStatus(e.rowStatus),z=zi(i,e.editing,J,{renderCellContent:Ne,getCellClassName:ie,onCellDoubleClick:F},Q,{rootRef:nt,rowHeight:u,dark:l,savedDuration:A?.savedDuration??0}),pe=z.rowStatusSource??e.rowStatusSource??null,Pe=o=>{if(!A||o.kind!=="data")return {};let w=datagridCore.resolveRowStatus(A,o.data,o.key,pe);return w?{rowStatus:w.status,rowStatusText:datagridCore.rowStatusDescription(w,t),rowStatusTint:A.tint}:{}};react.useEffect(()=>{if(Q||!A?.messages){i.setMessageRows([],u);return}let o=A.get,w=datagridCore.rowMessageKeys(A,pe).filter(G=>{if(!o)return true;let _=i.getDataRowNode(G)?.data;if(_===void 0)return true;let ce=o({row:_,rowKey:G});return ce===void 0||ce==="error"});i.setMessageRows(w,u);});let ee=(o,w)=>{if(!A)return null;let G=datagridCore.rowMessageModel(A,o,w,pe,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})]})},st=z.renderCellContent,qn=z.getCellClassName,Xn=z.onCellDoubleClick,_a=Ar(i,e.printLayout),Dn=_a.active?{...mt,rows:{...mt.rows,start:0,end:it.length,offsetY:0,totalHeight:0}}:mt,Sn=react.useMemo(()=>Be.some(o=>o.autoHeight===true),[Be]),$a=x&&i.canListDistinctValues();x&&!$a&&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 yt=react.useRef(null);Vt(()=>{i.setEnterpriseEdition(J);},[i,J]),react.useEffect(()=>{Me?.(i);},[i,Me]),Vt(()=>{let o=Ul();o!==null&&o<datagridCore.DEFAULT_MAX_SCROLL_OFFSET&&i.setMaxScrollOffset(o);let w=Vm();w!==null&&i.setMaxCanvasHeight(w);},[i]),Vt(()=>{let o=yt.current;if(!o)return;let w=()=>{i.setViewportSize(o.clientWidth,o.clientHeight),ge.current&&se(datagridCore.showsCards(o.clientWidth,ge.current)),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let ce=o.querySelector(".kanuni-datagrid-rows"),de=o.querySelector(".kanuni-datagrid-canvas");if(ce&&de){let ue=ce.getBoundingClientRect(),Ie=de.getBoundingClientRect();i.setChromeOffsets(ue.top-Ie.top,Ie.bottom-ue.bottom);}datagridCore.calibrateMaxScrollOffset(o,i);};if(w(),typeof ResizeObserver>"u")return;let G=new ResizeObserver(w);G.observe(o);let _=o.querySelector(".kanuni-datagrid-canvas");return _&&G.observe(_),()=>G.disconnect()},[i]),Vt(()=>{if(!b)return;let o=yt.current?.querySelector(".kanuni-datagrid-canvas"),w=o?.querySelector(".kanuni-datagrid-header");if(!o||!w)return;let G=null,_=()=>{let de=w.offsetHeight,ue=de>0?`${de}px`:null;ue!==G&&(G=ue,ue?o.style.setProperty("--dg-header-actual",ue):o.style.removeProperty("--dg-header-actual"));};_();let ce=typeof ResizeObserver>"u"?null:new ResizeObserver(_);return ce?.observe(w),()=>{ce?.disconnect(),o.style.removeProperty("--dg-header-actual");}},[i,b]),Vt(()=>{if(!Sn)return;let o=yt.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let w=i.getVirtualWindow(),G=i.getRows(),_=new Map(i.getMeasuredRowHeights()),ce=false;for(let de=w.rows.start;de<w.rows.end;de++){let ue=G[de];if(!ue||ue.kind!=="data")continue;let Ie=o.querySelector(`[data-row-key="${CSS.escape(String(ue.key))}"]`);if(!Ie)continue;let He=Ie.getBoundingClientRect().height;He>0&&_.get(ue.key)!==He&&(_.set(ue.key,He),ce=true);}ce&&i.setMeasuredRowHeights(_);}),react.useEffect(()=>{if(Sn)return i.events.on("columnStateChanged",()=>{i.clearMeasuredRowHeights();})},[i,Sn]),react.useEffect(()=>i.events.on("scrollRequested",o=>{let w=yt.current;if(!w)return;o.scrollTop!==void 0&&(w.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(w.scrollLeft=Vl(o.scrollLeft,w)),i.setScroll(w.scrollTop,Aa(w.scrollLeft));let G=o.scrollTop;G===void 0||Math.abs(w.scrollTop-G)<=1||setTimeout(()=>{let _=yt.current;!_||Math.abs(_.scrollTop-G)<=1||(_.scrollTop=G,i.setScroll(_.scrollTop,Aa(_.scrollLeft)));},0);}),[i]);let Wa=Kr(i,e.alignedGrids,yt),ql=react.useCallback(o=>{let w=o.currentTarget;i.setScroll(w.scrollTop,Aa(w.scrollLeft)),Wa.syncScroll(w.scrollLeft);},[i,Wa]),Xl=react.useCallback((o,w)=>i.toggleSort(o,w),[i]);Ga(i,D);let on=Na(i,at);react.useEffect(()=>{X!=null&&i.getFocusedRowKey()!==X&&i.focusRow(X);},[i,X]),react.useEffect(()=>{if(ye)return i.events.on("focusedRowChanged",o=>ye({rowKey:o.rowKey,row:o.row}))},[i,ye]);let[Bo,Jl]=react.useState(null);react.useEffect(()=>i.events.on("overlayChanged",o=>{Jl(o.manual?o.overlay:null);}),[i]);let jl=react.useCallback(o=>{let w=i.getDataRowNode(o);if(w)return w;if(o==="")return;let G=Number(o);return Number.isNaN(G)?void 0:i.getDataRowNode(G)},[i]),dt=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 Jn=!!dt?.onChange&&dt.menu!==false,jn=react.useCallback((o,w,G)=>dt?dt.get({rowKey:o,columnId:w,row:G})??null:null,[dt]),Va=Pa({rootRef:nt,columnModel:i.getColumnModel(),getRowNode:jl,getNote:dt?jn:void 0,config:q,controller:i,gridId:De.gridId}),[Ua,Zl]=react.useState(0);react.useEffect(()=>{let o=new Set,w=[i.events.on("cellsFlashed",({rowKeys:G,columnIds:_,duration:ce})=>{let de=nt.current;if(!de)return;let ue=G.length?G.map(Xe=>`[data-row-key="${CSS.escape(String(Xe))}"]`).join(","):".kanuni-datagrid-row",Ie=_.length?_.map(Xe=>`[data-column-id="${CSS.escape(Xe)}"]`).join(","):"[data-column-id]",He=[];de.querySelectorAll(ue).forEach(Xe=>{Xe.querySelectorAll(Ie).forEach(Mt=>He.push(Mt));});for(let Xe of He)Xe.classList.remove("kanuni-datagrid-cell--flash");de.offsetWidth;for(let Xe of He)Xe.classList.add("kanuni-datagrid-cell--flash");let $e=setTimeout(()=>{for(let Xe of He)Xe.classList.remove("kanuni-datagrid-cell--flash");o.delete($e);},ce);o.add($e);}),i.events.on("cellsRefreshed",({revision:G})=>Zl(G))];return ()=>{w.forEach(G=>G()),o.forEach(clearTimeout);}},[i]);let Ql=react.useCallback((o,w)=>i.moveColumn(o,w),[i]),es=react.useCallback((o,w,G)=>i.setColumnWidth(o,w,G??true),[i]),_o=react.useCallback(o=>{if(!nt.current)return;let w=Lo(nt.current,o);w!==null&&i.setColumnWidth(o,w);},[i]),$o=react.useCallback(()=>{let o=nt.current;if(o)for(let w of i.getColumnStates()){if(!w.visible||w.flex)continue;let G=Lo(o,w.id);G!==null&&i.setColumnWidth(w.id,G);}},[i]),Wo=react.useRef(null),[Zn]=react.useState(()=>new datagridCore.RowMotion),za=e.animateRows===true;react.useEffect(()=>{i.setAnimateRows(za);},[i,za]),react.useEffect(()=>{let o=()=>{i.getAnimateRows()&&Zn.capture(Wo.current);},w=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(G=>i.events.on(G,o));return ()=>{w.forEach(G=>G()),Zn.dispose();}},[i,Zn]),Vt(()=>{i.getAnimateRows()&&Zn.play(Wo.current);}),react.useEffect(()=>{if(ae!=="fitGrid")return;let o=()=>i.sizeColumnsToFit();return o(),i.events.on("gridSizeChanged",o)},[i,ae]);let Vo=react.useRef(null);Vt(()=>{if(ae!=="fitCells"){Vo.current=null;return}Vo.current!==i&&nt.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(Vo.current=i,$o());});let[Uo,Ya]=react.useState({}),[zo,qa]=react.useState({}),rn=react.useRef(zo);rn.current=zo;let Xa=react.useRef(Uo);Xa.current=Uo;let Ja=e.filterDebounce??(i.isRemote()?200:0),Yo=react.useRef(false),Qn=react.useMemo(()=>datagridCore.datePeriodLabels(t),[t]),qo=react.useRef(Qn);qo.current=Qn;let ts=react.useMemo(()=>datagridCore.periodSuggestionList(Qn),[Qn]),an=react.useCallback((o,w)=>{let G=i.getColumnModel(),_=G.getDataType(o),ce=datagridCore.findCustomFilterOperator(G.getDef(o),rn.current[o]??"");Yo.current=true;try{i.setColumnFilter(o,ce?datagridCore.parseCustomFilterInput(o,w,ce):datagridCore.parseFilterInput(o,w,_,qo.current),datagridCore.FILTER_PART_ROW);}finally{Yo.current=false;}},[i]),Rt=react.useMemo(()=>datagridCore.createDebouncedCommit(Ja),[Ja]);react.useEffect(()=>()=>Rt.cancelAll(),[Rt]);let ns=react.useCallback((o,w)=>{Ya(G=>({...G,[o]:w})),Rt.schedule(o,()=>an(o,w));},[an,Rt]),os=react.useCallback((o,w)=>{rn.current={...rn.current,[o]:w},qa(rn.current),Rt.cancel(o),an(o,Xa.current[o]??"");},[an,Rt]),rs=react.useCallback(o=>{if(i.getColumnModel().getDef(o)?.renderFilter)return jsxRuntime.jsx(ca,{controller:i,columnId:o,surface:"row"})},[i]),as=react.useCallback((o,w)=>{Rt.cancel(o),an(o,w);},[an,Rt]);react.useEffect(()=>i.events.on("filterChanged",()=>{if(Yo.current)return;let o=i.getColumnModel();qa(w=>{let G=null;for(let _ of o.getOrder()){let ce=o.getDef(_);if(!ce?.filterOperators?.length||Rt.isPending(_))continue;let de=i.getColumnFilter(_,datagridCore.FILTER_PART_ROW),ue=w[_]??"",Ie=ue;de?Ie=datagridCore.customFilterInputFromNode(de,ce)?.operatorId??"":datagridCore.findCustomFilterOperator(ce,ue)?.operandType==="none"&&(Ie=""),Ie!==ue&&(G??={...w},G[_]=Ie);}return G&&(rn.current=G),G??w}),Ya(w=>ta(w,{isPending:G=>Rt.isPending(G),textFor:G=>{let _=i.getColumnFilter(G,datagridCore.FILTER_PART_ROW);if(!_)return "";let ce=datagridCore.customFilterInputFromNode(_,o.getDef(G));return ce?ce.text:!datagridCore.isFilterGroup(_)&&!datagridCore.isBuiltInFilterOperator(_.operator)?null:datagridCore.filterInputFromNode(G,_,o.getDataType(G),qo.current)}},o.getOrder()));}),[i,Rt]);let[ze,Lt]=react.useState(null),En=react.useRef(0),[ln,Xo]=react.useState(null),Jo=react.useRef(null),xt=react.useCallback(()=>{let o=document.activeElement instanceof HTMLElement?document.activeElement:null;o?.closest(".kanuni-datagrid-portal")||(Jo.current={el:o,columnId:o?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??null});},[]),is=react.useCallback((o,w)=>{xt();let G=w.getBoundingClientRect(),_=i.getColumnModel().getDef(o),ce={left:G.left,top:G.bottom+2},de=_?.headerName??o;if(_?.renderFilter){++En.current,Lt(null),Xo({columnId:o,label:de,anchor:ce});return}Xo(null);let ue=i.getColumnFilter(o,datagridCore.FILTER_PART_SET)??i.getColumnFilter(o,datagridCore.FILTER_PART_DEFAULT);if(!i.isRemote()){let He=++En.current;Lt({columnId:o,label:de,entries:[],selected:null,anchor:ce,loading:true}),i.getDistinctValueSetAsync(o).then(({entries:$e,truncated:Xe})=>{En.current===He&&Lt(Mt=>Mt&&Mt.columnId===o?{...Mt,entries:$e,truncated:Xe,capped:Xe,selected:datagridCore.selectedLabelsFromFilter(ue,$e),loading:false}:Mt);});return}let Ie=++En.current;Lt({columnId:o,label:de,entries:[],selected:null,anchor:ce,loading:true}),i.getDistinctValuesAsync(o).then(He=>{En.current===Ie&&Lt($e=>$e&&$e.columnId===o?{...$e,entries:He,selected:datagridCore.selectedLabelsFromFilter(ue,He),loading:false}:$e);});},[i,xt]),ls=react.useCallback(o=>{ze&&(i.setColumnFilter(ze.columnId,o,datagridCore.FILTER_PART_SET),Lt(null));},[i,ze]),ss=Object.keys(i.getColumnStates().reduce((o,w)=>(i.getColumnFilter(w.id)&&(o[w.id]=true),o),{})),sn=i.getSelectionMode(),Ye=sn!=="none"&&(De.selection?.checkboxColumn??false),ja=(De.selection?.rowClick??(Ye?"toggle":"replace"))==="toggle",ds=react.useCallback((o,w)=>{i.handleRowClick(o.key,{ctrlKey:w.ctrlKey||ja&&!w.shiftKey,metaKey:w.metaKey,shiftKey:w.shiftKey});},[i,ja]),us=react.useCallback((o,w)=>i.focusCell(o.key,w),[i]),cs=react.useCallback(o=>i.toggleRow(o.key),[i]),[dn,jo]=react.useState(null),ms=react.useCallback(()=>jo(null),[]),[Gn,Zo]=react.useState(null),Za=react.useCallback((o,w)=>{let _=(nt.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(w)}"]`)??nt.current)?.getBoundingClientRect();return {left:_?.left??0,top:(_?.bottom??0)+2}},[]),ps=react.useCallback(o=>{let w=Gn;Zo(null),!(!w||!dt?.onChange)&&dt.onChange({rowKey:w.rowKey,columnId:w.columnId,row:w.row,text:o});},[Gn,dt]),Qa=react.useCallback((o,w)=>{if(!dt?.onChange||dt.menu===false)return [];let G=o.columnId;if(!G)return [];let _=i.getRowKey(o.row),ce=jn(_,G,o.row),de=()=>Zo({rowKey:_,columnId:G,row:o.row,text:ce??"",anchor:Za(_,G)}),ue=[];return w&&ue.push({separator:true,id:"__note-sep"}),ue.push({id:"__note-edit",label:ce?t.editNote:t.addNote,onSelect:de}),ce&&ue.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>dt.onChange?.({rowKey:_,columnId:G,row:o.row,text:null})}),ue},[dt,i,jn,Za,t]),[eo,to]=react.useState(null),Qo=react.useRef({x:0,y:0}),ei=react.useCallback(o=>va(i,t,Ge,o,w=>{to({message:w,...Qo.current}),console.error("[datagrid] export failed:",w);}),[i,t,Ge]),no=react.useCallback((o,w,G,_,ce)=>{if(G.kind!=="data")return;xt();let de={row:G.data,node:G,rowIndex:_,columnId:ce,selectedKeys:i.getSelectedKeys()},ue=(typeof xe=="function"?xe(de):xe)??[],Ie=z.editRowMenuItem(G.key),He=Ie?[...ue,...ue.length>0?[{id:"dg-sep-edit",separator:true}]:[],Ie]:ue,$e=Qa(de,He.length>0),Xe=Ta(i,t,G.key,He.length+$e.length>0),Mt=[...He,...$e,...Xe,...ei(He.length+$e.length+Xe.length>0)];Mt.length!==0&&(Qo.current={x:o,y:w},to(null),jo({x:o,y:w,items:Mt,context:de}));},[xe,i,t,Qa,ei,xt,z.editRowMenuItem]),ti=react.useCallback((o,w,G)=>{let _=Ta(i,t,o,false);if(_.length===0)return;G.preventDefault(),xt();let ce={row:w,node:{kind:"data",key:o,sourceIndex:-1,data:w},rowIndex:-1,columnId:G.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:i.getSelectedKeys()};Qo.current={x:G.clientX,y:G.clientY},to(null),jo({x:G.clientX,y:G.clientY,items:_,context:ce});},[i,t,xt]),ni=react.useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),un=react.useCallback((o,w,G,_,ce)=>{let de=_??-1;o&&i.notifyRow(o,G,de);let ue=ni(ce);ue!==null&&i.notifyCell(w,G,de,ue);},[i,ni]),fs=react.useCallback((o,w,G)=>{Le?.(o),un("rowClicked","cellClicked",o,w,G);},[Le,un]),gs=react.useCallback((o,w,G)=>{s?.(o),un("rowDoubleClicked","cellDoubleClicked",o,w,G);},[s,un]),ws=react.useCallback((o,w,G)=>{if(un(null,"cellContextMenu",o,w,G),o.kind!=="data"||!xe&&!Jn&&Ge===false&&!i.isRowPinningEnabled()&&z.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;no(G.clientX,G.clientY,o,w,_);},[xe,Jn,Ge,i,no,un,z.editRowMenuItem]),[hs,bs]=react.useState(null),[ys,Rs]=react.useState(null),[er,Cs]=react.useState(()=>De.grouping?.groupSummaries??false),[Ut,tr]=react.useState(null),[oi,nr]=react.useState(null),or=dn!==null||Ut!==null||ze!==null||ln!==null,ri=react.useRef(false);react.useEffect(()=>{if(ri.current&&!or){let o=Jo.current;Jo.current=null;let w=o?.el?.isConnected?o.el:o?.columnId?nt.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,G=!document.activeElement||document.activeElement===document.body;w&&G&&w.focus({preventScroll:true});}ri.current=or;},[or]);let ks=react.useCallback(()=>{i.getSelectedCount()>0?i.clearSelection():i.selectAll();},[i]),rr=Ye?i.getSelectableCount():m,ar=i.getSelectedCount(),vs=rr>0&&ar>=rr?"all":ar>0?"some":"none",Ts=react.useCallback(o=>{let w=o.target;if(w.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let G=w.tagName;if(G==="INPUT"||G==="TEXTAREA"||G==="SELECT"||w.isContentEditable||z.handleKeyDown(o))return;if((xe||Jn||Ge!==false||i.isRowPinningEnabled())&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let de=i.getFocus(),ue=de?it.findIndex(He=>He.key===de.rowKey):-1,Ie=ue>=0?it[ue]:void 0;if(Ie){let $e=yt.current?.querySelector(`[data-row-key="${CSS.escape(String(Ie.key))}"]`)?.getBoundingClientRect();no($e?$e.left+16:0,$e?$e.bottom:0,Ie,ue,de?.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"){Cn(i);return}if(_.type==="activate"){let de=i.getFocus(),ue=de?it.find(Ie=>Ie.key===de.rowKey):void 0;ue&&s?.(ue),_.preventDefault&&o.preventDefault();return}i.executeCommand(_),_.preventDefault&&o.preventDefault();let ce=i.getFocusIndices();if(ce&&yt.current){let ue=i.getColumnLayout().center.findIndex(He=>He.state.id===i.getFocus()?.columnId),Ie=i.ensureVisible(ce.rowIndex,ue===-1?void 0:ue);if(Ie){let He=yt.current;Ie.scrollTop!==void 0&&(He.scrollTop=Ie.scrollTop),Ie.scrollLeft!==void 0&&(He.scrollLeft=Vl(Ie.scrollLeft,He)),i.setScroll(He.scrollTop,He.scrollLeft);}}},[i,it,s,xe,Jn,Ge,no,z.handleKeyDown]),zt=react.useMemo(()=>datagridCore.bandDepth([...Fe.left,...Fe.center,...Fe.right]),[Fe]),cn=yn,ir=(R?2:1)+zt,ai=i.getPinnedRows("top"),ii=i.getPinnedRows("bottom"),lr=[...Z??[],...ai.map(o=>o.row)],sr=[...Ce??[],...ii.map(o=>o.row)],xs=[...(Z??[]).map(()=>null),...ai.map(o=>o.key)],Ds=[...(Ce??[]).map(()=>null),...ii.map(o=>o.key)],oo=lr.length,Ss=sr.length,ro=ir+oo,ao=hs??De.grouping?.panel??p,li=i.getGroupLevels(),Es=react.useCallback(o=>i.groupBy(o.slice(0,je)),[i,je]),Gs=react.useCallback(o=>i.toggleGroup(o),[i]),si=react.useCallback(o=>i.toggleGroupSelection(o),[i]),Ms=i.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),pt=i.hasMasterDetail()&&!!I,qe=e.rowNumbers??false,gt=!!A?.icons&&!Q,Ns=qe&&i.isPaginated()?i.getPage()*i.getPageSize():0;react.useEffect(()=>{i.setLeadWidth(zr(Ye,pt,qe,gt));},[i,Ye,pt,qe,gt]);let Ps=react.useCallback(o=>i.toggleDetail(o),[i]),Is=react.useCallback(o=>i.toggleTreeRow(o),[i]),di=i.getSummaryDefs(),Ls=i.getSummaries(),mn=ys??ve??di.length>0,Mn=mn&&Oe==="top",dr=R?2:1,ui=me.grouping?.groupSummaries&&er?De.summaries:void 0,ci=i.getGroupDisplay(),mi=react.useCallback(()=>{Cs(o=>(i.setGroupSummaries(!o),!o));},[i]),Fs=react.useCallback((o,w)=>{if(!ne)return;w.preventDefault();let G=i.getColumnModel().getDef(o),_=i.getColumnSummary(o),ce={columnId:o,headerName:G?.headerName??G?.field??o},de=[{id:"none",label:t.noTotal,disabled:_===null,onSelect:()=>i.setColumnSummary(o,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(G?.dataType).map(ue=>({id:ue,label:datagridCore.summaryTypeLabels(t)[ue],disabled:_?.type===ue,onSelect:()=>i.setColumnSummary(o,ue)}))];xt(),tr({x:w.clientX,y:w.clientY,items:de,context:ce});},[i,ne,xt]),Hs=react.useCallback((o,w)=>{if(O===false)return;w.preventDefault();let G=i.getColumnModel().getDef(o),_={columnId:o,headerName:G?.headerName??G?.field??o},ce=La(_,{controller:i,groupPanelVisible:ao,footerVisible:mn,groupFootersAvailable:J&&i.getGroupLevels().length>0,groupFootersVisible:er,onToggleGroupPanel:()=>bs(!ao),onToggleFooter:()=>Rs(!mn),onToggleGroupFooters:mi,onOpenFieldChooser:()=>nr({left:w.clientX,top:w.clientY}),onBestFit:_o,onBestFitAll:$o,maxGroupLevels:je,labels:Ho(t)}),de=typeof O=="function"?O(_,ce):ce;!de||de.length===0||(xt(),tr({x:w.clientX,y:w.clientY,items:de,context:_}));},[O,i,ao,mn,J,er,mi,_o,$o,je,t,xt]),pn=i.getFocus(),As=pn?`${e.gridId}-cell-${String(pn.rowKey)}-${pn.columnId}`:void 0,ur=i.getSelectedCount(),Os=react.useMemo(()=>{let o=[datagridCore.fillText(t.announceRows,{n:m})];if(lt.length>0){let w=lt.map(G=>{let _=i.getColumnModel().getDef(G.columnId),ce=String(_?.headerName??_?.field??G.columnId),de=G.direction==="desc"?t.announceDescending:t.announceAscending;return `${ce} ${de}`}).join(", ");o.push(datagridCore.fillText(t.announceSortedBy,{columns:w}));}return ur>0&&o.push(datagridCore.fillText(t.announceSelected,{n:ur})),o.join(", ")},[i,m,lt,ur,t]),{centerColumns:Ft,centerIndices:io,stickyInsets:fn,leadingSpacer:Ht,trailingSpacer:At,rowStart:Ks,rowEnd:pi}=el(Fe,Dn),lo=i.getColumnModel(),gn=Ks,Bs=o=>{if(Sn)return;let w=i.getRowHeightAt(o);return w===u?void 0:w},_s=Array.from(it.slice(gn,pi)),$s=react.useMemo(()=>!qe||i.getGroupLevels().length===0&&!i.hasMasterDetail()&&!i.hasTreePathRows()?null:tl(it),[qe,i,it]),Ws=i.hasCellSpans(),fi=react.useRef({start:0,end:0});fi.current={start:gn,end:pi-1};let gi=react.useRef(Dn.columns);gi.current=Dn.columns;let Vs=react.useCallback(o=>i.planRowColSpans(o,gi.current),[i]),Us=datagridCore.hasColSpans(Fe),zs=react.useCallback((o,w)=>{let G=i.getCellSpans(w);if(G.length===0)return null;let{start:_,end:ce}=fi.current,de=datagridCore.spanRoleAt(G,o,_,ce);if(!de)return null;if(de.role==="covered")return {kind:"covered"};let ue=i.getRowOffset(de.drawStart);return {kind:"draw",height:i.getRowOffset(de.drawEnd)+i.getRowHeightAt(de.drawEnd)-ue,offset:0}},[i]),wi=i.getFindNeedle()||(Ue?datagridCore.normalizeSearch(i.getSearchText()):""),hi=i.getFindState(),so=hi.count>0?`${i.getFindNeedle()}\0${hi.activeIndex}`:"",bi=react.useCallback((o,w)=>i.getFindMatchKind(o,w),[i]),Ys={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}},yi={layout:Fe,centerColumns:Ft,leadingSpacer:Ht,trailingSpacer:At,defs:di,values:Ls,checkboxColumn:Ye,detailColumn:pt,statusColumn:gt,rowNumberColumn:qe,onPickSummary:ne?Fs:void 0,emptyHint:ne?"\xB7":""};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${_a.active?" kanuni-datagrid-print":""}${Q?" kanuni-datagrid-cards":""}${datagridCore.themeClassName(a,oe,d)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${u}px`,"--dg-grip-inset":`${(qe?wn:0)+(gt?hn:0)}px`,...r},dir:datagridCore.isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":a,"data-palette":d,"data-auto-height":Sn?"":void 0,"data-auto-header-height":b?"":void 0,"data-row-session":z.rowSessionAttr,ref:nt,children:[z.bar&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:z.bar}),P&&jsxRuntime.jsx(wa,{controller:i,dark:l,columnChooser:e.toolbarColumnChooser??true,exportExcel:J&&U,exportPdf:J&&$,itemsBefore:H,itemsAfter:f,onOpenColumnChooser:o=>nr(w=>w?null:o)}),ao&&jsxRuntime.jsx(pa,{columns:Ms,levels:li,onSetLevels:Es,maxLevels:je,onExpandAll:()=>i.expandAllGroups(),onCollapseAll:()=>i.collapseAllGroups()}),Q&&jsxRuntime.jsx(El,{controller:i,sort:lt,text:t,columns:h?i.getColumnModel().getOrder().filter(o=>{let w=i.getColumnModel();return w.getState(o)?.visible!==false&&w.getDef(o)?.sortable!==false}).map(o=>({id:o,label:i.getColumnModel().getDef(o)?.headerName??o})):[]}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-scroller",ref:yt,onScroll:ql,onKeyDown:Ts,tabIndex:0,role:"grid","aria-rowcount":m+ir+oo+Ss,"aria-colcount":Fe.left.length+Fe.center.length+Fe.right.length+(Ye?1:0)+(pt?1:0)+(qe?1:0),"aria-multiselectable":sn==="multiple"||void 0,"aria-activedescendant":As,"aria-label":e.ariaLabel??e.gridId,children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(Fe.totalWidth||0)+zr(Ye,pt,qe,gt)||"100%"},role:"rowgroup",children:[jsxRuntime.jsx(jr,{layout:Fe,centerColumns:Ft,leadingSpacer:Ht,trailingSpacer:At,depth:zt,checkboxColumn:Ye,detailColumn:pt,statusColumn:gt,rowNumberColumn:qe,rowHeight:cn,bandFold:Ys}),jsxRuntime.jsx(Qr,{bandOffset:zt*cn,stickyInsets:fn,layout:Fe,centerColumns:Ft,leadingSpacer:Ht,trailingSpacer:At,sort:lt,sortable:h,onSort:Xl,groupLevels:li,headerFilter:$a,filteredColumns:ss,onOpenFilter:is,filterIconMode:k,checkboxColumn:Ye,detailColumn:pt,statusColumn:gt,rowNumberColumn:qe,selectAllState:vs,selectAllDisabled:rr===0&&ar===0,onToggleSelectAll:ks,draggable:p,reorderable:E,onReorder:Ql,resizable:M,onResize:es,onAutoFit:_o,onHeaderContextMenu:O===false?void 0:Hs,onHeaderClick:te,getHeaderClassName:Te,renderHeaderLabel:V}),R&&jsxRuntime.jsx(na,{bandOffset:zt*cn,stickyInsets:fn,layout:Fe,centerColumns:Ft,leadingSpacer:Ht,trailingSpacer:At,values:Uo,checkboxColumn:Ye,detailColumn:pt,statusColumn:gt,rowNumberColumn:qe,onChange:ns,onCommit:as,periodSuggestions:ts,periodListId:`${e.gridId}-filter-periods`,operators:zo,onOperatorChange:os,renderCustom:rs}),Mn&&jsxRuntime.jsx(Eo,{...yi,position:"top",bandOffset:zt*cn,headerRowsBetween:dr}),lr.length>0&&jsxRuntime.jsx(Go,{gridId:e.gridId,side:"top",rows:lr,rowKeys:xs,onUserRowContextMenu:ti,layout:Fe,columnModel:lo,centerColumns:Ft,centerIndices:io,stickyInsets:fn,leadingSpacer:Ht,trailingSpacer:At,checkboxColumn:Ye,detailColumn:pt,statusColumn:gt,rowNumberColumn:qe,rowHeight:u,bandOffset:zt*cn,headerRowsBetween:dr+(Mn?1:0),ariaRowBase:ir}),i.hasStickyGroupHeaders()&&jsxRuntime.jsx(gl,{controller:i,width:Fe.totalWidth,bandOffset:zt*cn,headerRowsBetween:dr+(Mn?1:0),belowPinned:oo>0?oo*u+1:0,renderRow:(o,w,G)=>jsxRuntime.jsx(bn,{gridId:e.gridId,node:o,index:w,layout:Fe,columnModel:lo,centerColumns:Ft,centerIndices:io,stickyInsets:fn,leadingSpacer:Ht,trailingSpacer:At,striped:false,selected:false,groupSelection:Ye&&sn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:si,groupDisplay:ci,focusedColumnId:null,checkboxColumn:Ye,statusColumn:gt,rowNumberColumn:qe,rowNumber:null,headerRowCount:ro,onToggleGroup:_=>{i.toggleGroup(_),i.scrollToRow(_);},revision:Ua,searchNeedle:wi,findStamp:so,findKind:so?bi:void 0,summaryDefs:ui,detailColumn:pt,height:G,renderCellContent:st,getCellClassName:qn})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:Dn.rows.totalHeight},onDragOver:on.bodyHandlers?.onDragOver,onDrop:on.bodyHandlers?.onDrop,onDragLeave:on.bodyHandlers?.onDragLeave,children:[jsxRuntime.jsx("div",{ref:Wo,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${Dn.rows.offsetY}px)`},children:_s.map((o,w)=>o?jsxRuntime.jsx(bn,{gridId:e.gridId,node:o,index:gn+w,layout:Fe,columnModel:lo,centerColumns:Ft,centerIndices:io,stickyInsets:fn,leadingSpacer:Ht,trailingSpacer:At,striped:g,selected:i.isRowSelected(o.key),ariaSelectable:sn!=="none",selectable:Ye&&o.kind==="data"?i.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&Ye&&sn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:si,groupDisplay:ci,focusedColumnId:pn?.rowKey===o.key?pn.columnId:null,rowFocused:W&&pn?.rowKey===o.key,rowDrag:on.handlers,dropSide:on.dropAt?.key===o.key?on.dropAt.side:null,...Pe(o),renderRow:Q?xn:c,checkboxColumn:Ye,statusColumn:gt,rowNumberColumn:qe,getSpan:Ws?zs:void 0,resolveColSpans:Us?Vs:void 0,getNote:dt?jn:void 0,rowNumber:qe?nl(gn+w,$s,Ns):null,headerRowCount:ro,onRowClick:fs,onRowMouseDown:sn==="none"?void 0:ds,onRowDoubleClick:gs,onToggleSelect:cs,onCellMouseDown:us,onRowContextMenu:ws,onToggleGroup:Gs,onToggleTreeRow:Is,revision:Ua,searchNeedle:wi,findStamp:so,findKind:so?bi:void 0,summaryDefs:ui,detailColumn:pt,detailExpanded:pt&&i.isDetailExpanded(o.key),onToggleDetail:Ps,renderDetail:I,renderEditForm:j??z.renderEditForm,renderRowMessage:o.kind==="message"?ee:void 0,height:Bs(gn+w),renderCellContent:st,getCellClassName:qn,onCellPointerDown:Re,onCellPointerEnter:Ee,onCellDoubleClick:Xn},String(o.key)):(()=>{let G=gn+w,_=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+ro,"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}`)})())}),le?.()]}),sr.length>0&&jsxRuntime.jsx(Go,{gridId:e.gridId,side:"bottom",rows:sr,rowKeys:Ds,onUserRowContextMenu:ti,layout:Fe,columnModel:lo,centerColumns:Ft,centerIndices:io,stickyInsets:fn,leadingSpacer:Ht,trailingSpacer:At,checkboxColumn:Ye,detailColumn:pt,statusColumn:gt,rowNumberColumn:qe,rowHeight:u,headerRowsBetween:mn&&!Mn?1:0,ariaRowBase:ro+m}),mn&&!Mn&&jsxRuntime.jsx(Eo,{...yi,position:"bottom"})]})}),(Bo==="noRows"||Bo===null&&m===0)&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-empty",children:T??t.noData}),z.active&&jsxRuntime.jsx(Fr,{open:z.saveError!==null,title:t.editCannotSave,message:z.saveError?z.saveError.columnId?`${i.getColumnModel().getDef(z.saveError.columnId)?.headerName??z.saveError.columnId}: ${z.saveError.message}`:z.saveError.message:"",confirmLabel:t.ok,dark:l,onConfirm:z.clearSaveError,onCancel:z.clearSaveError}),z.popup&&jsxRuntime.jsx(ut,{dark:l,children:z.popup}),N&&jsxRuntime.jsx(ya,{controller:i,alwaysVisible:N==="always",onOpenBuilder:K,describeOptions:y}),L!==false&&jsxRuntime.jsx(Ea,{controller:i,delay:typeof L=="number"?L:void 0,forced:Bo==="loading"}),i.isPaginated()&&jsxRuntime.jsx(ba,{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)}),S&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:Os}),Gn&&jsxRuntime.jsx(Da,{anchor:Gn.anchor,value:Gn.text,dark:l,onCommit:ps,onCancel:()=>Zo(null)}),dn&&jsxRuntime.jsx(Io,{x:dn.x,y:dn.y,items:dn.items,context:dn.context,dark:l,onClose:ms}),eo&&jsxRuntime.jsx(ut,{dark:l,children:jsxRuntime.jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:eo.x,top:eo.y},onClick:()=>to(null),children:eo.message})}),Ut&&jsxRuntime.jsx(Io,{x:Ut.x,y:Ut.y,items:Ut.items,context:Ut.context,dark:l,label:`${Ut.context.headerName} column`,onClose:()=>tr(null)}),Va&&jsxRuntime.jsx(Ia,{state:Va,dark:l}),oi&&jsxRuntime.jsx(ha,{controller:i,columns:i.getColumnStates(),anchor:oi,dark:l,onClose:()=>nr(null)}),ln&&jsxRuntime.jsx(cl,{controller:i,columnId:ln.columnId,headerLabel:ln.label,anchor:ln.anchor,dark:l,onClose:()=>Xo(null)},ln.columnId),ze&&jsxRuntime.jsx(sa,{gridId:e.gridId,columnId:ze.columnId,headerLabel:ze.label,entries:ze.entries,initialSelected:ze.selected,anchor:ze.anchor,loading:ze.loading,truncated:ze.truncated,onSearch:ze.capped&&!i.isRemote()?o=>{let{entries:w,truncated:G}=i.searchDistinctValues(ze.columnId,o);Lt(_=>_&&_.columnId===ze.columnId?{..._,entries:w,truncated:G}:_);}:void 0,dark:l,onApply:ls,onClose:()=>Lt(null)},`${ze.columnId}:${ze.loading?"loading":"ready"}`)]})}function Xm({defs:e,values:t,columnModel:n,rowCount:r,rowCountLabel:l}){let a=ke(),d=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(g=>{let T=t[datagridCore.summaryKey(g.columnId,g.type)],h=n.getDef(g.columnId),b=datagridCore.formatSummaryValue(g,T,h);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-label",children:[datagridCore.summaryLabel(g,d)," ",h?.headerName??g.columnId,":"]}),jsxRuntime.jsx("strong",{children:b})]},datagridCore.summaryKey(g.columnId,g.type))})]})}var Jm=react.memo(Xm);function ep(e,t){return Ba(e,t,t?.source,(n,r)=>n.computeChartData(r))}function tp(e,t){return Ba(e,t,t?.source,(n,r)=>n.computeChartXYData(r))}function np(e,t){return Ba(e,t,t?.source,(n,r)=>n.computeChartBoxData(r))}function Ba(e,t,n,r){let[l,a]=react.useState(null);return react.useEffect(()=>{if(!e||!t){a(null);return}let d=n??"view",g=datagridCore.chartNeedsOrder(t),T=false,h=0,b=false,R=false,x=null,k=()=>{let L=++h;r(e,t).then(S=>{!T&&L===h&&a(S);},()=>{});},E=(L=false)=>{R||=L,!b&&(b=true,queueMicrotask(()=>{if(b=false,T)return;let S=e.chartBasis(d,g);!R&&S===x||(R=false,x=S,k());}));};x=e.chartBasis(d,g),k();let M=[e.events.on("contentReady",()=>E()),e.events.on("rowsChanged",()=>E()),e.events.on("dataUpdated",()=>E()),...d==="selection"?[e.events.on("selectionChanged",()=>E(true))]:[]];return ()=>{T=true,h++,M.forEach(L=>L());}},[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=yn;exports.DEFAULT_EDIT_FORM_LABELS=zd;exports.DEFAULT_HEADER_MENU_LABELS=Al;exports.DataGrid=Um;exports.GridCellEditor=Ir;exports.GridColumnChooser=ha;exports.GridContextMenu=Io;exports.GridDateEditor=Xt;exports.GridDialog=Fr;exports.GridEditForm=Dr;exports.GridFilterPanel=ya;exports.GridFilterRow=na;exports.GridFooterRow=Eo;exports.GridGroupPanel=pa;exports.GridHeader=Qr;exports.GridHeaderBands=jr;exports.GridHeaderFilterPopup=sa;exports.GridLoadingOverlay=Ea;exports.GridLookupEditor=qt;exports.GridNoteEditor=Da;exports.GridPager=ba;exports.GridPinnedRows=Go;exports.GridPopupPanel=en;exports.GridPortal=ut;exports.GridRow=bn;exports.GridRowEditor=Sr;exports.GridSummaryBar=Jm;exports.GridSurfaceProvider=Rr;exports.GridTextProvider=pr;exports.GridToolbar=wa;exports.GridTooltip=Ia;exports.PRINT_MAX_ROWS=Hr;exports.ROW_DRAG_MIME=Fo;exports.SHORTCUT_COPY=kl;exports.SHORTCUT_CUT=Uc;exports.SHORTCUT_PASTE=zc;exports.ToolbarIcon=fa;exports.buildCellMenuItems=va;exports.buildHeaderMenu=La;exports.copyToClipboard=Cn;exports.editFormColumnIds=$i;exports.editFormLabels=xr;exports.headerMenuLabels=Ho;exports.matchOptions=Sd;exports.measureBestFitWidth=Lo;exports.reconcileFilterInputs=ta;exports.runGridExport=$n;exports.useAlignedGrids=Kr;exports.useAnchoredPopup=Zt;exports.useCellTooltip=Pa;exports.useDataGrid=mr;exports.useEditModes=Nr;exports.useGridChartBoxData=np;exports.useGridChartData=ep;exports.useGridChartXYData=tp;exports.useGridEditing=wr;exports.useGridSurfaceClass=kt;exports.useGridText=ke;exports.usePrintLayout=Ar;exports.useRowDrag=Na;exports.useStateStoring=Ga;exports.writeClipboardText=Yc;
1
+ 'use strict';var react=require('react'),datagridCore=require('@kanunilabs/datagrid-core'),jsxRuntime=require('react/jsx-runtime'),reactDom=require('react-dom');var cd=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],Ni=new WeakMap;function br(e){let t=Ni.get(e);if(!t){let n={version:0,listeners:new Set},r=()=>{n.version++,n.listeners.forEach(l=>l());};for(let l of cd)e.events.on(l,r);Ni.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,M)=>n.current?.(B,M))),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:M}=br(a);return M.add(B),()=>{M.delete(B);}},[a]),T=react.useCallback(()=>br(a).version,[a]);react.useSyncExternalStore(p,T,T);let{dataSource:w,columns:k}=e,y=react.useRef(true);react.useEffect(()=>{if(y.current){y.current=false;return}Array.isArray(w)&&a.setData(w);},[a,w]);let N=react.useRef(true);react.useEffect(()=>{if(N.current){N.current=false;return}a.setColumns(k);},[a,k]);let f=e.pagination?e.pagination.enabled!==false:false;react.useEffect(()=>{a.setPaginationEnabled(f);},[a,f]);let E=e.rowHeight,O=react.useRef(true);react.useEffect(()=>{if(O.current){O.current=false;return}E!==void 0&&a.setRowHeight(E);},[a,E]);let P=e.selection?.mode??"none";react.useEffect(()=>{a.setSelectionMode(P);},[a,P]);let R=e.rowPinning;react.useEffect(()=>{a.setRowPinning(R);},[a,R]);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,$=react.useRef(true);react.useEffect(()=>{if($.current){$.current=false;return}a.setPostSort(L?r:null);},[a,L,r]);let W=e.grouping?.groupBy??null,H=JSON.stringify(W==null?[]:typeof W=="string"?[W]:W),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 Li=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(Li.Provider,{value:r,children:n})}function ve(){return react.useContext(Li)}var ho=new WeakMap,Gd=1e5,Md=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function Nd(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 Pd(t?e:Nd(e))}function Pd({controller:e,mode:t="batch",rules:n,onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:p,onInitNewRow:T,onRowInserted:w,onRowUpdated:k,onRowRemoved:y,editOnKeyPress:N,confirmDelete:f,confirmDeleteMessage:E,insertKey:O,appendOnArrowDown:P,newRowPosition:R,focusCellOnTab:c,focusCellOnCycle:D,keepEditingOnTab:L,enabled:$=true,savedDuration:W,range:H=true,history:C=true,canEditColumn:B}){let M=ve(),[g,d]=react.useState(0),S=react.useCallback(()=>d(u=>u+1),[]),F=react.useMemo(()=>new datagridCore.RangeSelectionEngine,[]),q=react.useMemo(()=>({start(u,m){F.start(u,m),S();},add(u,m){F.add(u,m),S();},extend(u,m){F.extend(u,m)&&S();},finish(){F.finish(),S(),e?.notifyViewStateChanged();},clear(){F.clear()&&(S(),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)?(S(),e?.notifyViewStateChanged(),true):false},fullColumns:u=>F.fullColumns(u)}),[F,S,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())),S();}})},[e,H,F,S]);let[pe,Te]=react.useState(null),se=react.useRef({onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:p,onInitNewRow:T,onRowInserted:w,onRowUpdated:k,onRowRemoved:y,editOnKeyPress:N,confirmDelete:f,confirmDeleteMessage:E,insertKey:O,appendOnArrowDown:P,newRowPosition:R,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:k,onRowRemoved:y,editOnKeyPress:N,confirmDelete:f,confirmDeleteMessage:E,insertKey:O,appendOnArrowDown:P,newRowPosition:R,focusCellOnTab:c,focusCellOnCycle:D,keepEditingOnTab:L,canEditColumn:B};let Fe=react.useRef(null),b=react.useMemo(()=>{if(!e||!$)return null;let u=m=>e.getRowByKey(m);return new datagridCore.EditingEngine({mode:t,rules:n,messages:M,onChange:S,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(),me={...x};ne&&(me[ne]=m),e.applyTransaction({add:[me],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,$]);react.useEffect(()=>{b?.setMessages(M);},[b,M]),react.useEffect(()=>{b?.setMode(t);},[b,t]),react.useEffect(()=>{W!==void 0&&b?.setSavedDuration(W);},[b,W]),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(g);react.useEffect(()=>{!e||!b||g===Me.current||(Me.current=g,Y.schedule("footer",()=>e.refreshSummaries()));},[e,b,g,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]),fe=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??M.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 me=e.getRows(),ye=me.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<me.length&&me[ye]?.kind!=="data");if(ye<0||ye>=me.length)return false;Re=datagridCore.edgeEditableColumn(ne,Q,u);}let Ce=me[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]),V=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())?V(m.rowKey,m.columnId,Q):(e.scrollToCell(m.rowKey,m.columnId),b.beginEdit(m.rowKey,m.columnId,Q))},[b,e,V]),[Ge,Le]=react.useState(null),[_e,Oe]=react.useState(null),at=react.useCallback(u=>{let m=_e;Oe(null),u&&m&&b&&b.removeRow(m.rowKey);},[_e,b]),lt=react.useCallback(u=>{Le({message:u.error??M.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,M]);Fe.current=lt;let st=react.useCallback(async()=>{if(!b)return;Le(null);let u=await b.saveChanges();u.saved||u.superseded||lt(u);},[b,lt]),ee=react.useCallback(()=>Le(null),[]),ae=react.useCallback(()=>{Le(null),b?.cancelChanges();},[b]);react.useEffect(()=>{(b?.getSession()||b?.isEditingRow())&&Le(null);},[g,b]);let v=react.useMemo(()=>{if(!e||!F.getRange())return null;let u=F.cellCount();if(u>Gd)return {cells:u,truncated:true,numeric:null};let m=e.getColumnModel(),x=e.getVisualColumnIds(),_=e.getRows(),Q=F.getStats((ne,me)=>{let ye=_[ne],Re=x[me];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,g]),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 me=te(Q),ye=ie(ne);return me!==null&&ye?b.effectiveValue(me,ye):void 0}).map(Q=>{let ne=te(Q.row),me=ie(Q.column);if(ne===null||!me||!Z(ne,me))return null;let ye=Q.from?e.shiftCellFormula(me,Q.value,Q.row-Q.from.row,Q.column-Q.from.column):Q.value;return {rowKey:ne,columnId:me,value:ye}}).filter(Q=>Q!==null);return e.notifyClipboardGesture("fill",_.length,()=>_.length===0?false:(b.applyEdits(_,datagridCore.fillText(M.editFillUndo,{count:_.length}),"fill"),true)),_.length},[b,e,te,ie,Z,M]),He=react.useCallback(()=>{let u=z.current,m=pe;if(z.current=null,Te(null),!u||!m||!b||!e)return;let x=datagridCore.computeFillTarget(u,m.endRow,m.endColumn);x&&X(u,x);},[pe,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,_),me=datagridCore.cellDisplayText(Q.getDef(_),ne,x.data);return e.clipboardCellText(x,_,ne,me).replace(/[\t\r\n]+/g," ")},[e,b]),qe=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]),We=react.useCallback(u=>{if(!e||!b)return false;let m=q.getRange()!==null,x=u??e.getFocus();if(!m&&!x)return false;if(!qe("cut")){let me=x?e.getVisualColumnIds().indexOf(x.columnId):-1,ye=x?e.getRows().findIndex(Ce=>Ce.key===x.rowKey):-1;if(ye<0||me<0)return false;let Re=re(ye,me);e.notifyClipboardGesture("copy",Re?1:0,()=>e.writeClipboard(Re,"cut"));}let _=[];if(m)F.forEachCell((me,ye)=>_.push([me,ye]));else {let me=e.getRows().findIndex(Re=>Re.key===x.rowKey),ye=e.getVisualColumnIds().indexOf(x.columnId);if(me<0||ye<0)return false;_.push([me,ye]);}let Q=e.getRows(),ne=[];for(let[me,ye]of _){let Re=Q[me];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(M.editCutUndo,{count:ne.length}),"cut"),true)),true},[e,b,q,F,qe,re,M]),Ue=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 me=datagridCore.computePasteCells(x,Q,ne,{target:_,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),ye=e.getColumnModel(),Re=me.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(M.editPasteUndo,{count:Re.length}),"paste"),true));},[b,e,q,te,ie,Z,M]),[ge,i]=react.useState(null),je=react.useCallback(u=>b?(i(null),b.beginRowEdit(u)):false,[b]),Xe=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):Xe();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,Xe,Ne,I]);let Ze=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(),Ue(),true;if(H&&m&&(u.key==="x"||u.key==="X"))return u.preventDefault(),We(),true;if(m&&(u.key==="c"||u.key==="C"))return qe()?(u.stopPropagation(),true):false;if(b.isEditingRow()){if(u.key==="Enter")return u.preventDefault(),Xe(),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,me=x?_.indexOf(x.columnId):-1;if(ne>=0&&me>=0&&Q.length>0){u.preventDefault(),u.stopPropagation();let ye=e.getRows(),Re=datagridCore.extendRangeByKey(q.getRange(),{row:ne,column:me},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,me=x?_.indexOf(x.columnId):-1,ye=q.getRange()??(ne>=0&&me>=0?{startRow:ne,startColumn:me,endRow:ne,endColumn:me}: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()&&Md.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())?(V(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,Ue,We,qe,j,V,le,De,Xe,Ne,X]);return {engine:b,range:q,version:g,beginEdit:fe,beginRowEdit:je,saveRowEdit:Xe,cancelRowEdit:Ne,rowSaveError:ge,addRow:De,editAdjacentCell:le,editFocusedCellWith:j,focusScroller:I,deleteRow:Se,saveChanges:st,cancelChanges:ae,selectionStats:v,handleKeyDown:Ze,cut:We,copySelection:qe,paste:Ue,saveError:Ge,clearSaveError:ee,pendingDelete:_e,resolveDelete:at,fillPreview:pe,startFillDrag:K,moveFillDrag:de,endFillDrag:He,isDraggingFill:z.current!==null}}var _i=react.createContext(""),$i=react.createContext(()=>document.body),Bd=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);Bd(()=>{s.current=r;},[r]);let p=react.useMemo(()=>()=>datagridCore.portalTarget(s.current),[]);return jsxRuntime.jsx(_i.Provider,{value:a,children:jsxRuntime.jsx($i.Provider,{value:p,children:l})})}function Pt(){return react.useContext($i)}function Tt(){return react.useContext(_i)}var Mr=8,Lt=26,Ui=4;function zi(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 Wd(e,t,n){let r=e.map(a=>datagridCore.foldText(a.label)),l=zi(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:k,commitOnPick:y=true,onCancel:N,onTab:f}){let E=ve(),O=Tt(),P=Pt(),R=react.useRef(null),c=react.useRef(null),[D,L]=react.useState(null),[$,W]=react.useState(false),[H,C]=react.useState(0),[B,M]=react.useState(0),[g,d]=react.useState(null),S=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:zi(S,D,n),[S,D,n]),z=q===null?e.length:q.length,pe=I=>e[q===null?I:q[I]],Te=D??F;react.useEffect(()=>{C(I=>I<z?I:0);},[z]),react.useLayoutEffect(()=>{a&&(R.current?.focus({preventScroll:true}),R.current?.select());},[]);let se=()=>{let I=R.current;if(!I)return;let le=I.getBoundingClientRect(),V=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:V.left,top:V.top,width:le.width});};react.useLayoutEffect(()=>{$&&se();},[$,z]),react.useEffect(()=>{if(!$)return;let I=()=>se();return window.addEventListener("scroll",I,true),window.addEventListener("resize",I),()=>{window.removeEventListener("scroll",I,true),window.removeEventListener("resize",I);}},[$]),react.useLayoutEffect(()=>{let I=c.current;if(!I||!$||z===0)return;let le=H*Lt,V=le+Lt,j=I.scrollTop;le<j?j=le:V>j+I.clientHeight&&(j=V-I.clientHeight),j!==I.scrollTop&&(I.scrollTop=j,M(j));},[H,$,z]);let Fe=Math.min(Math.max(z,1),Mr)*Lt,b=Math.max(0,Math.floor(B/Lt)-Ui),Y=Math.min(z,Math.ceil((B+Fe)/Lt)+Ui),Me=I=>{w(I.value),L(null),W(false),y&&k();},te=()=>{$||(W(true),M(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),V=S.indexOf(le);return V>=0?(w(e[V].value),true):z===1?(w(pe(0).value),true):r?(w(I),true):false},fe=I=>{if(!(I.nativeEvent.isComposing||I.keyCode===229)){if(I.key==="ArrowDown"||I.key==="ArrowUp"){if(I.preventDefault(),I.stopPropagation(),!$){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(!$||z===0)return;I.preventDefault(),I.stopPropagation();let le=Mr*(I.key==="PageDown"?1:-1);C(V=>Math.min(z-1,Math.max(0,V+le)));return}if(I.key==="Home"||I.key==="End"){if(!$||z===0)return;I.preventDefault(),I.stopPropagation(),C(I.key==="Home"?0:z-1);return}if(I.key==="Enter"){if(I.preventDefault(),I.stopPropagation(),$&&z>0){Me(pe(H));return}ie()?k():te();return}if(I.key==="Escape"){if(I.preventDefault(),I.stopPropagation(),$){W(false);return}L(null),N();return}if(I.key==="Tab"){if(!ie()){I.preventDefault(),I.stopPropagation(),te();return}W(false),f&&(I.preventDefault(),I.stopPropagation(),f(I.shiftKey));return}I.stopPropagation();}},De=[];for(let I=b;I<Y;I++){let le=pe(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=$&&g?reactDom.createPortal(jsxRuntime.jsx("div",{ref:c,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${O}`,"data-kanuni-portal":"popup",role:"listbox","aria-label":T,"data-testid":s?`${s}-list`:void 0,style:{left:g.left,top:g.top,width:g.width,height:Fe},onScroll:I=>M(I.currentTarget.scrollTop),onMouseDown:I=>I.preventDefault(),children:z===0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-lookup-empty",children:E.editNoMatch}):jsxRuntime.jsx("div",{style:{position:"relative",height:z*Lt},children:De})}),P()):null;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{ref:R,type:"text",role:"combobox","aria-expanded":$,"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),M(0),c.current&&(c.current.scrollTop=0),W(true);},onFocus:te,onClick:te,onKeyDown:fe,onBlur:()=>{D!==null&&!ie()&&L(null),W(false);}}),Se]})}function eu(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 tu(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 nu(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:k,onTab:y}){let N=ve(),f=Tt(),E=Pt(),O=react.useMemo(()=>tu(N),[N]),P=react.useMemo(()=>eu(N),[N]),R=react.useRef(null),[c,D]=react.useState(null),[L,$]=react.useState(false),[W,H]=react.useState(null),C=react.useMemo(()=>datagridCore.toDate(e),[e]),B=c===null?datagridCore.formatDateValue(e,t):datagridCore.maskDate(c,t),M=c===null?null:datagridCore.parseDateValue(B,t),g=c!==null&&c.length===datagridCore.dateDigitCount(t)&&M===null,[d,S]=react.useState(()=>C??new Date);react.useEffect(()=>{L&&S(M??C??new Date);},[L]),react.useLayoutEffect(()=>{l&&(R.current?.focus({preventScroll:true}),R.current?.select());},[]);let F=react.useRef(null),q=react.useCallback(()=>{let Y=R.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 pe=react.useCallback(Y=>{if(Y===null){T(null);return}T(e instanceof Date?Y:datagridCore.toIsoDate(Y));},[T,e]),Te=Y=>{D(null),$(false),pe(Y),R.current?.focus({preventScroll:true});},se=react.useCallback(()=>{if(c!==null){if(c.length===0){pe(null),D(null);return}M&&pe(M),D(null);}},[c,M,pe]),Fe=Y=>{if(Y.key==="Escape"){if(Y.preventDefault(),Y.stopPropagation(),L){$(false);return}D(null),k();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=M??C??new Date,ie=new Date(te.getFullYear(),te.getMonth(),te.getDate()+Me);D(datagridCore.dateDigits(datagridCore.formatDateValue(ie,t),t)),S(ie);return}if(Y.key==="Enter"){Y.preventDefault(),Y.stopPropagation(),$(false),M&&Te(M);return}}if(Y.key==="Enter"){Y.preventDefault(),Y.stopPropagation(),se(),w();return}if(Y.key==="Tab"){se(),$(false),y&&(Y.preventDefault(),Y.stopPropagation(),y(Y.shiftKey));return}if(Y.key.length===1&&!Y.ctrlKey&&!Y.metaKey&&!/\d/.test(Y.key)){Y.preventDefault();return}Y.stopPropagation();},b=L&&W?reactDom.createPortal(jsxRuntime.jsxs("div",{ref:z,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${f}`,"data-kanuni-portal":"popup",style:{left:W.left,top:W.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":p?`${p} ${N.dateCalendar}`:N.dateCalendar,onMouseDown:Y=>Y.preventDefault(),children:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsxRuntime.jsx("button",{type:"button","aria-label":N.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:[O[d.getMonth()]," ",d.getFullYear()]}),jsxRuntime.jsx("button",{type:"button","aria-label":N.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:[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()-Qi(N)+7)%7,te=datagridCore.daysInMonth(d.getFullYear(),d.getMonth()+1),ie=[];for(let fe=0;fe<42;fe++){let De=fe-Me+1,Se=new Date(d.getFullYear(),d.getMonth(),De),I=De<1||De>te,le=nu(Se,M??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()},fe));}return ie})()]})]}),E()):null;return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsxRuntime.jsx("input",{ref:R,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":p,"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: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 ${N.dateOpenCalendar}`:N.dateOpenCalendar,"aria-expanded":L,"data-testid":"dg-date-open",disabled:r,tabIndex:-1,onMouseDown:Y=>Y.preventDefault(),onClick:()=>{$(Y=>!Y),R.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 su=Pr(datagridCore.getGridDictionary("en"));function du(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 tl(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 uu(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:k=false,popup:y=false,inline:N=false,onNaturalHeight:f,labels:E,onChange:O,onSave:P,onCancel:R}){let c=ve(),D=Tt(),L=react.useMemo(()=>({...Pr(c),...E}),[c,E]),$=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(),f){let F=d.querySelector(".kanuni-datagrid-edit-form-fields");F&&f(d.clientHeight-F.clientHeight+F.scrollHeight);}},[f]);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 C=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),B=L.shortcut.replace("{key}",C?"\u2318":"Ctrl"),M=react.useCallback(d=>{if(d.key==="Escape"){d.preventDefault(),d.stopPropagation(),R();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"||!y||!$.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 F=S[0],q=S[S.length-1];!d.shiftKey&&document.activeElement===q?(d.preventDefault(),F.focus()):d.shiftKey&&document.activeElement===F&&(d.preventDefault(),q.focus());},[R,P,y]),g=jsxRuntime.jsxs("div",{ref:H,className:`kanuni-datagrid-edit-form${N?" kanuni-datagrid-edit-form--inline":""}`,"data-testid":"dg-edit-form","data-row-key":String(e),"data-popup":y?"":void 0,role:y?"dialog":"group","aria-modal":y?true:void 0,"aria-label":w?L.addTitle:L.editTitle,onKeyDown:M,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 S=n(d.columnId),F=r[d.columnId],q=l?.[d.columnId],z=p||!d.editable,pe=`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:pe,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:F??null,setValue:Te=>O(d.columnId,Te),commit:P,cancel:R}):q!==void 0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(Zt,{options:q??[],value:S,matchMode:d.def?.lookup?.matchMode,allowCustom:d.def?.lookup?.allowCustom,invalid:!!F,testId:pe,ariaLabel:d.label,onChange:Te=>O(d.columnId,Te),onCommit:()=>{},onCancel:R})}):d.def?.lookup?jsxRuntime.jsx("input",{id:pe,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:datagridCore.lookupLabel(d.def,S)??tl(S,d.dataType)}):d.dataType==="date"?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(Qt,{value:S,format:d.def?.dateFormat,invalid:!!F,disabled:z,autoFocus:false,testId:pe,columnId:d.columnId,ariaLabel:d.label,onChange:Te=>O(d.columnId,Te),onCommit:()=>{},onCancel:R})}):d.dataType==="boolean"?jsxRuntime.jsx("input",{id:pe,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:z,checked:S===true,onChange:Te=>O(d.columnId,Te.target.checked)}):jsxRuntime.jsx("input",{id:pe,className:"kanuni-datagrid-edit-form-input",type:du(d.dataType,S),disabled:z,"aria-invalid":F?true:void 0,value:tl(S,d.dataType),onChange:Te=>O(d.columnId,uu(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:R,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 y?jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-edit-popup${k?" kanuni-datagrid-dark":""}${D}`,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:R}),g]}):g}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 k=T.getDataType(n);if(k==="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 y=k==="number",N=f=>{f.key==="Enter"?(f.preventDefault(),f.stopPropagation(),s()):f.key==="Escape"&&(f.preventDefault(),f.stopPropagation(),p());};return k==="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:N}):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:y?"number":"text",value:String(t.rowEditValue(n)??""),onChange:f=>{let E=f.target.value;t.setRowEditValue(n,y?E===""?null:Number(E):E);},onKeyDown:N})}function nl(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:k=false,isFormColumn:y,batchBar:N=true}){let f=ve(),{engine:E,version:O,beginRowEdit:P,saveRowEdit:R,cancelRowEdit:c,rowSaveError:D,saveChanges:L,cancelChanges:$}=t,W=r&&datagridCore.isRowEditMode(n),H=W?E?.getRowSession()??null:null,C=react.useRef(y);C.current=y;let B=react.useMemo(()=>{if(!e||!H)return [];let V=e.getColumnModel();return nl(e,C.current).map(j=>{let Ge=V.getDef(j);return {columnId:j,label:Ge?.headerName??Ge?.field??j,dataType:V.getEditorDataType(j),def:Ge,editable:E?.canUpdate(H.rowKey,j)??true}})},[e,E,H]),M=n==="row"?H?.rowKey??null:null;react.useEffect(()=>{if(M===null)return;let V=l.current;if(!V)return;let j=V.querySelectorAll('[data-testid="dg-row-editor"]');if(j.length===0)return;let Ge=e?.getFocus(),_e=(Ge&&String(Ge.rowKey)===String(M)?V.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Ge.columnId)}"]`):null)??j[0],Oe=E?ho.get(E):void 0;E&&ho.delete(E),_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());},[M]);let g=react.useCallback(V=>W&&H?.rowKey===V,[W,H]),d=react.useCallback((V,j)=>{let Ge=e?.getColumnModel().getDef(V.columnId);if(Ge?.renderCell&&V.node.kind==="data")return Ge.renderCell({value:j,row:V.node.data,node:V.node,column:Ge});let Le=Ge?datagridCore.lookupLabel(Ge,j):null;return Le!==null?Le:Ge?.valueFormatter&&V.node.kind==="data"?Ge.valueFormatter(j,V.node.data):Ge?.dateFormat&&Ge.dataType==="date"?datagridCore.formatDateValue(j,Ge.dateFormat):j==null?"":String(j)},[e]),S=react.useCallback(V=>{if(!(n!=="row"||!E||!e||V.node.kind!=="data"||!g(V.node.key)))return E.canUpdate(V.node.key,V.columnId)?jsxRuntime.jsx(Ir,{controller:e,engine:E,columnId:V.columnId,message:H?.errors[V.columnId]??null,saving:H?.saving??false,lookupOptions:w?.[V.columnId],onSave:()=>{R();},onCancel:c}):d(V,E.rowEditValue(V.columnId))},[n,E,e,O,g,H,w,d,R,c]),F=react.useCallback(V=>{if(!E||V.node.kind!=="data")return;let j=E.changes.get(V.node.key,V.columnId);return j?d(V,j.newValue):void 0},[E,O,d]),[q,z]=react.useState(null),pe=q??p??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,Te=react.useCallback(V=>{V>0&&z(j=>j!==null&&Math.abs(j-V)<a?j:V);},[a]);react.useEffect(()=>{H||z(null);},[H]);let se=(V,j)=>H?jsxRuntime.jsx(Lr,{rowKey:V,fields:B,getValue:Ge=>E?.rowEditValue(Ge),errors:H.errors,lookups:w,customEditors:k,row:E?.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)=>E?.setRowEditValue(Ge,Le),onSave:()=>{R();},onCancel:c}):null,Fe=H&&n==="popup"?se(H.rowKey,false):null,b=react.useRef(se);b.current=se;let Y=react.useCallback(V=>b.current(V,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:pe,atTop:te});}},[e,Me,te,pe]),react.useEffect(()=>()=>{let V=ie.current;ie.current=null,V?.setEditFormRow(null);},[]);let fe=W&&n==="row"&&!!H,De=N&&r&&n==="batch"&&(E?.hasChanges()??false),Se=fe||De?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[fe&&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:()=>{R();},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:E?.isSaving(),onClick:()=>{L();},children:datagridCore.fillText(f.editSaveCount,{n:E?.getChanges().length??0})}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:$,children:f.cancel})]})]}):null,I=react.useCallback(V=>!W||!E||E.isEditingRow()?null:{id:"dg-edit-row",label:f.editRowMenu,onSelect:()=>P(V)},[W,E,P,f,O]),le=react.useCallback(V=>W?(P(V),true):false,[W,P]);return {rowModeActive:W,rowSession:H,isRowEditing:g,defaultContent:d,renderRowCell:S,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:k,onTab:y,onCancel:N}){let f=react.useRef(null),E=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(),k(c.shiftKey?"none":"down")):c.key==="Tab"?(c.preventDefault(),c.stopPropagation(),E.current=true,y(c.shiftKey?-1:1)):c.key==="Escape"?(c.preventDefault(),c.stopPropagation(),N()):c.stopPropagation());},onBlur:()=>{E.current||k("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"},R;return l===null?R=jsxRuntime.jsx("input",{...P,type:"text",value:"\u2026",readOnly:true,disabled:true}):l&&l.length>0?R=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:()=>k("none"),onCancel:N,onTab:c=>{E.current=true,y(c?-1:1);}}):t==="boolean"?R=jsxRuntime.jsx("input",{...P,type:"checkbox",checked:e===true,onChange:c=>w(c.target.checked)}):t==="number"?R=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"?R=jsxRuntime.jsx(Qt,{value:e,format:T,invalid:!!n,testId:P["data-testid"],ariaLabel:p,onChange:w,onCommit:()=>k("none"),onCancel:N,onTab:c=>{E.current=true,y(c?-1:1);}}):R=jsxRuntime.jsx("input",{...P,type:"text",value:Kr(e,t),onChange:c=>w(c.target.value)}),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[R,n&&jsxRuntime.jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function il(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(S=>{let F=e?.getColumnModel().getDef(S);return !F?.lookup&&!F?.renderEditor&&F?.allowFormulas!==true},[e]),k=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:y,version:N,handleKeyDown:f,editAdjacentCell:E,focusScroller:O,saveError:P,clearSaveError:R}=k,c=Or({controller:e,editing:k,mode:T,active:p,rootRef:a.rootRef,rowHeight:a.rowHeight,formLabels:t?.formLabels,formHeight:t?.formHeight,dark:a.dark}),{renderRowCell:D,renderPending:L,openRow:$}=c,{renderCellContent:W,getCellClassName:H,onCellDoubleClick:C}=r,B=react.useCallback(S=>{if(!s||!y||S.node.kind!=="data")return W?.(S);let F=D(S);if(F!==void 0)return F;if(!y.isEditing(S.node.key,S.columnId))return L(S)??W?.(S);let q=y.getSession(),z=e.getColumnModel(),pe=z.getDef(S.columnId);return jsxRuntime.jsx(Br,{value:q.value,dataType:z.getEditorDataType(S.columnId),ariaLabel:pe?.headerName??S.columnId,dateFormat:pe?.dateFormat,error:q.validation.message,seeded:q.seeded,onChange:Te=>y.setEditValue(Te),onCommit:Te=>{y.commitEdit()&&(Te==="down"&&e?.moveFocus("down"),O());},onTab:Te=>{if(t?.focusCellOnTab===false){y.commitEdit();return}E(Te,{open:false,cycle:t?.focusCellOnCycle!==false}),O();},onCancel:()=>{y.cancelEdit(),O();}})},[s,y,e,N,W,D,L,E,O,t?.focusCellOnTab,t?.focusCellOnCycle]),M=react.useCallback(S=>{let F=H?.(S);if(!s||!y||S.node.kind!=="data")return F;let q=F?[F]:[];return y.isEditing(S.node.key,S.columnId)&&q.push("kanuni-datagrid-cell--editing"),y.changes.isDirty(S.node.key,S.columnId)&&q.push("kanuni-datagrid-cell--dirty"),q.length>0?q.join(" "):void 0},[s,y,N,H]),g=react.useCallback(S=>{C?.(S),!(!s||!y||S.node.kind!=="data")&&($(S.node.key)||y.beginEdit(S.node.key,S.columnId));},[s,y,C,$]),d=react.useCallback(S=>p?f(S):false,[p,f]);return {active:s,renderCellContent:p?B:W,getCellClassName:p?M:H,onCellDoubleClick:p?g:C,handleKeyDown:d,saveError:s?P:null,clearSaveError:R,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?y: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),k=react.useRef(null),y=react.useId(),N=react.useId(),f=Tt(),E=Pt();return react.useEffect(()=>{if(!e)return;let O=document.activeElement;w.current?.focus();let P=k.current;return ()=>{let R=document.activeElement;P&&(P.contains(R)||R===document.body||R===null)&&O?.isConnected&&O.focus({preventScroll:true});}},[e]),react.useEffect(()=>{if(!e)return;let O=P=>{if(P.key==="Escape"){P.stopPropagation(),T();return}if(P.key==="Tab"&&k.current){let R=Array.from(k.current.querySelectorAll("button:not([disabled])"));if(R.length===0)return;let c=R.indexOf(document.activeElement),D=P.shiftKey?c<=0?R.length-1:c-1:c===R.length-1?0:c+1;P.preventDefault(),P.stopPropagation(),R[D].focus();}};return document.addEventListener("keydown",O,true),()=>document.removeEventListener("keydown",O,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:k,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":y,"aria-describedby":N,"data-testid":"dg-dialog",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-title",id:y,children:t}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-message",id:N,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})]})]})]}),E())}var To=0,Wr=5e3;function ku(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Wr}}function vu(e,t){return e<=t}function Vr(e,t){let n=ku(t),r=n!==null,l=n?.always??false,a=n?.maxRows??Wr,[s,p]=react.useState(false),T=react.useCallback(()=>p(true),[]),w=react.useCallback(()=>p(false),[]);react.useEffect(()=>{if(!r||l||typeof window>"u"||typeof window.addEventListener!="function")return;let y=()=>{let f=e.getRows().length;if(!vu(f,a)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${f} rows exceeds maxRows (${a}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`);return}reactDom.flushSync(()=>p(true));},N=()=>reactDom.flushSync(()=>p(false));return window.addEventListener("beforeprint",y),window.addEventListener("afterprint",N),()=>{window.removeEventListener("beforeprint",y),window.removeEventListener("afterprint",N);}},[r,l,a,e]);let k=l||s;return react.useEffect(()=>{if(!k||typeof document>"u")return;let y=document.documentElement;return To++,y.classList.add("kanuni-datagrid-printing"),()=>{To--,To<=0&&(To=0,y.classList.remove("kanuni-datagrid-printing"));}},[k]),{active:k,begin:T,end:w}}var xo=new Map,Ur=new Set;function pl(e,t){let n=xo.get(e);return n?[...n].filter(r=>r!==t):[]}function zr(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(Ur.has(t))return;let T=pl(t,a);if(T.length===0)return;let w=e.getColumnStates();Ur.add(t);try{for(let k of T)k.controller.applyColumnStates(w);}finally{Ur.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),k=Array.from({length:w.length},(f,E)=>n+E),y=e.stickyIndices.filter(f=>f<n);if(y.length>0){let f=y.map(E=>e.center[E]);T-=f.reduce((E,O)=>E+O.state.width,0),w=[...f,...w],k=[...y,...k];}let N=new Map;for(let f of e.stickyIndices){let E=e.centerStickyOffsets[f];E!==null&&N.set(e.center[f].state.id,E);}return {centerColumns:w,centerIndices:k,leadingSpacer:Math.max(0,T),trailingSpacer:p,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:N}}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,Au=[["statusColumn",kn],["rowNumberColumn",Cn],["detailColumn",Go],["checkboxColumn",Eo]];function Qr(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 Au)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 Xr(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 jr(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 Ou(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 Ku({gridId:e,node:t,index:n,layout:r,columnModel:l,centerColumns:a,centerIndices:s,stickyInsets:p,leadingSpacer:T,trailingSpacer:w,striped:k,selected:y,ariaSelectable:N=true,selectable:f=true,groupSelection:E,onToggleGroupSelect:O,groupDisplay:P="fullWidth",focusedColumnId:R,rowFocused:c=false,renderRow:D,checkboxColumn:L,statusColumn:$=false,rowNumberColumn:W=false,rowNumber:H=null,getNote:C,getSpan:B,resolveColSpans:M,findKind:g,headerRowCount:d,onRowClick:S,onRowMouseDown:F,onRowDoubleClick:q,onToggleSelect:z,onCellMouseDown:pe,onRowContextMenu:Te,searchNeedle:se="",onToggleGroup:Fe,summaryDefs:b,detailColumn:Y=false,detailExpanded:Me=false,onToggleDetail:te,onToggleTreeRow:ie,renderDetail:fe,renderEditForm:De,renderRowMessage:Se,renderCellContent:I,getCellClassName:le,onCellPointerDown:V,onCellPointerEnter:j,onCellDoubleClick:Ge,rowDrag:Le,dropSide:_e=null,rowStatus:Oe,rowStatusText:at,rowStatusTint:lt=false,height:st}){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:fe?.(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 A=l.getDef(t.columnId),J=A?.headerName??t.columnId,he=datagridCore.lookupLabel(A,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}${R?" 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:[E&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:E==="all",ref:oe=>{oe&&(oe.indeterminate=E==="some");},"aria-label":datagridCore.fillText(ee.selectGroupAria,{count:String(t.count),group:he}),onChange:()=>O?.(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=[],v=Gt({statusColumn:$,rowNumberColumn:W,detailColumn:Y,checkboxColumn:L}),Z=v.count,K=(A,J)=>({node:t,columnId:A,rowIndex:n,columnIndex:J,value:re?void 0:l.getCellValue(t.data,A)}),de=(A,J)=>{let he=()=>K(A,J);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${A}`,"aria-colindex":Z+J+1,"data-column-id":A,onMouseDown:Ee=>{pe?.(t,A),V?.(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,qe=He||re!==null,We=re?P==="column"?datagridCore.GROUP_COLUMN_ID:(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,Ue=()=>{let A=re,J=l.getDef(A.columnId),he=datagridCore.lookupLabel(J,A.value)??A.display??(A.label===""?ee.filterBlank:A.label);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:A.level*16},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:A.expanded?"\u25BE":"\u25B8"}),P!=="column"&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[J?.headerName??A.columnId,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:he}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",A.count,")"]})]})},ge=(A,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)],A)}):null},i=X?(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,je=(A,J,he)=>{if(re){if(J===We)return Ue();if(I){let oe=I(K(J,he));if(oe!==void 0)return oe}return ge(A,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:Ou(A,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},Xe=(A,J)=>{if(!le||re)return "";let he=le(K(A,J));return he?` ${he}`:""},Ne=A=>!C||t.kind!=="data"?"":C(t.key,A,t.data)?" kanuni-datagrid-cell--noted":"",Ze=A=>B&&t.kind==="data"?B(n,A):null,u=(A,J)=>{let he=A.autoHeight?" kanuni-datagrid-cell--wrap":"";return !A.cellClassName||qe?he:he+m(A,J)},m=(A,J)=>{let he=A.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:A});return oe?` ${oe}`:""};if($&&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:v.inset("statusColumn")},children:jsxRuntime.jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),W){let A=t.kind==="data"&&H!==null;ae.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":v.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:Cn,insetInlineStart:v.inset("rowNumberColumn")},children:A?H:""},"__rownum"));}Y&&ae.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":v.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:Go,insetInlineStart:v.inset("detailColumn")},children:qe?null:jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Me,"aria-label":Me?ee.collapseDetails:ee.expandDetails,onMouseDown:A=>A.stopPropagation(),onClick:A=>{A.stopPropagation(),te?.(t.key);},children:Me?"\u25BE":"\u25B8"})},"__detail")),L&&ae.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":v.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:Eo,insetInlineStart:v.inset("checkboxColumn")},onMouseDown:A=>A.stopPropagation(),onClick:A=>{A.target.tagName!=="INPUT"&&(A.stopPropagation(),z?.(t));},children:re?E&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:E==="all",ref:A=>{A&&(A.indeterminate=E==="some");},"aria-label":datagridCore.fillText(ee.selectGroupAria,{count:String(re.count),group:re.display??re.label}),onChange:()=>O?.(String(re.key)),onClick:A=>A.stopPropagation(),onMouseDown:A=>A.stopPropagation()}):He?null:jsxRuntime.jsx("input",{type:"checkbox",checked:y,disabled:!f,tabIndex:-1,"aria-label":datagridCore.fillText(ee.selectRowAria,{row:String(t.key)}),onChange:()=>z?.(t),onClick:A=>A.stopPropagation(),onMouseDown:A=>A.stopPropagation()})},"__select"));let x=v.total,_=A=>R===A?" kanuni-datagrid-cell--focused":"",Q=A=>{let J=g&&t.kind==="data"?g(t.key,A):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},me=t.kind==="data"&&M?M(t):null,ye=A=>me?.widths.get(A.state.id)??A.state.width,Re=A=>{let J=me?.spans.get(A);return J?{"aria-colspan":J}:null};r.left.forEach((A,J)=>{let he=A.def,Ee=J===r.left.length-1,oe=A.state.id;if(me?.covered.has(oe))return;let Qe=Do("left",J,ne);ae.push(jsxRuntime.jsx("div",{...de(oe,Qe),className:`${jr(he.align,he.dataType)} kanuni-datagrid-cell--pinned${Ee?" kanuni-datagrid-pin-edge-left":""}${_(oe)}${Q(oe)}${u(he,oe)}${Xe(oe,Qe)}${Ne(oe)}${Xr(Ze(oe))}`,...Re(oe),style:{width:ye(A),insetInlineStart:r.leftOffsets[J]+x},children:Jr(Ze(oe),R===oe,()=>je(he,oe,Qe))},oe));});let Ce=me?.lead??null,Ke=T-(me?.leadingDelta??0),Rt=w-(me?.trailingDelta??0);Ke>0&&ae.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Ke}},"__lead"));let ln=(A,J)=>{let he=A.def,Ee=A.state.id,oe=Do("center",J,ne),Qe=p?.get(Ee),eo=Qe===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",Ln=Ce&&Ce.column.state.id===Ee?Ce.width:ye(A);return jsxRuntime.jsx("div",{...de(Ee,oe),...Re(Ee),className:`${jr(he.align,he.dataType)}${eo}${_(Ee)}${Q(Ee)}${u(he,Ee)}${Xe(Ee,oe)}${Ne(Ee)}${Xr(Ze(Ee))}`,style:Qe===void 0?{width:Ln}:{width:Ln,insetInlineStart:Qe+x},children:Jr(Ze(Ee),R===Ee,()=>je(he,Ee,oe))},Ee)},Pn=Ce?r.center.indexOf(Ce.column):-1,dt=Ce===null;return a.forEach((A,J)=>{let he=s?.[J]??J;!dt&&he>Pn&&(ae.push(ln(Ce.column,Pn)),dt=true),!me?.covered.has(A.state.id)&&ae.push(ln(A,he));}),dt||ae.push(ln(Ce.column,Pn)),Rt>0&&ae.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Rt}},"__trail")),r.right.forEach((A,J)=>{let he=A.def,Ee=J===0,oe=A.state.id;if(me?.covered.has(oe))return;let Qe=Do("right",J,ne);ae.push(jsxRuntime.jsx("div",{...de(oe,Qe),className:`${jr(he.align,he.dataType)} kanuni-datagrid-cell--pinned${Ee?" kanuni-datagrid-pin-edge-right":""}${_(oe)}${Q(oe)}${u(he,oe)}${Xe(oe,Qe)}${Ne(oe)}${Xr(Ze(oe))}`,...Re(oe),style:{width:ye(A),insetInlineEnd:r.rightOffsets[J]},children:Jr(Ze(oe),R===oe,()=>je(he,oe,Qe))},oe));}),jsxRuntime.jsxs("div",{className:`kanuni-datagrid-row${k&&n%2===1?" kanuni-datagrid-row--odd":""}${y?" 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,lt)}`:""}`,role:"row","aria-rowindex":n+1+d,"aria-selected":re||!N?void 0:y,"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?at: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:st===void 0?void 0:{height:st},draggable:Le?.draggable&&!re?true:void 0,onDragStart:Le&&!re?A=>Le.onDragStart(t,A):void 0,onDragEnd:Le&&!re?()=>Le.onDragEnd():void 0,onDragOver:Le&&!re?A=>Le.onDragOver(t,A):void 0,onDrop:Le&&!re?A=>Le.onDrop(t,A):void 0,onMouseDown:F&&!re?A=>F(t,A):void 0,onClick:re?()=>Fe?.(String(re.key)):S?A=>S(t,n,A):void 0,onDoubleClick:q?A=>q(t,n,A):void 0,onContextMenu:Te?A=>Te(t,n,A):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:y,focused:c}):ae]})}var vn=react.memo(Ku);var Tn=26;function ea(e,t){return datagridCore.computeHeaderBands(e,t)}function ta(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function na(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 $u({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:k}){if(l<=0)return null;let y=Gt({statusColumn:p,rowNumberColumn:T,detailColumn:s,checkboxColumn:a}).total,N=ea(e.left,l),f=ea(t,l),E=ea(e.right,l),O=(P,R,c)=>{let D=c;for(let L=0;L<R;L++)D+=P[L].width;return D};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:l},(P,R)=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":R+1,style:{width:e.totalWidth+y,height:w,top:R*w},children:[y>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned",style:{width:y,insetInlineStart:0},"aria-hidden":"true"}),(N[R]??[]).map((c,D)=>jsxRuntime.jsx("div",{className:ta(c,` kanuni-datagrid-band-cell--pinned${D===(N[R]?.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:O(N[R]??[],D,y)},title:c.spacer?void 0:c.label,children:na(c,k)},c.columnIds[0])),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(f[R]??[]).map(c=>jsxRuntime.jsx("div",{className:ta(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:na(c,k)},c.columnIds[0])),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),(E[R]??[]).map((c,D)=>{let L=E[R]??[],$=0;for(let W=D+1;W<L.length;W++)$+=L[W].width;return jsxRuntime.jsx("div",{className:ta(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:$},title:c.spacer?void 0:c.label,children:na(c,k)},c.columnIds[0])})]},R))})}var ra=react.memo($u);var Yu=()=>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 qu(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function Xu({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,sort:s,sortable:p,onSort:T,headerFilter:w=false,filteredColumns:k,onOpenFilter:y,filterIconMode:N="hover",checkboxColumn:f=false,detailColumn:E=false,statusColumn:O=false,rowNumberColumn:P=false,rowNumberHeader:R="#",selectAllState:c="none",selectAllDisabled:D=false,onToggleSelectAll:L,draggable:$=false,reorderable:W=false,onReorder:H,resizable:C=false,onResize:B,onAutoFit:M,onHeaderContextMenu:g,groupLevels:d,onHeaderClick:S,getHeaderClassName:F,renderHeaderLabel:q}){let z=ve(),pe=Gt({statusColumn:O,rowNumberColumn:P,detailColumn:E,checkboxColumn:f}),Te=new Map(s.map((ee,ae)=>[ee.columnId,{direction:ee.direction,order:ae}])),se=new Set(k??[]),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();},fe=ee=>{let ae=Fe.indexOf(te),v=Math.min(Fe.length-1,Math.max(0,ae+ee));v!==ae&&ie(Fe[v]);},De=react.useRef(null),Se=react.useRef(false),[I,le]=react.useState(null),V=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 v=De.current;if(!W||!v||v===ee||j(v)!==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 v=De.current;if(le(null),!W||!v||v===ee||j(v)!==j(ee))return;if(ae.preventDefault(),ae.stopPropagation(),Ge(ae.clientX,ae.currentTarget.getBoundingClientRect())==="before")H?.(v,ee);else {let K=V[V.indexOf(ee)+1];H?.(v,K===v?V[V.indexOf(ee)+2]:K);}De.current=null;},[Oe,at]=react.useState(null),lt=(ee,ae)=>{if(!C)return;ae.preventDefault(),ae.stopPropagation();let v=ae.currentTarget,Z=ae.clientX,K=ee.state.width,de=Se.current?-1:1,X=ee.state.id;at(X),v.setPointerCapture(ae.pointerId);let He=K,re=false,qe=Ue=>{re=true,He=K+(Ue.clientX-Z)*de,B?.(X,He,false);},We=()=>{v.releasePointerCapture?.(ae.pointerId),v.removeEventListener("pointermove",qe),v.removeEventListener("pointerup",We),v.removeEventListener("pointercancel",We),re&&B?.(X,He,true),at(null);};v.addEventListener("pointermove",qe),v.addEventListener("pointerup",We),v.addEventListener("pointercancel",We);},st=(ee,ae,v)=>{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),qe=$&&Z.groupable!==false||W&&Z.reorderable!==false,We=I?.id===K?I.side:null,Ue=F?.(K);return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-header-cell${ae}${Ue?` ${Ue}`:""}${de?" kanuni-datagrid-header-cell--sortable":""}${We?` kanuni-datagrid-header-cell--drop-${We}`:""}${Oe===K?" kanuni-datagrid-header-cell--resizing":""}${Z.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:v,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:qe&&Oe===null,onDragStart:ge=>{ge.dataTransfer.setData("text/x-kanuni-column",K),ge.dataTransfer.effectAllowed="move",De.current=K,Se.current=getComputedStyle(ge.currentTarget).direction==="rtl";},onDragEnd:()=>{De.current=null,le(null);},onDragOver:W?ge=>Le(K,ge):void 0,onDragLeave:W?()=>le(ge=>ge?.id===K?null:ge):void 0,onDrop:W?ge=>_e(K,ge):void 0,onContextMenu:g&&!datagridCore.isChromeColumn(K)?ge=>g(K,ge):void 0,onClick:de||S?ge=>{S?.(K,ge)||de&&T(K,ge.shiftKey);}:void 0,onKeyDown:ge=>{ge.key==="ArrowRight"?(ge.preventDefault(),fe(1)):ge.key==="ArrowLeft"?(ge.preventDefault(),fe(-1)):ge.key==="Home"?(ge.preventDefault(),ie(Fe[0])):ge.key==="End"?(ge.preventDefault(),ie(Fe[Fe.length-1])):X&&ge.altKey&&ge.key==="ArrowDown"?(ge.preventDefault(),y?.(K,ge.currentTarget)):de&&(ge.key==="Enter"||ge.key===" ")&&(ge.preventDefault(),T(K,ge.shiftKey));},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-header-label",id:`${Me}-${encodeURIComponent(K)}`,children:q?.(K)??qu(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":""}${N==="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:ge=>{ge.stopPropagation(),y?.(K,ge.currentTarget);},children:jsxRuntime.jsx(Yu,{})}),C&&Z.resizable!==false&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":K,role:"presentation",onPointerDown:ge=>lt(ee,ge),onDoubleClick:ge=>{ge.stopPropagation(),M?.(K);},onClick:ge=>ge.stopPropagation()})]},K)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/Tn)+1,style:{width:n.totalWidth+pe.total,top:e||void 0},children:[O&&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:pe.inset("statusColumn")}}),P&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":pe.colIndex("rowNumberColumn"),"aria-label":z.rowNumberAria,style:{width:Cn,insetInlineStart:pe.inset("rowNumberColumn")},children:R??""}),E&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":pe.colIndex("detailColumn"),"aria-label":z.detailsAria,style:{width:Go,insetInlineStart:pe.inset("detailColumn")}}),f&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":pe.colIndex("checkboxColumn"),style:{width:Eo,insetInlineStart:pe.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)=>st(ee,` kanuni-datagrid-header-cell--pinned${ae===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:ee.state.width,insetInlineStart:n.leftOffsets[ae]+pe.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?st(ee,"",{width:ee.state.width}):st(ee," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:ee.state.width,insetInlineStart:ae+pe.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((ee,ae)=>st(ee,` kanuni-datagrid-header-cell--pinned${ae===0?" kanuni-datagrid-pin-edge-right":""}`,{width:ee.state.width,insetInlineEnd:n.rightOffsets[ae]}))]})}var ia=react.memo(Xu);function sa(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 Zu({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:k=false,placeholder:y,onChange:N,onCommit:f,periodSuggestions:E,periodListId:O,operators:P,onOperatorChange:R,renderCustom:c}){let D=ve(),L=Gt({statusColumn:w,rowNumberColumn:k,detailColumn:T,checkboxColumn:p}),$=y??D.filterPlaceholder,W=(H,C,B)=>{let M=H.state.id,g=H.def.filterable!==false,d=g?c?.(M):void 0,S=g&&d===void 0?datagridCore.customFilterOperators(H.def):[],F=S.some(z=>z.id===P?.[M])?P[M]:"",q=S.find(z=>z.id===F)?.operandType==="none";return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-cell${C}`,role:"gridcell",style:B,"data-column-id":M,children:[g&&d!==void 0&&d,g&&d===void 0&&S.length>0&&jsxRuntime.jsxs("select",{className:"kanuni-datagrid-filter-operator",value:F,"aria-label":datagridCore.fillText(D.filterOperatorAria,{column:H.def.headerName??M}),"data-filter-operator-for":M,onChange:z=>R?.(M,z.target.value),children:[jsxRuntime.jsx("option",{value:"",children:D.filterOperatorDefault}),S.map(z=>jsxRuntime.jsx("option",{value:z.id,children:z.label},z.id))]}),g&&d===void 0&&jsxRuntime.jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:s[M]??"",placeholder:$,"aria-label":datagridCore.fillText(D.filterColumnAria,{column:H.def.headerName??M}),"data-filter-for":M,disabled:q||void 0,list:H.def.dataType==="date"&&O&&F===""?O:void 0,onChange:z=>N(M,z.target.value),onKeyDown:z=>{z.key==="Enter"&&f?.(M,z.target.value);},onBlur:z=>f?.(M,z.target.value)})]},M)};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:[O&&E&&E.length>0&&jsxRuntime.jsx("datalist",{id:O,children:E.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)=>W(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?W(H,"",{width:H.state.width}):W(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)=>W(H,` kanuni-datagrid-filter-cell--pinned${C===0?" kanuni-datagrid-pin-edge-right":""}`,{width:H.state.width,insetInlineEnd:n.rightOffsets[C]}))]})}var da=react.memo(Zu);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),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(),k=e.top+w.height+n>window.innerHeight,y=e.top-w.height-n*2,N=k&&y>n?y:e.top;s({left:Math.max(n,Math.min(e.left,window.innerWidth-w.width-n)),top:Math.max(n,Math.min(N,window.innerHeight-w.height-n))}),r&&T.focus();},[e.left,e.top,n,r]);return react.useEffect(()=>{let T=y=>{let N=l.current;N&&!N.contains(y.target)&&t();},w=y=>{y.key==="Escape"&&t();},k=y=>{let N=l.current,f=y.target;N&&f instanceof Node&&N.contains(f)||t();};return document.addEventListener("mousedown",T),document.addEventListener("keydown",w),window.addEventListener("scroll",k,true),()=>{document.removeEventListener("mousedown",T),document.removeEventListener("keydown",w),window.removeEventListener("scroll",k,true);}},[t]),{position:a,ref:p,elementRef:l}}var xn=25,Yn=new Map,Cl=200,cc=200,kl=8;function mc(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 pc=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 fc(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 ga={value:void 0,label:""},Po=e=>e.value===null||e.value===void 0;function gc({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:fc(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 wa({gridId:e,columnId:t,headerLabel:n,entries:r,initialSelected:l,anchor:a,loading:s=false,dark:p,onApply:T,onClose:w,onCustom:k,truncated:y=false,onSearch:N,pager:f,labels:E}){let O=mc(E),[,P]=react.useReducer(v=>v+1,0);react.useEffect(()=>f?f.subscribe(P):void 0,[f]);let[R,c]=react.useState(""),[D,L]=react.useState(0),[$,W]=react.useState(()=>new Set(l??r.map(datagridCore.distinctEntryKey))),[H,C]=react.useState(false),B=react.useRef(null),M=react.useRef(null),[g,d]=react.useState(0),[S,F]=react.useState(240),q=`${e??""}:${t}`,z=Yn.get(q),pe=react.useRef(z?.scrollTop??null),[Te,se]=react.useState(z&&z.width&&z.height?{width:z.width,height:z.height}:null),Fe=react.useCallback(v=>{B.current=v,v?.focus();},[]),b=react.useRef(null),Y=react.useMemo(()=>{let v=datagridCore.foldText(R.trim());if(!v||y)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!==""&&v.includes(Z.needle)?Z.result.filter(de=>datagridCore.foldText(de.label).includes(v)):r.filter((de,X)=>Z.lowered[X].includes(v));return Z.needle=v,Z.result=K,K},[r,R,y]);react.useEffect(()=>{if(!N)return;let v=setTimeout(()=>N(R),150);return ()=>clearTimeout(v)},[R,N]),react.useEffect(()=>{if(!f)return;let v=setTimeout(()=>{if(f.getSearch()===R.trim())return;f.setSearch(R);let Z=M.current;Z&&(Z.scrollTop=0),d(0),L(0);},150);return ()=>clearTimeout(v)},[f,R]),react.useEffect(()=>{H||!l||W(new Set(l));},[l,H]),react.useEffect(()=>{H||l||W(new Set(r.map(datagridCore.distinctEntryKey)));},[r,H,l]);let Me=react.useCallback(v=>{M.current=v,v&&F(v.clientHeight||240);},[]);react.useEffect(()=>{let v=M.current;!v||pe.current===null||s||v.scrollHeight<=v.clientHeight||(v.scrollTop=pe.current,pe.current=null,d(v.scrollTop));});let te=react.useMemo(()=>{if(R.trim()!=="")return Y;let v=Y.findIndex(Po);return v<0?Y:[...Y.slice(0,v+1),ga,...Y.slice(v+1)]},[Y,R]),ie=react.useMemo(()=>{let v=te.length,Z=Math.max(0,Math.floor(g/xn)-kl),K=Math.ceil(S/xn)+kl*2,de=Math.min(Z,Math.max(0,v-1)),X=Math.min(v,de+K);return {start:de,end:X,count:v,rows:te.slice(de,X)}},[te,g,S]);react.useEffect(()=>{let v=M.current;f&&v&&F(v.clientHeight||240);},[f,s,f?.isLoading(),f?.getRowCount()]);let fe=f?f.getWindow(g,Math.max(S,150)):null,De=fe?.start??0,Se=fe?.end??0;react.useEffect(()=>{f&&f.ensure(De,Se);},[f,De,Se,g]);let I=f?f.getRowCount():te.length,le=s||(f?f.isLoading():false),V=nn({anchor:a,onClose:w}),[j,Ge]=react.useState(null),Le=(j??V.position.left)+(Te?.width??260)+48<window.innerWidth?"right":"left",_e=v=>{v.preventDefault(),v.stopPropagation();let Z=V.elementRef.current;if(!Z)return;let K=Z.getBoundingClientRect(),de=Le,X={x:v.clientX,y:v.clientY,w:K.width,h:K.height,left:K.left},He=null,re=We=>{let Ue=We.clientX-X.x,ge=We.clientY-X.y,i=window.innerHeight-K.top-12,je=Math.min(i,Math.max(cc,X.h+ge));if(de==="right"){let Xe=window.innerWidth-X.left-12;He={width:Math.min(Xe,Math.max(Cl,X.w+Ue)),height:je},se(He);}else {let Xe=X.left+X.w,Ne=Xe-12,Ze=Math.min(Ne,Math.max(Cl,X.w-Ue));He={width:Ze,height:je},se(He),Ge(Xe-Ze);}M.current&&F(M.current.clientHeight);},qe=()=>{if(window.removeEventListener("pointermove",re),window.removeEventListener("pointerup",qe),He){let We=Yn.get(q);Yn.set(q,{scrollTop:We?.scrollTop??M.current?.scrollTop??0,width:Math.round(He.width),height:Math.round(He.height)});}};window.addEventListener("pointermove",re),window.addEventListener("pointerup",qe);},Oe=react.useCallback(v=>{C(true),W(Z=>{let K=new Set(Z);if(v===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(v)?K.delete(v):K.add(v),K});},[r]),at=react.useCallback(v=>L(v),[]),lt=()=>{if(le)return;if(f){T(f.buildFilter(t));return}if($.size===r.length){T(null);return}let v=r.filter(X=>$.has(datagridCore.distinctEntryKey(X))),Z=v.some(Po),K=v.filter(X=>!Po(X)),de;datagridCore.distinctNonBlankTicked(r,$)?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);},st=v=>{let Z=Math.max(0,Math.min(I-1,v));if(L(Z),f){let de=M.current;de&&(v<=0||v>=I-1)&&(de.scrollTop=v<=0?0:de.scrollHeight),requestAnimationFrame(()=>{let X=V.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${Z}"]`);X?.focus(),X?.scrollIntoView({block:"nearest"});});return}let K=V.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${Z}"]`);K?.focus(),K?.scrollIntoView({block:"nearest"});},ee=v=>v.key.length===1&&!v.ctrlKey&&!v.metaKey&&!v.altKey,ae=v=>{let Z=v.target===B.current;if(v.key==="Tab"){let K=V.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&&(!v.shiftKey&&(re===He||re===K)?(v.preventDefault(),X.focus()):v.shiftKey&&(re===X||re===K)&&(v.preventDefault(),He.focus()));return}if(v.key==="Backspace"&&!Z){v.preventDefault(),B.current?.focus(),c(K=>K.slice(0,-1)),L(0);return}if(v.key==="ArrowDown"){v.preventDefault(),st(Z?0:D+1);return}if(v.key==="ArrowUp"){v.preventDefault(),st(Z?f?0:te.length-1:D-1);return}if(!Z&&(v.key==="Home"||v.key==="End")){v.preventDefault(),st(v.key==="Home"?0:I-1);return}if(v.key===" "&&!Z){if(v.preventDefault(),f){let de=f.getRow(D);de&&f.toggle(de);return}let K=te[D];K&&Oe(K===ga?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(K));return}if(v.key==="Enter"){v.preventDefault(),lt();return}!Z&&ee(v)&&v.key!==" "&&(v.preventDefault(),B.current?.focus(),c(K=>K+v.key),L(0));};return jsxRuntime.jsx(pt,{dark:p,children:jsxRuntime.jsxs("div",{ref:V.ref,className:"kanuni-datagrid-filter-popup",style:{left:j??V.position.left,top:V.position.top,...Te?{width:Te.width,height:Te.height,maxHeight:"none"}:null},role:"dialog","aria-label":O.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:O.search,value:R,onChange:v=>{c(v.target.value),L(0);},"data-testid":"dg-filter-search"}),!f&&y&&jsxRuntime.jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:O.truncated}),k&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-custom","data-testid":"dg-filter-custom",onClick:k,children:O.custom}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(f)return f.selectAll();C(true),R.trim()===""?W(new Set(r.map(datagridCore.distinctEntryKey))):W(v=>{let Z=new Set(v);for(let K of Y)Z.add(datagridCore.distinctEntryKey(K));return Z});},children:O.selectAll}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(f)return f.clear();C(true),R.trim()===""?W(new Set):W(v=>{let Z=new Set(v);for(let K of Y)Z.delete(datagridCore.distinctEntryKey(K));return Z});},children:O.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:v=>{let Z=v.target.scrollTop;d(Z),pe.current=null;let K=Yn.get(q);Yn.set(q,{...K,scrollTop:Z});},children:[le&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:O.loading}),!le&&I===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:O.noMatch}),f&&fe&&I>0&&jsxRuntime.jsx("div",{style:{height:fe.totalHeight,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${fe.offsetY}px)`},children:Array.from({length:fe.end-fe.start},(v,Z)=>{let K=fe.start+Z,de=f.getRow(K);return jsxRuntime.jsx(gc,{index:K,row:de,active:K===D,checked:de?f.isChecked(de):false,text:O,onToggle:X=>f.toggle(X),onFocus:at},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((v,Z)=>{let K=ie.start+Z,de=v===ga,X=de?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(v);return jsxRuntime.jsx(pc,{itemKey:X,label:v.label,display:de?O.nonBlank:vl(v,O),index:K,active:K===D,checked:de?datagridCore.distinctNonBlankTicked(r,$):$.has(X),onToggle:Oe,onFocus:at},X)})})})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:w,children:O.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:lt,disabled:le,"data-testid":"dg-filter-apply",children:O.apply})]})]})})}function ha(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 ya({controller:e,columnId:t,surface:n,close:r}){let[l,a]=react.useState(()=>ha(e,t,n));react.useEffect(()=>(a(ha(e,t,n)),e.events.on("filterChanged",()=>{a(ha(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 Rc='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,k=react.useCallback(y=>{w(y),!(!y||T.current)&&(T.current=true,(y.querySelector(Rc)??y).focus({preventScroll:true}));},[w]);return jsxRuntime.jsx(pt,{dark:l,children:jsxRuntime.jsx("div",{ref:k,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(ya,{controller:e,columnId:t,surface:"popup",close:a})})})}var Ra="text/x-kanuni-column";function Tc({columns:e,levels:t,onSetLevels:n,maxLevels:r=1,onExpandAll:l,onCollapseAll:a,emptyText:s}){let p=ve(),T=s??p.groupPanelHint,[w,k]=react.useState(false),y=react.useRef(null),[N,f]=react.useState(null),E=C=>e.find(M=>M.state.id===C)?.def.headerName??C,O=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)),R=(C,B)=>{let M=t.filter(d=>d!==C),g=Math.max(0,Math.min(M.length,B));n([...M.slice(0,g),C,...M.slice(g)]);},c=(C,B,M)=>{if(C===B)return;let d=t.filter(S=>S!==C).indexOf(B);d<0||R(C,M==="before"?d:d+1);},D=(C,B)=>{let M=C+B;M<0||M>=t.length||c(t[C],t[M],B<0?"before":"after");},L=(C,B)=>C<B.top+B.height/2?"before":"after",$=(C,B)=>{B.preventDefault(),B.stopPropagation();let M=L(B.clientY,B.currentTarget.getBoundingClientRect());f(null),k(false);let g=y.current;if(y.current=null,g){c(g,t[C],M);return}let d=B.dataTransfer.getData(Ra);if(!d||t.includes(d))return;if(t.length>=r){O(d);return}let S=M==="before"?C:C+1;n([...t.slice(0,S),d,...t.slice(S)]);},W=(C,B,M)=>{let g=M.ctrlKey||M.metaKey;g&&(M.key==="ArrowUp"||M.key==="ArrowLeft")?(M.preventDefault(),D(C,-1)):g&&(M.key==="ArrowDown"||M.key==="ArrowRight")?(M.preventDefault(),D(C,1)):(M.key==="Delete"||M.key==="Backspace")&&(M.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(),k(true);},onDragLeave:()=>k(false),onDrop:C=>{if(C.preventDefault(),k(false),f(null),y.current){y.current=null;return}O(C.dataTransfer.getData(Ra));},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${N?.index===B?` kanuni-datagrid-group-level--drop-${N.side}`:""}`,style:{"--dg-group-level":B},"data-group-level":B,onDragOver:M=>{M.preventDefault(),M.stopPropagation();let g=L(M.clientY,M.currentTarget.getBoundingClientRect());f(d=>d?.index===B&&d.side===g?d:{index:B,side:g});},onDragLeave:()=>f(M=>M?.index===B?null:M),onDrop:M=>$(B,M),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})}: ${E(C)}`,onDragStart:M=>{y.current=C,M.dataTransfer.effectAllowed="move",M.dataTransfer.setData(Ra,C);},onDragEnd:()=>{y.current=null,f(null);},onKeyDown:M=>W(B,C,M),children:[r>1&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-chip-level",children:B+1}),E(C),jsxRuntime.jsx("button",{type:"button","aria-label":datagridCore.fillText(p.groupRemoveAria,{column:E(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=>O(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 Ca=react.memo(Tc);function Gc({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:k,emptyHint:y="",position:N="bottom",bandOffset:f=0,headerRowsBetween:E=0}){let O=ve(),P=datagridCore.summaryTypeLabels(O),R=new Map(l.map(L=>[L.columnId,L])),c=Gt({statusColumn:T,rowNumberColumn:w,detailColumn:p,checkboxColumn:s}).total,D=(L,$,W)=>{let H=L.state.id,C=R.get(H),B=C?a[datagridCore.summaryKey(C.columnId,C.type)]:void 0,M=L.def.dataType==="number"||L.def.dataType==="bigint",g=datagridCore.isChromeColumn(H)?void 0:k;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-footer-cell${$}${M?" kanuni-datagrid-footer-cell--number":""}${C?" kanuni-datagrid-footer-cell--active":""}`,style:W,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:g?d=>g(H,d):void 0,onClick:g?d=>g(H,d):void 0,children:C?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-value",children:datagridCore.formatSummaryValue(C,B,L.def)}):g?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-hint",children:y}):null},H)};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${N}`,role:"row","aria-label":O.columnTotalsAria,style:{width:e.totalWidth+c,"--dg-band-offset":`${f}px`,"--dg-pinned-gap":String(E)},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,$)=>D(L,` kanuni-datagrid-footer-cell--pinned${$===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:L.state.width,insetInlineStart:e.leftOffsets[$]+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,$)=>D(L,` kanuni-datagrid-footer-cell--pinned${$===0?" kanuni-datagrid-pin-edge-right":""}`,{width:L.state.width,insetInlineEnd:e.rightOffsets[$]}))]})}var Fo=react.memo(Gc);function Pc(e,t){return `__dg_pinned_${e}_${t}`}function Lc({gridId:e,side:t,rows:n,rowKeys:r,onUserRowContextMenu:l,layout:a,columnModel:s,centerColumns:p,centerIndices:T,stickyInsets:w,leadingSpacer:k,trailingSpacer:y,checkboxColumn:N=false,detailColumn:f=false,statusColumn:E=false,rowNumberColumn:O=false,rowHeight:P,bandOffset:R=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":`${R}px`,"--dg-pinned-gap":String(c)},children:n.map((L,$)=>{let W=r?.[$]??null,H={kind:"data",key:Pc(t,$),sourceIndex:-1,data:L};return jsxRuntime.jsx(vn,{gridId:e,node:H,index:$,layout:a,columnModel:s,centerColumns:p,centerIndices:T,stickyInsets:w,leadingSpacer:k,trailingSpacer:y,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:N,detailColumn:f,statusColumn:E,rowNumberColumn:O,rowNumber:null,headerRowCount:D,height:P,onRowContextMenu:W!==null&&l?(C,B,M)=>l(W,L,M):void 0},H.key)})})}var Ho=react.memo(Lc);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(k=>k())},[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,k)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-sticky-group${k===T.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:w.offset,height:w.height,zIndex:T.length-k},children:t(w.node,w.index,w.height)},String(w.node.key)))})}function ka({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 Vc(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 Uc=()=>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 zc({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:k=200,searchOptions:y,exportMenu:N=true,labels:f}){let E=Vc(f),[O,P]=react.useState(e.getSearchText()),[R,c]=react.useState(null),[D,L]=react.useState(null),[$,W]=react.useState(null),H=react.useId(),C=y?.debounce??k,B=y?.validate?.(O)??null,M=()=>{B===null&&e.getSearchText()!==O&&e.setSearchText(O);};react.useEffect(()=>{if(B!==null)return;let F=setTimeout(()=>{e.getSearchText()!==O&&e.setSearchText(O);},C);return ()=>clearTimeout(F)},[e,O,C,B]);let[g,d]=react.useState(()=>e.getSelectedCount());react.useEffect(()=>(d(e.getSelectedCount()),e.events.on("selectionChanged",()=>d(e.getSelectedCount()))),[e]);let S=async F=>{c(F),W(null);let q=await qn(e,F);q.error?W(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:y?.placeholder??E.search,value:O,maxLength:y?.maxLength,"aria-label":E.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:()=>{y?.applyOnBlur!==false&&M();},onKeyDown:F=>{F.key==="Enter"&&y?.applyOnBlur!==false&&M();}}),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(ka,{name:"columns"}),jsxRuntime.jsx("span",{children:E.columns})]}),N&&(n&&e.canExportAll()||r||l)&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":E.exportMenu,title:E.exportMenu,disabled:R!==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:R?jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsxRuntime.jsx(Uc,{})}),D&&jsxRuntime.jsxs(rn,{anchor:D,onClose:()=>L(null),dark:s,role:"menu",label:E.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:R!==null,"data-testid":"dg-export-csv",onClick:()=>S("csv"),children:R==="csv"?E.exporting:E.csv}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:R!==null,"data-testid":"dg-export-excel",onClick:()=>S("excel"),children:R==="excel"?E.exporting:E.excel}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:R!==null||g===0,"data-testid":"dg-export-excel-selected",onClick:()=>S("excel-selected"),children:R==="excel-selected"?E.exporting:E.excelSelected}),l&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:R!==null,"data-testid":"dg-export-pdf",onClick:()=>S("pdf"),children:R==="pdf"?E.exporting:E.pdf})]}),w,$&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:$})]})}var Ta=react.memo(zc);var Jc=8;function jc(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 xa({controller:e,columns:t,anchor:n,onClose:r,dark:l,labels:a}){let s=jc(a),[p,T]=react.useState(""),w=e.getColumnModel(),k=P=>w.getDef(P.id)?.headerName??P.id,y=t.filter(P=>!datagridCore.isChromeColumn(P.id)),N=y.filter(P=>!w.getDef(P.id)?.hideInChooser),f=y.filter(P=>P.visible).length,E=p.trim().toLocaleLowerCase(),O=E?N.filter(P=>k(P).toLocaleLowerCase().includes(E)):N;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}),N.length>Jc&&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:[O.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-empty",children:s.empty}),O.map(P=>{let R=P.visible&&f===1;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsxRuntime.jsx("input",{type:"checkbox",checked:P.visible,disabled:R,"data-column-toggle":P.id,onChange:()=>e.setColumnVisible(P.id,!P.visible)}),jsxRuntime.jsx("span",{children:k(P)})]},P.id)})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",disabled:f===N.length,onClick:()=>N.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 nm(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 om({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:k,labels:y}){let N=nm(y),f=e<=0,E=e>=t-1,O=l===0?0:e*n+1,P=Math.min(l,(e+1)*n),R=react.useRef(null),c=react.useRef(null);return react.useEffect(()=>{let D=c.current,L=R.current;if(!L||!(D instanceof HTMLButtonElement)||!D.disabled)return;let $=document.activeElement;if($&&$!==document.body&&$!==D)return;let W=L.querySelector('[aria-current="page"]')??L.querySelector("button:not(:disabled)");W?.focus(),c.current=W;},[e,t]),jsxRuntime.jsxs("div",{ref:R,className:"kanuni-datagrid-pager",role:"navigation","aria-label":N.navigation,onFocus:D=>{c.current=D.target;},onBlur:D=>{let L=D.relatedTarget;L&&!R.current?.contains(L)&&(c.current=null);},children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsxRuntime.jsx("span",{children:N.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:[O.toLocaleString(),"\u2013",P.toLocaleString()," ",N.of," ",l.toLocaleString()]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsxRuntime.jsx("button",{type:"button","aria-label":N.first,disabled:f,onClick:()=>a(0),children:"\xAB"}),jsxRuntime.jsx("button",{type:"button","aria-label":N.previous,disabled:f,"data-testid":"dg-page-prev",onClick:p,children:"\u2039"}),w?datagridCore.pageButtonItems(e,t,k).map(D=>typeof D=="number"?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":datagridCore.fillText(N.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:[N.page," ",e+1," ",N.of," ",t]}),jsxRuntime.jsx("button",{type:"button","aria-label":N.next,disabled:E,"data-testid":"dg-page-next",onClick:s,children:"\u203A"}),jsxRuntime.jsx("button",{type:"button","aria-label":N.last,disabled:E,onClick:()=>a(t-1),children:"\xBB"})]})]})}var Da=react.memo(om);function um(e){let t=ve();return react.useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function cm({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:r,labels:l}){let a=um(l),s=ve(),[,p]=react.useState(0);react.useEffect(()=>e.events.on("filterChanged",()=>p(y=>y+1)),[e]);let T=e.getEffectiveFilter(),w=e.isFilterEnabled(),k=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:y=>e.setFilterEnabled(y.target.checked)}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:k??void 0,"data-testid":"dg-filter-panel-text",children:k??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 Sa=react.memo(cm);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,k]=react.useState({left:e,top:t}),[y,N]=react.useState(()=>n.findIndex(Ko)),[f,E]=react.useState(null),[O,P]=react.useState(null),R=react.useRef(null),[c,D]=react.useState(null);react.useEffect(()=>P(null),[f]);let L=react.useCallback((g,d)=>{if(E(g),g===null||!d)return;let S=d.getBoundingClientRect();D({left:S.left,right:S.right,top:S.top});},[]),$=g=>T.current?.querySelector(`[data-item-index="${g}"]`)??null,W=react.useCallback(g=>{if(R.current=g,!g||!c)return;let d=8,S=g.getBoundingClientRect(),F=Math.max(d,Math.min(c.top-4,window.innerHeight-S.height-d)),z=c.right+S.width+d<=window.innerWidth?c.right:Math.max(d,c.left-S.width);P({left:z,top:F});},[c]),H=react.useCallback(g=>{if(T.current=g,!g)return;let d=g.getBoundingClientRect(),S=8;k({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 F=S.target;R.current?.contains(F)||T.current&&!T.current.contains(F)&&l();},d=()=>l();return document.addEventListener("mousedown",g),window.addEventListener("scroll",d,true),()=>{document.removeEventListener("mousedown",g),window.removeEventListener("scroll",d,true);}},[l]);let C=(g,d)=>{let S=n.length;for(let F=1;F<=S;F++){let q=(g+d*F+S*S)%S;if(Ko(n[q]))return q}return g},B=g=>{let d=n[g];if(!(!d||!Ko(d))){if(d.items?.length){L(g,$(g));return}d.onSelect?.(r),l();}},M=g=>{switch(g.key){case "ArrowDown":N(d=>C(d,1));break;case "ArrowUp":N(d=>C(d,-1));break;case "Home":N(n.findIndex(Ko));break;case "End":N(C(0,-1));break;case "ArrowRight":if(n[y]?.items?.length)L(y,$(y));else return;break;case "ArrowLeft":if(f!==null)L(null);else return;break;case "Enter":case " ":B(y);break;case "Escape":l();break;case "Tab":l();return;default:return}g.preventDefault(),g.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:M,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===y?" 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?f===d:void 0,onMouseEnter:S=>{N(d),L(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))}),f!==null&&n[f]?.items?.length?jsxRuntime.jsx("div",{ref:W,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:O?{left:O.left,top:O.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[f].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 pm=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),Ma=pm?"\u2318":"Ctrl+",Al=`${Ma}C`,fm=`${Ma}X`,gm=`${Ma}V`;function En(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
3
+ `).length:0,()=>e.writeClipboard(n,"copy"));}function wm(e){navigator.clipboard?.writeText(e).catch(()=>{});}function hm(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 bm(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var ym={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function Na(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&&hm(e)&&s.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>En(e,{includeGroupHeaders:true})});let p=bm(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[ym[w]],disabled:w==="excel-selected"&&T,onSelect:()=>{qn(e,w).then(k=>{k.error&&l?.(k.error);});}}))});}return s.length>0&&r&&s.unshift({id:"__dg-sep-builtin",separator:true}),s}function Pa(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 Ia({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 k=T.current;k&&(k.focus(),k.select());},[]);let w=()=>{let k=s.trim();r(k===""?null:k);};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:k=>p(k.target.value),onKeyDown:k=>{k.key==="Enter"&&(k.ctrlKey||k.metaKey)&&(k.preventDefault(),w()),k.key==="Escape"&&(k.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 Tm(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 xm=new Set(["filtering","sorting","computing","encoding","exporting"]);function Ha({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",E=>s(E))),[e]);let w=a.busy&&a.background!==true;react.useEffect(()=>{if(!w){T(false);return}let E=setTimeout(()=>T(true),t);return ()=>clearTimeout(E)},[w,t]);let k=Tm(n);if(!l&&(!p||!w))return null;let y=a.phase?k[a.phase]:k.busy,N=a.progress===null?null:Math.max(0,Math.min(100,a.progress)),f=r&&a.phase!==null&&xm.has(a.phase)&&a.cancellable!==false;return jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-overlay",role:"status","aria-live":"polite","data-testid":"dg-loading-overlay","data-phase":a.phase??"busy","data-blocking":a.phase==="exporting"?"true":void 0,"aria-busy":"true",children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-card",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-spinner","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-label",children:y}),N!==null&&jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(N),"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:`${N}%`}})}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(N),"%"]})]}),f&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:k.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 Dm(){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 Sm(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function Em(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=Dm();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(Sm(a[T])){p.push(a[T]);continue}let w=a[T].textContent??"";if(w==="")continue;let k=n.measureText(w).width+20;k>s&&(s=k);}p.length>0&&(s=Math.max(s,Em(p)));}return s===0?null:Math.round(Math.min(640,Math.max(48,s)))}function Aa(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 Ka(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),k=react.useRef(null),y=react.useRef(false),N=react.useRef(null),f=react.useRef(null),E=react.useRef(t);E.current=t;let O=react.useCallback(g=>e.getRowByKey(g),[e]),P=(g,d)=>{let S=d.getBoundingClientRect();return g.clientY<S.top+S.height/2?"before":"after"},R=react.useCallback((g,d)=>{if(!datagridCore.isDataRow(g))return;f.current=g.key,N.current=g.key,y.current=false,k.current=null;let S={gridId:e.gridId,group:r,rowKey:g.key,row:g.data};d.dataTransfer.setData($o,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=N.current;g!==null&&e.notifyRowDragEnd({rowKey:g,dropped:y.current,overKey:k.current?.key??null,position:k.current?.side??null}),y.current=false,k.current=null,N.current=null,f.current=null,w(null),p(false);},[e]),D=react.useCallback(g=>g.dataTransfer.types.includes($o)?f.current!==null?l:a&&r!==null:false,[l,a,r]),L=react.useCallback((g,d)=>{if(!datagridCore.isDataRow(g)||!D(d))return;if(d.preventDefault(),d.dataTransfer.dropEffect="move",f.current===g.key){k.current=null,w(null);return}let S=P(d,d.currentTarget),F=k.current?.key!==g.key||k.current.side!==S;k.current={key:g.key,side:S},w(q=>q?.key===g.key&&q.side===S?q:{key:g.key,side:S}),F&&f.current!==null&&e.notifyRowDrag("move",{rowKey:f.current,overKey:g.key,position:S});},[D,e]),$=react.useCallback((g,d,S)=>{let F=null;try{let z=g.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=E.current?.onReorder;if(z){z({dragKey:F.rowKey,targetKey:d,position:S,row:O(F.rowKey)});return}e.moveRow(F.rowKey,d,S);return}!a||r===null||F.group!==r||E.current?.onAdd?.({row:F.row,rowKey:F.rowKey,otherGridId:F.gridId,targetKey:d,position:S});},[e,l,a,r,O]),W=react.useCallback((g,d)=>{if(w(null),!datagridCore.isDataRow(g)||!D(d))return;d.preventDefault(),d.stopPropagation();let S=P(d,d.currentTarget);y.current=true,k.current={key:g.key,side:S},$(d,g.key,S),f.current=null;},[D,$]),H=react.useCallback(g=>{D(g)&&(g.preventDefault(),g.dataTransfer.dropEffect="move");},[D]),C=react.useCallback(g=>{w(null),D(g)&&(g.preventDefault(),y.current=true,k.current=null,$(g,null,"after"),f.current=null);},[D,$]),B=react.useCallback(g=>{let d=g.relatedTarget;d&&g.currentTarget.contains(d)||f.current!==null&&(k.current=null,w(null),e.notifyRowDrag("leave",{rowKey:f.current}));},[e]);return {handlers:n?{draggable:s,setDraggable:p,onDragStart:R,onDragEnd:c,onDragOver:L,onDrop:W}:void 0,dropAt:n?T:null,bodyHandlers:n?{onDragOver:H,onDrop:C,onDragLeave:B}:void 0}}var Fm=400;function Yl(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function ql(e){return (e.textContent??"").trim()}function Hm(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 Ba({rootRef:e,columnModel:t,getRowNode:n,getNote:r,config:l,controller:a,gridId:s}){let p=l?.enabled!==false,T=l?.delay??Fm,w=l?.showOnTruncation!==false,k=l?.trigger??"hover",y=k!=="focus",N=k!=="hover"&&!!a&&!!s,f=l?.interactive===true,[E,O]=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){O(null);return}let R=e.current;if(!R)return;let c=null,D=null,L=null,$=null,W=s?`${s}-tooltip`:void 0,H=()=>{$?.removeAttribute("aria-describedby"),$=null;},C=()=>{c!==null&&(clearTimeout(c),c=null),D!==null&&(clearTimeout(D),D=null),L=null,H(),O(null);},B=()=>{D!==null&&(clearTimeout(D),D=null);},M=()=>{D=null,H(),O(null);},g=()=>{B(),c!==null&&(clearTimeout(c),c=null);},d=()=>{if(!f){C();return}D!==null&&clearTimeout(D),D=setTimeout(M,150);},S=(te,ie)=>{let{columnModel:fe,getRowNode:De,getNote:Se}=P.current,I=fe.getDef(ie);if(!I?.renderTooltip)return;let le=te.closest("[data-row-key]")?.dataset.rowKey,V=le===void 0?void 0:De(le);if(!V||Se&&Se(V.key,ie,V.data))return;let j=I.renderTooltip({value:fe.getCellValue(V.data,ie),row:V.data,node:V,column:I});return j==null||j===false?null:{content:j}},F=(te,ie,fe,De)=>{let Se=fe?void 0:S(te,ie);if(Se===null)return;let I=Se?"":fe?z(ie,te):q(te,ie);if(!Se&&!I)return;let le=te.getBoundingClientRect();B(),H(),De&&W&&(te.setAttribute("aria-describedby",W),$=te),O({text:I??"",...Se?{content:Se.content}:{},anchor:{top:le.top,left:le.left,width:le.width,height:le.height},...f?{interactive:true,hold:g,release:C}:{},...W?{id:W}:{}});},q=(te,ie)=>{let{columnModel:fe,getRowNode:De,getNote:Se,showOnTruncation:I}=P.current,le=fe.getDef(ie),V=te.closest("[data-row-key]")?.dataset.rowKey,j=V===void 0?void 0:De(V);return Hm({def:le,node:j,value:j?fe.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 fe=P.current.columnModel.getDef(te);if(fe?.headerTooltip)return fe.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},pe=te=>{if(!y)return;let fe=te.target?.closest("[data-column-id]")??null;if(fe===L){B();return}if(f&&D!==null?(c!==null&&(clearTimeout(c),c=null),L=null):C(),!fe||!R.contains(fe))return;let De=fe.dataset.columnId;if(!De)return;let Se=fe.classList.contains("kanuni-datagrid-header-cell");!Se&&!fe.closest("[data-row-key]")||(L=fe,c=setTimeout(()=>{c=null,!(L!==fe||!fe.isConnected)&&F(fe,De,Se,false);},P.current.delay));},Te=te=>{if(!y)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,!R.contains(document.activeElement)&&Date.now()-se>1500)return;let ie=document.getElementById(`${s}-cell-${String(te.rowKey)}-${te.columnId}`);!ie||!R.contains(ie)||(L=ie,F(ie,te.columnId,false,true));},P.current.delay));},Y=N?a.events.on("focusChanged",b):null,Me=te=>{(!N||te.key==="Escape")&&C();};return R.addEventListener("mouseover",pe),R.addEventListener("mouseout",Te),R.addEventListener("mousedown",C),R.addEventListener("pointerdown",Fe),R.addEventListener("keydown",Me),R.addEventListener("scroll",C,true),window.addEventListener("blur",C),()=>{C(),Y?.(),R.removeEventListener("mouseover",pe),R.removeEventListener("mouseout",Te),R.removeEventListener("mousedown",C),R.removeEventListener("pointerdown",Fe),R.removeEventListener("keydown",Me),R.removeEventListener("scroll",C,true),window.removeEventListener("blur",C);}},[p,e,y,N,f,a,s]),p?E: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:k,release:y,id:N}=e;return react.useLayoutEffect(()=>{if(!n)return;let{width:f,height:E}=n.getBoundingClientRect(),O=document.documentElement.clientWidth,P=document.documentElement.clientHeight,R=p.top+p.height+Jl,c=p.top-E-Jl,L=R+E+Mn<=P||c<Mn?R:c,$=Math.min(Math.max(Mn,p.left),Math.max(Mn,O-f-Mn));a({top:Math.min(L,P-E-Mn),left:$});},[n,s,T,p]),jsxRuntime.jsx(pt,{dark:t,kind:"tooltip",children:jsxRuntime.jsx("div",{ref:r,id:N,className:w?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:w?k:void 0,onMouseLeave:w?y: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 $a(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(),k=w.includes(a),y=s?.sortable!==false,N=r.getColumnStates().find(D=>D.id===a)?.pinned??null,f=s?.groupable!==false,E=r.canGroup(),O=[{id:"sort-asc",label:n.sortAsc,disabled:!y||T?.direction==="asc",onSelect:()=>r.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!y||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}];E&&O.push({id:"group",label:k?n.ungroup:n.groupBy,disabled:!f,onSelect:()=>{k?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&&O.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),O.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===N).map(D=>D.id),R=P.indexOf(a),c=s?.reorderable!==false&&R>=0;return O.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!c||R<=0,onSelect:()=>r.moveColumn(a,P[R-1])},{id:"move-right",label:n.moveRight,disabled:!c||R<0||R>=P.length-1,onSelect:()=>r.moveColumn(a,P[R+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:N==="left",onSelect:()=>r.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:N==="right",onSelect:()=>r.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:N==="sticky",onSelect:()=>r.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:N===null,onSelect:()=>r.setColumnPinned(a,null)}),O}var Yt=typeof window<"u"?react.useLayoutEffect:react.useEffect,os=1e8,Vo=null;function as(){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=`${os}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=os;let n=e.scrollTop;return qa=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(Vo=n),Vo}var qa=null;function fp(){return qa===null&&as(),qa}function za(e){return Math.abs(e)}function rs(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?Ya(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?Ya(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?Ya(a):a}function Ya(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 gp(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(wp,{...e})})})}function wp(e){let t=ve(),{className:n,style:r,dark:l=false,theme:a,palette:s,striped:p=true,emptyText:T,sortable:w=true,autoHeaderHeight:k=false,filterRow:y=false,headerFilter:N=false,filterIconMode:f="hover",columnReorder:E=true,columnResize:O=true,loadingOverlay:P=true,announcements:R=true,groupPanel:c=false,showRowCount:D=false,toolbar:L=false,toolbarExcel:$=false,toolbarPdf:W=false,filterPanel:H=false,filterPanelLabels:C,onOpenFilterBuilder:B,toolbarItemsBefore:M,toolbarItemsAfter:g,renderRow:d,stateStoring:S,headerMenu:F=true,focusedRow:q=false,focusedRowKey:z,onFocusedRowChanged:pe,footer:Te,footerMenu:se=true,onRowClick:Fe,onRowActivate:b,onReady:Y,renderCellContent:Me,getCellClassName:te,renderOverlay:ie,onCellPointerDown:fe,onCellPointerEnter:De,onCellDoubleClick:Se,onHeaderClick:I,getHeaderClassName:le,renderHeaderLabel:V,enterpriseEdition:j=false,renderDetail:Ge,renderEditForm:Le,density:_e,rowMenu:Oe,cellMenu:at,autoColumns:lt,rowDrag:st,tooltip:ee,pinnedTopRows:ae,pinnedBottomRows:v,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 h=X.dataSource;if(!Array.isArray(h)||h.length===0)return o??[];let G=typeof lt=="object"?lt:void 0;return lt===false?o??[]:datagridCore.inferColumns(h,G)},[X.columns,X.dataSource,lt]),re={...X,columns:He},qe=datagridCore.isPackagedTheme(a)?datagridCore.THEME_ROW_HEIGHT[a][_e??"normal"]:_e?datagridCore.DENSITY_ROW_HEIGHT[_e]:datagridCore.DEFAULT_ROW_HEIGHT,We=re.rowHeight===void 0?{...re,rowHeight:qe}:re,Ue=j?Number.POSITIVE_INFINITY:1,ge=Uo(We,j),{controller:i,rows:je,window:Xe,layout:Ne,sort:Ze,rowHeight:u,visibleCount:m}=yr(ge),x=e.cardView,_=x?x===true?"on":`${x.breakpoint??""}|${(x.columns??[]).join("|")}`:"",Q=react.useMemo(()=>datagridCore.resolveCardView(x),[_]),[ne,me]=react.useState(false),ye=react.useRef(Q);Yt(()=>{ye.current=Q;let o=Ct.current;me(o?datagridCore.showsCards(o.clientWidth,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]),dt=react.useRef(null),A=datagridCore.normalizeRowStatus(e.rowStatus),J=il(i,e.editing,j,{renderCellContent:Me,getCellClassName:te,onCellDoubleClick:Se},ne,{rootRef:dt,rowHeight:u,dark:l,savedDuration:A?.savedDuration??0}),he=J.rowStatusSource??e.rowStatusSource??null,Ee=o=>{if(!A||o.kind!=="data")return {};let h=datagridCore.resolveRowStatus(A,o.data,o.key,he);return h?{rowStatus:h.status,rowStatusText:datagridCore.rowStatusDescription(h,t),rowStatusTint:A.tint}:{}};react.useEffect(()=>{if(ne||!A?.messages){i.setMessageRows([],u);return}let o=A.get,h=datagridCore.rowMessageKeys(A,he).filter(G=>{if(!o)return true;let U=i.getDataRowNode(G)?.data;if(U===void 0)return true;let we=o({row:U,rowKey:G});return we===void 0||we==="error"});i.setMessageRows(h,u);});let oe=(o,h)=>{if(!A)return null;let G=datagridCore.rowMessageModel(A,o,h,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})]})},Qe=datagridCore.resolveToolbar(L),eo=J.renderCellContent,Ln=J.getCellClassName,ss=J.onCellDoubleClick,Ja=Vr(i,e.printLayout),In=Ja.active?{...Xe,rows:{...Xe.rows,start:0,end:je.length,offsetY:0,totalHeight:0}}:Xe,Fn=react.useMemo(()=>He.some(o=>o.autoHeight===true),[He]),ja=N&&i.canListDistinctValues();N&&!ja&&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=as();o!==null&&o<datagridCore.DEFAULT_MAX_SCROLL_OFFSET&&i.setMaxScrollOffset(o);let h=fp();h!==null&&i.setMaxCanvasHeight(h);},[i]),Yt(()=>{let o=Ct.current;if(!o)return;let h=()=>{i.setViewportSize(o.clientWidth,o.clientHeight),ye.current&&me(datagridCore.showsCards(o.clientWidth,ye.current)),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let we=o.querySelector(".kanuni-datagrid-rows"),ue=o.querySelector(".kanuni-datagrid-canvas");if(we&&ue){let ce=we.getBoundingClientRect(),Ie=ue.getBoundingClientRect();i.setChromeOffsets(ce.top-Ie.top,Ie.bottom-ce.bottom);}datagridCore.calibrateMaxScrollOffset(o,i);};if(h(),typeof ResizeObserver>"u")return;let G=new ResizeObserver(h);G.observe(o);let U=o.querySelector(".kanuni-datagrid-canvas");return U&&G.observe(U),()=>G.disconnect()},[i]),Yt(()=>{if(!k)return;let o=Ct.current?.querySelector(".kanuni-datagrid-canvas"),h=o?.querySelector(".kanuni-datagrid-header");if(!o||!h)return;let G=null,U=()=>{let ue=h.offsetHeight,ce=ue>0?`${ue}px`:null;ce!==G&&(G=ce,ce?o.style.setProperty("--dg-header-actual",ce):o.style.removeProperty("--dg-header-actual"));};U();let we=typeof ResizeObserver>"u"?null:new ResizeObserver(U);return we?.observe(h),()=>{we?.disconnect(),o.style.removeProperty("--dg-header-actual");}},[i,k]),Yt(()=>{if(!Fn)return;let o=Ct.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let h=i.getVirtualWindow(),G=i.getRows(),U=new Map(i.getMeasuredRowHeights()),we=false;for(let ue=h.rows.start;ue<h.rows.end;ue++){let ce=G[ue];if(!ce||ce.kind!=="data")continue;let Ie=o.querySelector(`[data-row-key="${CSS.escape(String(ce.key))}"]`);if(!Ie)continue;let Pe=Ie.getBoundingClientRect().height;Pe>0&&U.get(ce.key)!==Pe&&(U.set(ce.key,Pe),we=true);}we&&i.setMeasuredRowHeights(U);}),react.useEffect(()=>{if(Fn)return i.events.on("columnStateChanged",()=>{i.clearMeasuredRowHeights();})},[i,Fn]),react.useEffect(()=>i.events.on("scrollRequested",o=>{let h=Ct.current;if(!h)return;o.scrollTop!==void 0&&(h.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(h.scrollLeft=rs(o.scrollLeft,h)),i.setScroll(h.scrollTop,za(h.scrollLeft));let G=o.scrollTop;G===void 0||Math.abs(h.scrollTop-G)<=1||setTimeout(()=>{let U=Ct.current;!U||Math.abs(U.scrollTop-G)<=1||(U.scrollTop=G,i.setScroll(U.scrollTop,za(U.scrollLeft)));},0);}),[i]);let Za=zr(i,e.alignedGrids,Ct),ds=react.useCallback(o=>{let h=o.currentTarget;i.setScroll(h.scrollTop,za(h.scrollLeft)),Za.syncScroll(h.scrollLeft);},[i,Za]),us=react.useCallback((o,h)=>i.toggleSort(o,h),[i]);Aa(i,S);let sn=Ka(i,st);react.useEffect(()=>{z!=null&&i.getFocusedRowKey()!==z&&i.focusRow(z);},[i,z]),react.useEffect(()=>{if(pe)return i.events.on("focusedRowChanged",o=>pe({rowKey:o.rowKey,row:o.row}))},[i,pe]);let[Yo,cs]=react.useState(null);react.useEffect(()=>i.events.on("overlayChanged",o=>{cs(o.manual?o.overlay:null);}),[i]);let ms=react.useCallback(o=>{let h=i.getDataRowNode(o);if(h)return h;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,h,G)=>mt?mt.get({rowKey:o,columnId:h,row:G})??null:null,[mt]),Qa=Ba({rootRef:dt,columnModel:i.getColumnModel(),getRowNode:ms,getNote:mt?no:void 0,config:ee,controller:i,gridId:X.gridId}),[ei,ps]=react.useState(0);react.useEffect(()=>{let o=new Set,h=[i.events.on("cellsFlashed",({rowKeys:G,columnIds:U,duration:we})=>{let ue=dt.current;if(!ue)return;let ce=G.length?G.map(Be=>`[data-row-key="${CSS.escape(String(Be))}"]`).join(","):".kanuni-datagrid-row",Ie=U.length?U.map(Be=>`[data-column-id="${CSS.escape(Be)}"]`).join(","):"[data-column-id]",Pe=[];ue.querySelectorAll(ce).forEach(Be=>{Be.querySelectorAll(Ie).forEach(nt=>Pe.push(nt));});for(let Be of Pe)Be.classList.remove("kanuni-datagrid-cell--flash");ue.offsetWidth;for(let Be of Pe)Be.classList.add("kanuni-datagrid-cell--flash");let ze=setTimeout(()=>{for(let Be of Pe)Be.classList.remove("kanuni-datagrid-cell--flash");o.delete(ze);},we);o.add(ze);}),i.events.on("cellsRefreshed",({revision:G})=>ps(G))];return ()=>{h.forEach(G=>G()),o.forEach(clearTimeout);}},[i]);let fs=react.useCallback((o,h)=>i.moveColumn(o,h),[i]),gs=react.useCallback((o,h,G)=>i.setColumnWidth(o,h,G??true),[i]),qo=react.useCallback(o=>{if(!dt.current)return;let h=_o(dt.current,o);h!==null&&i.setColumnWidth(o,h);},[i]),Xo=react.useCallback(()=>{let o=dt.current;if(o)for(let h of i.getColumnStates()){if(!h.visible||h.flex)continue;let G=_o(o,h.id);G!==null&&i.setColumnWidth(h.id,G);}},[i]),Jo=react.useRef(null),[oo]=react.useState(()=>new datagridCore.RowMotion),ti=e.animateRows===true;react.useEffect(()=>{i.setAnimateRows(ti);},[i,ti]),react.useEffect(()=>{let o=()=>{i.getAnimateRows()&&oo.capture(Jo.current);},h=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(G=>i.events.on(G,o));return ()=>{h.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&&dt.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(jo.current=i,Xo());});let[Zo,ni]=react.useState({}),[Qo,oi]=react.useState({}),dn=react.useRef(Qo);dn.current=Qo;let ri=react.useRef(Zo);ri.current=Zo;let ai=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 ws=react.useMemo(()=>datagridCore.periodSuggestionList(ro),[ro]),un=react.useCallback((o,h)=>{let G=i.getColumnModel(),U=G.getDataType(o),we=datagridCore.findCustomFilterOperator(G.getDef(o),dn.current[o]??"");er.current=true;try{i.setColumnFilter(o,we?datagridCore.parseCustomFilterInput(o,h,we):datagridCore.parseFilterInput(o,h,U,tr.current),datagridCore.FILTER_PART_ROW);}finally{er.current=false;}},[i]),kt=react.useMemo(()=>datagridCore.createDebouncedCommit(ai),[ai]);react.useEffect(()=>()=>kt.cancelAll(),[kt]);let hs=react.useCallback((o,h)=>{ni(G=>({...G,[o]:h})),kt.schedule(o,()=>un(o,h));},[un,kt]),bs=react.useCallback((o,h)=>{dn.current={...dn.current,[o]:h},oi(dn.current),kt.cancel(o),un(o,ri.current[o]??"");},[un,kt]),ys=react.useCallback(o=>{if(i.getColumnModel().getDef(o)?.renderFilter)return jsxRuntime.jsx(ya,{controller:i,columnId:o,surface:"row"})},[i]),Rs=react.useCallback((o,h)=>{kt.cancel(o),un(o,h);},[un,kt]);react.useEffect(()=>i.events.on("filterChanged",()=>{if(er.current)return;let o=i.getColumnModel();oi(h=>{let G=null;for(let U of o.getOrder()){let we=o.getDef(U);if(!we?.filterOperators?.length||kt.isPending(U))continue;let ue=i.getColumnFilter(U,datagridCore.FILTER_PART_ROW),ce=h[U]??"",Ie=ce;ue?Ie=datagridCore.customFilterInputFromNode(ue,we)?.operatorId??"":datagridCore.findCustomFilterOperator(we,ce)?.operandType==="none"&&(Ie=""),Ie!==ce&&(G??={...h},G[U]=Ie);}return G&&(dn.current=G),G??h}),ni(h=>sa(h,{isPending:G=>kt.isPending(G),textFor:G=>{let U=i.getColumnFilter(G,datagridCore.FILTER_PART_ROW);if(!U)return "";let we=datagridCore.customFilterInputFromNode(U,o.getDef(G));return we?we.text:!datagridCore.isFilterGroup(U)&&!datagridCore.isBuiltInFilterOperator(U.operator)?null:datagridCore.filterInputFromNode(G,U,o.getDataType(G),tr.current)}},o.getOrder()));}),[i,kt]);let[Ve,wt]=react.useState(null),qt=react.useRef(null);react.useEffect(()=>{!Ve&&qt.current&&(qt.current.dispose(),qt.current=null);},[Ve]);let cn=react.useRef(0),[mn,nr]=react.useState(null),or=react.useRef(null),St=react.useCallback(()=>{let o=document.activeElement instanceof HTMLElement?document.activeElement:null;o?.closest(".kanuni-datagrid-portal")||(or.current={el:o,columnId:o?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??null});},[]),Cs=react.useCallback((o,h)=>{St();let G=h.getBoundingClientRect(),U=i.getColumnModel().getDef(o),we={left:G.left,top:G.bottom+2},ue=U?.headerName??o;if(U?.renderFilter){++cn.current,wt(null),nr({columnId:o,label:ue,anchor:we});return}nr(null);let ce=i.getColumnFilter(o,datagridCore.FILTER_PART_SET)??i.getColumnFilter(o,datagridCore.FILTER_PART_DEFAULT);if(!i.isRemote()){let ze=++cn.current;wt({columnId:o,label:ue,entries:[],selected:null,anchor:we,loading:true}),i.getDistinctValueSetAsync(o).then(({entries:Be,truncated:nt})=>{cn.current===ze&&wt(go=>go&&go.columnId===o?{...go,entries:Be,truncated:nt,capped:nt,selected:datagridCore.selectedLabelsFromFilter(ce,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:ue,entries:[],selected:null,anchor:we,loading:true,pager:Pe}),Pe.start().then(ze=>{if(cn.current!==Ie){Pe.dispose();return}if(ze.kind==="paged"){wt(nt=>nt&&nt.columnId===o?{...nt,loading:false}:nt);return}Pe.dispose(),qt.current===Pe&&(qt.current=null);let Be=i.sortDistinctEntries(ze.values);wt(nt=>nt&&nt.columnId===o?{...nt,pager:void 0,entries:Be,selected:datagridCore.selectedLabelsFromFilter(ce,Be,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:nt);});return}wt({columnId:o,label:ue,entries:[],selected:null,anchor:we,loading:true}),i.getDistinctValuesAsync(o).then(ze=>{cn.current===Ie&&wt(Be=>Be&&Be.columnId===o?{...Be,entries:ze,selected:datagridCore.selectedLabelsFromFilter(ce,ze,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:Be);});},[i,St]),ks=react.useCallback(o=>{Ve&&(i.setColumnFilter(Ve.columnId,o,datagridCore.FILTER_PART_SET),wt(null));},[i,Ve]),vs=Object.keys(i.getColumnStates().reduce((o,h)=>(i.getColumnFilter(h.id)&&(o[h.id]=true),o),{})),pn=i.getSelectionMode(),et=pn!=="none"&&(X.selection?.checkboxColumn??false),ii=(X.selection?.rowClick??(et?"toggle":"replace"))==="toggle",Ts=react.useCallback((o,h)=>{i.handleRowClick(o.key,{ctrlKey:h.ctrlKey||ii&&!h.shiftKey,metaKey:h.metaKey,shiftKey:h.shiftKey});},[i,ii]),xs=react.useCallback((o,h)=>i.focusCell(o.key,h),[i]),Ds=react.useCallback(o=>i.toggleRow(o.key),[i]),[fn,rr]=react.useState(null),Ss=react.useCallback(()=>rr(null),[]),[Hn,ar]=react.useState(null),li=react.useCallback((o,h)=>{let U=(dt.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(h)}"]`)??dt.current)?.getBoundingClientRect();return {left:U?.left??0,top:(U?.bottom??0)+2}},[]),Es=react.useCallback(o=>{let h=Hn;ar(null),!(!h||!mt?.onChange)&&mt.onChange({rowKey:h.rowKey,columnId:h.columnId,row:h.row,text:o});},[Hn,mt]),si=react.useCallback((o,h)=>{if(!mt?.onChange||mt.menu===false)return [];let G=o.columnId;if(!G)return [];let U=i.getRowKey(o.row),we=no(U,G,o.row),ue=()=>ar({rowKey:U,columnId:G,row:o.row,text:we??"",anchor:li(U,G)}),ce=[];return h&&ce.push({separator:true,id:"__note-sep"}),ce.push({id:"__note-edit",label:we?t.editNote:t.addNote,onSelect:ue}),we&&ce.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>mt.onChange?.({rowKey:U,columnId:G,row:o.row,text:null})}),ce},[mt,i,no,li,t]),[ao,io]=react.useState(null),ir=react.useRef({x:0,y:0}),di=react.useCallback(o=>Na(i,t,at,o,h=>{io({message:h,...ir.current}),console.error("[datagrid] export failed:",h);}),[i,t,at]),lo=react.useCallback((o,h,G,U,we)=>{if(G.kind!=="data")return;St();let ue={row:G.data,node:G,rowIndex:U,columnId:we,selectedKeys:i.getSelectedKeys()},ce=(typeof Oe=="function"?Oe(ue):Oe)??[],Ie=J.editRowMenuItem(G.key),Pe=Ie?[...ce,...ce.length>0?[{id:"dg-sep-edit",separator:true}]:[],Ie]:ce,ze=si(ue,Pe.length>0),Be=Pa(i,t,G.key,Pe.length+ze.length>0),nt=[...Pe,...ze,...Be,...di(Pe.length+ze.length+Be.length>0)];nt.length!==0&&(ir.current={x:o,y:h},io(null),rr({x:o,y:h,items:nt,context:ue}));},[Oe,i,t,si,di,St,J.editRowMenuItem]),ui=react.useCallback((o,h,G)=>{let U=Pa(i,t,o,false);if(U.length===0)return;G.preventDefault(),St();let we={row:h,node:{kind:"data",key:o,sourceIndex:-1,data:h},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:U,context:we});},[i,t,St]),ci=react.useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),gn=react.useCallback((o,h,G,U,we)=>{let ue=U??-1;o&&i.notifyRow(o,G,ue);let ce=ci(we);ce!==null&&i.notifyCell(h,G,ue,ce);},[i,ci]),Gs=react.useCallback((o,h,G)=>{Fe?.(o),gn("rowClicked","cellClicked",o,h,G);},[Fe,gn]),Ms=react.useCallback((o,h,G)=>{b?.(o),gn("rowDoubleClicked","cellDoubleClicked",o,h,G);},[b,gn]),Ns=react.useCallback((o,h,G)=>{if(gn(null,"cellContextMenu",o,h,G),o.kind!=="data"||!Oe&&!to&&at===false&&!i.isRowPinningEnabled()&&J.editRowMenuItem(o.key)===null)return;G.preventDefault(),i.isRowSelected(o.key)||i.handleRowClick(o.key,{});let U=G.target.closest("[data-column-id]")?.dataset.columnId??null;lo(G.clientX,G.clientY,o,h,U);},[Oe,to,at,i,lo,gn,J.editRowMenuItem]),[Ps,Ls]=react.useState(null),[Is,Fs]=react.useState(null),[lr,Hs]=react.useState(()=>X.grouping?.groupSummaries??false),[Xt,sr]=react.useState(null),[mi,dr]=react.useState(null),ur=fn!==null||Xt!==null||Ve!==null||mn!==null,pi=react.useRef(false);react.useEffect(()=>{if(pi.current&&!ur){let o=or.current;or.current=null;let h=o?.columnId?dt.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,G=o?.el?.isConnected?o.el:h,U=!document.activeElement||document.activeElement===document.body;G&&U&&(G.focus({preventScroll:true}),document.activeElement!==G&&h&&h.focus({preventScroll:true}));}pi.current=ur;},[ur]);let As=react.useCallback(()=>{i.getSelectedCount()>0?i.clearSelection():i.selectAll();},[i]),cr=et?i.getSelectableCount():m,mr=i.getSelectedCount(),Os=cr>0&&mr>=cr?"all":mr>0?"some":"none",Ks=react.useCallback(o=>{let h=o.target;if(h.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let G=h.tagName;if(G==="INPUT"||G==="TEXTAREA"||G==="SELECT"||h.isContentEditable||J.handleKeyDown(o))return;if((Oe||to||at!==false||i.isRowPinningEnabled())&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let ue=i.getFocus(),ce=ue?je.findIndex(Pe=>Pe.key===ue.rowKey):-1,Ie=ce>=0?je[ce]:void 0;if(Ie){let ze=Ct.current?.querySelector(`[data-row-key="${CSS.escape(String(Ie.key))}"]`)?.getBoundingClientRect();lo(ze?ze.left+16:0,ze?ze.bottom:0,Ie,ce,ue?.columnId??null),o.preventDefault();}return}let U=datagridCore.resolveGridCommand({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!U)return;if(U.type==="copy"){En(i);return}if(U.type==="activate"){let ue=i.getFocus(),ce=ue?je.find(Ie=>Ie.key===ue.rowKey):void 0;ce&&b?.(ce),U.preventDefault&&o.preventDefault();return}i.executeCommand(U),U.preventDefault&&o.preventDefault();let we=i.getFocusIndices();if(we&&Ct.current){let ce=i.getColumnLayout().center.findIndex(Pe=>Pe.state.id===i.getFocus()?.columnId),Ie=i.ensureVisible(we.rowIndex,ce===-1?void 0:ce);if(Ie){let Pe=Ct.current;Ie.scrollTop!==void 0&&(Pe.scrollTop=Ie.scrollTop),Ie.scrollLeft!==void 0&&(Pe.scrollLeft=rs(Ie.scrollLeft,Pe)),i.setScroll(Pe.scrollTop,Pe.scrollLeft);}}},[i,je,b,Oe,to,at,lo,J.handleKeyDown]),Jt=react.useMemo(()=>datagridCore.bandDepth([...Ne.left,...Ne.center,...Ne.right]),[Ne]),wn=Tn,pr=(y?2:1)+Jt,fi=i.getPinnedRows("top"),gi=i.getPinnedRows("bottom"),fr=[...ae??[],...fi.map(o=>o.row)],gr=[...v??[],...gi.map(o=>o.row)],Bs=[...(ae??[]).map(()=>null),...fi.map(o=>o.key)],_s=[...(v??[]).map(()=>null),...gi.map(o=>o.key)],so=fr.length,$s=gr.length,uo=pr+so,co=Ps??X.grouping?.panel??c,wi=i.getGroupLevels(),Ws=react.useCallback(o=>i.groupBy(o.slice(0,Ue)),[i,Ue]),Vs=react.useCallback(o=>i.toggleGroup(o),[i]),hi=react.useCallback(o=>i.toggleGroupSelection(o),[i]),Us=i.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),ft=i.hasMasterDetail()&&!!Ge,tt=e.rowNumbers??false,ht=!!A?.icons&&!ne,zs=tt&&i.isPaginated()?i.getPage()*i.getPageSize():0;react.useEffect(()=>{i.setLeadWidth(Qr(et,ft,tt,ht));},[i,et,ft,tt,ht]);let Ys=react.useCallback(o=>i.toggleDetail(o),[i]),qs=react.useCallback(o=>i.toggleTreeRow(o),[i]),bi=i.getSummaryDefs(),Xs=i.getSummaries(),hn=Is??Te??bi.length>0,An=hn&&Z==="top",wr=y?2:1,yi=ge.grouping?.groupSummaries&&lr?X.summaries:void 0,Ri=i.getGroupDisplay(),Ci=react.useCallback(()=>{Hs(o=>(i.setGroupSummaries(!o),!o));},[i]),Js=react.useCallback((o,h)=>{if(!se)return;h.preventDefault();let G=i.getColumnModel().getDef(o),U=i.getColumnSummary(o),we={columnId:o,headerName:G?.headerName??G?.field??o},ue=[{id:"none",label:t.noTotal,disabled:U===null,onSelect:()=>i.setColumnSummary(o,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(G?.dataType).map(ce=>({id:ce,label:datagridCore.summaryTypeLabels(t)[ce],disabled:U?.type===ce,onSelect:()=>i.setColumnSummary(o,ce)}))];St(),sr({x:h.clientX,y:h.clientY,items:ue,context:we});},[i,se,St]),js=react.useCallback((o,h)=>{if(F===false)return;h.preventDefault();let G=i.getColumnModel().getDef(o),U={columnId:o,headerName:G?.headerName??G?.field??o},we=$a(U,{controller:i,groupPanelVisible:co,footerVisible:hn,groupFootersAvailable:j&&i.getGroupLevels().length>0,groupFootersVisible:lr,onToggleGroupPanel:()=>Ls(!co),onToggleFooter:()=>Fs(!hn),onToggleGroupFooters:Ci,onOpenFieldChooser:()=>dr({left:h.clientX,top:h.clientY}),onBestFit:qo,onBestFitAll:Xo,maxGroupLevels:Ue,labels:Wo(t)}),ue=typeof F=="function"?F(U,we):we;!ue||ue.length===0||(St(),sr({x:h.clientX,y:h.clientY,items:ue,context:U}));},[F,i,co,hn,j,lr,Ci,qo,Xo,Ue,t,St]),bn=i.getFocus(),Zs=bn?`${e.gridId}-cell-${String(bn.rowKey)}-${bn.columnId}`:void 0,hr=i.getSelectedCount(),Qs=react.useMemo(()=>{let o=[datagridCore.fillText(t.announceRows,{n:m})];if(Ze.length>0){let h=Ze.map(G=>{let U=i.getColumnModel().getDef(G.columnId),we=String(U?.headerName??U?.field??G.columnId),ue=G.direction==="desc"?t.announceDescending:t.announceAscending;return `${we} ${ue}`}).join(", ");o.push(datagridCore.fillText(t.announceSortedBy,{columns:h}));}return hr>0&&o.push(datagridCore.fillText(t.announceSelected,{n:hr})),o.join(", ")},[i,m,Ze,hr,t]),{centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,rowStart:ed,rowEnd:ki}=fl(Ne,In),po=i.getColumnModel(),Rn=ed,td=o=>{if(Fn)return;let h=i.getRowHeightAt(o);return h===u?void 0:h},nd=Array.from(je.slice(Rn,ki)),od=react.useMemo(()=>!tt||i.getGroupLevels().length===0&&!i.hasMasterDetail()&&!i.hasTreePathRows()?null:gl(je),[tt,i,je]),rd=i.hasCellSpans(),vi=react.useRef({start:0,end:0});vi.current={start:Rn,end:ki-1};let Ti=react.useRef(In.columns);Ti.current=In.columns;let ad=react.useCallback(o=>i.planRowColSpans(o,Ti.current),[i]),id=datagridCore.hasColSpans(Ne),ld=react.useCallback((o,h)=>{let G=i.getCellSpans(h);if(G.length===0)return null;let{start:U,end:we}=vi.current,ue=datagridCore.spanRoleAt(G,o,U,we);if(!ue)return null;if(ue.role==="covered")return {kind:"covered"};let ce=i.getRowOffset(ue.drawStart);return {kind:"draw",height:i.getRowOffset(ue.drawEnd)+i.getRowHeightAt(ue.drawEnd)-ce,offset:0}},[i]),xi=i.getFindNeedle()||(de?datagridCore.normalizeSearch(i.getSearchText()):""),Di=i.getFindState(),fo=Di.count>0?`${i.getFindNeedle()}\0${Di.activeIndex}`:"",Si=react.useCallback((o,h)=>i.getFindMatchKind(o,h),[i]),sd={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}},Ei={layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,defs:bi,values:Xs,checkboxColumn:et,detailColumn:ft,statusColumn:ht,rowNumberColumn:tt,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":`${(tt?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":k?"":void 0,"data-row-session":J.rowSessionAttr,ref:dt,children:[J.bar&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:J.bar}),Qe.show&&jsxRuntime.jsx(Ta,{controller:i,dark:l,search:Qe.search!==null,searchOptions:Qe.search??void 0,exportMenu:Qe.export,columnChooser:Qe.columns??e.toolbarColumnChooser??true,exportExcel:j&&$,exportPdf:j&&W,itemsBefore:M,itemsAfter:g,onOpenColumnChooser:o=>dr(h=>h?null:o)}),co&&jsxRuntime.jsx(Ca,{columns:Us,levels:wi,onSetLevels:Ws,maxLevels:Ue,onExpandAll:()=>i.expandAllGroups(),onCollapseAll:()=>i.collapseAllGroups()}),ne&&jsxRuntime.jsx(Wl,{controller:i,sort:Ze,text:t,columns:w?i.getColumnModel().getOrder().filter(o=>{let h=i.getColumnModel();return h.getState(o)?.visible!==false&&h.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:ds,onKeyDown:Ks,tabIndex:0,role:"grid","aria-rowcount":m+pr+so+$s,"aria-colcount":Ne.left.length+Ne.center.length+Ne.right.length+(et?1:0)+(ft?1:0)+(tt?1:0),"aria-multiselectable":pn==="multiple"||void 0,"aria-activedescendant":Zs,"aria-label":e.ariaLabel??e.gridId,children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(Ne.totalWidth||0)+Qr(et,ft,tt,ht)||"100%"},role:"rowgroup",children:[jsxRuntime.jsx(ra,{layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,depth:Jt,checkboxColumn:et,detailColumn:ft,statusColumn:ht,rowNumberColumn:tt,rowHeight:wn,bandFold:sd}),jsxRuntime.jsx(ia,{bandOffset:Jt*wn,stickyInsets:yn,layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,sort:Ze,sortable:w,onSort:us,groupLevels:wi,headerFilter:ja,filteredColumns:vs,onOpenFilter:Cs,filterIconMode:f,checkboxColumn:et,detailColumn:ft,statusColumn:ht,rowNumberColumn:tt,selectAllState:Os,selectAllDisabled:cr===0&&mr===0,onToggleSelectAll:As,draggable:c,reorderable:E,onReorder:fs,resizable:O,onResize:gs,onAutoFit:qo,onHeaderContextMenu:F===false?void 0:js,onHeaderClick:I,getHeaderClassName:le,renderHeaderLabel:V}),y&&jsxRuntime.jsx(da,{bandOffset:Jt*wn,stickyInsets:yn,layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,values:Zo,checkboxColumn:et,detailColumn:ft,statusColumn:ht,rowNumberColumn:tt,onChange:hs,onCommit:Rs,periodSuggestions:ws,periodListId:`${e.gridId}-filter-periods`,operators:Qo,onOperatorChange:bs,renderCustom:ys}),An&&jsxRuntime.jsx(Fo,{...Ei,position:"top",bandOffset:Jt*wn,headerRowsBetween:wr}),fr.length>0&&jsxRuntime.jsx(Ho,{gridId:e.gridId,side:"top",rows:fr,rowKeys:Bs,onUserRowContextMenu:ui,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,checkboxColumn:et,detailColumn:ft,statusColumn:ht,rowNumberColumn:tt,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,h,G)=>jsxRuntime.jsx(vn,{gridId:e.gridId,node:o,index:h,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,striped:false,selected:false,groupSelection:et&&pn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:hi,groupDisplay:Ri,focusedColumnId:null,checkboxColumn:et,statusColumn:ht,rowNumberColumn:tt,rowNumber:null,headerRowCount:uo,onToggleGroup:U=>{i.toggleGroup(U),i.scrollToRow(U);},revision:ei,searchNeedle:xi,findStamp:fo,findKind:fo?Si:void 0,summaryDefs:yi,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:nd.map((o,h)=>o?jsxRuntime.jsx(vn,{gridId:e.gridId,node:o,index:Rn+h,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:et&&o.kind==="data"?i.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&et&&pn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:hi,groupDisplay:Ri,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:et,statusColumn:ht,rowNumberColumn:tt,getSpan:rd?ld:void 0,resolveColSpans:id?ad:void 0,getNote:mt?no:void 0,rowNumber:tt?wl(Rn+h,od,zs):null,headerRowCount:uo,onRowClick:Gs,onRowMouseDown:pn==="none"?void 0:Ts,onRowDoubleClick:Ms,onToggleSelect:Ds,onCellMouseDown:xs,onRowContextMenu:Ns,onToggleGroup:Vs,onToggleTreeRow:qs,revision:ei,searchNeedle:xi,findStamp:fo,findKind:fo?Si:void 0,summaryDefs:yi,detailColumn:ft,detailExpanded:ft&&i.isDetailExpanded(o.key),onToggleDetail:Ys,renderDetail:Ge,renderEditForm:Le??J.renderEditForm,renderRowMessage:o.kind==="message"?oe:void 0,height:td(Rn+h),renderCellContent:eo,getCellClassName:Ln,onCellPointerDown:fe,onCellPointerEnter:De,onCellDoubleClick:ss},String(o.key)):(()=>{let G=Rn+h,U=i.isRowLoadFailed(G);return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${U?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":G+1+uo,"aria-busy":U?void 0:"true",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:U?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:ui,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,checkboxColumn:et,detailColumn:ft,statusColumn:ht,rowNumberColumn:tt,rowHeight:u,headerRowsBetween:hn&&!An?1:0,ariaRowBase:uo+m}),hn&&!An&&jsxRuntime.jsx(Fo,{...Ei,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(Sa,{controller:i,alwaysVisible:H==="always",onOpenBuilder:B,describeOptions:C}),P!==false&&jsxRuntime.jsx(Ha,{controller:i,delay:typeof P=="number"?P:void 0,forced:Yo==="loading"}),i.isPaginated()&&jsxRuntime.jsx(Da,{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)}),R&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:Qs}),Hn&&jsxRuntime.jsx(Ia,{anchor:Hn.anchor,value:Hn.text,dark:l,onCommit:Es,onCancel:()=>ar(null)}),fn&&jsxRuntime.jsx(Bo,{x:fn.x,y:fn.y,items:fn.items,context:fn.context,dark:l,onClose:Ss}),ao&&jsxRuntime.jsx(pt,{dark:l,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)}),Qa&&jsxRuntime.jsx(_a,{state:Qa,dark:l}),mi&&jsxRuntime.jsx(xa,{controller:i,columns:i.getColumnStates(),anchor:mi,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),Ve&&jsxRuntime.jsx(wa,{gridId:e.gridId,columnId:Ve.columnId,headerLabel:Ve.label,entries:Ve.entries,initialSelected:Ve.selected,anchor:Ve.anchor,loading:Ve.loading,truncated:Ve.truncated,pager:Ve.pager,onSearch:Ve.capped&&!i.isRemote()?o=>{let{entries:h,truncated:G}=i.searchDistinctValues(Ve.columnId,o);wt(U=>U&&U.columnId===Ve.columnId?{...U,entries:h,truncated:G}:U);}:void 0,dark:l,onApply:ks,onClose:()=>wt(null),onCustom:B?()=>{let o=Ve.columnId;wt(null),B({columnId:o});}:void 0},Ve.columnId)]})}function yp({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),k=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:k})]},datagridCore.summaryKey(p.columnId,p.type))})]})}var Rp=react.memo(yp);function Cp({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 Sp(e,t){return Xa(e,t,t?.source,(n,r)=>n.computeChartData(r))}function Ep(e,t){return Xa(e,t,t?.source,(n,r)=>n.computeChartXYData(r))}function Gp(e,t){return Xa(e,t,t?.source,(n,r)=>n.computeChartBoxData(r))}function Xa(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,k=false,y=false,N=null,f=()=>{let P=++w;r(e,t).then(R=>{!T&&P===w&&a(R);},()=>{});},E=(P=false)=>{y||=P,!k&&(k=true,queueMicrotask(()=>{if(k=false,T)return;let R=e.chartBasis(s,p);!y&&R===N||(y=false,N=R,f());}));};N=e.chartBasis(s,p),f();let O=[e.events.on("contentReady",()=>E()),e.events.on("rowsChanged",()=>E()),e.events.on("dataUpdated",()=>E()),...s==="selection"?[e.events.on("selectionChanged",()=>E(true))]:[]];return ()=>{T=true,w++,O.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=su;exports.DEFAULT_HEADER_MENU_LABELS=Zl;exports.DataGrid=gp;exports.GridCellEditor=Br;exports.GridColumnChooser=xa;exports.GridContextMenu=Bo;exports.GridDateEditor=Qt;exports.GridDialog=$r;exports.GridEditForm=Lr;exports.GridFilterPanel=Sa;exports.GridFilterRow=da;exports.GridFooterRow=Fo;exports.GridGroupPanel=Ca;exports.GridHeader=ia;exports.GridHeaderBands=ra;exports.GridHeaderFilterPopup=wa;exports.GridLoadingOverlay=Ha;exports.GridLookupEditor=Zt;exports.GridNoteEditor=Ia;exports.GridPager=Da;exports.GridPinnedRows=Ho;exports.GridPopupPanel=rn;exports.GridPortal=pt;exports.GridRow=vn;exports.GridRowEditor=Ir;exports.GridSummaryBar=Rp;exports.GridSurfaceProvider=Sr;exports.GridTextProvider=Rr;exports.GridToolbar=Ta;exports.GridToolbarButton=Cp;exports.GridTooltip=_a;exports.PRINT_MAX_ROWS=Wr;exports.ROW_DRAG_MIME=$o;exports.SHORTCUT_COPY=Al;exports.SHORTCUT_CUT=fm;exports.SHORTCUT_PASTE=gm;exports.ToolbarIcon=ka;exports.buildCellMenuItems=Na;exports.buildHeaderMenu=$a;exports.copyToClipboard=En;exports.editFormColumnIds=nl;exports.editFormLabels=Pr;exports.headerMenuLabels=Wo;exports.matchOptions=Wd;exports.measureBestFitWidth=_o;exports.reconcileFilterInputs=sa;exports.runGridExport=qn;exports.useAlignedGrids=zr;exports.useAnchoredPopup=nn;exports.useCellTooltip=Ba;exports.useDataGrid=yr;exports.useEditModes=Or;exports.useGridChartBoxData=Gp;exports.useGridChartData=Sp;exports.useGridChartXYData=Ep;exports.useGridEditing=vr;exports.useGridPortalTarget=Pt;exports.useGridSurfaceClass=Tt;exports.useGridText=ve;exports.usePrintLayout=Vr;exports.useRowDrag=Ka;exports.useStateStoring=Aa;exports.writeClipboardText=wm;