@kanunilabs/datagrid-react 1.8.7 → 1.8.8

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 md=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],Li=new WeakMap;function br(e){let t=Li.get(e);if(!t){let n={version:0,listeners:new Set},r=()=>{n.version++,n.listeners.forEach(l=>l());};for(let l of md)e.events.on(l,r);Li.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(()=>((U,M)=>n.current?.(U,M))),l=()=>{let U=new datagridCore.DataGridController(t?{...e,sorting:{...e.sorting,postSort:r}}:e);return br(U),U},[a,s]=react.useState(l);react.useEffect(()=>{if(a.isDisposed()){s(l());return}return ()=>a.dispose()},[a]);let p=react.useCallback(U=>{let{listeners:M}=br(a);return M.add(U),()=>{M.delete(U);}},[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 D=e.rowHeight,A=react.useRef(true);react.useEffect(()=>{if(A.current){A.current=false;return}D!==void 0&&a.setRowHeight(D);},[a,D]);let P=e.selection?.mode??"none";react.useEffect(()=>{a.setSelectionMode(P);},[a,P]);let v=e.rowPinning;react.useEffect(()=>{a.setRowPinning(v);},[a,v]);let u=e.selection?.isRowSelectable,E=react.useRef(true);react.useEffect(()=>{if(E.current){E.current=false;return}a.setRowSelectable(u??null);},[a,u]);let L=t!==void 0,$=react.useRef(true);react.useEffect(()=>{if($.current){$.current=false;return}a.setPostSort(L?r:null);},[a,L,r]);let V=e.grouping?.groupBy??null,F=JSON.stringify(V==null?[]:typeof V=="string"?[V]:V),R=react.useRef(true);return react.useEffect(()=>{if(R.current){R.current=false;return}a.groupBy(JSON.parse(F));},[a,F]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var Fi=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(Fi.Provider,{value:r,children:n})}function Te(){return react.useContext(Fi)}var ho=new WeakMap,Md=1e5,Nd=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function Pd(e){let{controller:t,canEditColumn:n}=e;return {controller:t,mode:e.mode??"cell",onSave:e.onSave,editOnKeyPress:e.editOnKeyPress,focusCellOnTab:e.focusCellOnTab,focusCellOnCycle:e.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,enabled:e.enabled,savedDuration:e.savedDuration,range:false,history:false,canEditColumn:r=>{let l=t?.getColumnModel().getDef(r);return l?.lookup||l?.renderEditor||l?.allowFormulas===true?false:n?.(r)??true}}}function vr(e){let t=e.controller?.isEnterpriseEdition()??false;return Ld(t?e:Pd(e))}function Ld({controller:e,mode:t="batch",rules:n,onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:p,onInitNewRow:T,onRowInserted:w,onRowUpdated:k,onRowRemoved:y,editOnKeyPress:N,confirmDelete:f,confirmDeleteMessage:D,insertKey:A,appendOnArrowDown:P,newRowPosition:v,focusCellOnTab:u,focusCellOnCycle:E,keepEditingOnTab:L,enabled:$=true,savedDuration:V,range:F=true,history:R=true,canEditColumn:U}){let M=Te(),[h,d]=react.useState(0),S=react.useCallback(()=>d(c=>c+1),[]),O=react.useMemo(()=>new datagridCore.RangeSelectionEngine,[]),q=react.useMemo(()=>({start(c,m){O.start(c,m),S();},add(c,m){O.add(c,m),S();},extend(c,m){O.extend(c,m)&&S();},finish(){O.finish(),S(),e?.notifyViewStateChanged();},clear(){O.clear()&&(S(),e?.notifyViewStateChanged());},contains:(c,m)=>O.contains(c,m),isAnchor:(c,m)=>O.isAnchor(c,m),getRange:()=>O.getRange(),getBounds:()=>O.getBounds(),toTsv:c=>O.toTsv(c),selectColumn(c,m,x){return O.selectColumn(c,m,x)?(S(),e?.notifyViewStateChanged(),true):false},fullColumns:c=>O.fullColumns(c)}),[O,S,e]),K=react.useRef(null);react.useEffect(()=>{if(!(!e||!F))return e.registerViewStatePart("ranges",{session:true,get:()=>datagridCore.rangesToSaved(O.getRanges(),e.getVisualColumnIds()),apply:c=>{O.setRanges(datagridCore.rangesFromSaved(c,e.getVisualColumnIds())),S();}})},[e,F,O,S]);let[te,ve]=react.useState(null),de=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:D,insertKey:A,appendOnArrowDown:P,newRowPosition:v,focusCellOnTab:u,focusCellOnCycle:E,keepEditingOnTab:L,canEditColumn:U});de.current={onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:p,onInitNewRow:T,onRowInserted:w,onRowUpdated:k,onRowRemoved:y,editOnKeyPress:N,confirmDelete:f,confirmDeleteMessage:D,insertKey:A,appendOnArrowDown:P,newRowPosition:v,focusCellOnTab:u,focusCellOnCycle:E,keepEditingOnTab:L,canEditColumn:U};let Fe=react.useRef(null),b=react.useMemo(()=>{if(!e||!$)return null;let c=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 _=c(m);return _?e.getColumnModel().getStoredValue(_,x):void 0},formatForEdit:(m,x,_)=>e.formatCellForEdit(x,_),parseFromEdit:(m,x,_)=>e.parseCellFromEdit(x,_,m),readRow:c,editableColumns:m=>{let x=e.getColumnLayout(),_=c(m);return [...x.left,...x.center,...x.right].map(Q=>Q.state.id).filter(Q=>{if(e.getColumnModel().getDef(Q)?.editable===false||de.current.canEditColumn&&!de.current.canEditColumn(Q))return false;let oe=de.current.allowUpdating;return oe===void 0?true:typeof oe=="function"?oe(_,Q):oe})},isColumnEditable:m=>e.getColumnModel().getDef(m)?.editable!==false&&(de.current.canEditColumn?.(m)??true),applyValue:(m,x,_)=>e.writeCellValue(m,x,_),storedValue:(m,x,_)=>e.valueAfterWrite(m,x,_),insertRow:(m,x,_,Q)=>{let oe=e.getRowKeyField(),fe={...x};oe&&(fe[oe]=m),e.applyTransaction({add:[fe],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:()=>de.current.allowAdding??false,allowUpdating:(m,x)=>{let _=de.current.allowUpdating;return _===void 0?true:typeof _=="function"?_(m,x):_},allowDeleting:m=>{let x=de.current.allowDeleting;return x===void 0?false:typeof x=="function"?x(m):x},onInitNewRow:m=>de.current.onInitNewRow?.(m),get newRowPosition(){return de.current.newRowPosition},onRowInserted:(m,x)=>de.current.onRowInserted?.(m,x),onRowUpdated:(m,x,_)=>de.current.onRowUpdated?.(m,x,_),onRowRemoved:(m,x)=>de.current.onRowRemoved?.(m,x),crud:{get insert(){let m=de.current.crud?.insert;return m&&(x=>m(x))},get update(){let m=de.current.crud?.update;return m&&((x,_,Q)=>m(x,_,Q))},get remove(){let m=de.current.crud?.remove;return m&&((x,_)=>m(x,_))}},onSave:m=>de.current.onSave?.(m)})},[e,$]);react.useEffect(()=>{b?.setMessages(M);},[b,M]),react.useEffect(()=>{b?.setMode(t);},[b,t]),react.useEffect(()=>{V!==void 0&&b?.setSavedDuration(V);},[b,V]),react.useEffect(()=>(b?.resume(),()=>b?.dispose()),[b]),react.useEffect(()=>{if(!e||!b)return;let c=false,m=e.events.on("rowsChanged",_=>{c=_.removed===0;}),x=e.events.on("dataUpdated",()=>{let _=c;c=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:(c,m,x)=>b.changes.effectiveValue(c,m,x),effectiveRow:(c,m)=>b.changes.applyPendingTo(c,m),hasPending:()=>b.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,b]),react.useEffect(()=>{if(!(!e||!b||!R))return e.setHistoryDelegate({undo:()=>b.undo(),redo:()=>b.redo(),canUndo:()=>b.canUndo(),canRedo:()=>b.canRedo(),depth:()=>b.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,b,R]);let Y=react.useMemo(()=>datagridCore.createDebouncedCommit(150),[]);react.useEffect(()=>()=>Y.cancelAll(),[Y]);let Me=react.useRef(h);react.useEffect(()=>{!e||!b||h===Me.current||(Me.current=h,Y.schedule("footer",()=>e.refreshSummaries()));},[e,b,h,Y]);let ne=react.useCallback(c=>{let m=e?.getRows()[c];return m&&m.kind==="data"?m.key:null},[e]),le=react.useCallback(c=>e?.getColumnIdAt(c)??null,[e]),ge=react.useCallback((c,m)=>{e?.scrollToCell(c,m),b?.beginEdit(c,m);},[b,e]),De=react.useCallback((c={},m)=>{let x=b?.addRow(c,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(oe=>oe.state.visible&&oe.def.editable!==false&&(_===null||(oe.def.field??oe.state.id)!==_));return e.revealRow(x),Q&&(e.focusCell(x,Q.state.id),b?.beginEdit(x,Q.state.id)),x},[b,e]),Ee=react.useCallback(c=>{if(!b)return false;let m=de.current.confirmDelete;if(m===false)return b.removeRow(c);let x=e?.getRowByKey(c);if(typeof m!="function")return Oe({rowKey:c,message:de.current.confirmDeleteMessage??M.editDeleteConfirm}),false;let _=m(c,x);return typeof _=="boolean"?_?b.removeRow(c):false:(_.then(Q=>{Q&&b.removeRow(c);}),false)},[b,e]),I=react.useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),se=react.useCallback((c,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&&(de.current.canEditColumn?.(Ke)??true),oe=e.getColumnModel().runtime().filter(Ke=>Ke.state.visible).map(Ke=>Ke.state.id);if(datagridCore.edgeEditableColumn(oe,Q,1)===null)return false;let fe=e.getRows(),ye=fe.findIndex(Ke=>Ke.key===_.rowKey);if(ye<0)return false;let Re=datagridCore.nextEditableColumn(oe,Q,_.columnId,c);if(Re===null){if(m.cycle===false)return false;let Ke=c;do ye+=Ke;while(ye>=0&&ye<fe.length&&fe[ye]?.kind!=="data");if(ye<0||ye>=fe.length)return false;Re=datagridCore.edgeEditableColumn(oe,Q,c);}let Ce=fe[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]),z=react.useCallback((c,m,x)=>!b||!e||b.isEditingRow()||!b.canEditRow(c)||(e.scrollToCell(c,m),!b.beginRowEdit(c))?false:(x!==void 0&&b.getMode()==="row"&&(ho.set(b,m),b.setRowEditValue(m,x)),true),[b,e]),j=react.useCallback(c=>{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(c))?null:Number(c):c;return Q===null?false:datagridCore.isRowEditMode(b.getMode())?z(m.rowKey,m.columnId,Q):(e.scrollToCell(m.rowKey,m.columnId),b.beginEdit(m.rowKey,m.columnId,Q))},[b,e,z]),[Ge,Le]=react.useState(null),[_e,Oe]=react.useState(null),it=react.useCallback(c=>{let m=_e;Oe(null),c&&m&&b&&b.removeRow(m.rowKey);},[_e,b]),st=react.useCallback(c=>{Le({message:c.error??M.editSaveFailed,rowKey:c.rowKey,columnId:c.columnId}),c.rowKey!==void 0&&c.columnId!==void 0&&(e?.revealRow(c.rowKey),e?.focusCell(c.rowKey,c.columnId));},[e,M]);Fe.current=st;let dt=react.useCallback(async()=>{if(!b)return;Le(null);let c=await b.saveChanges();c.saved||c.superseded||st(c);},[b,st]),ee=react.useCallback(()=>Le(null),[]),ie=react.useCallback(()=>{Le(null),b?.cancelChanges();},[b]);react.useEffect(()=>{(b?.getSession()||b?.isEditingRow())&&Le(null);},[h,b]);let C=react.useMemo(()=>{if(!e||!O.getRange())return null;let c=O.cellCount();if(c>Md)return {cells:c,truncated:true,numeric:null};let m=e.getColumnModel(),x=e.getVisualColumnIds(),_=e.getRows(),Q=O.getStats((oe,fe)=>{let ye=_[oe],Re=x[fe];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:c,truncated:false,numeric:Q}},[e,O,b,h]),Z=react.useCallback((c,m)=>!!b&&!datagridCore.isChromeColumn(m)&&b.canUpdate(c,m),[b]),B=react.useCallback((c,m)=>{let x=q.getRange();K.current=x??{startRow:c,startColumn:m,endRow:c,endColumn:m},ve(null);},[q]),ue=react.useCallback((c,m)=>{let x=K.current;if(!x)return;let _=datagridCore.computeFillTarget(x,c,m);ve(_?{startRow:_.bounds.minRow,startColumn:_.bounds.minColumn,endRow:_.bounds.maxRow,endColumn:_.bounds.maxColumn}:null);},[]),X=react.useCallback((c,m)=>{if(!b||!e)return 0;let _=datagridCore.computeFillValues(c,m,(Q,oe)=>{let fe=ne(Q),ye=le(oe);return fe!==null&&ye?b.effectiveValue(fe,ye):void 0}).map(Q=>{let oe=ne(Q.row),fe=le(Q.column);if(oe===null||!fe||!Z(oe,fe))return null;let ye=Q.from?e.shiftCellFormula(fe,Q.value,Q.row-Q.from.row,Q.column-Q.from.column):Q.value;return {rowKey:oe,columnId:fe,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,ne,le,Z,M]),He=react.useCallback(()=>{let c=K.current,m=te;if(K.current=null,ve(null),!c||!m||!b||!e)return;let x=datagridCore.computeFillTarget(c,m.endRow,m.endColumn);x&&X(c,x);},[te,b,e,X]),ae=react.useCallback((c,m)=>{if(!e)return "";let x=e.getRows()[c],_=e.getColumnIdAt(m);if(!x||x.kind!=="data"||!_)return "";let Q=e.getColumnModel(),oe=b?b.effectiveValue(x.key,_):Q.getCellValue(x.data,_),fe=datagridCore.cellDisplayText(Q.getDef(_),oe,x.data);return e.clipboardCellText(x,_,oe,fe).replace(/[\t\r\n]+/g," ")},[e,b]),Xe=react.useCallback((c="copy")=>{if(!e||!q.getRange())return false;let m=q.toTsv(ae);return e.notifyClipboardGesture("copy",m?m.split(`
2
- `).length:0,()=>e.writeClipboard(m,c)),true},[e,q,ae]),Ve=react.useCallback(c=>{if(!e||!b)return false;let m=q.getRange()!==null,x=c??e.getFocus();if(!m&&!x)return false;if(!Xe("cut")){let fe=x?e.getVisualColumnIds().indexOf(x.columnId):-1,ye=x?e.getRows().findIndex(Ce=>Ce.key===x.rowKey):-1;if(ye<0||fe<0)return false;let Re=ae(ye,fe);e.notifyClipboardGesture("copy",Re?1:0,()=>e.writeClipboard(Re,"cut"));}let _=[];if(m)O.forEachCell((fe,ye)=>_.push([fe,ye]));else {let fe=e.getRows().findIndex(Re=>Re.key===x.rowKey),ye=e.getVisualColumnIds().indexOf(x.columnId);if(fe<0||ye<0)return false;_.push([fe,ye]);}let Q=e.getRows(),oe=[];for(let[fe,ye]of _){let Re=Q[fe];if(!Re||Re.kind!=="data")continue;let Ce=e.getColumnIdAt(ye);!Ce||datagridCore.isChromeColumn(Ce)||b.canUpdate(Re.key,Ce)&&oe.push({rowKey:Re.key,columnId:Ce,value:null});}return e.notifyClipboardGesture("cut",oe.length,()=>oe.length===0?false:(b.applyEdits(oe,datagridCore.fillText(M.editCutUndo,{count:oe.length}),"cut"),true)),true},[e,b,q,O,Xe,ae,M]),ze=react.useCallback(async c=>{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,oe;if(_)Q=_.minRow,oe=_.minColumn;else {let Ce=c??e.getFocus();if(!Ce||(Q=e.getRows().findIndex(Ke=>Ke.key===Ce.rowKey),oe=e.getVisualColumnIds().indexOf(Ce.columnId),Q<0||oe<0))return}let fe=datagridCore.computePasteCells(x,Q,oe,{target:_,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),ye=e.getColumnModel(),Re=fe.map(Ce=>{let Ke=ne(Ce.row),Rt=le(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,ne,le,Z,M]),[we,i]=react.useState(null),Ze=react.useCallback(c=>b?(i(null),b.beginRowEdit(c)):false,[b]),Je=react.useCallback(async()=>{if(!b||!b.getRowSession())return false;let m=e?.getVisualColumnIds()??[],x=await b.saveRowEdit(m);return i(x.saved?null:x.error??null),x.saved&&I(),x.saved},[b,e,I]),Ne=react.useCallback(()=>{b&&(i(null),b.cancelRowEdit(),I());},[b,I]);react.useEffect(()=>{if(!(!e||!b))return e.setEditingDelegate({startEditingCell:(c,m)=>(e.scrollToCell(c,m),b.beginEdit(c,m)),stopEditing:async c=>{if(b.isEditingRow())return c?(Ne(),true):Je();if(!b.getSession())return false;if(c)return b.cancelEdit(),I(),true;let m=b.commitEdit();return m&&I(),m},getEditingCells:()=>{let c=b.getRowSession();if(c)return e.getVisualColumnIds().filter(x=>!datagridCore.isChromeColumn(x)&&b.canUpdate(c.rowKey,x)).map(x=>({rowKey:c.rowKey,columnId:x}));let m=b.getSession();return m?[{rowKey:m.rowKey,columnId:m.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,b,Je,Ne,I]);let Qe=react.useCallback(c=>{if(!b||!e)return false;let m=c.ctrlKey||c.metaKey;if(R&&m&&(c.key==="z"||c.key==="Z"))return c.preventDefault(),c.shiftKey?b.redo():b.undo(),true;if(R&&m&&(c.key==="y"||c.key==="Y"))return c.preventDefault(),b.redo(),true;if(F&&m&&(c.key==="v"||c.key==="V"))return c.preventDefault(),ze(),true;if(F&&m&&(c.key==="x"||c.key==="X"))return c.preventDefault(),Ve(),true;if(m&&(c.key==="c"||c.key==="C"))return Xe()?(c.stopPropagation(),true):false;if(b.isEditingRow()){if(c.key==="Enter")return c.preventDefault(),Je(),true;if(c.key==="Escape")return c.preventDefault(),Ne(),true}if(c.key==="Escape"&&b.getSession())return c.preventDefault(),b.cancelEdit(),true;if(c.key==="Tab"&&de.current.focusCellOnTab!==false&&!b.getSession()&&e.getFocus()&&se(c.shiftKey?-1:1,{open:de.current.keepEditingOnTab===true,cycle:de.current.focusCellOnCycle!==false}))return c.preventDefault(),true;if(F&&c.shiftKey&&!c.altKey&&!b.getSession()&&datagridCore.RANGE_KEY_DIRECTIONS[c.key]){let x=e.getFocus(),_=e.getVisualColumnIds(),Q=_.flatMap((ye,Re)=>datagridCore.isChromeColumn(ye)?[]:[Re]),oe=x?e.getRowIndex(x.rowKey):-1,fe=x?_.indexOf(x.columnId):-1;if(oe>=0&&fe>=0&&Q.length>0){c.preventDefault(),c.stopPropagation();let ye=e.getRows(),Re=datagridCore.extendRangeByKey(q.getRange(),{row:oe,column:fe},datagridCore.RANGE_KEY_DIRECTIONS[c.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(F&&m&&!c.shiftKey&&!c.altKey&&!b.getSession()&&(c.key==="d"||c.key==="D"||c.key==="r"||c.key==="R")){let x=e.getFocus(),_=e.getVisualColumnIds(),Q=_.findIndex(Ce=>!datagridCore.isChromeColumn(Ce)),oe=x?e.getRowIndex(x.rowKey):-1,fe=x?_.indexOf(x.columnId):-1,ye=q.getRange()??(oe>=0&&fe>=0?{startRow:oe,startColumn:fe,endRow:oe,endColumn:fe}:null),Re=ye?datagridCore.keyboardFill(ye,c.key.toLowerCase()==="d"?"down":"right",Math.max(0,Q)):null;if(Re)return c.preventDefault(),c.stopPropagation(),X(Re.source,Re.target),true}if(!m&&!c.shiftKey&&!b.getSession()&&Nd.has(c.key)&&q.clear(),c.key==="Insert"&&de.current.insertKey===true&&!m&&!b.getSession()){let x=e.getFocus();if(x&&b.canAdd())return c.preventDefault(),De({},x.rowKey),true}if(c.key==="ArrowDown"&&de.current.appendOnArrowDown===true&&!m&&!c.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 c.preventDefault(),De({}),true}if(c.key==="F2"){let x=e.getFocus();if(x)return c.preventDefault(),datagridCore.isRowEditMode(b.getMode())?(z(x.rowKey,x.columnId),true):(e.scrollToCell(x.rowKey,x.columnId),b.beginEdit(x.rowKey,x.columnId),true)}return de.current.editOnKeyPress!==false&&!m&&!c.altKey&&c.key.length===1&&c.key!==" "&&!b.getSession()&&j(c.key)?(c.preventDefault(),true):false},[b,e,F,R,ze,Ve,Xe,j,z,se,De,Je,Ne,X]);return {engine:b,range:q,version:h,beginEdit:ge,beginRowEdit:Ze,saveRowEdit:Je,cancelRowEdit:Ne,rowSaveError:we,addRow:De,editAdjacentCell:se,editFocusedCellWith:j,focusScroller:I,deleteRow:Ee,saveChanges:dt,cancelChanges:ie,selectionStats:C,handleKeyDown:Qe,cut:Ve,copySelection:Xe,paste:ze,saveError:Ge,clearSaveError:ee,pendingDelete:_e,resolveDelete:it,fillPreview:te,startFillDrag:B,moveFillDrag:ue,endFillDrag:He,isDraggingFill:K.current!==null}}var Wi=react.createContext(""),Vi=react.createContext(()=>document.body),_d=typeof window<"u"?react.useLayoutEffect:react.useEffect;function Er({theme:e,density:t,palette:n,portalContainer:r,children:l}){let a=react.useMemo(()=>datagridCore.themeClassName(e,t,n),[e,t,n]),s=react.useRef(r);_d(()=>{s.current=r;},[r]);let p=react.useMemo(()=>()=>datagridCore.portalTarget(s.current),[]);return jsxRuntime.jsx(Wi.Provider,{value:a,children:jsxRuntime.jsx(Vi.Provider,{value:p,children:l})})}function Pt(){return react.useContext(Vi)}function Tt(){return react.useContext(Wi)}var Mr=8,Lt=26,Yi=4;function qi(e,t,n){let r=datagridCore.foldText(t.trim());if(r==="")return null;let l=[];for(let a=0;a<e.length;a++){let s=e[a];(n==="contains"?s.includes(r):s.startsWith(r))&&l.push(a);}return l}function Vd(e,t,n){let r=e.map(a=>datagridCore.foldText(a.label)),l=qi(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 D=Te(),A=Tt(),P=Pt(),v=react.useRef(null),u=react.useRef(null),[E,L]=react.useState(null),[$,V]=react.useState(false),[F,R]=react.useState(0),[U,M]=react.useState(0),[h,d]=react.useState(null),S=react.useMemo(()=>e.map(I=>datagridCore.foldText(I.label)),[e]),O=react.useMemo(()=>{let I=e.find(se=>se.value===t);return I?I.label:t==null||t===""?"":String(t)},[e,t]),q=react.useMemo(()=>E===null?null:qi(S,E,n),[S,E,n]),K=q===null?e.length:q.length,te=I=>e[q===null?I:q[I]],ve=E??O;react.useEffect(()=>{R(I=>I<K?I:0);},[K]),react.useLayoutEffect(()=>{a&&(v.current?.focus({preventScroll:true}),v.current?.select());},[]);let de=()=>{let I=v.current;if(!I)return;let se=I.getBoundingClientRect(),z=datagridCore.placeAnchoredLayer({anchor:{left:se.left,top:se.top,bottom:se.bottom},width:se.width,height:Math.min(Math.max(K,1),Mr)*Lt,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});d({left:z.left,top:z.top,width:se.width});};react.useLayoutEffect(()=>{$&&de();},[$,K]),react.useEffect(()=>{if(!$)return;let I=()=>de();return window.addEventListener("scroll",I,true),window.addEventListener("resize",I),()=>{window.removeEventListener("scroll",I,true),window.removeEventListener("resize",I);}},[$]),react.useLayoutEffect(()=>{let I=u.current;if(!I||!$||K===0)return;let se=F*Lt,z=se+Lt,j=I.scrollTop;se<j?j=se:z>j+I.clientHeight&&(j=z-I.clientHeight),j!==I.scrollTop&&(I.scrollTop=j,M(j));},[F,$,K]);let Fe=Math.min(Math.max(K,1),Mr)*Lt,b=Math.max(0,Math.floor(U/Lt)-Yi),Y=Math.min(K,Math.ceil((U+Fe)/Lt)+Yi),Me=I=>{w(I.value),L(null),V(false),y&&k();},ne=()=>{$||(V(true),M(0),u.current&&(u.current.scrollTop=0));},le=()=>{if(E===null)return true;let I=E.trim();if(I==="")return r&&w(""),true;let se=datagridCore.foldText(I),z=S.indexOf(se);return z>=0?(w(e[z].value),true):K===1?(w(te(0).value),true):r?(w(I),true):false},ge=I=>{if(!(I.nativeEvent.isComposing||I.keyCode===229)){if(I.key==="ArrowDown"||I.key==="ArrowUp"){if(I.preventDefault(),I.stopPropagation(),!$){ne();return}if(K===0)return;R(se=>((I.key==="ArrowDown"?se+1:se-1)+K)%K);return}if(I.key==="PageDown"||I.key==="PageUp"){if(!$||K===0)return;I.preventDefault(),I.stopPropagation();let se=Mr*(I.key==="PageDown"?1:-1);R(z=>Math.min(K-1,Math.max(0,z+se)));return}if(I.key==="Home"||I.key==="End"){if(!$||K===0)return;I.preventDefault(),I.stopPropagation(),R(I.key==="Home"?0:K-1);return}if(I.key==="Enter"){if(I.preventDefault(),I.stopPropagation(),$&&K>0){Me(te(F));return}le()?k():ne();return}if(I.key==="Escape"){if(I.preventDefault(),I.stopPropagation(),$){V(false);return}L(null),N();return}if(I.key==="Tab"){if(!le()){I.preventDefault(),I.stopPropagation(),ne();return}V(false),f&&(I.preventDefault(),I.stopPropagation(),f(I.shiftKey));return}I.stopPropagation();}},De=[];for(let I=b;I<Y;I++){let se=te(I);De.push(jsxRuntime.jsx("div",{role:"option","aria-selected":I===F,"aria-posinset":I+1,"aria-setsize":K,className:`kanuni-datagrid-lookup-item${I===F?" kanuni-datagrid-lookup-item--active":""}`,style:{position:"absolute",top:I*Lt,height:Lt,left:0,right:0},onMouseEnter:()=>R(I),onClick:()=>Me(se),children:se.label},String(se.value)));}let Ee=$&&h?reactDom.createPortal(jsxRuntime.jsx("div",{ref:u,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${A}`,"data-kanuni-portal":"popup",role:"listbox","aria-label":T,"data-testid":s?`${s}-list`:void 0,style:{left:h.left,top:h.top,width:h.width,height:Fe},onScroll:I=>M(I.currentTarget.scrollTop),onMouseDown:I=>I.preventDefault(),children:K===0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-lookup-empty",children:D.editNoMatch}):jsxRuntime.jsx("div",{style:{position:"relative",height:K*Lt},children:De})}),P()):null;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{ref:v,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:ve,onChange:I=>{L(I.target.value),R(0),M(0),u.current&&(u.current.scrollTop=0),V(true);},onFocus:ne,onClick:ne,onKeyDown:ge,onBlur:()=>{E!==null&&!le()&&L(null),V(false);}}),Ee]})}function tu(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=tl(e);return [...t.slice(n),...t.slice(0,n)]}function tl(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function nu(e){return [e.monthJanuary,e.monthFebruary,e.monthMarch,e.monthApril,e.monthMay,e.monthJune,e.monthJuly,e.monthAugust,e.monthSeptember,e.monthOctober,e.monthNovember,e.monthDecember]}function ou(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Qt({value:e,format:t=datagridCore.DEFAULT_DATE_FORMAT,invalid:n,disabled:r,autoFocus:l=true,testId:a,columnId:s,ariaLabel:p,onChange:T,onCommit:w,onCancel:k,onTab:y}){let N=Te(),f=Tt(),D=Pt(),A=react.useMemo(()=>nu(N),[N]),P=react.useMemo(()=>tu(N),[N]),v=react.useRef(null),[u,E]=react.useState(null),[L,$]=react.useState(false),[V,F]=react.useState(null),R=react.useMemo(()=>datagridCore.toDate(e),[e]),U=u===null?datagridCore.formatDateValue(e,t):datagridCore.maskDate(u,t),M=u===null?null:datagridCore.parseDateValue(U,t),h=u!==null&&u.length===datagridCore.dateDigitCount(t)&&M===null,[d,S]=react.useState(()=>R??new Date);react.useEffect(()=>{L&&S(M??R??new Date);},[L]),react.useLayoutEffect(()=>{l&&(v.current?.focus({preventScroll:true}),v.current?.select());},[]);let O=react.useRef(null),q=react.useCallback(()=>{let Y=v.current;if(!Y)return;let Me=Y.getBoundingClientRect(),ne=datagridCore.placeAnchoredLayer({anchor:{left:Me.left,top:Me.top,bottom:Me.bottom},width:O.current?.offsetWidth??0,height:O.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});F({left:ne.left,top:ne.top});},[]),K=react.useCallback(Y=>{O.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 te=react.useCallback(Y=>{if(Y===null){T(null);return}T(e instanceof Date?Y:datagridCore.toIsoDate(Y));},[T,e]),ve=Y=>{E(null),$(false),te(Y),v.current?.focus({preventScroll:true});},de=react.useCallback(()=>{if(u!==null){if(u.length===0){te(null),E(null);return}M&&te(M),E(null);}},[u,M,te]),Fe=Y=>{if(Y.key==="Escape"){if(Y.preventDefault(),Y.stopPropagation(),L){$(false);return}E(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 ne=M??R??new Date,le=new Date(ne.getFullYear(),ne.getMonth(),ne.getDate()+Me);E(datagridCore.dateDigits(datagridCore.formatDateValue(le,t),t)),S(le);return}if(Y.key==="Enter"){Y.preventDefault(),Y.stopPropagation(),$(false),M&&ve(M);return}}if(Y.key==="Enter"){Y.preventDefault(),Y.stopPropagation(),de(),w();return}if(Y.key==="Tab"){de(),$(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&&V?reactDom.createPortal(jsxRuntime.jsxs("div",{ref:K,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${f}`,"data-kanuni-portal":"popup",style:{left:V.left,top:V.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":p?`${p} ${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:[A[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()-tl(N)+7)%7,ne=datagridCore.daysInMonth(d.getFullYear(),d.getMonth()+1),le=[];for(let ge=0;ge<42;ge++){let De=ge-Me+1,Ee=new Date(d.getFullYear(),d.getMonth(),De),I=De<1||De>ne,se=ou(Ee,M??R);le.push(jsxRuntime.jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${I?" kanuni-datagrid-date-day--outside":""}${se?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":se,"data-testid":"dg-date-day","data-date":datagridCore.toIsoDate(Ee),onClick:()=>ve(Ee),children:Ee.getDate()},ge));}return le})()]})]}),D()):null;return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsxRuntime.jsx("input",{ref:v,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":p,"aria-invalid":h||n?true:void 0,"data-testid":a,"data-column-id":s,disabled:r,className:`kanuni-datagrid-editor${h||n?" kanuni-datagrid-editor--invalid":""}`,value:U,onChange:Y=>{E(datagridCore.dateDigits(Y.target.value,t));},onKeyDown:Fe,onBlur:()=>{L||de();}}),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),v.current?.focus({preventScroll:true});},children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:"M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),b]})}function Pr(e){return {save:e.save,cancel:e.cancel,editTitle:e.formEditTitle,addTitle:e.formAddTitle,saving:e.editSaving,shortcut:e.formShortcut}}var du=Pr(datagridCore.getGridDictionary("en"));function uu(e,t){switch(e){case "number":return t==null||t===""||!Number.isNaN(Number(t))?"number":"text";case "date":return t==null||t===""||!Number.isNaN(Date.parse(String(t)))?"date":"text";case "boolean":return "checkbox";default:return "text"}}function ol(e,t){if(e==null)return "";if(t==="date"){if(e instanceof Date)return e.toISOString().slice(0,10);let n=String(e);return n.length>10&&n.includes("-")?n.slice(0,10):n}return String(e)}function cu(e,t){if(t==="number"){if(e==="")return null;let n=Number(e);return Number.isNaN(n)?e:n}return e}function Lr({rowKey:e,fields:t,getValue:n,errors:r,lookups:l,customEditors:a=false,row:s,saving:p,saveError:T,isNew:w,dark:k=false,popup:y=false,inline:N=false,onNaturalHeight:f,labels:D,onChange:A,onSave:P,onCancel:v}){let u=Te(),E=Tt(),L=react.useMemo(()=>({...Pr(u),...D}),[u,D]),$=react.useRef(null),V=Object.keys(r)[0]??null,F=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 O=d.querySelector(".kanuni-datagrid-edit-form-fields");O&&f(d.clientHeight-O.clientHeight+O.scrollHeight);}},[f]);react.useEffect(()=>{if(!V||!$.current)return;$.current.querySelector(`[data-field-id="${CSS.escape(V)}"] input, [data-field-id="${CSS.escape(V)}"] select`)?.focus();},[V]);let R=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),U=L.shortcut.replace("{key}",R?"\u2318":"Ctrl"),M=react.useCallback(d=>{if(d.key==="Escape"){d.preventDefault(),d.stopPropagation(),v();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 O=S[0],q=S[S.length-1];!d.shiftKey&&document.activeElement===q?(d.preventDefault(),O.focus()):d.shiftKey&&document.activeElement===O&&(d.preventDefault(),q.focus());},[v,P,y]),h=jsxRuntime.jsxs("div",{ref:F,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),O=r[d.columnId],q=l?.[d.columnId],K=p||!d.editable,te=`dg-field-${String(e)}-${d.columnId}`;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":d.columnId,"data-invalid":O?"":void 0,htmlFor:te,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:O??null,setValue:ve=>A(d.columnId,ve),commit:P,cancel:v}):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:!!O,testId:te,ariaLabel:d.label,onChange:ve=>A(d.columnId,ve),onCommit:()=>{},onCancel:v})}):d.def?.lookup?jsxRuntime.jsx("input",{id:te,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:datagridCore.lookupLabel(d.def,S)??ol(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:!!O,disabled:K,autoFocus:false,testId:te,columnId:d.columnId,ariaLabel:d.label,onChange:ve=>A(d.columnId,ve),onCommit:()=>{},onCancel:v})}):d.dataType==="boolean"?jsxRuntime.jsx("input",{id:te,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:K,checked:S===true,onChange:ve=>A(d.columnId,ve.target.checked)}):jsxRuntime.jsx("input",{id:te,className:"kanuni-datagrid-edit-form-input",type:uu(d.dataType,S),disabled:K,"aria-invalid":O?true:void 0,value:ol(S,d.dataType),onChange:ve=>A(d.columnId,cu(ve.target.value,d.dataType))}),O&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-message",role:"alert",children:O})]},d.columnId)})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:U}),jsxRuntime.jsx("button",{type:"button",onClick:v,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":""}${E}`,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:v}),h]}):h}function Ir({controller:e,engine:t,columnId:n,message:r,saving:l,lookupOptions:a,onSave:s,onCancel:p}){let T=e.getColumnModel(),w=T.getDef(n);if(a!==void 0)return jsxRuntime.jsx(Zt,{options:a??[],value:t.rowEditValue(n),matchMode:w?.lookup?.matchMode,allowCustom:w?.lookup?.allowCustom,invalid:!!r,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:f=>t.setRowEditValue(n,f),commitOnPick:false,onCommit:s,onCancel:p});let 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 D=f.target.value;t.setRowEditValue(n,y?D===""?null:Number(D):D);},onKeyDown:N})}function rl(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=Te(),{engine:D,version:A,beginRowEdit:P,saveRowEdit:v,cancelRowEdit:u,rowSaveError:E,saveChanges:L,cancelChanges:$}=t,V=r&&datagridCore.isRowEditMode(n),F=V?D?.getRowSession()??null:null,R=react.useRef(y);R.current=y;let U=react.useMemo(()=>{if(!e||!F)return [];let z=e.getColumnModel();return rl(e,R.current).map(j=>{let Ge=z.getDef(j);return {columnId:j,label:Ge?.headerName??Ge?.field??j,dataType:z.getEditorDataType(j),def:Ge,editable:D?.canUpdate(F.rowKey,j)??true}})},[e,D,F]),M=n==="row"?F?.rowKey??null:null;react.useEffect(()=>{if(M===null)return;let z=l.current;if(!z)return;let j=z.querySelectorAll('[data-testid="dg-row-editor"]');if(j.length===0)return;let Ge=e?.getFocus(),_e=(Ge&&String(Ge.rowKey)===String(M)?z.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Ge.columnId)}"]`):null)??j[0],Oe=D?ho.get(D):void 0;D&&ho.delete(D),_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 h=react.useCallback(z=>V&&F?.rowKey===z,[V,F]),d=react.useCallback((z,j)=>{let Ge=e?.getColumnModel().getDef(z.columnId);if(Ge?.renderCell&&z.node.kind==="data")return Ge.renderCell({value:j,row:z.node.data,node:z.node,column:Ge});let Le=Ge?datagridCore.lookupLabel(Ge,j):null;return Le!==null?Le:Ge?.valueFormatter&&z.node.kind==="data"?Ge.valueFormatter(j,z.node.data):Ge?.dateFormat&&Ge.dataType==="date"?datagridCore.formatDateValue(j,Ge.dateFormat):j==null?"":String(j)},[e]),S=react.useCallback(z=>{if(!(n!=="row"||!D||!e||z.node.kind!=="data"||!h(z.node.key)))return D.canUpdate(z.node.key,z.columnId)?jsxRuntime.jsx(Ir,{controller:e,engine:D,columnId:z.columnId,message:F?.errors[z.columnId]??null,saving:F?.saving??false,lookupOptions:w?.[z.columnId],onSave:()=>{v();},onCancel:u}):d(z,D.rowEditValue(z.columnId))},[n,D,e,A,h,F,w,d,v,u]),O=react.useCallback(z=>{if(!D||z.node.kind!=="data")return;let j=D.changes.get(z.node.key,z.columnId);return j?d(z,j.newValue):void 0},[D,A,d]),[q,K]=react.useState(null),te=q??p??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,ve=react.useCallback(z=>{z>0&&K(j=>j!==null&&Math.abs(j-z)<a?j:z);},[a]);react.useEffect(()=>{F||K(null);},[F]);let de=(z,j)=>F?jsxRuntime.jsx(Lr,{rowKey:z,fields:U,getValue:Ge=>D?.rowEditValue(Ge),errors:F.errors,lookups:w,customEditors:k,row:D?.effectiveRow(F.rowKey),saving:F.saving,saveError:E,isNew:F.isNew,dark:T,popup:n==="popup",inline:j,onNaturalHeight:j?ve:void 0,labels:s,onChange:(Ge,Le)=>D?.setRowEditValue(Ge,Le),onSave:()=>{v();},onCancel:u}):null,Fe=F&&n==="popup"?de(F.rowKey,false):null,b=react.useRef(de);b.current=de;let Y=react.useCallback(z=>b.current(z,true),[]),Me=n==="form"?F?.rowKey??null:null,ne=F?.isNew??false,le=react.useRef(null);react.useEffect(()=>{if(e){if(Me===null){if(le.current!==e)return;le.current=null,e.setEditFormRow(null);return}le.current=e,e.setEditFormRow(Me,{height:te,atTop:ne});}},[e,Me,ne,te]),react.useEffect(()=>()=>{let z=le.current;le.current=null,z?.setEditFormRow(null);},[]);let ge=V&&n==="row"&&!!F,De=N&&r&&n==="batch"&&(D?.hasChanges()??false),Ee=ge||De?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[ge&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-active","data-testid":"dg-row-editing",children:F?.isNew?f.formAddTitle:datagridCore.fillText(f.editEditingRow,{row:String(F?.rowKey)})}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-row",disabled:F?.saving,onClick:()=>{v();},children:F?.saving?f.editSaving:f.editSaveRow}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:u,children:f.cancel}),E&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:E})]}),De&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:D?.isSaving(),onClick:()=>{L();},children:datagridCore.fillText(f.editSaveCount,{n:D?.getChanges().length??0})}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:$,children:f.cancel})]})]}):null,I=react.useCallback(z=>!V||!D||D.isEditingRow()?null:{id:"dg-edit-row",label:f.editRowMenu,onSelect:()=>P(z)},[V,D,P,f,A]),se=react.useCallback(z=>V?(P(z),true):false,[V,P]);return {rowModeActive:V,rowSession:F,isRowEditing:h,defaultContent:d,renderRowCell:S,renderPending:O,renderEditForm:n==="form"?Y:void 0,popup:Fe,bar:Ee,rowSessionAttr:F&&(n==="form"||n==="popup")?n:void 0,editRowMenuItem:I,openRow:se}}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),D=react.useRef(false);react.useEffect(()=>{let u=f.current;if(u&&(u.focus({preventScroll:true}),!(!(u instanceof HTMLInputElement)||u.type==="checkbox")))if(r){if(u.type==="text"||u.type==="search"){let E=u.value.length;u.setSelectionRange(E,E);}}else u.select();},[]);let P={ref:f,onKeyDown:u=>{u.nativeEvent.isComposing||u.keyCode===229||(u.key==="Enter"?(u.preventDefault(),u.stopPropagation(),k(u.shiftKey?"none":"down")):u.key==="Tab"?(u.preventDefault(),u.stopPropagation(),D.current=true,y(u.shiftKey?-1:1)):u.key==="Escape"?(u.preventDefault(),u.stopPropagation(),N()):u.stopPropagation());},onBlur:()=>{D.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"},v;return l===null?v=jsxRuntime.jsx("input",{...P,type:"text",value:"\u2026",readOnly:true,disabled:true}):l&&l.length>0?v=a?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{...P,type:"text",list:`${P["data-testid"]}-list`,value:Kr(e,t),onChange:u=>{let E=l.find(L=>L.label===u.target.value);w(E?E.value:u.target.value);}}),jsxRuntime.jsx("datalist",{id:`${P["data-testid"]}-list`,children:l.map(u=>jsxRuntime.jsx("option",{value:u.label},String(u.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:u=>{D.current=true,y(u?-1:1);}}):t==="boolean"?v=jsxRuntime.jsx("input",{...P,type:"checkbox",checked:e===true,onChange:u=>w(u.target.checked)}):t==="number"?v=jsxRuntime.jsx("input",{...P,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:Kr(e,t),onChange:u=>w(u.target.value===""?null:Number(u.target.value))}):t==="date"?v=jsxRuntime.jsx(Qt,{value:e,format:T,invalid:!!n,testId:P["data-testid"],ariaLabel:p,onChange:w,onCommit:()=>k("none"),onCancel:N,onTab:u=>{D.current=true,y(u?-1:1);}}):v=jsxRuntime.jsx("input",{...P,type:"text",value:Kr(e,t),onChange:u=>w(u.target.value)}),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[v,n&&jsxRuntime.jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function sl(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 O=e?.getColumnModel().getDef(S);return !O?.lookup&&!O?.renderEditor&&O?.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:D,focusScroller:A,saveError:P,clearSaveError:v}=k,u=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:E,renderPending:L,openRow:$}=u,{renderCellContent:V,getCellClassName:F,onCellDoubleClick:R}=r,U=react.useCallback(S=>{if(!s||!y||S.node.kind!=="data")return V?.(S);let O=E(S);if(O!==void 0)return O;if(!y.isEditing(S.node.key,S.columnId))return L(S)??V?.(S);let q=y.getSession(),K=e.getColumnModel(),te=K.getDef(S.columnId);return jsxRuntime.jsx(Br,{value:q.value,dataType:K.getEditorDataType(S.columnId),ariaLabel:te?.headerName??S.columnId,dateFormat:te?.dateFormat,error:q.validation.message,seeded:q.seeded,onChange:ve=>y.setEditValue(ve),onCommit:ve=>{y.commitEdit()&&(ve==="down"&&e?.moveFocus("down"),A());},onTab:ve=>{if(t?.focusCellOnTab===false){y.commitEdit();return}D(ve,{open:false,cycle:t?.focusCellOnCycle!==false}),A();},onCancel:()=>{y.cancelEdit(),A();}})},[s,y,e,N,V,E,L,D,A,t?.focusCellOnTab,t?.focusCellOnCycle]),M=react.useCallback(S=>{let O=F?.(S);if(!s||!y||S.node.kind!=="data")return O;let q=O?[O]:[];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,F]),h=react.useCallback(S=>{R?.(S),!(!s||!y||S.node.kind!=="data")&&($(S.node.key)||y.beginEdit(S.node.key,S.columnId));},[s,y,R,$]),d=react.useCallback(S=>p?f(S):false,[p,f]);return {active:s,renderCellContent:p?U:V,getCellClassName:p?M:F,onCellDoubleClick:p?h:R,handleKeyDown:d,saveError:s?P:null,clearSaveError:v,renderEditForm:p?u.renderEditForm:void 0,bar:p?u.bar:null,popup:p?u.popup:null,rowSessionAttr:p?u.rowSessionAttr:void 0,editRowMenuItem:u.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(),D=Pt();return react.useEffect(()=>{if(!e)return;let A=document.activeElement;w.current?.focus();let P=k.current;return ()=>{let v=document.activeElement;P&&(P.contains(v)||v===document.body||v===null)&&A?.isConnected&&A.focus({preventScroll:true});}},[e]),react.useEffect(()=>{if(!e)return;let A=P=>{if(P.key==="Escape"){P.stopPropagation(),T();return}if(P.key==="Tab"&&k.current){let v=Array.from(k.current.querySelectorAll("button:not([disabled])"));if(v.length===0)return;let u=v.indexOf(document.activeElement),E=P.shiftKey?u<=0?v.length-1:u-1:u===v.length-1?0:u+1;P.preventDefault(),P.stopPropagation(),v[E].focus();}};return document.addEventListener("keydown",A,true),()=>document.removeEventListener("keydown",A,true)},[e,T]),!e||typeof document>"u"?null:reactDom.createPortal(jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${s?" kanuni-datagrid-dark":""}${f}`,"data-kanuni-portal":"popup",role:"presentation",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:T}),jsxRuntime.jsxs("div",{ref: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})]})]})]}),D())}var To=0,Vr=5e3;function Tu(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Vr,onLimit:t.onLimit}}function xu(e,t){return e<=t}function Ur(e,t){let n=Tu(t),r=n!==null,l=n?.always??false,a=n?.maxRows??Vr,s=n?.onLimit,p=react.useRef(s);react.useEffect(()=>{p.current=s;},[s]);let[T,w]=react.useState(false),k=react.useCallback(()=>w(true),[]),y=react.useCallback(()=>w(false),[]);react.useEffect(()=>{if(!r||l||typeof window>"u"||typeof window.addEventListener!="function")return;let f=()=>{let A=e.getRows().length;if(!xu(A,a)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${A} rows exceeds maxRows (${a}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`),p.current?.({rows:A,maxRows:a});return}reactDom.flushSync(()=>w(true));},D=()=>reactDom.flushSync(()=>w(false));return window.addEventListener("beforeprint",f),window.addEventListener("afterprint",D),()=>{window.removeEventListener("beforeprint",f),window.removeEventListener("afterprint",D);}},[r,l,a,e]);let N=l||T;return react.useEffect(()=>{if(!N||typeof document>"u")return;let f=document.documentElement;return To++,f.classList.add("kanuni-datagrid-printing"),()=>{To--,To<=0&&(To=0,f.classList.remove("kanuni-datagrid-printing"));}},[N]),{active:N,begin:k,end:y}}var xo=new Map,zr=new Set;function fl(e,t){let n=xo.get(e);return n?[...n].filter(r=>r!==t):[]}function Yr(e,t,n){let r=react.useRef(null);return react.useEffect(()=>{if(!t)return;let a={controller:e,scroller:()=>n.current};r.current=a;let s=xo.get(t)??new Set;s.add(a),xo.set(t,s);let p=e.events.on("columnStateChanged",()=>{if(zr.has(t))return;let T=fl(t,a);if(T.length===0)return;let w=e.getColumnStates();zr.add(t);try{for(let k of T)k.controller.applyColumnStates(w);}finally{zr.delete(t);}});return ()=>{p(),s.delete(a),s.size===0&&xo.delete(t),r.current=null;}},[e,t,n]),{syncScroll:react.useCallback(a=>{let s=r.current;if(!t||!s)return;let p=fl(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 gl(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,D)=>n+D),y=e.stickyIndices.filter(f=>f<n);if(y.length>0){let f=y.map(D=>e.center[D]);T-=f.reduce((D,A)=>D+A.state.width,0),w=[...f,...w],k=[...y,...k];}let N=new Map;for(let f of e.stickyIndices){let D=e.centerStickyOffsets[f];D!==null&&N.set(e.center[f].state.id,D);}return {centerColumns:w,centerIndices:k,leadingSpacer:Math.max(0,T),trailingSpacer:p,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:N}}function wl(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 hl(e,t,n=0){if(!t)return n+e+1;let r=0,l=t.length;for(;r<l;){let a=r+l>>1;t[a]<e?r=a+1:l=a;}return n+e-r+1}var So=36,Go=28,Cn=60,kn=24,Ku=[["statusColumn",kn],["rowNumberColumn",Cn],["detailColumn",Go],["checkboxColumn",So]];function ea(e,t,n=false,r=false){return Gt({checkboxColumn:e,detailColumn:t,rowNumberColumn:n,statusColumn:r}).total}function Gt(e){let t=new Map,n=new Map,r=0,l=0;for(let[a,s]of Ku)e[a]&&(t.set(a,r),a!=="statusColumn"&&n.set(a,++l),r+=s);return {total:r,count:l,inset:a=>t.get(a)??0,colIndex:a=>n.get(a)??1}}function Jr(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function jr(e,t,n){return e?e.kind==="covered"?t?n():null:jsxRuntime.jsx("div",{className:"kanuni-datagrid-span-box",style:{height:e.height},children:n()}):n()}function Zr(e,t){let n=e??(t==="number"||t==="bigint"?"right":"left");return n==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":n==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function Eo(e,t){if(t===""||e==="")return e;let n=datagridCore.foldText(e),r=n.indexOf(t);if(r===-1)return e;let l=[],a=0,s=0;for(;r!==-1;)r>a&&l.push(e.slice(a,r)),l.push(jsxRuntime.jsx("mark",{className:"kanuni-datagrid-highlight",children:e.slice(r,r+t.length)},s++)),a=r+t.length,r=n.indexOf(t,a);return a<e.length&&l.push(e.slice(a)),jsxRuntime.jsx("span",{className:"kanuni-datagrid-cell-text",children:l})}function Bu(e,t,n,r=""){if(e.renderCell)return e.renderCell({value:t,row:n.data,node:n,column:e});let l=datagridCore.lookupLabel(e,t);if(l!==null)return Eo(l,r);if(e.valueFormatter){let a=e.valueFormatter(t,n.data);return typeof a=="string"?Eo(a,r):a}return e.dateFormat&&e.dataType==="date"?Eo(datagridCore.formatDateValue(t,e.dateFormat),r):t==null?"":Eo(String(t),r)}function _u({gridId:e,node:t,index:n,layout:r,columnModel:l,centerColumns:a,centerIndices:s,stickyInsets:p,leadingSpacer:T,trailingSpacer:w,striped:k,selected:y,ariaSelectable:N=true,selectable:f=true,groupSelection:D,onToggleGroupSelect:A,groupDisplay:P="fullWidth",focusedColumnId:v,rowFocused:u=false,renderRow:E,checkboxColumn:L,statusColumn:$=false,rowNumberColumn:V=false,rowNumber:F=null,getNote:R,getSpan:U,resolveColSpans:M,findKind:h,headerRowCount:d,onRowClick:S,onRowMouseDown:O,onRowDoubleClick:q,onToggleSelect:K,onCellMouseDown:te,onRowContextMenu:ve,searchNeedle:de="",onToggleGroup:Fe,summaryDefs:b,detailColumn:Y=false,detailExpanded:Me=false,onToggleDetail:ne,onToggleTreeRow:le,renderDetail:ge,renderEditForm:De,renderRowMessage:Ee,renderCellContent:I,getCellClassName:se,onCellPointerDown:z,onCellPointerEnter:j,onCellDoubleClick:Ge,rowDrag:Le,dropSide:_e=null,rowStatus:Oe,rowStatusText:it,rowStatusTint:st=false,height:dt}){let ee=Te();if(datagridCore.isDetailRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+d,"data-row-key":String(t.key),"data-detail-for":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-detail-cell",role:"gridcell","aria-colindex":1,children:ge?.(t.data)})});if(datagridCore.isEditFormRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+d,"data-row-key":String(t.key),"data-editform-for":t.parentKey===null?"":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-editform-cell",role:"gridcell","aria-colindex":1,children:t.parentKey===null?null:De?.(t.parentKey,t.data)})});if(datagridCore.isMessageRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-message-row",role:"row","aria-rowindex":n+1+d,"data-row-key":String(t.key),"data-message-for":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-message-cell",role:"gridcell","aria-colindex":1,children:Ee?.(t.parentKey,t.data)})});if(datagridCore.isFillerRow(t))return null;if(datagridCore.isGroupRow(t)&&P==="fullWidth"){let H=l.getDef(t.columnId),J=H?.headerName??t.columnId,he=datagridCore.lookupLabel(H,t.value)??t.display??(t.label===""?ee.filterBlank:t.label),Se=t.aggregates??null;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${v?" 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:[D&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:D==="all",ref:re=>{re&&(re.indeterminate=D==="some");},"aria-label":datagridCore.fillText(ee.selectGroupAria,{count:String(t.count),group:he}),onChange:()=>A?.(String(t.key)),onClick:re=>re.stopPropagation(),onMouseDown:re=>re.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,")"]}),Se&&b?.map(re=>jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[datagridCore.summaryLabel(re)," ",l.getDef(re.columnId)?.headerName??re.columnId,":"]})," ",datagridCore.formatSummaryValue(re,Se[datagridCore.summaryKey(re.columnId,re.type)],l.getDef(re.columnId))]},datagridCore.summaryKey(re.columnId,re.type)))]})})}let ie=[],C=Gt({statusColumn:$,rowNumberColumn:V,detailColumn:Y,checkboxColumn:L}),Z=C.count,B=(H,J)=>({node:t,columnId:H,rowIndex:n,columnIndex:J,value:ae?void 0:l.getCellValue(t.data,H)}),ue=(H,J)=>{let he=()=>B(H,J);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${H}`,"aria-colindex":Z+J+1,"data-column-id":H,onMouseDown:Se=>{te?.(t,H),z?.(he(),Se);},onMouseEnter:j?Se=>j(he(),Se):void 0,onDoubleClick:Ge?()=>Ge(he()):void 0}},X=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,He=t.kind==="treePath",ae=datagridCore.isGroupRow(t)?t:null,Xe=He||ae!==null,Ve=ae?P==="column"?datagridCore.GROUP_COLUMN_ID:(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,ze=()=>{let H=ae,J=l.getDef(H.columnId),he=datagridCore.lookupLabel(J,H.value)??H.display??(H.label===""?ee.filterBlank:H.label);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:H.level*16},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:H.expanded?"\u25BE":"\u25B8"}),P!=="column"&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[J?.headerName??H.columnId,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:he}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",H.count,")"]})]})},we=(H,J)=>{let he=ae.aggregates?b?.find(Se=>Se.columnId===J):void 0;return he?jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:datagridCore.formatSummaryValue(he,ae.aggregates[datagridCore.summaryKey(J,he.type)],H)}):null},i=X?(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,Ze=(H,J,he)=>{if(ae){if(J===Ve)return ze();if(I){let re=I(B(J,he));if(re!==void 0)return re}return we(H,J)}if(I&&!He){let re=I(B(J,he));if(re!==void 0)return re}let Se=He?J===i?jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:Bu(H,l.getCellValue(t.data,J),t,de);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:re=>{re.stopPropagation(),le?.(t.key);},children:X.expanded?"\u25BE":"\u25B8"}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),Se]}):Se},Je=(H,J)=>{if(!se||ae)return "";let he=se(B(H,J));return he?` ${he}`:""},Ne=H=>!R||t.kind!=="data"?"":R(t.key,H,t.data)?" kanuni-datagrid-cell--noted":"",Qe=H=>U&&t.kind==="data"?U(n,H):null,c=(H,J)=>{let he=H.autoHeight?" kanuni-datagrid-cell--wrap":"";return !H.cellClassName||Xe?he:he+m(H,J)},m=(H,J)=>{let he=H.cellClassName;if(!he)return "";if(typeof he=="string")return ` ${he}`;let Se=t.data,re=he({value:l.getCellValue(Se,J),row:Se,node:t,column:H});return re?` ${re}`:""};if($&&ie.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:C.inset("statusColumn")},children:jsxRuntime.jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),V){let H=t.kind==="data"&&F!==null;ie.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":C.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:Cn,insetInlineStart:C.inset("rowNumberColumn")},children:H?F:""},"__rownum"));}Y&&ie.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":C.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:Go,insetInlineStart:C.inset("detailColumn")},children:Xe?null:jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Me,"aria-label":Me?ee.collapseDetails:ee.expandDetails,onMouseDown:H=>H.stopPropagation(),onClick:H=>{H.stopPropagation(),ne?.(t.key);},children:Me?"\u25BE":"\u25B8"})},"__detail")),L&&ie.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":C.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:So,insetInlineStart:C.inset("checkboxColumn")},onMouseDown:H=>H.stopPropagation(),onClick:H=>{H.target.tagName!=="INPUT"&&(H.stopPropagation(),K?.(t));},children:ae?D&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:D==="all",ref:H=>{H&&(H.indeterminate=D==="some");},"aria-label":datagridCore.fillText(ee.selectGroupAria,{count:String(ae.count),group:ae.display??ae.label}),onChange:()=>A?.(String(ae.key)),onClick:H=>H.stopPropagation(),onMouseDown:H=>H.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:()=>K?.(t),onClick:H=>H.stopPropagation(),onMouseDown:H=>H.stopPropagation()})},"__select"));let x=C.total,_=H=>v===H?" kanuni-datagrid-cell--focused":"",Q=H=>{let J=h&&t.kind==="data"?h(t.key,H):null;return J==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":J==="match"?" kanuni-datagrid-cell--find-match":""},oe={left:r.left.length,center:r.center.length},fe=t.kind==="data"&&M?M(t):null,ye=H=>fe?.widths.get(H.state.id)??H.state.width,Re=H=>{let J=fe?.spans.get(H);return J?{"aria-colspan":J}:null};r.left.forEach((H,J)=>{let he=H.def,Se=J===r.left.length-1,re=H.state.id;if(fe?.covered.has(re))return;let et=Do("left",J,oe);ie.push(jsxRuntime.jsx("div",{...ue(re,et),className:`${Zr(he.align,he.dataType)} kanuni-datagrid-cell--pinned${Se?" kanuni-datagrid-pin-edge-left":""}${_(re)}${Q(re)}${c(he,re)}${Je(re,et)}${Ne(re)}${Jr(Qe(re))}`,...Re(re),style:{width:ye(H),insetInlineStart:r.leftOffsets[J]+x},children:jr(Qe(re),v===re,()=>Ze(he,re,et))},re));});let Ce=fe?.lead??null,Ke=T-(fe?.leadingDelta??0),Rt=w-(fe?.trailingDelta??0);Ke>0&&ie.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Ke}},"__lead"));let ln=(H,J)=>{let he=H.def,Se=H.state.id,re=Do("center",J,oe),et=p?.get(Se),eo=et===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",Ln=Ce&&Ce.column.state.id===Se?Ce.width:ye(H);return jsxRuntime.jsx("div",{...ue(Se,re),...Re(Se),className:`${Zr(he.align,he.dataType)}${eo}${_(Se)}${Q(Se)}${c(he,Se)}${Je(Se,re)}${Ne(Se)}${Jr(Qe(Se))}`,style:et===void 0?{width:Ln}:{width:Ln,insetInlineStart:et+x},children:jr(Qe(Se),v===Se,()=>Ze(he,Se,re))},Se)},Pn=Ce?r.center.indexOf(Ce.column):-1,We=Ce===null;return a.forEach((H,J)=>{let he=s?.[J]??J;!We&&he>Pn&&(ie.push(ln(Ce.column,Pn)),We=true),!fe?.covered.has(H.state.id)&&ie.push(ln(H,he));}),We||ie.push(ln(Ce.column,Pn)),Rt>0&&ie.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Rt}},"__trail")),r.right.forEach((H,J)=>{let he=H.def,Se=J===0,re=H.state.id;if(fe?.covered.has(re))return;let et=Do("right",J,oe);ie.push(jsxRuntime.jsx("div",{...ue(re,et),className:`${Zr(he.align,he.dataType)} kanuni-datagrid-cell--pinned${Se?" kanuni-datagrid-pin-edge-right":""}${_(re)}${Q(re)}${c(he,re)}${Je(re,et)}${Ne(re)}${Jr(Qe(re))}`,...Re(re),style:{width:ye(H),insetInlineEnd:r.rightOffsets[J]},children:jr(Qe(re),v===re,()=>Ze(he,re,et))},re));}),jsxRuntime.jsxs("div",{className:`kanuni-datagrid-row${k&&n%2===1?" kanuni-datagrid-row--odd":""}${y?" kanuni-datagrid-row--selected":""}${u?" kanuni-datagrid-row--focused":""}${He?" kanuni-datagrid-row--tree-path":""}${ae?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${ae.level}`:""}${_e?` kanuni-datagrid-row--drop-${_e}`:""}${Oe?` ${datagridCore.rowStatusClassName(Oe,st)}`:""}`,role:"row","aria-rowindex":n+1+d,"aria-selected":ae||!N?void 0:y,"aria-expanded":ae?ae.expanded:void 0,"aria-level":ae?ae.level+1:void 0,"data-row-key":String(t.key),"data-row-status":Oe,"aria-description":Oe?it:void 0,"aria-busy":Oe==="saving"?true:void 0,"aria-invalid":Oe==="error"?true:void 0,"data-group-key":ae?String(ae.key):void 0,"data-group-level":ae?ae.level:void 0,style:dt===void 0?void 0:{height:dt},draggable:Le?.draggable&&!ae?true:void 0,onDragStart:Le&&!ae?H=>Le.onDragStart(t,H):void 0,onDragEnd:Le&&!ae?()=>Le.onDragEnd():void 0,onDragOver:Le&&!ae?H=>Le.onDragOver(t,H):void 0,onDrop:Le&&!ae?H=>Le.onDrop(t,H):void 0,onMouseDown:O&&!ae?H=>O(t,H):void 0,onClick:ae?()=>Fe?.(String(ae.key)):S?H=>S(t,n,H):void 0,onDoubleClick:q?H=>q(t,n,H):void 0,onContextMenu:ve?H=>ve(t,n,H):void 0,children:[Le&&!ae&&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"})]})})}),E&&t.kind==="data"?E({row:t.data,node:t,rowIndex:n,selected:y,focused:u}):ie]})}var vn=react.memo(_u);var Tn=26;function ta(e,t){return datagridCore.computeHeaderBands(e,t)}function na(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function oa(e,t){let n=jsxRuntime.jsx("span",{className:"kanuni-datagrid-band-label",children:e.label});if(!t||e.spacer||e.columnIds.length===0)return n;let r=t.pathOf(e.columnIds[0]).slice(0,e.level+1);if(r.length!==e.level+1||!t.collapsible(r))return n;let l=t.collapsed(r);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-band-toggle","aria-expanded":!l,"aria-label":l?t.labels.expand:t.labels.collapse,title:l?t.labels.expand:t.labels.collapse,onClick:a=>{a.stopPropagation(),t.onToggle(r);},children:jsxRuntime.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[jsxRuntime.jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),jsxRuntime.jsx("path",{d:"M5 8h6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),l&&jsxRuntime.jsx("path",{d:"M8 5v6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}),n]})}function Vu({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,depth:l,checkboxColumn:a=false,detailColumn:s=false,statusColumn:p=false,rowNumberColumn:T=false,rowHeight:w=Tn,bandFold:k}){if(l<=0)return null;let y=Gt({statusColumn:p,rowNumberColumn:T,detailColumn:s,checkboxColumn:a}).total,N=ta(e.left,l),f=ta(t,l),D=ta(e.right,l),A=(P,v,u)=>{let E=u;for(let L=0;L<v;L++)E+=P[L].width;return E};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:l},(P,v)=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":v+1,style:{width:e.totalWidth+y,height:w,top:v*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[v]??[]).map((u,E)=>jsxRuntime.jsx("div",{className:na(u,` kanuni-datagrid-band-cell--pinned${E===(N[v]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:u.spacer?"presentation":"columnheader","aria-colspan":u.spacer?void 0:u.columnIds.length,style:{width:u.width,insetInlineStart:A(N[v]??[],E,y)},title:u.spacer?void 0:u.label,children:oa(u,k)},u.columnIds[0])),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(f[v]??[]).map(u=>jsxRuntime.jsx("div",{className:na(u),role:u.spacer?"presentation":"columnheader","aria-colspan":u.spacer?void 0:u.columnIds.length,style:{width:u.width},title:u.spacer?void 0:u.label,children:oa(u,k)},u.columnIds[0])),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),(D[v]??[]).map((u,E)=>{let L=D[v]??[],$=0;for(let V=E+1;V<L.length;V++)$+=L[V].width;return jsxRuntime.jsx("div",{className:na(u,` kanuni-datagrid-band-cell--pinned${E===0?" kanuni-datagrid-pin-edge-right":""}`),role:u.spacer?"presentation":"columnheader","aria-colspan":u.spacer?void 0:u.columnIds.length,style:{width:u.width,insetInlineEnd:$},title:u.spacer?void 0:u.label,children:oa(u,k)},u.columnIds[0])})]},v))})}var aa=react.memo(Vu);var Xu=()=>jsxRuntime.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:"M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"0.6",strokeLinejoin:"round"})});function Ju(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function ju({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,sort:s,sortable:p,onSort:T,headerFilter:w=false,filteredColumns:k,onOpenFilter:y,filterIconMode:N="hover",checkboxColumn:f=false,detailColumn:D=false,statusColumn:A=false,rowNumberColumn:P=false,rowNumberHeader:v="#",selectAllState:u="none",selectAllDisabled:E=false,onToggleSelectAll:L,draggable:$=false,reorderable:V=false,onReorder:F,resizable:R=false,onResize:U,onAutoFit:M,onHeaderContextMenu:h,groupLevels:d,onHeaderClick:S,getHeaderClassName:O,renderHeaderLabel:q}){let K=Te(),te=Gt({statusColumn:A,rowNumberColumn:P,detailColumn:D,checkboxColumn:f}),ve=new Map(s.map((ee,ie)=>[ee.columnId,{direction:ee.direction,order:ie}])),de=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(),ne=b&&Fe.includes(b)?b:Fe[0],le=ee=>{Y(ee),document.querySelector(`[data-column-id="${ee}"].kanuni-datagrid-header-cell`)?.focus();},ge=ee=>{let ie=Fe.indexOf(ne),C=Math.min(Fe.length-1,Math.max(0,ie+ee));C!==ie&&le(Fe[C]);},De=react.useRef(null),Ee=react.useRef(false),[I,se]=react.useState(null),z=Fe,j=ee=>[...n.left,...n.center,...n.right].find(ie=>ie.state.id===ee)?.state.pinned??null,Ge=(ee,ie)=>(Ee.current?ee>ie.left+ie.width/2:ee<ie.left+ie.width/2)?"before":"after",Le=(ee,ie)=>{let C=De.current;if(!V||!C||C===ee||j(C)!==j(ee))return;ie.preventDefault(),ie.dataTransfer.dropEffect="move";let Z=Ge(ie.clientX,ie.currentTarget.getBoundingClientRect());se(B=>B?.id===ee&&B.side===Z?B:{id:ee,side:Z});},_e=(ee,ie)=>{let C=De.current;if(se(null),!V||!C||C===ee||j(C)!==j(ee))return;if(ie.preventDefault(),ie.stopPropagation(),Ge(ie.clientX,ie.currentTarget.getBoundingClientRect())==="before")F?.(C,ee);else {let B=z[z.indexOf(ee)+1];F?.(C,B===C?z[z.indexOf(ee)+2]:B);}De.current=null;},[Oe,it]=react.useState(null),st=(ee,ie)=>{if(!R)return;ie.preventDefault(),ie.stopPropagation();let C=ie.currentTarget,Z=ie.clientX,B=ee.state.width,ue=Ee.current?-1:1,X=ee.state.id;it(X),C.setPointerCapture(ie.pointerId);let He=B,ae=false,Xe=ze=>{ae=true,He=B+(ze.clientX-Z)*ue,U?.(X,He,false);},Ve=()=>{C.releasePointerCapture?.(ie.pointerId),C.removeEventListener("pointermove",Xe),C.removeEventListener("pointerup",Ve),C.removeEventListener("pointercancel",Ve),ae&&U?.(X,He,true),it(null);};C.addEventListener("pointermove",Xe),C.addEventListener("pointerup",Ve),C.addEventListener("pointercancel",Ve);},dt=(ee,ie,C)=>{let Z=ee.def,B=ee.state.id,ue=p&&Z.sortable!==false,X=w&&Z.filterable!==false,He=B===datagridCore.GROUP_COLUMN_ID,ae=ve.get(He?d?.[0]??B:B),Xe=$&&Z.groupable!==false||V&&Z.reorderable!==false,Ve=I?.id===B?I.side:null,ze=O?.(B);return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-header-cell${ie}${ze?` ${ze}`:""}${ue?" kanuni-datagrid-header-cell--sortable":""}${Ve?` kanuni-datagrid-header-cell--drop-${Ve}`:""}${Oe===B?" kanuni-datagrid-header-cell--resizing":""}${Z.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:C,role:"columnheader","aria-labelledby":`${Me}-${encodeURIComponent(B)}`,"aria-sort":ae?ae.direction==="asc"?"ascending":"descending":"none","data-column-id":B,tabIndex:B===ne?0:-1,onFocus:()=>Y(B),draggable:Xe&&Oe===null,onDragStart:we=>{we.dataTransfer.setData("text/x-kanuni-column",B),we.dataTransfer.effectAllowed="move",De.current=B,Ee.current=getComputedStyle(we.currentTarget).direction==="rtl";},onDragEnd:()=>{De.current=null,se(null);},onDragOver:V?we=>Le(B,we):void 0,onDragLeave:V?()=>se(we=>we?.id===B?null:we):void 0,onDrop:V?we=>_e(B,we):void 0,onContextMenu:h&&!datagridCore.isChromeColumn(B)?we=>h(B,we):void 0,onClick:ue||S?we=>{S?.(B,we)||ue&&T(B,we.shiftKey);}:void 0,onKeyDown:we=>{we.key==="ArrowRight"?(we.preventDefault(),ge(1)):we.key==="ArrowLeft"?(we.preventDefault(),ge(-1)):we.key==="Home"?(we.preventDefault(),le(Fe[0])):we.key==="End"?(we.preventDefault(),le(Fe[Fe.length-1])):X&&we.altKey&&we.key==="ArrowDown"?(we.preventDefault(),y?.(B,we.currentTarget)):ue&&(we.key==="Enter"||we.key===" ")&&(we.preventDefault(),T(B,we.shiftKey));},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-header-label",id:`${Me}-${encodeURIComponent(B)}`,children:q?.(B)??Ju(Z,B)}),ae&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:ae.direction==="asc"?"\u25B2":"\u25BC"}),ae&&s.length>1&&!He&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:ae.order+1}),w&&Z.filterable!==false&&jsxRuntime.jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${de.has(B)?" kanuni-datagrid-filter-button--active":""}${N==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":datagridCore.fillText(K.filterColumnAria,{column:Z.headerName??B}),"aria-haspopup":"dialog","data-filter-button":B,tabIndex:-1,onClick:we=>{we.stopPropagation(),y?.(B,we.currentTarget);},children:jsxRuntime.jsx(Xu,{})}),R&&Z.resizable!==false&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":B,role:"presentation",onPointerDown:we=>st(ee,we),onDoubleClick:we=>{we.stopPropagation(),M?.(B);},onClick:we=>we.stopPropagation()})]},B)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/Tn)+1,style:{width:n.totalWidth+te.total,top:e||void 0},children:[A&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell",role:"presentation","aria-hidden":"true",style:{width:kn,insetInlineStart:te.inset("statusColumn")}}),P&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":te.colIndex("rowNumberColumn"),"aria-label":K.rowNumberAria,style:{width:Cn,insetInlineStart:te.inset("rowNumberColumn")},children:v??""}),D&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":te.colIndex("detailColumn"),"aria-label":K.detailsAria,style:{width:Go,insetInlineStart:te.inset("detailColumn")}}),f&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":te.colIndex("checkboxColumn"),style:{width:So,insetInlineStart:te.inset("checkboxColumn")},children:jsxRuntime.jsx("input",{type:"checkbox",checked:u==="all",ref:ee=>{ee&&(ee.indeterminate=u==="some");},"aria-label":K.selectAllRows,disabled:E,onChange:()=>L?.()})}),n.left.map((ee,ie)=>dt(ee,` kanuni-datagrid-header-cell--pinned${ie===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:ee.state.width,insetInlineStart:n.leftOffsets[ie]+te.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(ee=>{let ie=t?.get(ee.state.id);return ie===void 0?dt(ee,"",{width:ee.state.width}):dt(ee," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:ee.state.width,insetInlineStart:ie+te.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((ee,ie)=>dt(ee,` kanuni-datagrid-header-cell--pinned${ie===0?" kanuni-datagrid-pin-edge-right":""}`,{width:ee.state.width,insetInlineEnd:n.rightOffsets[ie]}))]})}var la=react.memo(ju);function da(e,t,n=[]){let r=null,l=new Set,a=s=>{if(l.has(s)||(l.add(s),t.isPending(s)))return;let p=t.textFor(s);if(p===null)return;let T=e[s]??"";T!==p&&(T===""&&p===""||(r??={...e},r[s]=p));};for(let s of Object.keys(e))a(s);for(let s of n)a(s);return r??e}function ec({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,values:s,checkboxColumn:p=false,detailColumn:T=false,statusColumn:w=false,rowNumberColumn:k=false,placeholder:y,onChange:N,onCommit:f,periodSuggestions:D,periodListId:A,operators:P,onOperatorChange:v,renderCustom:u}){let E=Te(),L=Gt({statusColumn:w,rowNumberColumn:k,detailColumn:T,checkboxColumn:p}),$=y??E.filterPlaceholder,V=(F,R,U)=>{let M=F.state.id,h=F.def.filterable!==false,d=h?u?.(M):void 0,S=h&&d===void 0?datagridCore.customFilterOperators(F.def):[],O=S.some(K=>K.id===P?.[M])?P[M]:"",q=S.find(K=>K.id===O)?.operandType==="none";return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-cell${R}`,role:"gridcell",style:U,"data-column-id":M,children:[h&&d!==void 0&&d,h&&d===void 0&&S.length>0&&jsxRuntime.jsxs("select",{className:"kanuni-datagrid-filter-operator",value:O,"aria-label":datagridCore.fillText(E.filterOperatorAria,{column:F.def.headerName??M}),"data-filter-operator-for":M,onChange:K=>v?.(M,K.target.value),children:[jsxRuntime.jsx("option",{value:"",children:E.filterOperatorDefault}),S.map(K=>jsxRuntime.jsx("option",{value:K.id,children:K.label},K.id))]}),h&&d===void 0&&jsxRuntime.jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:s[M]??"",placeholder:$,"aria-label":datagridCore.fillText(E.filterColumnAria,{column:F.def.headerName??M}),"data-filter-for":M,disabled:q||void 0,list:F.def.dataType==="date"&&A&&O===""?A:void 0,onChange:K=>N(M,K.target.value),onKeyDown:K=>{K.key==="Enter"&&f?.(M,K.target.value);},onBlur:K=>f?.(M,K.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:[A&&D&&D.length>0&&jsxRuntime.jsx("datalist",{id:A,children:D.map(F=>jsxRuntime.jsx("option",{value:F},F))}),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((F,R)=>V(F,` kanuni-datagrid-filter-cell--pinned${R===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:F.state.width,insetInlineStart:n.leftOffsets[R]+L.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(F=>{let R=t?.get(F.state.id);return R===void 0?V(F,"",{width:F.state.width}):V(F," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:F.state.width,insetInlineStart:R+L.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((F,R)=>V(F,` kanuni-datagrid-filter-cell--pinned${R===0?" kanuni-datagrid-pin-edge-right":""}`,{width:F.state.width,insetInlineEnd:n.rightOffsets[R]}))]})}var ua=react.memo(ec);function pt({children:e,dark:t=false,kind:n="popup"}){let[r,l]=react.useState(null),a=Tt(),s=Pt();return react.useEffect(()=>{let p=document.createElement("div");return p.className=`kanuni-datagrid-root kanuni-datagrid-portal${t?" kanuni-datagrid-dark":""}${a}`,p.setAttribute(datagridCore.PORTAL_ATTRIBUTE,n),p.style.pointerEvents="auto",s().appendChild(p),l(p),()=>{p.remove();}},[t,a,s,n]),r?reactDom.createPortal(e,r):null}function nn({anchor:e,onClose:t,margin:n=8,autoFocus:r=false}){let l=react.useRef(null),[a,s]=react.useState(e),p=react.useCallback(T=>{if(l.current=T,!T)return;let w=T.getBoundingClientRect(),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,kl=200,pc=200,vl=8;function fc(e){let t=Te();return react.useMemo(()=>({search:t.search,selectAll:t.filterSelectAll,clear:t.clear,apply:t.apply,cancel:t.cancel,blank:t.filterBlank,custom:t.filterCustom,popupAria:t.filterPopupAria,nonBlank:t.filterNonBlank,emptyText:t.filterEmptyText,space:t.filterSpace,spaces:t.filterSpaces,noMatch:t.filterNoMatch,loading:t.filterLoading,truncated:t.filterTruncated,...e}),[t,e])}var gc=react.memo(function({itemKey:t,label:n,display:r,index:l,active:a,checked:s,onToggle:p,onFocus:T}){return jsxRuntime.jsxs("div",{role:"option","aria-selected":s,tabIndex:0,className:`kanuni-datagrid-filter-item${a?" kanuni-datagrid-filter-item--active":""}`,"data-value":n,"data-index":l,onFocus:()=>T(l),onClick:()=>p(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:s,tabIndex:-1}),jsxRuntime.jsx("span",{children:r})]})});function wc(e,t){return e.nonBlank?t.nonBlank:Tl({value:e.blank?null:e.value,label:e.label},t)}function Tl(e,t){return datagridCore.distinctDisplayText(e,{filterBlank:t.blank,filterEmptyText:t.emptyText,filterSpace:t.space,filterSpaces:t.spaces})}var wa={value:void 0,label:""},Po=e=>e.value===null||e.value===void 0;function hc({index:e,row:t,active:n,checked:r,text:l,onToggle:a,onFocus:s}){return t?jsxRuntime.jsxs("div",{role:"option","aria-selected":r,tabIndex:0,className:`kanuni-datagrid-filter-item${n?" kanuni-datagrid-filter-item--active":""}`,"data-value":t.label,"data-index":e,onFocus:()=>s(e),onClick:()=>a(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:r,tabIndex:-1}),jsxRuntime.jsx("span",{children:wc(t,l)})]}):jsxRuntime.jsx("div",{role:"option","aria-selected":false,"aria-busy":"true",className:"kanuni-datagrid-filter-item kanuni-datagrid-filter-item--pending","data-index":e,children:jsxRuntime.jsx("span",{"aria-hidden":"true",children:"\u2026"})})}function ha({gridId:e,columnId:t,headerLabel:n,entries:r,initialSelected:l,anchor:a,loading:s=false,dark:p,onApply:T,onClose:w,onCustom:k,truncated:y=false,onSearch:N,pager:f,labels:D}){let A=fc(D),[,P]=react.useReducer(C=>C+1,0);react.useEffect(()=>f?f.subscribe(P):void 0,[f]);let[v,u]=react.useState(""),[E,L]=react.useState(0),[$,V]=react.useState(()=>new Set(l??r.map(datagridCore.distinctEntryKey))),[F,R]=react.useState(false),U=react.useRef(null),M=react.useRef(null),[h,d]=react.useState(0),[S,O]=react.useState(240),q=`${e??""}:${t}`,K=Yn.get(q),te=react.useRef(K?.scrollTop??null),[ve,de]=react.useState(K&&K.width&&K.height?{width:K.width,height:K.height}:null),Fe=react.useCallback(C=>{U.current=C,C?.focus();},[]),b=react.useRef(null),Y=react.useMemo(()=>{let C=datagridCore.foldText(v.trim());if(!C||y)return r;let Z=b.current;(!Z||Z.entries!==r)&&(Z={entries:r,lowered:r.map(ue=>datagridCore.foldText(ue.label)),needle:"",result:[]},b.current=Z);let B=Z.needle!==""&&C.includes(Z.needle)?Z.result.filter(ue=>datagridCore.foldText(ue.label).includes(C)):r.filter((ue,X)=>Z.lowered[X].includes(C));return Z.needle=C,Z.result=B,B},[r,v,y]);react.useEffect(()=>{if(!N)return;let C=setTimeout(()=>N(v),150);return ()=>clearTimeout(C)},[v,N]),react.useEffect(()=>{if(!f)return;let C=setTimeout(()=>{if(f.getSearch()===v.trim())return;f.setSearch(v);let Z=M.current;Z&&(Z.scrollTop=0),d(0),L(0);},150);return ()=>clearTimeout(C)},[f,v]),react.useEffect(()=>{F||!l||V(new Set(l));},[l,F]),react.useEffect(()=>{F||l||V(new Set(r.map(datagridCore.distinctEntryKey)));},[r,F,l]);let Me=react.useCallback(C=>{M.current=C,C&&O(C.clientHeight||240);},[]);react.useEffect(()=>{let C=M.current;!C||te.current===null||s||C.scrollHeight<=C.clientHeight||(C.scrollTop=te.current,te.current=null,d(C.scrollTop));});let ne=react.useMemo(()=>{if(v.trim()!=="")return Y;let C=Y.findIndex(Po);return C<0?Y:[...Y.slice(0,C+1),wa,...Y.slice(C+1)]},[Y,v]),le=react.useMemo(()=>{let C=ne.length,Z=Math.max(0,Math.floor(h/xn)-vl),B=Math.ceil(S/xn)+vl*2,ue=Math.min(Z,Math.max(0,C-1)),X=Math.min(C,ue+B);return {start:ue,end:X,count:C,rows:ne.slice(ue,X)}},[ne,h,S]);react.useEffect(()=>{let C=M.current;f&&C&&O(C.clientHeight||240);},[f,s,f?.isLoading(),f?.getRowCount()]);let ge=f?f.getWindow(h,Math.max(S,150)):null,De=ge?.start??0,Ee=ge?.end??0;react.useEffect(()=>{f&&f.ensure(De,Ee);},[f,De,Ee,h]);let I=f?f.getRowCount():ne.length,se=s||(f?f.isLoading():false),z=nn({anchor:a,onClose:w}),[j,Ge]=react.useState(null),Le=(j??z.position.left)+(ve?.width??260)+48<window.innerWidth?"right":"left",_e=C=>{C.preventDefault(),C.stopPropagation();let Z=z.elementRef.current;if(!Z)return;let B=Z.getBoundingClientRect(),ue=Le,X={x:C.clientX,y:C.clientY,w:B.width,h:B.height,left:B.left},He=null,ae=Ve=>{let ze=Ve.clientX-X.x,we=Ve.clientY-X.y,i=window.innerHeight-B.top-12,Ze=Math.min(i,Math.max(pc,X.h+we));if(ue==="right"){let Je=window.innerWidth-X.left-12;He={width:Math.min(Je,Math.max(kl,X.w+ze)),height:Ze},de(He);}else {let Je=X.left+X.w,Ne=Je-12,Qe=Math.min(Ne,Math.max(kl,X.w-ze));He={width:Qe,height:Ze},de(He),Ge(Je-Qe);}M.current&&O(M.current.clientHeight);},Xe=()=>{if(window.removeEventListener("pointermove",ae),window.removeEventListener("pointerup",Xe),He){let Ve=Yn.get(q);Yn.set(q,{scrollTop:Ve?.scrollTop??M.current?.scrollTop??0,width:Math.round(He.width),height:Math.round(He.height)});}};window.addEventListener("pointermove",ae),window.addEventListener("pointerup",Xe);},Oe=react.useCallback(C=>{R(true),V(Z=>{let B=new Set(Z);if(C===datagridCore.NONBLANK_KEY){let ue=datagridCore.distinctNonBlankTicked(r,Z);for(let X of r)Po(X)&&!ue?B.delete(datagridCore.BLANK_KEY):B.add(datagridCore.distinctEntryKey(X));return B}return B.has(C)?B.delete(C):B.add(C),B});},[r]),it=react.useCallback(C=>L(C),[]),st=()=>{if(se)return;if(f){T(f.buildFilter(t));return}if($.size===r.length){T(null);return}let C=r.filter(X=>$.has(datagridCore.distinctEntryKey(X))),Z=C.some(Po),B=C.filter(X=>!Po(X)),ue;datagridCore.distinctNonBlankTicked(r,$)?ue={columnId:t,operator:"isnotnull"}:B.length===0?ue={columnId:t,operator:"isnull"}:Z?ue={logic:"or",nodes:[{columnId:t,operator:"in",value:B.map(X=>X.value)},{columnId:t,operator:"isnull"}]}:ue={columnId:t,operator:"in",value:B.map(X=>X.value)},T(ue);},dt=C=>{let Z=Math.max(0,Math.min(I-1,C));if(L(Z),f){let ue=M.current;ue&&(C<=0||C>=I-1)&&(ue.scrollTop=C<=0?0:ue.scrollHeight),requestAnimationFrame(()=>{let X=z.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${Z}"]`);X?.focus(),X?.scrollIntoView({block:"nearest"});});return}let B=z.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${Z}"]`);B?.focus(),B?.scrollIntoView({block:"nearest"});},ee=C=>C.key.length===1&&!C.ctrlKey&&!C.metaKey&&!C.altKey,ie=C=>{let Z=C.target===U.current;if(!((C.key==="Enter"||C.key===" ")&&C.target instanceof HTMLButtonElement)){if(C.key==="Tab"){let B=z.elementRef.current,ue=B?Array.from(B.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')):[],X=ue[0],He=ue[ue.length-1],ae=document.activeElement;X&&He&&(!C.shiftKey&&(ae===He||ae===B)?(C.preventDefault(),X.focus()):C.shiftKey&&(ae===X||ae===B)&&(C.preventDefault(),He.focus()));return}if(C.key==="Backspace"&&!Z){C.preventDefault(),U.current?.focus(),u(B=>B.slice(0,-1)),L(0);return}if(C.key==="ArrowDown"){C.preventDefault(),dt(Z?0:E+1);return}if(C.key==="ArrowUp"){C.preventDefault(),dt(Z?f?0:ne.length-1:E-1);return}if(!Z&&(C.key==="Home"||C.key==="End")){C.preventDefault(),dt(C.key==="Home"?0:I-1);return}if(C.key===" "&&!Z){if(C.preventDefault(),f){let ue=f.getRow(E);ue&&f.toggle(ue);return}let B=ne[E];B&&Oe(B===wa?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(B));return}if(C.key==="Enter"){C.preventDefault(),st();return}!Z&&ee(C)&&C.key!==" "&&(C.preventDefault(),U.current?.focus(),u(B=>B+C.key),L(0));}};return jsxRuntime.jsx(pt,{dark:p,children:jsxRuntime.jsxs("div",{ref:z.ref,className:"kanuni-datagrid-filter-popup",style:{left:j??z.position.left,top:z.position.top,...ve?{width:ve.width,height:ve.height,maxHeight:"none"}:null},role:"dialog","aria-label":A.popupAria.replace("{column}",n),tabIndex:-1,onKeyDown:ie,children:[jsxRuntime.jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${Le}`,"data-testid":"dg-filter-resize",onPointerDown:_e}),jsxRuntime.jsx("input",{ref:Fe,className:"kanuni-datagrid-filter-search",type:"search",placeholder:A.search,value:v,onChange:C=>{u(C.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:A.truncated}),k&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-custom","data-testid":"dg-filter-custom",onClick:k,children:A.custom}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(f)return f.selectAll();R(true),v.trim()===""?V(new Set(r.map(datagridCore.distinctEntryKey))):V(C=>{let Z=new Set(C);for(let B of Y)Z.add(datagridCore.distinctEntryKey(B));return Z});},children:A.selectAll}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(f)return f.clear();R(true),v.trim()===""?V(new Set):V(C=>{let Z=new Set(C);for(let B of Y)Z.delete(datagridCore.distinctEntryKey(B));return Z});},children:A.clear})]}),jsxRuntime.jsxs("div",{ref:Me,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true","aria-busy":se||void 0,"aria-setsize":I,onScroll:C=>{let Z=C.target.scrollTop;d(Z),te.current=null;let B=Yn.get(q);Yn.set(q,{...B,scrollTop:Z});},children:[se&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:A.loading}),!se&&I===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:A.noMatch}),f&&ge&&I>0&&jsxRuntime.jsx("div",{style:{height:ge.totalHeight,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${ge.offsetY}px)`},children:Array.from({length:ge.end-ge.start},(C,Z)=>{let B=ge.start+Z,ue=f.getRow(B);return jsxRuntime.jsx(hc,{index:B,row:ue,active:B===E,checked:ue?f.isChecked(ue):false,text:A,onToggle:X=>f.toggle(X),onFocus:it},B)})})}),!f&&le.count>0&&jsxRuntime.jsx("div",{style:{height:ne.length*xn,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${le.start*xn}px)`},children:le.rows.map((C,Z)=>{let B=le.start+Z,ue=C===wa,X=ue?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(C);return jsxRuntime.jsx(gc,{itemKey:X,label:C.label,display:ue?A.nonBlank:Tl(C,A),index:B,active:B===E,checked:ue?datagridCore.distinctNonBlankTicked(r,$):$.has(X),onToggle:Oe,onFocus:it},X)})})})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:w,children:A.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:st,disabled:se,"data-testid":"dg-filter-apply",children:A.apply})]})]})})}function ba(e,t,n){return n==="row"?e.getColumnFilter(t,datagridCore.FILTER_PART_ROW):e.getColumnFilter(t,datagridCore.FILTER_PART_SET)??e.getColumnFilter(t,datagridCore.FILTER_PART_DEFAULT)}function Ra({controller:e,columnId:t,surface:n,close:r}){let[l,a]=react.useState(()=>ba(e,t,n));react.useEffect(()=>(a(ba(e,t,n)),e.events.on("filterChanged",()=>{a(ba(e,t,n));})),[e,t,n]);let s=react.useCallback(w=>{e.setColumnFilter(t,w,n==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET);},[e,t,n]),p=react.useCallback(()=>{},[]),T=e.getColumnModel().getDef(t);return T?.renderFilter?jsxRuntime.jsx(jsxRuntime.Fragment,{children:T.renderFilter({columnId:t,column:T,surface:n,value:l,setValue:s,close:r??p})}):null}var kc='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function El({controller:e,columnId:t,headerLabel:n,anchor:r,dark:l,onClose:a}){let s=Te(),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(kc)??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(Ra,{controller:e,columnId:t,surface:"popup",close:a})})})}var Ca="text/x-kanuni-column";function Dc({columns:e,levels:t,onSetLevels:n,maxLevels:r=1,onExpandAll:l,onCollapseAll:a,emptyText:s}){let p=Te(),T=s??p.groupPanelHint,[w,k]=react.useState(false),y=react.useRef(null),[N,f]=react.useState(null),D=R=>e.find(M=>M.state.id===R)?.def.headerName??R,A=R=>{if(!R||t.includes(R))return;let U=t.length>=r?t.slice(0,r-1):[...t];n([...U,R]);},P=R=>n(t.filter(U=>U!==R)),v=(R,U)=>{let M=t.filter(d=>d!==R),h=Math.max(0,Math.min(M.length,U));n([...M.slice(0,h),R,...M.slice(h)]);},u=(R,U,M)=>{if(R===U)return;let d=t.filter(S=>S!==R).indexOf(U);d<0||v(R,M==="before"?d:d+1);},E=(R,U)=>{let M=R+U;M<0||M>=t.length||u(t[R],t[M],U<0?"before":"after");},L=(R,U)=>R<U.top+U.height/2?"before":"after",$=(R,U)=>{U.preventDefault(),U.stopPropagation();let M=L(U.clientY,U.currentTarget.getBoundingClientRect());f(null),k(false);let h=y.current;if(y.current=null,h){u(h,t[R],M);return}let d=U.dataTransfer.getData(Ca);if(!d||t.includes(d))return;if(t.length>=r){A(d);return}let S=M==="before"?R:R+1;n([...t.slice(0,S),d,...t.slice(S)]);},V=(R,U,M)=>{let h=M.ctrlKey||M.metaKey;h&&(M.key==="ArrowUp"||M.key==="ArrowLeft")?(M.preventDefault(),E(R,-1)):h&&(M.key==="ArrowDown"||M.key==="ArrowRight")?(M.preventDefault(),E(R,1)):(M.key==="Delete"||M.key==="Backspace")&&(M.preventDefault(),P(U));},F=e.filter(R=>!t.includes(R.state.id));return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-group-panel${w?" kanuni-datagrid-group-panel--over":""}`,onDragOver:R=>{R.preventDefault(),k(true);},onDragLeave:()=>k(false),onDrop:R=>{if(R.preventDefault(),k(false),f(null),y.current){y.current=null;return}A(R.dataTransfer.getData(Ca));},children:[t.length>0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((R,U)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-group-level${N?.index===U?` kanuni-datagrid-group-level--drop-${N.side}`:""}`,style:{"--dg-group-level":U},"data-group-level":U,onDragOver:M=>{M.preventDefault(),M.stopPropagation();let h=L(M.clientY,M.currentTarget.getBoundingClientRect());f(d=>d?.index===U&&d.side===h?d:{index:U,side:h});},onDragLeave:()=>f(M=>M?.index===U?null:M),onDrop:M=>$(U,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:U+1})}: ${D(R)}`,onDragStart:M=>{y.current=R,M.dataTransfer.effectAllowed="move",M.dataTransfer.setData(Ca,R);},onDragEnd:()=>{y.current=null,f(null);},onKeyDown:M=>V(U,R,M),children:[r>1&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-chip-level",children:U+1}),D(R),jsxRuntime.jsx("button",{type:"button","aria-label":datagridCore.fillText(p.groupRemoveAria,{column:D(R)}),onClick:()=>P(R),children:"\xD7"})]})},R))}):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:F.length===0,onChange:R=>A(R.target.value),children:[jsxRuntime.jsx("option",{value:"",children:p.groupAddLevelButton}),F.map(R=>jsxRuntime.jsx("option",{value:R.state.id,children:R.def.headerName??R.state.id},R.state.id))]}):jsxRuntime.jsxs("select",{value:t[0]??"",onChange:R=>n(R.target.value?[R.target.value]:[]),children:[jsxRuntime.jsx("option",{value:"",children:p.groupNoGrouping}),e.map(R=>jsxRuntime.jsx("option",{value:R.state.id,children:R.def.headerName??R.state.id},R.state.id))]})]})]})]})}var ka=react.memo(Dc);function Nc({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,defs:l,values:a,checkboxColumn:s=false,detailColumn:p=false,statusColumn:T=false,rowNumberColumn:w=false,onPickSummary:k,emptyHint:y="",position:N="bottom",bandOffset:f=0,headerRowsBetween:D=0}){let A=Te(),P=datagridCore.summaryTypeLabels(A),v=new Map(l.map(L=>[L.columnId,L])),u=Gt({statusColumn:T,rowNumberColumn:w,detailColumn:p,checkboxColumn:s}).total,E=(L,$,V)=>{let F=L.state.id,R=v.get(F),U=R?a[datagridCore.summaryKey(R.columnId,R.type)]:void 0,M=L.def.dataType==="number"||L.def.dataType==="bigint",h=datagridCore.isChromeColumn(F)?void 0:k;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-footer-cell${$}${M?" kanuni-datagrid-footer-cell--number":""}${R?" kanuni-datagrid-footer-cell--active":""}`,style:V,role:"gridcell","data-column-id":F,"data-summary-type":R?.type??"",title:R?`${datagridCore.summaryLabel(R,P)} \u2014 ${L.def.headerName??F}`:void 0,onContextMenu:h?d=>h(F,d):void 0,onClick:h?d=>h(F,d):void 0,children:R?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-value",children:datagridCore.formatSummaryValue(R,U,L.def)}):h?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-hint",children:y}):null},F)};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${N}`,role:"row","aria-label":A.columnTotalsAria,style:{width:e.totalWidth+u,"--dg-band-offset":`${f}px`,"--dg-pinned-gap":String(D)},children:[u>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:u,insetInlineStart:0}}),e.left.map((L,$)=>E(L,` kanuni-datagrid-footer-cell--pinned${$===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:L.state.width,insetInlineStart:e.leftOffsets[$]+u})),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(L=>E(L,"",{width:L.state.width})),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),e.right.map((L,$)=>E(L,` kanuni-datagrid-footer-cell--pinned${$===0?" kanuni-datagrid-pin-edge-right":""}`,{width:L.state.width,insetInlineEnd:e.rightOffsets[$]}))]})}var Fo=react.memo(Nc);function Ic(e,t){return `__dg_pinned_${e}_${t}`}function Fc({gridId:e,side:t,rows:n,rowKeys:r,onUserRowContextMenu:l,layout:a,columnModel:s,centerColumns:p,centerIndices:T,stickyInsets:w,leadingSpacer:k,trailingSpacer:y,checkboxColumn:N=false,detailColumn:f=false,statusColumn:D=false,rowNumberColumn:A=false,rowHeight:P,bandOffset:v=0,headerRowsBetween:u,ariaRowBase:E}){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":`${v}px`,"--dg-pinned-gap":String(u)},children:n.map((L,$)=>{let V=r?.[$]??null,F={kind:"data",key:Ic(t,$),sourceIndex:-1,data:L};return jsxRuntime.jsx(vn,{gridId:e,node:F,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:D,rowNumberColumn:A,rowNumber:null,headerRowCount:E,height:P,onRowContextMenu:V!==null&&l?(R,U,M)=>l(V,L,M):void 0},F.key)})})}var Ho=react.memo(Fc);function Nl({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 va({name:e,size:t=14}){return jsxRuntime.jsx("svg",{width:t,height:t,viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",className:"kanuni-datagrid-icon",children:jsxRuntime.jsx("path",{d:datagridCore.TOOLBAR_ICON_PATHS[e],fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}async function qn(e,t){try{let n=t==="csv"?await e.exportToCsv():t==="excel"?await e.exportToExcel():t==="excel-selected"?await e.exportToExcel({selectedOnly:!0}):await e.exportToPdf();return datagridCore.downloadBlob(n.blob,n.fileName),{completed:!0}}catch(n){return n instanceof datagridCore.ExportAbortedError?{completed:false}:{completed:false,error:n instanceof Error?n.message:String(n)}}}function rn({anchor:e,onClose:t,children:n,dark:r,className:l="",label:a,role:s="dialog"}){let p=nn({anchor:e,onClose:t});return jsxRuntime.jsx(pt,{dark:r,children:jsxRuntime.jsx("div",{ref:p.ref,className:`kanuni-datagrid-filter-popup ${l}`.trim(),style:{left:p.position.left,top:p.position.top},role:s,"aria-label":a,children:n})})}function Yc(e){let t=Te();return react.useMemo(()=>({search:t.toolbarSearch,csv:t.exportCsv,excel:t.exportExcel,excelSelected:t.exportExcelSelected,pdf:t.exportPdf,columns:t.columns,exporting:t.exporting,exportMenu:t.exportMenu,...e}),[t,e])}var qc=()=>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 Xc({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 D=Yc(f),[A,P]=react.useState(()=>e.getSearchText()),v=react.useRef(false),[u,E]=react.useState(null),[L,$]=react.useState(null),[V,F]=react.useState(null),R=react.useId(),U=y?.debounce??k,M=y?.validate?.(A)??null,h=K=>{v.current=false;let te=K.trim();e.getSearchText()!==te&&e.setSearchText(te);},d=()=>{M===null&&h(A);};react.useEffect(()=>{if(M!==null||!v.current)return;let K=setTimeout(()=>h(A),U);return ()=>clearTimeout(K)},[e,A,U,M]),react.useEffect(()=>{let K=te=>{v.current||P(ve=>ve.trim()===te?ve:te);};return K(e.getSearchText()),e.events.on("filterChanged",({searchText:te})=>K(te))},[e]);let[S,O]=react.useState(()=>e.getSelectedCount());react.useEffect(()=>(O(e.getSelectedCount()),e.events.on("selectionChanged",()=>O(e.getSelectedCount()))),[e]);let q=async K=>{E(K),F(null);let te=await qn(e,K);te.error?F(te.error):$(null),E(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??D.search,value:A,maxLength:y?.maxLength,"aria-label":y?.ariaLabel??D.search,"aria-invalid":M!==null||void 0,"aria-describedby":M!==null?R:void 0,"data-testid":"dg-toolbar-search",onChange:K=>{v.current=true,P(K.target.value);},onBlur:()=>{y?.applyOnBlur!==false&&d();},onKeyDown:K=>{K.key==="Enter"&&y?.applyOnBlur!==false&&d();}}),t&&M!==null&&jsxRuntime.jsx("span",{id:R,className:"kanuni-datagrid-toolbar-search-error",role:"alert","data-testid":"dg-toolbar-search-error",children:M}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxRuntime.jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:K=>{let te=K.currentTarget.getBoundingClientRect();p?.({left:te.left,top:te.bottom+2});},children:[jsxRuntime.jsx(va,{name:"columns"}),jsxRuntime.jsx("span",{children:D.columns})]}),N&&(n&&e.canExportAll()||r||l)&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":D.exportMenu,title:D.exportMenu,disabled:u!==null,"data-testid":"dg-export-menu",onClick:K=>{let te=K.currentTarget.getBoundingClientRect();$(L?null:{left:te.right-190,top:te.bottom+2});},children:u?jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsxRuntime.jsx(qc,{})}),L&&jsxRuntime.jsxs(rn,{anchor:L,onClose:()=>$(null),dark:s,role:"menu",label:D.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:u!==null,"data-testid":"dg-export-csv",onClick:()=>q("csv"),children:u==="csv"?D.exporting:D.csv}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:u!==null,"data-testid":"dg-export-excel",onClick:()=>q("excel"),children:u==="excel"?D.exporting:D.excel}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:u!==null||S===0,"data-testid":"dg-export-excel-selected",onClick:()=>q("excel-selected"),children:u==="excel-selected"?D.exporting:D.excelSelected}),l&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:u!==null,"data-testid":"dg-export-pdf",onClick:()=>q("pdf"),children:u==="pdf"?D.exporting:D.pdf})]}),w,V&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:V})]})}var Da=react.memo(Xc);var Qc=8;function em(e){let t=Te();return react.useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function Ea({controller:e,columns:t,anchor:n,onClose:r,dark:l,labels:a}){let s=em(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,D=p.trim().toLocaleLowerCase(),A=D?N.filter(P=>k(P).toLocaleLowerCase().includes(D)):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>Qc&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:s.search,"aria-label":s.search,value:p,onChange:P=>T(P.target.value)}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-list",children:[A.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-empty",children:s.empty}),A.map(P=>{let v=P.visible&&f===1;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsxRuntime.jsx("input",{type:"checkbox",checked:P.visible,disabled:v,"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 am(e){let t=Te();return react.useMemo(()=>({first:t.pagerFirst,previous:t.pagerPrevious,next:t.pagerNext,last:t.pagerLast,page:t.pagerPage,of:t.pagerOf,rowsPerPage:t.pagerRowsPerPage,pageButton:t.pagerPageButton,navigation:t.pagerAria,...e}),[t,e])}function im({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=am(y),f=e<=0,D=e>=t-1,A=l===0?0:e*n+1,P=Math.min(l,(e+1)*n),v=react.useRef(null),u=react.useRef(null);return react.useEffect(()=>{let E=u.current,L=v.current;if(!L||!(E instanceof HTMLButtonElement)||!E.disabled)return;let $=document.activeElement;if($&&$!==document.body&&$!==E)return;let V=L.querySelector('[aria-current="page"]')??L.querySelector("button:not(:disabled)");V?.focus(),u.current=V;},[e,t]),jsxRuntime.jsxs("div",{ref:v,className:"kanuni-datagrid-pager",role:"navigation","aria-label":N.navigation,onFocus:E=>{u.current=E.target;},onBlur:E=>{let L=E.relatedTarget;L&&!v.current?.contains(L)&&(u.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:E=>T(Number(E.target.value)),children:r.map(E=>jsxRuntime.jsx("option",{value:E,children:E},E))})]}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[A.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(E=>typeof E=="number"?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":datagridCore.fillText(N.pageButton,{n:String(E+1)}),"aria-current":E===e?"page":void 0,onClick:()=>a(E),children:E+1},E):jsxRuntime.jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},E)):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:D,"data-testid":"dg-page-next",onClick:s,children:"\u203A"}),jsxRuntime.jsx("button",{type:"button","aria-label":N.last,disabled:D,onClick:()=>a(t-1),children:"\xBB"})]})]})}var Sa=react.memo(im);function pm(e){let t=Te();return react.useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function fm({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:r,labels:l}){let a=pm(l),s=Te(),[,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 Ga=react.memo(fm);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=Te(),T=react.useRef(null),[w,k]=react.useState({left:e,top:t}),[y,N]=react.useState(()=>n.findIndex(Ko)),[f,D]=react.useState(null),[A,P]=react.useState(null),v=react.useRef(null),[u,E]=react.useState(null);react.useEffect(()=>P(null),[f]);let L=react.useCallback((h,d)=>{if(D(h),h===null||!d)return;let S=d.getBoundingClientRect();E({left:S.left,right:S.right,top:S.top});},[]),$=h=>T.current?.querySelector(`[data-item-index="${h}"]`)??null,V=react.useCallback(h=>{if(v.current=h,!h||!u)return;let d=8,S=h.getBoundingClientRect(),O=Math.max(d,Math.min(u.top-4,window.innerHeight-S.height-d)),K=u.right+S.width+d<=window.innerWidth?u.right:Math.max(d,u.left-S.width);P({left:K,top:O});},[u]),F=react.useCallback(h=>{if(T.current=h,!h)return;let d=h.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))}),h.focus();},[e,t]);react.useEffect(()=>{let h=S=>{let O=S.target;v.current?.contains(O)||T.current&&!T.current.contains(O)&&l();},d=()=>l();return document.addEventListener("mousedown",h),window.addEventListener("scroll",d,true),()=>{document.removeEventListener("mousedown",h),window.removeEventListener("scroll",d,true);}},[l]);let R=(h,d)=>{let S=n.length;for(let O=1;O<=S;O++){let q=(h+d*O+S*S)%S;if(Ko(n[q]))return q}return h},U=h=>{let d=n[h];if(!(!d||!Ko(d))){if(d.items?.length){L(h,$(h));return}d.onSelect?.(r),l();}},M=h=>{switch(h.key){case "ArrowDown":N(d=>R(d,1));break;case "ArrowUp":N(d=>R(d,-1));break;case "Home":N(n.findIndex(Ko));break;case "End":N(R(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 " ":U(y);break;case "Escape":l();break;case "Tab":l();return;default:return}h.preventDefault(),h.stopPropagation();};return jsxRuntime.jsxs(pt,{dark:a,children:[jsxRuntime.jsx("div",{ref:F,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((h,d)=>h.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},h.id??`sep-${d}`):jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${d===y?" kanuni-datagrid-menu-item--active":""}`,disabled:h.disabled,"data-item-index":d,"aria-haspopup":h.items?.length?"menu":void 0,"aria-expanded":h.items?.length?f===d:void 0,onMouseEnter:S=>{N(d),L(h.items?.length?d:null,S.currentTarget);},onClick:()=>U(d),children:[h.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:h.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:h.label}),h.shortcut&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:h.shortcut}),h.items?.length?jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},h.id??d))}),f!==null&&n[f]?.items?.length?jsxRuntime.jsx("div",{ref:V,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:A?{left:A.left,top:A.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[f].items.map((h,d)=>h.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},h.id??`sub-sep-${d}`):jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:h.disabled,onClick:()=>{h.onSelect?.(r),l();},children:[h.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:h.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:h.label})]},h.id??d))}):null]})}var wm=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),Pa=wm?"\u2318":"Ctrl+",Al=`${Pa}C`,hm=`${Pa}X`,bm=`${Pa}V`;function Sn(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
3
- `).length:0,()=>e.writeClipboard(n,"copy"));}function ym(e){navigator.clipboard?.writeText(e).catch(()=>{});}function Rm(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 Cm(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var km={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function La(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:()=>Sn(e)}),a.copyWithHeaders!==false&&s.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>Sn(e,{includeHeaders:true})}),a.copyWithGroupHeaders!==false&&Rm(e)&&s.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>Sn(e,{includeGroupHeaders:true})});let p=Cm(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[km[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 Ia(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 Ha({anchor:e,value:t,dark:n,onCommit:r,onCancel:l}){let a=Te(),[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 Em(e){let t=Te();return react.useMemo(()=>({busy:t.busy,loading:t.busyLoading,encoding:t.busyEncoding,filtering:t.busyFiltering,sorting:t.busySorting,computing:t.busyComputing,grouping:t.busyGrouping,aggregating:t.busyAggregating,projecting:t.busyProjecting,exporting:t.busyExporting,cancel:t.cancel,...e}),[t,e])}var Sm=new Set(["filtering","sorting","computing","encoding","exporting"]);function Oa({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",D=>s(D))),[e]);let w=a.busy&&a.background!==true;react.useEffect(()=>{if(!w){T(false);return}let D=setTimeout(()=>T(true),t);return ()=>clearTimeout(D)},[w,t]);let k=Em(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&&Sm.has(a.phase)&&a.cancellable!==false;return jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-overlay",role:"status","aria-live":"polite","data-testid":"dg-loading-overlay","data-phase":a.phase??"busy","data-blocking":a.phase==="exporting"?"true":void 0,"aria-busy":"true",children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-card",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-spinner","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-label",children: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 Gm(){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 Mm(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function Nm(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=Gm();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(Mm(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,Nm(p)));}return s===0?null:Math.round(Math.min(640,Math.max(48,s)))}function Ka(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 _a(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),D=react.useRef(t);D.current=t;let A=react.useCallback(h=>e.getRowByKey(h),[e]),P=(h,d)=>{let S=d.getBoundingClientRect();return h.clientY<S.top+S.height/2?"before":"after"},v=react.useCallback((h,d)=>{if(!datagridCore.isDataRow(h))return;f.current=h.key,N.current=h.key,y.current=false,k.current=null;let S={gridId:e.gridId,group:r,rowKey:h.key,row:h.data};d.dataTransfer.setData($o,JSON.stringify(S)),d.dataTransfer.setData("text/plain",String(h.key)),d.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:h.key}),d.stopPropagation();},[e,r]),u=react.useCallback(()=>{let h=N.current;h!==null&&e.notifyRowDragEnd({rowKey:h,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]),E=react.useCallback(h=>h.dataTransfer.types.includes($o)?f.current!==null?l:a&&r!==null:false,[l,a,r]),L=react.useCallback((h,d)=>{if(!datagridCore.isDataRow(h)||!E(d))return;if(d.preventDefault(),d.dataTransfer.dropEffect="move",f.current===h.key){k.current=null,w(null);return}let S=P(d,d.currentTarget),O=k.current?.key!==h.key||k.current.side!==S;k.current={key:h.key,side:S},w(q=>q?.key===h.key&&q.side===S?q:{key:h.key,side:S}),O&&f.current!==null&&e.notifyRowDrag("move",{rowKey:f.current,overKey:h.key,position:S});},[E,e]),$=react.useCallback((h,d,S)=>{let O=null;try{let K=h.dataTransfer.getData($o);O=K?JSON.parse(K):null;}catch{O=null;}if(!O)return;if(O.gridId===e.gridId){if(!l)return;let K=D.current?.onReorder;if(K){K({dragKey:O.rowKey,targetKey:d,position:S,row:A(O.rowKey)});return}e.moveRow(O.rowKey,d,S);return}!a||r===null||O.group!==r||D.current?.onAdd?.({row:O.row,rowKey:O.rowKey,otherGridId:O.gridId,targetKey:d,position:S});},[e,l,a,r,A]),V=react.useCallback((h,d)=>{if(w(null),!datagridCore.isDataRow(h)||!E(d))return;d.preventDefault(),d.stopPropagation();let S=P(d,d.currentTarget);y.current=true,k.current={key:h.key,side:S},$(d,h.key,S),f.current=null;},[E,$]),F=react.useCallback(h=>{E(h)&&(h.preventDefault(),h.dataTransfer.dropEffect="move");},[E]),R=react.useCallback(h=>{w(null),E(h)&&(h.preventDefault(),y.current=true,k.current=null,$(h,null,"after"),f.current=null);},[E,$]),U=react.useCallback(h=>{let d=h.relatedTarget;d&&h.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:v,onDragEnd:u,onDragOver:L,onDrop:V}:void 0,dropAt:n?T:null,bodyHandlers:n?{onDragOver:F,onDrop:R,onDragLeave:U}:void 0}}var Om=400;function Yl(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function ql(e){return (e.textContent??"").trim()}function Km(e){let{def:t,node:n,value:r,clipped:l,note:a}=e;if(a)return a;if(t&&n){if(typeof t.tooltip=="function"){let s=t.tooltip({value:r,row:n.data,node:n,column:t});return s||null}if(typeof t.tooltip=="string")return t.tooltip||null;if(t.tooltipField){let s=n.data[t.tooltipField];return s==null||s===""?null:String(s)}}return l&&l.length>0?l:null}function $a({rootRef:e,columnModel:t,getRowNode:n,getNote:r,config:l,controller:a,gridId:s}){let p=l?.enabled!==false,T=l?.delay??Om,w=l?.showOnTruncation!==false,k=l?.trigger??"hover",y=k!=="focus",N=k!=="hover"&&!!a&&!!s,f=l?.interactive===true,[D,A]=react.useState(null),P=react.useRef({columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:T});return P.current={columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:T},react.useEffect(()=>{if(!p){A(null);return}let v=e.current;if(!v)return;let u=null,E=null,L=null,$=null,V=s?`${s}-tooltip`:void 0,F=()=>{$?.removeAttribute("aria-describedby"),$=null;},R=()=>{u!==null&&(clearTimeout(u),u=null),E!==null&&(clearTimeout(E),E=null),L=null,F(),A(null);},U=()=>{E!==null&&(clearTimeout(E),E=null);},M=()=>{E=null,F(),A(null);},h=()=>{U(),u!==null&&(clearTimeout(u),u=null);},d=()=>{if(!f){R();return}E!==null&&clearTimeout(E),E=setTimeout(M,150);},S=(ne,le)=>{let{columnModel:ge,getRowNode:De,getNote:Ee}=P.current,I=ge.getDef(le);if(!I?.renderTooltip)return;let se=ne.closest("[data-row-key]")?.dataset.rowKey,z=se===void 0?void 0:De(se);if(!z||Ee&&Ee(z.key,le,z.data))return;let j=I.renderTooltip({value:ge.getCellValue(z.data,le),row:z.data,node:z,column:I});return j==null||j===false?null:{content:j}},O=(ne,le,ge,De)=>{let Ee=ge?void 0:S(ne,le);if(Ee===null)return;let I=Ee?"":ge?K(le,ne):q(ne,le);if(!Ee&&!I)return;let se=ne.getBoundingClientRect();U(),F(),De&&V&&(ne.setAttribute("aria-describedby",V),$=ne),A({text:I??"",...Ee?{content:Ee.content}:{},anchor:{top:se.top,left:se.left,width:se.width,height:se.height},...f?{interactive:true,hold:h,release:R}:{},...V?{id:V}:{}});},q=(ne,le)=>{let{columnModel:ge,getRowNode:De,getNote:Ee,showOnTruncation:I}=P.current,se=ge.getDef(le),z=ne.closest("[data-row-key]")?.dataset.rowKey,j=z===void 0?void 0:De(z);return Km({def:se,node:j,value:j?ge.getCellValue(j.data,le):void 0,clipped:I&&Yl(ne)?ql(ne):null,note:j&&Ee?Ee(j.key,le,j.data):null})},K=(ne,le)=>{let ge=P.current.columnModel.getDef(ne);if(ge?.headerTooltip)return ge.headerTooltip;if(!P.current.showOnTruncation)return null;let De=le.querySelector(".kanuni-datagrid-header-label")??le;if(!Yl(De))return null;let Ee=ql(De);return Ee.length>0?Ee:null},te=ne=>{if(!y)return;let ge=ne.target?.closest("[data-column-id]")??null;if(ge===L){U();return}if(f&&E!==null?(u!==null&&(clearTimeout(u),u=null),L=null):R(),!ge||!v.contains(ge))return;let De=ge.dataset.columnId;if(!De)return;let Ee=ge.classList.contains("kanuni-datagrid-header-cell");!Ee&&!ge.closest("[data-row-key]")||(L=ge,u=setTimeout(()=>{u=null,!(L!==ge||!ge.isConnected)&&O(ge,De,Ee,false);},P.current.delay));},ve=ne=>{if(!y)return;let le=ne.relatedTarget;L&&le&&L.contains(le)||d();},de=-1/0,Fe=()=>{de=Date.now();},b=()=>{R();let ne=a?.getFocus();!ne||!s||(u=setTimeout(()=>{if(u=null,!v.contains(document.activeElement)&&Date.now()-de>1500)return;let le=document.getElementById(`${s}-cell-${String(ne.rowKey)}-${ne.columnId}`);!le||!v.contains(le)||(L=le,O(le,ne.columnId,false,true));},P.current.delay));},Y=N?a.events.on("focusChanged",b):null,Me=ne=>{(!N||ne.key==="Escape")&&R();};return v.addEventListener("mouseover",te),v.addEventListener("mouseout",ve),v.addEventListener("mousedown",R),v.addEventListener("pointerdown",Fe),v.addEventListener("keydown",Me),v.addEventListener("scroll",R,true),window.addEventListener("blur",R),()=>{R(),Y?.(),v.removeEventListener("mouseover",te),v.removeEventListener("mouseout",ve),v.removeEventListener("mousedown",R),v.removeEventListener("pointerdown",Fe),v.removeEventListener("keydown",Me),v.removeEventListener("scroll",R,true),window.removeEventListener("blur",R);}},[p,e,y,N,f,a,s]),p?D:null}var Jl=6,Mn=8;function Wa({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:D}=n.getBoundingClientRect(),A=document.documentElement.clientWidth,P=document.documentElement.clientHeight,v=p.top+p.height+Jl,u=p.top-D-Jl,L=v+D+Mn<=P||u<Mn?v:u,$=Math.min(Math.max(Mn,p.left),Math.max(Mn,A-f-Mn));a({top:Math.min(L,P-D-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 Va(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(E=>E.columnId===a),w=r.getGroupLevels(),k=w.includes(a),y=s?.sortable!==false,N=r.getColumnStates().find(E=>E.id===a)?.pinned??null,f=s?.groupable!==false,D=r.canGroup(),A=[{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(E=>E.columnId!==a))},{id:"sep-1",separator:true}];D&&A.push({id:"group",label:k?n.ungroup:n.groupBy,disabled:!f,onSelect:()=>{k?r.groupBy(w.filter(E=>E!==a)):r.groupBy([...w,a].slice(-l));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&A.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),A.push({id:"footer",label:t.footerVisible?n.hideFooter:n.showFooter,onSelect:t.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:n.hideColumn,disabled:r.getColumnStates().filter(E=>E.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(E=>E.visible&&E.pinned===N).map(E=>E.id),v=P.indexOf(a),u=s?.reorderable!==false&&v>=0;return A.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!u||v<=0,onSelect:()=>r.moveColumn(a,P[v-1])},{id:"move-right",label:n.moveRight,disabled:!u||v<0||v>=P.length-1,onSelect:()=>r.moveColumn(a,P[v+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)}),A}var Yt=typeof window<"u"?react.useLayoutEffect:react.useEffect,rs=1e8,Vo=null;function is(){if(Vo!==null)return Vo;if(typeof document>"u"||!document.body)return null;let e=document.createElement("div");e.setAttribute("aria-hidden","true"),e.style.cssText="position:fixed;top:0;left:-9999px;width:80px;height:80px;overflow:auto;visibility:hidden;pointer-events:none;";let t=document.createElement("div");t.style.cssText="width:1px;",t.style.height=`${rs}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=rs;let n=e.scrollTop;return Ja=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(Vo=n),Vo}var Ja=null;function hp(){return Ja===null&&is(),Ja}function qa(e){return Math.abs(e)}function as(e,t){return getComputedStyle(t).direction==="rtl"?-e:e}function Uo(e,t){if(t)return e;if(e.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");if(e.dataSource!=null&&!Array.isArray(e.dataSource)&&e.grouping){e.debugMode&&console.warn("[datagrid] grouping a server-side DataSource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let s={...e};return delete s.grouping,Uo(s,t)}if(e.columns?.some(s=>s.spanRows)){e.debugMode&&console.warn("[datagrid] cell span/merge (spanRows) is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let s={...e,columns:e.columns.map(p=>p.spanRows?{...p,spanRows:void 0}:p)};return Uo(s,t)}if(e.tree){e.debugMode&&console.warn("[datagrid] tree data is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let s={...e};return delete s.tree,Uo(s,t)}if(!e.grouping)return e.masterDetail?Xa(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?Xa(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?Xa(a):a}function Xa(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 bp(e){return jsxRuntime.jsx(Rr,{locale:e.locale,messages:e.messages,children:jsxRuntime.jsx(Er,{theme:e.theme,density:e.density,palette:e.palette,portalContainer:e.portalContainer,children:jsxRuntime.jsx(yp,{...e})})})}function yp(e){let t=Te(),{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:D=true,columnResize:A=true,loadingOverlay:P=true,announcements:v=true,groupPanel:u=false,showRowCount:E=false,toolbar:L=false,toolbarExcel:$=false,toolbarPdf:V=false,filterPanel:F=false,filterPanelLabels:R,onOpenFilterBuilder:U,toolbarItemsBefore:M,toolbarItemsAfter:h,renderRow:d,stateStoring:S,headerMenu:O=true,focusedRow:q=false,focusedRowKey:K,onFocusedRowChanged:te,footer:ve,footerMenu:de=true,onRowClick:Fe,onRowActivate:b,onReady:Y,renderCellContent:Me,getCellClassName:ne,renderOverlay:le,onCellPointerDown:ge,onCellPointerEnter:De,onCellDoubleClick:Ee,onHeaderClick:I,getHeaderClassName:se,renderHeaderLabel:z,enterpriseEdition:j=false,renderDetail:Ge,renderEditForm:Le,density:_e,rowMenu:Oe,cellMenu:it,autoColumns:st,rowDrag:dt,tooltip:ee,pinnedTopRows:ie,pinnedBottomRows:C,footerPosition:Z="bottom",autoSizeStrategy:B="none",highlightSearch:ue=true,...X}=e,He=react.useMemo(()=>{let o=X.columns;if(o&&o.length>0)return o;let g=X.dataSource;if(!Array.isArray(g)||g.length===0)return o??[];let G=typeof st=="object"?st:void 0;return st===false?o??[]:datagridCore.inferColumns(g,G)},[X.columns,X.dataSource,st]),ae={...X,columns:He},Xe=datagridCore.isPackagedTheme(a)?datagridCore.THEME_ROW_HEIGHT[a][_e??"normal"]:_e?datagridCore.DENSITY_ROW_HEIGHT[_e]:datagridCore.DEFAULT_ROW_HEIGHT,Ve=ae.rowHeight===void 0?{...ae,rowHeight:Xe}:ae,ze=j?Number.POSITIVE_INFINITY:1,we=Uo(Ve,j),{controller:i,rows:Ze,window:Je,layout:Ne,sort:Qe,rowHeight:c,visibleCount:m}=yr(we),x=e.cardView,_=x?x===true?"on":`${x.breakpoint??""}|${(x.columns??[]).join("|")}`:"",Q=react.useMemo(()=>datagridCore.resolveCardView(x),[_]),[oe,fe]=react.useState(false),ye=react.useRef(Q);Yt(()=>{ye.current=Q;let o=Ct.current;fe(o?datagridCore.showsCards(datagridCore.cardViewWidth(o),Q):false);},[Q]);let Re=oe?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(()=>{oe!==ln.current&&(ln.current=oe,Rt?.(oe));},[oe,Rt]);let Pn=react.useCallback(o=>jsxRuntime.jsx($l,{fields:datagridCore.cardFields(i.getColumnModel(),Ke??[],o.row)}),[i,Ke]),We=react.useRef(null),H=datagridCore.normalizeRowStatus(e.rowStatus),J=sl(i,e.editing,j,{renderCellContent:Me,getCellClassName:ne,onCellDoubleClick:Ee},oe,{rootRef:We,rowHeight:c,dark:l,savedDuration:H?.savedDuration??0}),he=J.rowStatusSource??e.rowStatusSource??null,Se=o=>{if(!H||o.kind!=="data")return {};let g=datagridCore.resolveRowStatus(H,o.data,o.key,he);return g?{rowStatus:g.status,rowStatusText:datagridCore.rowStatusDescription(g,t),rowStatusTint:H.tint}:{}};react.useEffect(()=>{if(oe||!H?.messages){i.setMessageRows([],c);return}let o=H.get,g=datagridCore.rowMessageKeys(H,he).filter(G=>{if(!o)return true;let W=i.getDataRowNode(G)?.data;if(W===void 0)return true;let ce=o({row:W,rowKey:G});return ce===void 0||ce==="error"});i.setMessageRows(g,c);});let re=(o,g)=>{if(!H)return null;let G=datagridCore.rowMessageModel(H,o,g,he,t);return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-row-message","data-testid":"dg-row-message",children:[jsxRuntime.jsxs("svg",{className:"kanuni-datagrid-row-message-icon",viewBox:"0 0 16 16",width:"14",height:"14","aria-hidden":"true",children:[jsxRuntime.jsx("path",{d:"M8 1.5 15 14H1z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsxRuntime.jsx("path",{d:"M8 6v3.5M8 11.6v.4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-message-text",title:G.text,children:G.text}),G.retry&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-retry",onClick:G.retry,children:t.rowStatusRetry}),G.remove&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-delete",onClick:G.remove,children:t.rowStatusDelete})]})},et=datagridCore.resolveToolbar(L),eo=J.renderCellContent,Ln=J.getCellClassName,ds=J.onCellDoubleClick,Za=Ur(i,e.printLayout),In=Za.active?{...Je,rows:{...Je.rows,start:0,end:Ze.length,offsetY:0,totalHeight:0}}:Je,Fn=react.useMemo(()=>He.some(o=>o.autoHeight===true),[He]),Qa=N&&i.canListDistinctValues();N&&!Qa&&X.debugMode&&console.warn("[datagrid] headerFilter needs a column's distinct values. This grid is remote and its DataSource does not implement `loadDistinctValues` \u2014 implement it, or use `filterRow`.");let Ct=react.useRef(null);Yt(()=>{i.setEnterpriseEdition(j);},[i,j]),react.useEffect(()=>{Y?.(i);},[i,Y]),Yt(()=>{let o=is();o!==null&&o<datagridCore.DEFAULT_MAX_SCROLL_OFFSET&&i.setMaxScrollOffset(o);let g=hp();g!==null&&i.setMaxCanvasHeight(g);},[i]),Yt(()=>{let o=Ct.current;if(!o)return;let g=()=>{i.setViewportSize(o.clientWidth,o.clientHeight),ye.current&&fe(datagridCore.showsCards(datagridCore.cardViewWidth(o),ye.current)),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let ce=o.querySelector(".kanuni-datagrid-rows"),me=o.querySelector(".kanuni-datagrid-canvas");if(ce&&me){let pe=ce.getBoundingClientRect(),Ie=me.getBoundingClientRect();i.setChromeOffsets(pe.top-Ie.top,Ie.bottom-pe.bottom);}datagridCore.calibrateMaxScrollOffset(o,i);};if(g(),typeof ResizeObserver>"u")return;let G=new ResizeObserver(g);G.observe(o);let W=o.querySelector(".kanuni-datagrid-canvas");return W&&G.observe(W),()=>G.disconnect()},[i]),Yt(()=>{if(!k)return;let o=Ct.current?.querySelector(".kanuni-datagrid-canvas"),g=o?.querySelector(".kanuni-datagrid-header");if(!o||!g)return;let G=null,W=()=>{let me=g.offsetHeight,pe=me>0?`${me}px`:null;pe!==G&&(G=pe,pe?o.style.setProperty("--dg-header-actual",pe):o.style.removeProperty("--dg-header-actual"));};W();let ce=typeof ResizeObserver>"u"?null:new ResizeObserver(W);return ce?.observe(g),()=>{ce?.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 g=i.getVirtualWindow(),G=i.getRows(),W=new Map(i.getMeasuredRowHeights()),ce=false;for(let me=g.rows.start;me<g.rows.end;me++){let pe=G[me];if(!pe||pe.kind!=="data")continue;let Ie=o.querySelector(`[data-row-key="${CSS.escape(String(pe.key))}"]`);if(!Ie)continue;let Pe=Ie.getBoundingClientRect().height;Pe>0&&W.get(pe.key)!==Pe&&(W.set(pe.key,Pe),ce=true);}ce&&i.setMeasuredRowHeights(W);}),react.useEffect(()=>{if(Fn)return i.events.on("columnStateChanged",()=>{i.clearMeasuredRowHeights();})},[i,Fn]),react.useEffect(()=>i.events.on("scrollRequested",o=>{let g=Ct.current;if(!g)return;o.scrollTop!==void 0&&(g.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(g.scrollLeft=as(o.scrollLeft,g)),i.setScroll(g.scrollTop,qa(g.scrollLeft));let G=o.scrollTop;G===void 0||Math.abs(g.scrollTop-G)<=1||setTimeout(()=>{let W=Ct.current;!W||Math.abs(W.scrollTop-G)<=1||(W.scrollTop=G,i.setScroll(W.scrollTop,qa(W.scrollLeft)));},0);}),[i]);let ei=Yr(i,e.alignedGrids,Ct),us=react.useCallback(o=>{let g=o.currentTarget;i.setScroll(g.scrollTop,qa(g.scrollLeft)),ei.syncScroll(g.scrollLeft);},[i,ei]),cs=react.useCallback((o,g)=>i.toggleSort(o,g),[i]);Ka(i,S);let sn=_a(i,dt);react.useEffect(()=>{K!=null&&i.getFocusedRowKey()!==K&&i.focusRow(K);},[i,K]),react.useEffect(()=>{if(te)return i.events.on("focusedRowChanged",o=>te({rowKey:o.rowKey,row:o.row}))},[i,te]);let[Yo,ms]=react.useState(null);react.useEffect(()=>i.events.on("overlayChanged",o=>{ms(o.manual?o.overlay:null);}),[i]);let ps=react.useCallback(o=>{let g=i.getDataRowNode(o);if(g)return g;if(o==="")return;let G=Number(o);return Number.isNaN(G)?void 0:i.getDataRowNode(G)},[i]),mt=j?e.notes:void 0;!j&&e.notes&&e.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use them.");let to=!!mt?.onChange&&mt.menu!==false,no=react.useCallback((o,g,G)=>mt?mt.get({rowKey:o,columnId:g,row:G})??null:null,[mt]),ti=$a({rootRef:We,columnModel:i.getColumnModel(),getRowNode:ps,getNote:mt?no:void 0,config:ee,controller:i,gridId:X.gridId}),[ni,fs]=react.useState(0);react.useEffect(()=>{let o=new Set,g=[i.events.on("cellsFlashed",({rowKeys:G,columnIds:W,duration:ce})=>{let me=We.current;if(!me)return;let pe=G.length?G.map(Be=>`[data-row-key="${CSS.escape(String(Be))}"]`).join(","):".kanuni-datagrid-row",Ie=W.length?W.map(Be=>`[data-column-id="${CSS.escape(Be)}"]`).join(","):"[data-column-id]",Pe=[];me.querySelectorAll(pe).forEach(Be=>{Be.querySelectorAll(Ie).forEach(ot=>Pe.push(ot));});for(let Be of Pe)Be.classList.remove("kanuni-datagrid-cell--flash");me.offsetWidth;for(let Be of Pe)Be.classList.add("kanuni-datagrid-cell--flash");let Ye=setTimeout(()=>{for(let Be of Pe)Be.classList.remove("kanuni-datagrid-cell--flash");o.delete(Ye);},ce);o.add(Ye);}),i.events.on("cellsRefreshed",({revision:G})=>fs(G))];return ()=>{g.forEach(G=>G()),o.forEach(clearTimeout);}},[i]);let gs=react.useCallback((o,g)=>i.moveColumn(o,g),[i]),ws=react.useCallback((o,g,G)=>i.setColumnWidth(o,g,G??true),[i]),qo=react.useCallback(o=>{if(!We.current)return;let g=_o(We.current,o);g!==null&&i.setColumnWidth(o,g);},[i]),Xo=react.useCallback(()=>{let o=We.current;if(o)for(let g of i.getColumnStates()){if(!g.visible||g.flex)continue;let G=_o(o,g.id);G!==null&&i.setColumnWidth(g.id,G);}},[i]),Jo=react.useRef(null),[oo]=react.useState(()=>new datagridCore.RowMotion),oi=e.animateRows===true;react.useEffect(()=>{i.setAnimateRows(oi);},[i,oi]),react.useEffect(()=>{let o=()=>{i.getAnimateRows()&&oo.capture(Jo.current);},g=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(G=>i.events.on(G,o));return ()=>{g.forEach(G=>G()),oo.dispose();}},[i,oo]),Yt(()=>{i.getAnimateRows()&&oo.play(Jo.current);}),react.useEffect(()=>{if(B!=="fitGrid")return;let o=()=>i.sizeColumnsToFit();return o(),i.events.on("gridSizeChanged",o)},[i,B]);let jo=react.useRef(null);Yt(()=>{if(B!=="fitCells"){jo.current=null;return}jo.current!==i&&We.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(jo.current=i,Xo());});let[Zo,ri]=react.useState({}),[Qo,ai]=react.useState({}),dn=react.useRef(Qo);dn.current=Qo;let ii=react.useRef(Zo);ii.current=Zo;let li=e.filterDebounce??(i.isRemote()?200:0),er=react.useRef(false),ro=react.useMemo(()=>datagridCore.datePeriodLabels(t),[t]),tr=react.useRef(ro);tr.current=ro;let hs=react.useMemo(()=>datagridCore.periodSuggestionList(ro),[ro]),un=react.useCallback((o,g)=>{let G=i.getColumnModel(),W=G.getDataType(o),ce=datagridCore.findCustomFilterOperator(G.getDef(o),dn.current[o]??"");er.current=true;try{i.setColumnFilter(o,ce?datagridCore.parseCustomFilterInput(o,g,ce):datagridCore.parseFilterInput(o,g,W,tr.current),datagridCore.FILTER_PART_ROW);}finally{er.current=false;}},[i]),kt=react.useMemo(()=>datagridCore.createDebouncedCommit(li),[li]);react.useEffect(()=>()=>kt.cancelAll(),[kt]);let bs=react.useCallback((o,g)=>{ri(G=>({...G,[o]:g})),kt.schedule(o,()=>un(o,g));},[un,kt]),ys=react.useCallback((o,g)=>{dn.current={...dn.current,[o]:g},ai(dn.current),kt.cancel(o),un(o,ii.current[o]??"");},[un,kt]),Rs=react.useCallback(o=>{if(i.getColumnModel().getDef(o)?.renderFilter)return jsxRuntime.jsx(Ra,{controller:i,columnId:o,surface:"row"})},[i]),Cs=react.useCallback((o,g)=>{kt.cancel(o),un(o,g);},[un,kt]);react.useEffect(()=>i.events.on("filterChanged",()=>{if(er.current)return;let o=i.getColumnModel();ai(g=>{let G=null;for(let W of o.getOrder()){let ce=o.getDef(W);if(!ce?.filterOperators?.length||kt.isPending(W))continue;let me=i.getColumnFilter(W,datagridCore.FILTER_PART_ROW),pe=g[W]??"",Ie=pe;me?Ie=datagridCore.customFilterInputFromNode(me,ce)?.operatorId??"":datagridCore.findCustomFilterOperator(ce,pe)?.operandType==="none"&&(Ie=""),Ie!==pe&&(G??={...g},G[W]=Ie);}return G&&(dn.current=G),G??g}),ri(g=>da(g,{isPending:G=>kt.isPending(G),textFor:G=>{let W=i.getColumnFilter(G,datagridCore.FILTER_PART_ROW);if(!W)return "";let ce=datagridCore.customFilterInputFromNode(W,o.getDef(G));return ce?ce.text:!datagridCore.isFilterGroup(W)&&!datagridCore.isBuiltInFilterOperator(W.operator)?null:datagridCore.filterInputFromNode(G,W,o.getDataType(G),tr.current)}},o.getOrder()));}),[i,kt]);let[Ue,wt]=react.useState(null),qt=react.useRef(null);react.useEffect(()=>{!Ue&&qt.current&&(qt.current.dispose(),qt.current=null);},[Ue]);let cn=react.useRef(0),[mn,nr]=react.useState(null),or=react.useRef(null),Et=react.useCallback(o=>{let g=document.activeElement instanceof HTMLElement?document.activeElement:null;if(g?.closest(".kanuni-datagrid-portal"))return;let G=g&&We.current&&g!==We.current&&g.contains(We.current)?null:g;or.current={el:G,columnId:G?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??o??null};},[]),ks=react.useCallback((o,g)=>{Et(o);let G=g.getBoundingClientRect(),W=i.getColumnModel().getDef(o),ce={left:G.left,top:G.bottom+2},me=W?.headerName??o;if(W?.renderFilter){++cn.current,wt(null),nr({columnId:o,label:me,anchor:ce});return}nr(null);let pe=i.getColumnFilter(o,datagridCore.FILTER_PART_SET)??i.getColumnFilter(o,datagridCore.FILTER_PART_DEFAULT);if(!i.isRemote()){let Ye=++cn.current;wt({columnId:o,label:me,entries:[],selected:null,anchor:ce,loading:true}),i.getDistinctValueSetAsync(o).then(({entries:Be,truncated:ot})=>{cn.current===Ye&&wt(go=>go&&go.columnId===o?{...go,entries:Be,truncated:ot,capped:ot,selected:datagridCore.selectedLabelsFromFilter(pe,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:me,entries:[],selected:null,anchor:ce,loading:true,pager:Pe}),Pe.start().then(Ye=>{if(cn.current!==Ie){Pe.dispose();return}if(Ye.kind==="paged"){wt(ot=>ot&&ot.columnId===o?{...ot,loading:false}:ot);return}Pe.dispose(),qt.current===Pe&&(qt.current=null);let Be=i.sortDistinctEntries(Ye.values);wt(ot=>ot&&ot.columnId===o?{...ot,pager:void 0,entries:Be,selected:datagridCore.selectedLabelsFromFilter(pe,Be,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:ot);});return}wt({columnId:o,label:me,entries:[],selected:null,anchor:ce,loading:true}),i.getDistinctValuesAsync(o).then(Ye=>{cn.current===Ie&&wt(Be=>Be&&Be.columnId===o?{...Be,entries:Ye,selected:datagridCore.selectedLabelsFromFilter(pe,Ye,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:Be);});},[i,Et]),vs=react.useCallback(o=>{Ue&&(i.setColumnFilter(Ue.columnId,o,datagridCore.FILTER_PART_SET),wt(null));},[i,Ue]),Ts=Object.keys(i.getColumnStates().reduce((o,g)=>(i.getColumnFilter(g.id)&&(o[g.id]=true),o),{})),pn=i.getSelectionMode(),tt=pn!=="none"&&(X.selection?.checkboxColumn??false),si=(X.selection?.rowClick??(tt?"toggle":"replace"))==="toggle",xs=react.useCallback((o,g)=>{i.handleRowClick(o.key,{ctrlKey:g.ctrlKey||si&&!g.shiftKey,metaKey:g.metaKey,shiftKey:g.shiftKey});},[i,si]),Ds=react.useCallback((o,g)=>i.focusCell(o.key,g),[i]),Es=react.useCallback(o=>i.toggleRow(o.key),[i]),[fn,rr]=react.useState(null),Ss=react.useCallback(()=>rr(null),[]),[Hn,ar]=react.useState(null),di=react.useCallback((o,g)=>{let W=(We.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(g)}"]`)??We.current)?.getBoundingClientRect();return {left:W?.left??0,top:(W?.bottom??0)+2}},[]),Gs=react.useCallback(o=>{let g=Hn;ar(null),!(!g||!mt?.onChange)&&mt.onChange({rowKey:g.rowKey,columnId:g.columnId,row:g.row,text:o});},[Hn,mt]),ui=react.useCallback((o,g)=>{if(!mt?.onChange||mt.menu===false)return [];let G=o.columnId;if(!G)return [];let W=i.getRowKey(o.row),ce=no(W,G,o.row),me=()=>ar({rowKey:W,columnId:G,row:o.row,text:ce??"",anchor:di(W,G)}),pe=[];return g&&pe.push({separator:true,id:"__note-sep"}),pe.push({id:"__note-edit",label:ce?t.editNote:t.addNote,onSelect:me}),ce&&pe.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>mt.onChange?.({rowKey:W,columnId:G,row:o.row,text:null})}),pe},[mt,i,no,di,t]),[ao,io]=react.useState(null),ir=react.useRef({x:0,y:0}),ci=react.useCallback(o=>La(i,t,it,o,g=>{io({message:g,...ir.current}),console.error("[datagrid] export failed:",g);}),[i,t,it]),lo=react.useCallback((o,g,G,W,ce)=>{if(G.kind!=="data")return;Et();let me={row:G.data,node:G,rowIndex:W,columnId:ce,selectedKeys:i.getSelectedKeys()},pe=(typeof Oe=="function"?Oe(me):Oe)??[],Ie=J.editRowMenuItem(G.key),Pe=Ie?[...pe,...pe.length>0?[{id:"dg-sep-edit",separator:true}]:[],Ie]:pe,Ye=ui(me,Pe.length>0),Be=Ia(i,t,G.key,Pe.length+Ye.length>0),ot=[...Pe,...Ye,...Be,...ci(Pe.length+Ye.length+Be.length>0)];ot.length!==0&&(ir.current={x:o,y:g},io(null),rr({x:o,y:g,items:ot,context:me}));},[Oe,i,t,ui,ci,Et,J.editRowMenuItem]),mi=react.useCallback((o,g,G)=>{let W=Ia(i,t,o,false);if(W.length===0)return;G.preventDefault(),Et();let ce={row:g,node:{kind:"data",key:o,sourceIndex:-1,data:g},rowIndex:-1,columnId:G.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:i.getSelectedKeys()};ir.current={x:G.clientX,y:G.clientY},io(null),rr({x:G.clientX,y:G.clientY,items:W,context:ce});},[i,t,Et]),pi=react.useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),gn=react.useCallback((o,g,G,W,ce)=>{let me=W??-1;o&&i.notifyRow(o,G,me);let pe=pi(ce);pe!==null&&i.notifyCell(g,G,me,pe);},[i,pi]),Ms=react.useCallback((o,g,G)=>{Fe?.(o),gn("rowClicked","cellClicked",o,g,G);},[Fe,gn]),Ns=react.useCallback((o,g,G)=>{b?.(o),gn("rowDoubleClicked","cellDoubleClicked",o,g,G);},[b,gn]),Ps=react.useCallback((o,g,G)=>{if(gn(null,"cellContextMenu",o,g,G),o.kind!=="data"||!Oe&&!to&&it===false&&!i.isRowPinningEnabled()&&J.editRowMenuItem(o.key)===null)return;G.preventDefault(),i.isRowSelected(o.key)||i.handleRowClick(o.key,{});let W=G.target.closest("[data-column-id]")?.dataset.columnId??null;lo(G.clientX,G.clientY,o,g,W);},[Oe,to,it,i,lo,gn,J.editRowMenuItem]),[Ls,Is]=react.useState(null),[Fs,Hs]=react.useState(null),[lr,As]=react.useState(()=>X.grouping?.groupSummaries??false),[Xt,sr]=react.useState(null),[fi,dr]=react.useState(null),ur=fn!==null||Xt!==null||Ue!==null||mn!==null,gi=react.useRef(false);react.useEffect(()=>{if(gi.current&&!ur){let o=or.current;or.current=null;let g=o?.columnId?We.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,G=o?.el?.isConnected?o.el:g,W=document.activeElement,ce=!W||W===document.body||!!We.current&&W!==We.current&&W.contains(We.current);G&&ce&&(G.focus({preventScroll:true}),document.activeElement!==G&&g&&g.focus({preventScroll:true}));}gi.current=ur;},[ur]);let Os=react.useCallback(()=>{i.getSelectedCount()>0?i.clearSelection():i.selectAll();},[i]),cr=tt?i.getSelectableCount():m,mr=i.getSelectedCount(),Ks=cr>0&&mr>=cr?"all":mr>0?"some":"none",Bs=react.useCallback(o=>{let g=o.target;if(g.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let G=g.tagName;if(G==="INPUT"||G==="TEXTAREA"||G==="SELECT"||g.isContentEditable||J.handleKeyDown(o))return;if((Oe||to||it!==false||i.isRowPinningEnabled())&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let me=i.getFocus(),pe=me?Ze.findIndex(Pe=>Pe.key===me.rowKey):-1,Ie=pe>=0?Ze[pe]:void 0;if(Ie){let Ye=Ct.current?.querySelector(`[data-row-key="${CSS.escape(String(Ie.key))}"]`)?.getBoundingClientRect();lo(Ye?Ye.left+16:0,Ye?Ye.bottom:0,Ie,pe,me?.columnId??null),o.preventDefault();}return}let W=datagridCore.resolveGridCommand({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!W)return;if(W.type==="copy"){Sn(i);return}if(W.type==="activate"){let me=i.getFocus(),pe=me?Ze.find(Ie=>Ie.key===me.rowKey):void 0;pe&&b?.(pe),W.preventDefault&&o.preventDefault();return}i.executeCommand(W),W.preventDefault&&o.preventDefault();let ce=i.getFocusIndices();if(ce&&Ct.current){let pe=i.getColumnLayout().center.findIndex(Pe=>Pe.state.id===i.getFocus()?.columnId),Ie=i.ensureVisible(ce.rowIndex,pe===-1?void 0:pe);if(Ie){let Pe=Ct.current;Ie.scrollTop!==void 0&&(Pe.scrollTop=Ie.scrollTop),Ie.scrollLeft!==void 0&&(Pe.scrollLeft=as(Ie.scrollLeft,Pe)),i.setScroll(Pe.scrollTop,Pe.scrollLeft);}}},[i,Ze,b,Oe,to,it,lo,J.handleKeyDown]),Jt=react.useMemo(()=>datagridCore.bandDepth([...Ne.left,...Ne.center,...Ne.right]),[Ne]),wn=Tn,pr=(y?2:1)+Jt,wi=i.getPinnedRows("top"),hi=i.getPinnedRows("bottom"),fr=[...ie??[],...wi.map(o=>o.row)],gr=[...C??[],...hi.map(o=>o.row)],_s=[...(ie??[]).map(()=>null),...wi.map(o=>o.key)],$s=[...(C??[]).map(()=>null),...hi.map(o=>o.key)],so=fr.length,Ws=gr.length,uo=pr+so,co=Ls??X.grouping?.panel??u,bi=i.getGroupLevels(),Vs=react.useCallback(o=>i.groupBy(o.slice(0,ze)),[i,ze]),Us=react.useCallback(o=>i.toggleGroup(o),[i]),yi=react.useCallback(o=>i.toggleGroupSelection(o),[i]),zs=i.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),ft=i.hasMasterDetail()&&!!Ge,nt=e.rowNumbers??false,ht=!!H?.icons&&!oe,Ys=nt&&i.isPaginated()?i.getPage()*i.getPageSize():0;react.useEffect(()=>{i.setLeadWidth(ea(tt,ft,nt,ht));},[i,tt,ft,nt,ht]);let qs=react.useCallback(o=>i.toggleDetail(o),[i]),Xs=react.useCallback(o=>i.toggleTreeRow(o),[i]),Ri=i.getSummaryDefs(),Js=i.getSummaries(),hn=Fs??ve??Ri.length>0,An=hn&&Z==="top",wr=y?2:1,Ci=we.grouping?.groupSummaries&&lr?X.summaries:void 0,ki=i.getGroupDisplay(),vi=react.useCallback(()=>{As(o=>(i.setGroupSummaries(!o),!o));},[i]),js=react.useCallback((o,g)=>{if(!de)return;g.preventDefault();let G=i.getColumnModel().getDef(o),W=i.getColumnSummary(o),ce={columnId:o,headerName:G?.headerName??G?.field??o},me=[{id:"none",label:t.noTotal,disabled:W===null,onSelect:()=>i.setColumnSummary(o,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(G?.dataType).map(pe=>({id:pe,label:datagridCore.summaryTypeLabels(t)[pe],disabled:W?.type===pe,onSelect:()=>i.setColumnSummary(o,pe)}))];Et(),sr({x:g.clientX,y:g.clientY,items:me,context:ce});},[i,de,Et]),Zs=react.useCallback((o,g)=>{if(O===false)return;g.preventDefault();let G=i.getColumnModel().getDef(o),W={columnId:o,headerName:G?.headerName??G?.field??o},ce=Va(W,{controller:i,groupPanelVisible:co,footerVisible:hn,groupFootersAvailable:j&&i.getGroupLevels().length>0,groupFootersVisible:lr,onToggleGroupPanel:()=>Is(!co),onToggleFooter:()=>Hs(!hn),onToggleGroupFooters:vi,onOpenFieldChooser:()=>dr({left:g.clientX,top:g.clientY}),onBestFit:qo,onBestFitAll:Xo,maxGroupLevels:ze,labels:Wo(t)}),me=typeof O=="function"?O(W,ce):ce;!me||me.length===0||(Et(),sr({x:g.clientX,y:g.clientY,items:me,context:W}));},[O,i,co,hn,j,lr,vi,qo,Xo,ze,t,Et]),bn=i.getFocus(),Qs=bn?`${e.gridId}-cell-${String(bn.rowKey)}-${bn.columnId}`:void 0,hr=i.getSelectedCount(),ed=react.useMemo(()=>{let o=[datagridCore.fillText(t.announceRows,{n:m})];if(Qe.length>0){let g=Qe.map(G=>{let W=i.getColumnModel().getDef(G.columnId),ce=String(W?.headerName??W?.field??G.columnId),me=G.direction==="desc"?t.announceDescending:t.announceAscending;return `${ce} ${me}`}).join(", ");o.push(datagridCore.fillText(t.announceSortedBy,{columns:g}));}return hr>0&&o.push(datagridCore.fillText(t.announceSelected,{n:hr})),o.join(", ")},[i,m,Qe,hr,t]),{centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,rowStart:td,rowEnd:Ti}=gl(Ne,In),po=i.getColumnModel(),Rn=td,nd=o=>{if(Fn)return;let g=i.getRowHeightAt(o);return g===c?void 0:g},od=Array.from(Ze.slice(Rn,Ti)),rd=react.useMemo(()=>!nt||i.getGroupLevels().length===0&&!i.hasMasterDetail()&&!i.hasTreePathRows()?null:wl(Ze),[nt,i,Ze]),ad=i.hasCellSpans(),xi=react.useRef({start:0,end:0});xi.current={start:Rn,end:Ti-1};let Di=react.useRef(In.columns);Di.current=In.columns;let id=react.useCallback(o=>i.planRowColSpans(o,Di.current),[i]),ld=datagridCore.hasColSpans(Ne),sd=react.useCallback((o,g)=>{let G=i.getCellSpans(g);if(G.length===0)return null;let{start:W,end:ce}=xi.current,me=datagridCore.spanRoleAt(G,o,W,ce);if(!me)return null;if(me.role==="covered")return {kind:"covered"};let pe=i.getRowOffset(me.drawStart);return {kind:"draw",height:i.getRowOffset(me.drawEnd)+i.getRowHeightAt(me.drawEnd)-pe,offset:0}},[i]),Ei=i.getFindNeedle()||(ue?datagridCore.normalizeSearch(i.getSearchText()):""),Si=i.getFindState(),fo=Si.count>0?`${i.getFindNeedle()}\0${Si.activeIndex}`:"",Gi=react.useCallback((o,g)=>i.getFindMatchKind(o,g),[i]),dd={pathOf:o=>datagridCore.bandPath(i.getColumnModel().getDef(o)),collapsible:o=>i.isBandCollapsible(o),collapsed:o=>i.isBandCollapsed(o),onToggle:o=>i.toggleBand(o),labels:{expand:t.expandColumnGroup,collapse:t.collapseColumnGroup}},Mi={layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,defs:Ri,values:Js,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,onPickSummary:de?js:void 0,emptyHint:de?"\xB7":""};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${Za.active?" kanuni-datagrid-print":""}${oe?" kanuni-datagrid-cards":""}${datagridCore.themeClassName(a,_e,s)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${c}px`,"--dg-grip-inset":`${(nt?Cn:0)+(ht?kn:0)}px`,...r},dir:datagridCore.isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":a,"data-palette":s,"data-auto-height":Fn?"":void 0,"data-auto-header-height":k?"":void 0,"data-row-session":J.rowSessionAttr,ref:We,children:[J.bar&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:J.bar}),et.show&&jsxRuntime.jsx(Da,{controller:i,dark:l,search:et.search!==null,searchOptions:et.search??void 0,exportMenu:et.export,columnChooser:et.columns??e.toolbarColumnChooser??true,exportExcel:j&&$,exportPdf:j&&V,itemsBefore:M,itemsAfter:h,onOpenColumnChooser:o=>dr(g=>g?null:o)}),co&&jsxRuntime.jsx(ka,{columns:zs,levels:bi,onSetLevels:Vs,maxLevels:ze,onExpandAll:()=>i.expandAllGroups(),onCollapseAll:()=>i.collapseAllGroups()}),oe&&jsxRuntime.jsx(Wl,{controller:i,sort:Qe,text:t,columns:w?i.getColumnModel().getOrder().filter(o=>{let g=i.getColumnModel();return g.getState(o)?.visible!==false&&g.getDef(o)?.sortable!==false}).map(o=>({id:o,label:i.getColumnModel().getDef(o)?.headerName??o})):[]}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-scroller",ref:Ct,onScroll:us,onKeyDown:Bs,tabIndex:0,role:"grid","aria-rowcount":m+pr+so+Ws,"aria-colcount":Ne.left.length+Ne.center.length+Ne.right.length+(tt?1:0)+(ft?1:0)+(nt?1:0),"aria-multiselectable":pn==="multiple"||void 0,"aria-activedescendant":Qs,"aria-label":e.ariaLabel??e.gridId,children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(Ne.totalWidth||0)+ea(tt,ft,nt,ht)||"100%"},role:"rowgroup",children:[jsxRuntime.jsx(aa,{layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,depth:Jt,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,rowHeight:wn,bandFold:dd}),jsxRuntime.jsx(la,{bandOffset:Jt*wn,stickyInsets:yn,layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,sort:Qe,sortable:w,onSort:cs,groupLevels:bi,headerFilter:Qa,filteredColumns:Ts,onOpenFilter:ks,filterIconMode:f,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,selectAllState:Ks,selectAllDisabled:cr===0&&mr===0,onToggleSelectAll:Os,draggable:u,reorderable:D,onReorder:gs,resizable:A,onResize:ws,onAutoFit:qo,onHeaderContextMenu:O===false?void 0:Zs,onHeaderClick:I,getHeaderClassName:se,renderHeaderLabel:z}),y&&jsxRuntime.jsx(ua,{bandOffset:Jt*wn,stickyInsets:yn,layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,values:Zo,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,onChange:bs,onCommit:Cs,periodSuggestions:hs,periodListId:`${e.gridId}-filter-periods`,operators:Qo,onOperatorChange:ys,renderCustom:Rs}),An&&jsxRuntime.jsx(Fo,{...Mi,position:"top",bandOffset:Jt*wn,headerRowsBetween:wr}),fr.length>0&&jsxRuntime.jsx(Ho,{gridId:e.gridId,side:"top",rows:fr,rowKeys:_s,onUserRowContextMenu:mi,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,rowHeight:c,bandOffset:Jt*wn,headerRowsBetween:wr+(An?1:0),ariaRowBase:pr}),i.hasStickyGroupHeaders()&&jsxRuntime.jsx(Nl,{controller:i,width:Ne.totalWidth,bandOffset:Jt*wn,headerRowsBetween:wr+(An?1:0),belowPinned:so>0?so*c+1:0,renderRow:(o,g,G)=>jsxRuntime.jsx(vn,{gridId:e.gridId,node:o,index:g,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,striped:false,selected:false,groupSelection:tt&&pn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:yi,groupDisplay:ki,focusedColumnId:null,checkboxColumn:tt,statusColumn:ht,rowNumberColumn:nt,rowNumber:null,headerRowCount:uo,onToggleGroup:W=>{i.toggleGroup(W),i.scrollToRow(W);},revision:ni,searchNeedle:Ei,findStamp:fo,findKind:fo?Gi:void 0,summaryDefs:Ci,detailColumn:ft,height:G,renderCellContent:eo,getCellClassName:Ln})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:In.rows.totalHeight},onDragOver:sn.bodyHandlers?.onDragOver,onDrop:sn.bodyHandlers?.onDrop,onDragLeave:sn.bodyHandlers?.onDragLeave,children:[jsxRuntime.jsx("div",{ref:Jo,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${In.rows.offsetY}px)`},children:od.map((o,g)=>o?jsxRuntime.jsx(vn,{gridId:e.gridId,node:o,index:Rn+g,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,striped:p,selected:i.isRowSelected(o.key),ariaSelectable:pn!=="none",selectable:tt&&o.kind==="data"?i.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&tt&&pn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:yi,groupDisplay:ki,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,...Se(o),renderRow:oe?Pn:d,checkboxColumn:tt,statusColumn:ht,rowNumberColumn:nt,getSpan:ad?sd:void 0,resolveColSpans:ld?id:void 0,getNote:mt?no:void 0,rowNumber:nt?hl(Rn+g,rd,Ys):null,headerRowCount:uo,onRowClick:Ms,onRowMouseDown:pn==="none"?void 0:xs,onRowDoubleClick:Ns,onToggleSelect:Es,onCellMouseDown:Ds,onRowContextMenu:Ps,onToggleGroup:Us,onToggleTreeRow:Xs,revision:ni,searchNeedle:Ei,findStamp:fo,findKind:fo?Gi:void 0,summaryDefs:Ci,detailColumn:ft,detailExpanded:ft&&i.isDetailExpanded(o.key),onToggleDetail:qs,renderDetail:Ge,renderEditForm:Le??J.renderEditForm,renderRowMessage:o.kind==="message"?re:void 0,height:nd(Rn+g),renderCellContent:eo,getCellClassName:Ln,onCellPointerDown:ge,onCellPointerEnter:De,onCellDoubleClick:ds},String(o.key)):(()=>{let G=Rn+g,W=i.isRowLoadFailed(G);return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${W?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":G+1+uo,"aria-busy":W?void 0:"true",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:W?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?.()]}),gr.length>0&&jsxRuntime.jsx(Ho,{gridId:e.gridId,side:"bottom",rows:gr,rowKeys:$s,onUserRowContextMenu:mi,layout:Ne,columnModel:po,centerColumns:At,centerIndices:mo,stickyInsets:yn,leadingSpacer:Ot,trailingSpacer:Kt,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,rowHeight:c,headerRowsBetween:hn&&!An?1:0,ariaRowBase:uo+m}),hn&&!An&&jsxRuntime.jsx(Fo,{...Mi,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}),F&&jsxRuntime.jsx(Ga,{controller:i,alwaysVisible:F==="always",onOpenBuilder:U,describeOptions:R}),P!==false&&jsxRuntime.jsx(Oa,{controller:i,delay:typeof P=="number"?P:void 0,forced:Yo==="loading"}),i.isPaginated()&&jsxRuntime.jsx(Sa,{page:i.getPage(),pageCount:i.getPageCount(),pageSize:i.getPageSize(),pageSizes:X.pagination?.pageSizes,pageButtons:X.pagination?.pageButtons,maxPageButtons:X.pagination?.maxPageButtons,totalRows:m,onPage:o=>i.setPage(o),onNext:()=>i.nextPage(),onPrevious:()=>i.previousPage(),onPageSize:o=>i.setPageSize(o)}),v&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:ed}),Hn&&jsxRuntime.jsx(Ha,{anchor:Hn.anchor,value:Hn.text,dark:l,onCommit:Gs,onCancel:()=>ar(null)}),fn&&jsxRuntime.jsx(Bo,{x:fn.x,y:fn.y,items:fn.items,context:fn.context,dark:l,onClose:Ss}),ao&&jsxRuntime.jsx(pt,{dark:l,kind:"toast",children:jsxRuntime.jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:ao.x,top:ao.y},onClick:()=>io(null),children:ao.message})}),Xt&&jsxRuntime.jsx(Bo,{x:Xt.x,y:Xt.y,items:Xt.items,context:Xt.context,dark:l,label:`${Xt.context.headerName} column`,onClose:()=>sr(null)}),ti&&jsxRuntime.jsx(Wa,{state:ti,dark:l}),fi&&jsxRuntime.jsx(Ea,{controller:i,columns:i.getColumnStates(),anchor:fi,dark:l,onClose:()=>dr(null)}),mn&&jsxRuntime.jsx(El,{controller:i,columnId:mn.columnId,headerLabel:mn.label,anchor:mn.anchor,dark:l,onClose:()=>nr(null)},mn.columnId),Ue&&jsxRuntime.jsx(ha,{gridId:e.gridId,columnId:Ue.columnId,headerLabel:Ue.label,entries:Ue.entries,initialSelected:Ue.selected,anchor:Ue.anchor,loading:Ue.loading,truncated:Ue.truncated,pager:Ue.pager,onSearch:Ue.capped&&!i.isRemote()?o=>{let{entries:g,truncated:G}=i.searchDistinctValues(Ue.columnId,o);wt(W=>W&&W.columnId===Ue.columnId?{...W,entries:g,truncated:G}:W);}:void 0,dark:l,onApply:vs,onClose:()=>wt(null),onCustom:U?()=>{let o=Ue.columnId;wt(null),U({columnId:o});}:void 0},Ue.columnId)]})}function kp({defs:e,values:t,columnModel:n,rowCount:r,rowCountLabel:l}){let a=Te(),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 vp=react.memo(kp);function Tp({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 Mp(e,t){return ja(e,t,t?.source,(n,r)=>n.computeChartData(r))}function Np(e,t){return ja(e,t,t?.source,(n,r)=>n.computeChartXYData(r))}function Pp(e,t){return ja(e,t,t?.source,(n,r)=>n.computeChartBoxData(r))}function ja(e,t,n,r){let[l,a]=react.useState(null);return react.useEffect(()=>{if(!e||!t){a(null);return}let s=n??"view",p=datagridCore.chartNeedsOrder(t),T=false,w=0,k=false,y=false,N=null,f=()=>{let P=++w;r(e,t).then(v=>{!T&&P===w&&a(v);},()=>{});},D=(P=false)=>{y||=P,!k&&(k=true,queueMicrotask(()=>{if(k=false,T)return;let v=e.chartBasis(s,p);!y&&v===N||(y=false,N=v,f());}));};N=e.chartBasis(s,p),f();let A=[e.events.on("contentReady",()=>D()),e.events.on("rowsChanged",()=>D()),e.events.on("dataUpdated",()=>D()),...s==="selection"?[e.events.on("selectionChanged",()=>D(true))]:[]];return ()=>{T=true,w++,A.forEach(P=>P());}},[e,t]),l}Object.defineProperty(exports,"ClientRowModel",{enumerable:true,get:function(){return datagridCore.ClientRowModel}});Object.defineProperty(exports,"ColumnModel",{enumerable:true,get:function(){return datagridCore.ColumnModel}});Object.defineProperty(exports,"DEFAULT_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DEFAULT_ROW_HEIGHT}});Object.defineProperty(exports,"DENSITY_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DENSITY_ROW_HEIGHT}});Object.defineProperty(exports,"DataGridController",{enumerable:true,get:function(){return datagridCore.DataGridController}});Object.defineProperty(exports,"GRID_COLOR_SCHEMES",{enumerable:true,get:function(){return datagridCore.GRID_COLOR_SCHEMES}});Object.defineProperty(exports,"GRID_PALETTES",{enumerable:true,get:function(){return datagridCore.GRID_PALETTES}});Object.defineProperty(exports,"GRID_THEMES",{enumerable:true,get:function(){return datagridCore.GRID_THEMES}});Object.defineProperty(exports,"GridStateStore",{enumerable:true,get:function(){return datagridCore.GridStateStore}});Object.defineProperty(exports,"SUMMARY_TYPE_LABEL",{enumerable:true,get:function(){return datagridCore.SUMMARY_TYPE_LABEL}});Object.defineProperty(exports,"THEME_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.THEME_ROW_HEIGHT}});Object.defineProperty(exports,"VirtualWindowEngine",{enumerable:true,get:function(){return datagridCore.VirtualWindowEngine}});Object.defineProperty(exports,"allowedSummaryTypes",{enumerable:true,get:function(){return datagridCore.allowedSummaryTypes}});Object.defineProperty(exports,"andFilters",{enumerable:true,get:function(){return datagridCore.andFilters}});Object.defineProperty(exports,"attachStateStoring",{enumerable:true,get:function(){return datagridCore.attachStateStoring}});Object.defineProperty(exports,"bandDepth",{enumerable:true,get:function(){return datagridCore.bandDepth}});Object.defineProperty(exports,"bandPath",{enumerable:true,get:function(){return datagridCore.bandPath}});Object.defineProperty(exports,"computeColumnLayout",{enumerable:true,get:function(){return datagridCore.computeColumnLayout}});Object.defineProperty(exports,"computeHeaderBands",{enumerable:true,get:function(){return datagridCore.computeHeaderBands}});Object.defineProperty(exports,"createRestDataSource",{enumerable:true,get:function(){return datagridCore.createRestDataSource}});Object.defineProperty(exports,"describeFilter",{enumerable:true,get:function(){return datagridCore.describeFilter}});Object.defineProperty(exports,"downloadBlob",{enumerable:true,get:function(){return datagridCore.downloadBlob}});Object.defineProperty(exports,"fillText",{enumerable:true,get:function(){return datagridCore.fillText}});Object.defineProperty(exports,"filterInputFromNode",{enumerable:true,get:function(){return datagridCore.filterInputFromNode}});Object.defineProperty(exports,"formatSummaryValue",{enumerable:true,get:function(){return datagridCore.formatSummaryValue}});Object.defineProperty(exports,"humanizeField",{enumerable:true,get:function(){return datagridCore.humanizeField}});Object.defineProperty(exports,"importCsv",{enumerable:true,get:function(){return datagridCore.importCsv}});Object.defineProperty(exports,"inferColumns",{enumerable:true,get:function(){return datagridCore.inferColumns}});Object.defineProperty(exports,"isDataRow",{enumerable:true,get:function(){return datagridCore.isDataRow}});Object.defineProperty(exports,"isDataSource",{enumerable:true,get:function(){return datagridCore.isDataSource}});Object.defineProperty(exports,"isFilterGroup",{enumerable:true,get:function(){return datagridCore.isFilterGroup}});Object.defineProperty(exports,"isGroupRow",{enumerable:true,get:function(){return datagridCore.isGroupRow}});Object.defineProperty(exports,"isPackagedTheme",{enumerable:true,get:function(){return datagridCore.isPackagedTheme}});Object.defineProperty(exports,"lookupLabel",{enumerable:true,get:function(){return datagridCore.lookupLabel}});Object.defineProperty(exports,"moveRowInArray",{enumerable:true,get:function(){return datagridCore.moveRowInArray}});Object.defineProperty(exports,"parseCsv",{enumerable:true,get:function(){return datagridCore.parseCsv}});Object.defineProperty(exports,"parseFilterInput",{enumerable:true,get:function(){return datagridCore.parseFilterInput}});Object.defineProperty(exports,"sniffDelimiter",{enumerable:true,get:function(){return datagridCore.sniffDelimiter}});Object.defineProperty(exports,"summaryKey",{enumerable:true,get:function(){return datagridCore.summaryKey}});Object.defineProperty(exports,"summaryLabel",{enumerable:true,get:function(){return datagridCore.summaryLabel}});Object.defineProperty(exports,"summaryTypeLabels",{enumerable:true,get:function(){return datagridCore.summaryTypeLabels}});Object.defineProperty(exports,"themeClassName",{enumerable:true,get:function(){return datagridCore.themeClassName}});exports.BAND_ROW_HEIGHT=Tn;exports.DEFAULT_EDIT_FORM_LABELS=du;exports.DEFAULT_HEADER_MENU_LABELS=Zl;exports.DataGrid=bp;exports.GridCellEditor=Br;exports.GridColumnChooser=Ea;exports.GridContextMenu=Bo;exports.GridDateEditor=Qt;exports.GridDialog=$r;exports.GridEditForm=Lr;exports.GridFilterPanel=Ga;exports.GridFilterRow=ua;exports.GridFooterRow=Fo;exports.GridGroupPanel=ka;exports.GridHeader=la;exports.GridHeaderBands=aa;exports.GridHeaderFilterPopup=ha;exports.GridLoadingOverlay=Oa;exports.GridLookupEditor=Zt;exports.GridNoteEditor=Ha;exports.GridPager=Sa;exports.GridPinnedRows=Ho;exports.GridPopupPanel=rn;exports.GridPortal=pt;exports.GridRow=vn;exports.GridRowEditor=Ir;exports.GridSummaryBar=vp;exports.GridSurfaceProvider=Er;exports.GridTextProvider=Rr;exports.GridToolbar=Da;exports.GridToolbarButton=Tp;exports.GridTooltip=Wa;exports.PRINT_MAX_ROWS=Vr;exports.ROW_DRAG_MIME=$o;exports.SHORTCUT_COPY=Al;exports.SHORTCUT_CUT=hm;exports.SHORTCUT_PASTE=bm;exports.ToolbarIcon=va;exports.buildCellMenuItems=La;exports.buildHeaderMenu=Va;exports.copyToClipboard=Sn;exports.editFormColumnIds=rl;exports.editFormLabels=Pr;exports.headerMenuLabels=Wo;exports.matchOptions=Vd;exports.measureBestFitWidth=_o;exports.reconcileFilterInputs=da;exports.runGridExport=qn;exports.useAlignedGrids=Yr;exports.useAnchoredPopup=nn;exports.useCellTooltip=$a;exports.useDataGrid=yr;exports.useEditModes=Or;exports.useGridChartBoxData=Pp;exports.useGridChartData=Mp;exports.useGridChartXYData=Np;exports.useGridEditing=vr;exports.useGridPortalTarget=Pt;exports.useGridSurfaceClass=Tt;exports.useGridText=Te;exports.usePrintLayout=Ur;exports.useRowDrag=_a;exports.useStateStoring=Ka;exports.writeClipboardText=ym;
1
+ 'use strict';var react=require('react'),datagridCore=require('@kanunilabs/datagrid-core'),jsxRuntime=require('react/jsx-runtime'),reactDom=require('react-dom');var md=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],Li=new WeakMap;function br(e){let t=Li.get(e);if(!t){let n={version:0,listeners:new Set},r=()=>{n.version++,n.listeners.forEach(l=>l());};for(let l of md)e.events.on(l,r);Li.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(()=>((U,G)=>n.current?.(U,G))),l=()=>{let U=new datagridCore.DataGridController(t?{...e,sorting:{...e.sorting,postSort:r}}:e);return br(U),U},[a,s]=react.useState(l);react.useEffect(()=>{if(a.isDisposed()){s(l());return}return ()=>a.dispose()},[a]);let p=react.useCallback(U=>{let{listeners:G}=br(a);return G.add(U),()=>{G.delete(U);}},[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 D=e.rowHeight,A=react.useRef(true);react.useEffect(()=>{if(A.current){A.current=false;return}D!==void 0&&a.setRowHeight(D);},[a,D]);let P=e.selection?.mode??"none";react.useEffect(()=>{a.setSelectionMode(P);},[a,P]);let v=e.rowPinning;react.useEffect(()=>{a.setRowPinning(v);},[a,v]);let u=e.selection?.isRowSelectable,C=react.useRef(true);react.useEffect(()=>{if(C.current){C.current=false;return}a.setRowSelectable(u??null);},[a,u]);let L=t!==void 0,$=react.useRef(true);react.useEffect(()=>{if($.current){$.current=false;return}a.setPostSort(L?r:null);},[a,L,r]);let V=e.grouping?.groupBy??null,F=JSON.stringify(V==null?[]:typeof V=="string"?[V]:V),R=react.useRef(true);return react.useEffect(()=>{if(R.current){R.current=false;return}a.groupBy(JSON.parse(F));},[a,F]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var Fi=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(Fi.Provider,{value:r,children:n})}function Te(){return react.useContext(Fi)}var ho=new WeakMap,Md=1e5,Nd=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function Pd(e){let{controller:t,canEditColumn:n}=e;return {controller:t,mode:e.mode??"cell",onSave:e.onSave,editOnKeyPress:e.editOnKeyPress,focusCellOnTab:e.focusCellOnTab,focusCellOnCycle:e.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,enabled:e.enabled,savedDuration:e.savedDuration,range:false,history:false,canEditColumn:r=>{let l=t?.getColumnModel().getDef(r);return l?.lookup||l?.renderEditor||l?.allowFormulas===true?false:n?.(r)??true}}}function vr(e){let t=e.controller?.isEnterpriseEdition()??false;return Ld(t?e:Pd(e))}function Ld({controller:e,mode:t="batch",rules:n,onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:p,onInitNewRow:T,onRowInserted:w,onRowUpdated:k,onRowRemoved:y,editOnKeyPress:N,confirmDelete:f,confirmDeleteMessage:D,insertKey:A,appendOnArrowDown:P,newRowPosition:v,focusCellOnTab:u,focusCellOnCycle:C,keepEditingOnTab:L,enabled:$=true,savedDuration:V,range:F=true,history:R=true,canEditColumn:U}){let G=Te(),[h,d]=react.useState(0),S=react.useCallback(()=>d(c=>c+1),[]),O=react.useMemo(()=>new datagridCore.RangeSelectionEngine,[]),q=react.useMemo(()=>({start(c,m){O.start(c,m),S();},add(c,m){O.add(c,m),S();},extend(c,m){O.extend(c,m)&&S();},finish(){O.finish(),S(),e?.notifyViewStateChanged();},clear(){O.clear()&&(S(),e?.notifyViewStateChanged());},contains:(c,m)=>O.contains(c,m),isAnchor:(c,m)=>O.isAnchor(c,m),getRange:()=>O.getRange(),getBounds:()=>O.getBounds(),toTsv:c=>O.toTsv(c),selectColumn(c,m,x){return O.selectColumn(c,m,x)?(S(),e?.notifyViewStateChanged(),true):false},fullColumns:c=>O.fullColumns(c)}),[O,S,e]),K=react.useRef(null);react.useEffect(()=>{if(!(!e||!F))return e.registerViewStatePart("ranges",{session:true,get:()=>datagridCore.rangesToSaved(O.getRanges(),e.getVisualColumnIds()),apply:c=>{O.setRanges(datagridCore.rangesFromSaved(c,e.getVisualColumnIds())),S();}})},[e,F,O,S]);let[ne,ve]=react.useState(null),ce=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:D,insertKey:A,appendOnArrowDown:P,newRowPosition:v,focusCellOnTab:u,focusCellOnCycle:C,keepEditingOnTab:L,canEditColumn:U});ce.current={onSave:r,crud:l,allowAdding:a,allowUpdating:s,allowDeleting:p,onInitNewRow:T,onRowInserted:w,onRowUpdated:k,onRowRemoved:y,editOnKeyPress:N,confirmDelete:f,confirmDeleteMessage:D,insertKey:A,appendOnArrowDown:P,newRowPosition:v,focusCellOnTab:u,focusCellOnCycle:C,keepEditingOnTab:L,canEditColumn:U};let Fe=react.useRef(null),b=react.useMemo(()=>{if(!e||!$)return null;let c=m=>e.getRowByKey(m);return new datagridCore.EditingEngine({mode:t,rules:n,messages:G,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 _=c(m);return _?e.getColumnModel().getStoredValue(_,x):void 0},formatForEdit:(m,x,_)=>e.formatCellForEdit(x,_),parseFromEdit:(m,x,_)=>e.parseCellFromEdit(x,_,m),readRow:c,editableColumns:m=>{let x=e.getColumnLayout(),_=c(m);return [...x.left,...x.center,...x.right].map(Q=>Q.state.id).filter(Q=>{if(e.getColumnModel().getDef(Q)?.editable===false||ce.current.canEditColumn&&!ce.current.canEditColumn(Q))return false;let re=ce.current.allowUpdating;return re===void 0?true:typeof re=="function"?re(_,Q):re})},isColumnEditable:m=>e.getColumnModel().getDef(m)?.editable!==false&&(ce.current.canEditColumn?.(m)??true),applyValue:(m,x,_)=>e.writeCellValue(m,x,_),storedValue:(m,x,_)=>e.valueAfterWrite(m,x,_),insertRow:(m,x,_,Q)=>{let re=e.getRowKeyField(),we={...x};re&&(we[re]=m),e.applyTransaction({add:[we],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:()=>ce.current.allowAdding??false,allowUpdating:(m,x)=>{let _=ce.current.allowUpdating;return _===void 0?true:typeof _=="function"?_(m,x):_},allowDeleting:m=>{let x=ce.current.allowDeleting;return x===void 0?false:typeof x=="function"?x(m):x},onInitNewRow:m=>ce.current.onInitNewRow?.(m),get newRowPosition(){return ce.current.newRowPosition},onRowInserted:(m,x)=>ce.current.onRowInserted?.(m,x),onRowUpdated:(m,x,_)=>ce.current.onRowUpdated?.(m,x,_),onRowRemoved:(m,x)=>ce.current.onRowRemoved?.(m,x),crud:{get insert(){let m=ce.current.crud?.insert;return m&&(x=>m(x))},get update(){let m=ce.current.crud?.update;return m&&((x,_,Q)=>m(x,_,Q))},get remove(){let m=ce.current.crud?.remove;return m&&((x,_)=>m(x,_))}},onSave:m=>ce.current.onSave?.(m)})},[e,$]);react.useEffect(()=>{b?.setMessages(G);},[b,G]),react.useEffect(()=>{b?.setMode(t);},[b,t]),react.useEffect(()=>{V!==void 0&&b?.setSavedDuration(V);},[b,V]),react.useEffect(()=>(b?.resume(),()=>b?.dispose()),[b]),react.useEffect(()=>{if(!e||!b)return;let c=false,m=e.events.on("rowsChanged",_=>{c=_.removed===0;}),x=e.events.on("dataUpdated",()=>{let _=c;c=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:(c,m,x)=>b.changes.effectiveValue(c,m,x),effectiveRow:(c,m)=>b.changes.applyPendingTo(c,m),hasPending:()=>b.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,b]),react.useEffect(()=>{if(!(!e||!b||!R))return e.setHistoryDelegate({undo:()=>b.undo(),redo:()=>b.redo(),canUndo:()=>b.canUndo(),canRedo:()=>b.canRedo(),depth:()=>b.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,b,R]);let Y=react.useMemo(()=>datagridCore.createDebouncedCommit(150),[]);react.useEffect(()=>()=>Y.cancelAll(),[Y]);let Pe=react.useRef(h);react.useEffect(()=>{!e||!b||h===Pe.current||(Pe.current=h,Y.schedule("footer",()=>e.refreshSummaries()));},[e,b,h,Y]);let oe=react.useCallback(c=>{let m=e?.getRows()[c];return m&&m.kind==="data"?m.key:null},[e]),ie=react.useCallback(c=>e?.getColumnIdAt(c)??null,[e]),de=react.useCallback((c,m)=>{e?.scrollToCell(c,m),b?.beginEdit(c,m);},[b,e]),Se=react.useCallback((c={},m)=>{let x=b?.addRow(c,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(re=>re.state.visible&&re.def.editable!==false&&(_===null||(re.def.field??re.state.id)!==_));return e.revealRow(x),Q&&(e.focusCell(x,Q.state.id),b?.beginEdit(x,Q.state.id)),x},[b,e]),Ee=react.useCallback(c=>{if(!b)return false;let m=ce.current.confirmDelete;if(m===false)return b.removeRow(c);let x=e?.getRowByKey(c);if(typeof m!="function")return Ke({rowKey:c,message:ce.current.confirmDeleteMessage??G.editDeleteConfirm}),false;let _=m(c,x);return typeof _=="boolean"?_?b.removeRow(c):false:(_.then(Q=>{Q&&b.removeRow(c);}),false)},[b,e]),I=react.useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),ue=react.useCallback((c,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=_e=>e.getColumnModel().getDef(_e)?.editable!==false&&(ce.current.canEditColumn?.(_e)??true),re=e.getColumnModel().runtime().filter(_e=>_e.state.visible).map(_e=>_e.state.id);if(datagridCore.edgeEditableColumn(re,Q,1)===null)return false;let we=e.getRows(),ye=we.findIndex(_e=>_e.key===_.rowKey);if(ye<0)return false;let Re=datagridCore.nextEditableColumn(re,Q,_.columnId,c);if(Re===null){if(m.cycle===false)return false;let _e=c;do ye+=_e;while(ye>=0&&ye<we.length&&we[ye]?.kind!=="data");if(ye<0||ye>=we.length)return false;Re=datagridCore.edgeEditableColumn(re,Q,c);}let Ce=we[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]),z=react.useCallback((c,m,x)=>!b||!e||b.isEditingRow()||!b.canEditRow(c)||(e.scrollToCell(c,m),!b.beginRowEdit(c))?false:(x!==void 0&&b.getMode()==="row"&&(ho.set(b,m),b.setRowEditValue(m,x)),true),[b,e]),X=react.useCallback(c=>{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(c))?null:Number(c):c;return Q===null?false:datagridCore.isRowEditMode(b.getMode())?z(m.rowKey,m.columnId,Q):(e.scrollToCell(m.rowKey,m.columnId),b.beginEdit(m.rowKey,m.columnId,Q))},[b,e,z]),[Ge,He]=react.useState(null),[We,Ke]=react.useState(null),rt=react.useCallback(c=>{let m=We;Ke(null),c&&m&&b&&b.removeRow(m.rowKey);},[We,b]),st=react.useCallback(c=>{He({message:c.error??G.editSaveFailed,rowKey:c.rowKey,columnId:c.columnId}),c.rowKey!==void 0&&c.columnId!==void 0&&(e?.revealRow(c.rowKey),e?.focusCell(c.rowKey,c.columnId));},[e,G]);Fe.current=st;let ct=react.useCallback(async()=>{if(!b)return;He(null);let c=await b.saveChanges();c.saved||c.superseded||st(c);},[b,st]),ee=react.useCallback(()=>He(null),[]),le=react.useCallback(()=>{He(null),b?.cancelChanges();},[b]);react.useEffect(()=>{(b?.getSession()||b?.isEditingRow())&&He(null);},[h,b]);let xe=react.useMemo(()=>{if(!e||!O.getRange())return null;let c=O.cellCount();if(c>Md)return {cells:c,truncated:true,numeric:null};let m=e.getColumnModel(),x=e.getVisualColumnIds(),_=e.getRows(),Q=O.getStats((re,we)=>{let ye=_[re],Re=x[we];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:c,truncated:false,numeric:Q}},[e,O,b,h]),M=react.useCallback((c,m)=>!!b&&!datagridCore.isChromeColumn(m)&&b.canUpdate(c,m),[b]),B=react.useCallback((c,m)=>{let x=q.getRange();K.current=x??{startRow:c,startColumn:m,endRow:c,endColumn:m},ve(null);},[q]),te=react.useCallback((c,m)=>{let x=K.current;if(!x)return;let _=datagridCore.computeFillTarget(x,c,m);ve(_?{startRow:_.bounds.minRow,startColumn:_.bounds.minColumn,endRow:_.bounds.maxRow,endColumn:_.bounds.maxColumn}:null);},[]),Z=react.useCallback((c,m)=>{if(!b||!e)return 0;let _=datagridCore.computeFillValues(c,m,(Q,re)=>{let we=oe(Q),ye=ie(re);return we!==null&&ye?b.effectiveValue(we,ye):void 0}).map(Q=>{let re=oe(Q.row),we=ie(Q.column);if(re===null||!we||!M(re,we))return null;let ye=Q.from?e.shiftCellFormula(we,Q.value,Q.row-Q.from.row,Q.column-Q.from.column):Q.value;return {rowKey:re,columnId:we,value:ye}}).filter(Q=>Q!==null);return e.notifyClipboardGesture("fill",_.length,()=>_.length===0?false:(b.applyEdits(_,datagridCore.fillText(G.editFillUndo,{count:_.length}),"fill"),true)),_.length},[b,e,oe,ie,M,G]),se=react.useCallback(()=>{let c=K.current,m=ne;if(K.current=null,ve(null),!c||!m||!b||!e)return;let x=datagridCore.computeFillTarget(c,m.endRow,m.endColumn);x&&Z(c,x);},[ne,b,e,Z]),J=react.useCallback((c,m)=>{if(!e)return "";let x=e.getRows()[c],_=e.getColumnIdAt(m);if(!x||x.kind!=="data"||!_)return "";let Q=e.getColumnModel(),re=b?b.effectiveValue(x.key,_):Q.getCellValue(x.data,_),we=datagridCore.cellDisplayText(Q.getDef(_),re,x.data);return e.clipboardCellText(x,_,re,we).replace(/[\t\r\n]+/g," ")},[e,b]),Ae=react.useCallback((c="copy")=>{if(!e||!q.getRange())return false;let m=q.toTsv(J);return e.notifyClipboardGesture("copy",m?m.split(`
2
+ `).length:0,()=>e.writeClipboard(m,c)),true},[e,q,J]),Be=react.useCallback(c=>{if(!e||!b)return false;let m=q.getRange()!==null,x=c??e.getFocus();if(!m&&!x)return false;if(!Ae("cut")){let we=x?e.getVisualColumnIds().indexOf(x.columnId):-1,ye=x?e.getRows().findIndex(Ce=>Ce.key===x.rowKey):-1;if(ye<0||we<0)return false;let Re=J(ye,we);e.notifyClipboardGesture("copy",Re?1:0,()=>e.writeClipboard(Re,"cut"));}let _=[];if(m)O.forEachCell((we,ye)=>_.push([we,ye]));else {let we=e.getRows().findIndex(Re=>Re.key===x.rowKey),ye=e.getVisualColumnIds().indexOf(x.columnId);if(we<0||ye<0)return false;_.push([we,ye]);}let Q=e.getRows(),re=[];for(let[we,ye]of _){let Re=Q[we];if(!Re||Re.kind!=="data")continue;let Ce=e.getColumnIdAt(ye);!Ce||datagridCore.isChromeColumn(Ce)||b.canUpdate(Re.key,Ce)&&re.push({rowKey:Re.key,columnId:Ce,value:null});}return e.notifyClipboardGesture("cut",re.length,()=>re.length===0?false:(b.applyEdits(re,datagridCore.fillText(G.editCutUndo,{count:re.length}),"cut"),true)),true},[e,b,q,O,Ae,J,G]),Ue=react.useCallback(async c=>{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,re;if(_)Q=_.minRow,re=_.minColumn;else {let Ce=c??e.getFocus();if(!Ce||(Q=e.getRows().findIndex(_e=>_e.key===Ce.rowKey),re=e.getVisualColumnIds().indexOf(Ce.columnId),Q<0||re<0))return}let we=datagridCore.computePasteCells(x,Q,re,{target:_,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),ye=e.getColumnModel(),Re=we.map(Ce=>{let _e=oe(Ce.row),Rt=ie(Ce.column);return _e===null||!Rt||!M(_e,Rt)?null:{rowKey:_e,columnId:Rt,value:e.pastedCellValue(_e,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(G.editPasteUndo,{count:Re.length}),"paste"),true));},[b,e,q,oe,ie,M,G]),[ge,i]=react.useState(null),at=react.useCallback(c=>b?(i(null),b.beginRowEdit(c)):false,[b]),it=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:(c,m)=>(e.scrollToCell(c,m),b.beginEdit(c,m)),stopEditing:async c=>{if(b.isEditingRow())return c?(Ne(),true):it();if(!b.getSession())return false;if(c)return b.cancelEdit(),I(),true;let m=b.commitEdit();return m&&I(),m},getEditingCells:()=>{let c=b.getRowSession();if(c)return e.getVisualColumnIds().filter(x=>!datagridCore.isChromeColumn(x)&&b.canUpdate(c.rowKey,x)).map(x=>({rowKey:c.rowKey,columnId:x}));let m=b.getSession();return m?[{rowKey:m.rowKey,columnId:m.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,b,it,Ne,I]);let je=react.useCallback(c=>{if(!b||!e)return false;let m=c.ctrlKey||c.metaKey;if(R&&m&&(c.key==="z"||c.key==="Z"))return c.preventDefault(),c.shiftKey?b.redo():b.undo(),true;if(R&&m&&(c.key==="y"||c.key==="Y"))return c.preventDefault(),b.redo(),true;if(F&&m&&(c.key==="v"||c.key==="V"))return c.preventDefault(),Ue(),true;if(F&&m&&(c.key==="x"||c.key==="X"))return c.preventDefault(),Be(),true;if(m&&(c.key==="c"||c.key==="C"))return Ae()?(c.stopPropagation(),true):false;if(b.isEditingRow()){if(c.key==="Enter")return c.preventDefault(),it(),true;if(c.key==="Escape")return c.preventDefault(),Ne(),true}if(c.key==="Escape"&&b.getSession())return c.preventDefault(),b.cancelEdit(),true;if(c.key==="Tab"&&ce.current.focusCellOnTab!==false&&!b.getSession()&&e.getFocus()&&ue(c.shiftKey?-1:1,{open:ce.current.keepEditingOnTab===true,cycle:ce.current.focusCellOnCycle!==false}))return c.preventDefault(),true;if(F&&c.shiftKey&&!c.altKey&&!b.getSession()&&datagridCore.RANGE_KEY_DIRECTIONS[c.key]){let x=e.getFocus(),_=e.getVisualColumnIds(),Q=_.flatMap((ye,Re)=>datagridCore.isChromeColumn(ye)?[]:[Re]),re=x?e.getRowIndex(x.rowKey):-1,we=x?_.indexOf(x.columnId):-1;if(re>=0&&we>=0&&Q.length>0){c.preventDefault(),c.stopPropagation();let ye=e.getRows(),Re=datagridCore.extendRangeByKey(q.getRange(),{row:re,column:we},datagridCore.RANGE_KEY_DIRECTIONS[c.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(F&&m&&!c.shiftKey&&!c.altKey&&!b.getSession()&&(c.key==="d"||c.key==="D"||c.key==="r"||c.key==="R")){let x=e.getFocus(),_=e.getVisualColumnIds(),Q=_.findIndex(Ce=>!datagridCore.isChromeColumn(Ce)),re=x?e.getRowIndex(x.rowKey):-1,we=x?_.indexOf(x.columnId):-1,ye=q.getRange()??(re>=0&&we>=0?{startRow:re,startColumn:we,endRow:re,endColumn:we}:null),Re=ye?datagridCore.keyboardFill(ye,c.key.toLowerCase()==="d"?"down":"right",Math.max(0,Q)):null;if(Re)return c.preventDefault(),c.stopPropagation(),Z(Re.source,Re.target),true}if(!m&&!c.shiftKey&&!b.getSession()&&Nd.has(c.key)&&q.clear(),c.key==="Insert"&&ce.current.insertKey===true&&!m&&!b.getSession()){let x=e.getFocus();if(x&&b.canAdd())return c.preventDefault(),Se({},x.rowKey),true}if(c.key==="ArrowDown"&&ce.current.appendOnArrowDown===true&&!m&&!c.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 c.preventDefault(),Se({}),true}if(c.key==="F2"){let x=e.getFocus();if(x)return c.preventDefault(),datagridCore.isRowEditMode(b.getMode())?(z(x.rowKey,x.columnId),true):(e.scrollToCell(x.rowKey,x.columnId),b.beginEdit(x.rowKey,x.columnId),true)}return ce.current.editOnKeyPress!==false&&!m&&!c.altKey&&c.key.length===1&&c.key!==" "&&!b.getSession()&&X(c.key)?(c.preventDefault(),true):false},[b,e,F,R,Ue,Be,Ae,X,z,ue,Se,it,Ne,Z]);return {engine:b,range:q,version:h,beginEdit:de,beginRowEdit:at,saveRowEdit:it,cancelRowEdit:Ne,rowSaveError:ge,addRow:Se,editAdjacentCell:ue,editFocusedCellWith:X,focusScroller:I,deleteRow:Ee,saveChanges:ct,cancelChanges:le,selectionStats:xe,handleKeyDown:je,cut:Be,copySelection:Ae,paste:Ue,saveError:Ge,clearSaveError:ee,pendingDelete:We,resolveDelete:rt,fillPreview:ne,startFillDrag:B,moveFillDrag:te,endFillDrag:se,isDraggingFill:K.current!==null}}var Wi=react.createContext(""),Vi=react.createContext(()=>document.body),_d=typeof window<"u"?react.useLayoutEffect:react.useEffect;function Sr({theme:e,density:t,palette:n,portalContainer:r,children:l}){let a=react.useMemo(()=>datagridCore.themeClassName(e,t,n),[e,t,n]),s=react.useRef(r);_d(()=>{s.current=r;},[r]);let p=react.useMemo(()=>()=>datagridCore.portalTarget(s.current),[]);return jsxRuntime.jsx(Wi.Provider,{value:a,children:jsxRuntime.jsx(Vi.Provider,{value:p,children:l})})}function Pt(){return react.useContext(Vi)}function Tt(){return react.useContext(Wi)}var Mr=8,Lt=26,Yi=4;function qi(e,t,n){let r=datagridCore.foldText(t.trim());if(r==="")return null;let l=[];for(let a=0;a<e.length;a++){let s=e[a];(n==="contains"?s.includes(r):s.startsWith(r))&&l.push(a);}return l}function Vd(e,t,n){let r=e.map(a=>datagridCore.foldText(a.label)),l=qi(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:s,columnId:p,ariaLabel:T,onChange:w,onCommit:k,commitOnPick:y=true,onCancel:N,onTab:f}){let D=Te(),A=Tt(),P=Pt(),v=react.useRef(null),u=react.useRef(null),[C,L]=react.useState(null),[$,V]=react.useState(false),[F,R]=react.useState(0),[U,G]=react.useState(0),[h,d]=react.useState(null),S=react.useMemo(()=>e.map(I=>datagridCore.foldText(I.label)),[e]),O=react.useMemo(()=>{let I=e.find(ue=>ue.value===t);return I?I.label:t==null||t===""?"":String(t)},[e,t]),q=react.useMemo(()=>C===null?null:qi(S,C,n),[S,C,n]),K=q===null?e.length:q.length,ne=I=>e[q===null?I:q[I]],ve=C??O;react.useEffect(()=>{R(I=>I<K?I:0);},[K]),react.useLayoutEffect(()=>{a&&(v.current?.focus({preventScroll:true}),v.current?.select());},[]);let ce=()=>{let I=v.current;if(!I)return;let ue=I.getBoundingClientRect(),z=datagridCore.placeAnchoredLayer({anchor:{left:ue.left,top:ue.top,bottom:ue.bottom},width:ue.width,height:Math.min(Math.max(K,1),Mr)*Lt,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});d({left:z.left,top:z.top,width:ue.width});};react.useLayoutEffect(()=>{$&&ce();},[$,K]),react.useEffect(()=>{if(!$)return;let I=()=>ce();return window.addEventListener("scroll",I,true),window.addEventListener("resize",I),()=>{window.removeEventListener("scroll",I,true),window.removeEventListener("resize",I);}},[$]),react.useLayoutEffect(()=>{let I=u.current;if(!I||!$||K===0)return;let ue=F*Lt,z=ue+Lt,X=I.scrollTop;ue<X?X=ue:z>X+I.clientHeight&&(X=z-I.clientHeight),X!==I.scrollTop&&(I.scrollTop=X,G(X));},[F,$,K]);let Fe=Math.min(Math.max(K,1),Mr)*Lt,b=Math.max(0,Math.floor(U/Lt)-Yi),Y=Math.min(K,Math.ceil((U+Fe)/Lt)+Yi),Pe=I=>{w(I.value),L(null),V(false),y&&k();},oe=()=>{$||(V(true),G(0),u.current&&(u.current.scrollTop=0));},ie=()=>{if(C===null)return true;let I=C.trim();if(I==="")return r&&w(""),true;let ue=datagridCore.foldText(I),z=S.indexOf(ue);return z>=0?(w(e[z].value),true):K===1?(w(ne(0).value),true):r?(w(I),true):false},de=I=>{if(!(I.nativeEvent.isComposing||I.keyCode===229)){if(I.key==="ArrowDown"||I.key==="ArrowUp"){if(I.preventDefault(),I.stopPropagation(),!$){oe();return}if(K===0)return;R(ue=>((I.key==="ArrowDown"?ue+1:ue-1)+K)%K);return}if(I.key==="PageDown"||I.key==="PageUp"){if(!$||K===0)return;I.preventDefault(),I.stopPropagation();let ue=Mr*(I.key==="PageDown"?1:-1);R(z=>Math.min(K-1,Math.max(0,z+ue)));return}if(I.key==="Home"||I.key==="End"){if(!$||K===0)return;I.preventDefault(),I.stopPropagation(),R(I.key==="Home"?0:K-1);return}if(I.key==="Enter"){if(I.preventDefault(),I.stopPropagation(),$&&K>0){Pe(ne(F));return}ie()?k():oe();return}if(I.key==="Escape"){if(I.preventDefault(),I.stopPropagation(),$){V(false);return}L(null),N();return}if(I.key==="Tab"){if(!ie()){I.preventDefault(),I.stopPropagation(),oe();return}V(false),f&&(I.preventDefault(),I.stopPropagation(),f(I.shiftKey));return}I.stopPropagation();}},Se=[];for(let I=b;I<Y;I++){let ue=ne(I);Se.push(jsxRuntime.jsx("div",{role:"option","aria-selected":I===F,"aria-posinset":I+1,"aria-setsize":K,className:`kanuni-datagrid-lookup-item${I===F?" kanuni-datagrid-lookup-item--active":""}`,style:{position:"absolute",top:I*Lt,height:Lt,left:0,right:0},onMouseEnter:()=>R(I),onClick:()=>Pe(ue),children:ue.label},String(ue.value)));}let Ee=$&&h?reactDom.createPortal(jsxRuntime.jsx("div",{ref:u,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${A}`,"data-kanuni-portal":"popup",role:"listbox","aria-label":T,"data-testid":s?`${s}-list`:void 0,style:{left:h.left,top:h.top,width:h.width,height:Fe},onScroll:I=>G(I.currentTarget.scrollTop),onMouseDown:I=>I.preventDefault(),children:K===0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-lookup-empty",children:D.editNoMatch}):jsxRuntime.jsx("div",{style:{position:"relative",height:K*Lt},children:Se})}),P()):null;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{ref:v,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:ve,onChange:I=>{L(I.target.value),R(0),G(0),u.current&&(u.current.scrollTop=0),V(true);},onFocus:oe,onClick:oe,onKeyDown:de,onBlur:()=>{C!==null&&!ie()&&L(null),V(false);}}),Ee]})}function tu(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=tl(e);return [...t.slice(n),...t.slice(0,n)]}function tl(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function nu(e){return [e.monthJanuary,e.monthFebruary,e.monthMarch,e.monthApril,e.monthMay,e.monthJune,e.monthJuly,e.monthAugust,e.monthSeptember,e.monthOctober,e.monthNovember,e.monthDecember]}function ou(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function en({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=Te(),f=Tt(),D=Pt(),A=react.useMemo(()=>nu(N),[N]),P=react.useMemo(()=>tu(N),[N]),v=react.useRef(null),[u,C]=react.useState(null),[L,$]=react.useState(false),[V,F]=react.useState(null),R=react.useMemo(()=>datagridCore.toDate(e),[e]),U=u===null?datagridCore.formatDateValue(e,t):datagridCore.maskDate(u,t),G=u===null?null:datagridCore.parseDateValue(U,t),h=u!==null&&u.length===datagridCore.dateDigitCount(t)&&G===null,[d,S]=react.useState(()=>R??new Date);react.useEffect(()=>{L&&S(G??R??new Date);},[L]),react.useLayoutEffect(()=>{l&&(v.current?.focus({preventScroll:true}),v.current?.select());},[]);let O=react.useRef(null),q=react.useCallback(()=>{let Y=v.current;if(!Y)return;let Pe=Y.getBoundingClientRect(),oe=datagridCore.placeAnchoredLayer({anchor:{left:Pe.left,top:Pe.top,bottom:Pe.bottom},width:O.current?.offsetWidth??0,height:O.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});F({left:oe.left,top:oe.top});},[]),K=react.useCallback(Y=>{O.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 ne=react.useCallback(Y=>{if(Y===null){T(null);return}T(e instanceof Date?Y:datagridCore.toIsoDate(Y));},[T,e]),ve=Y=>{C(null),$(false),ne(Y),v.current?.focus({preventScroll:true});},ce=react.useCallback(()=>{if(u!==null){if(u.length===0){ne(null),C(null);return}G&&ne(G),C(null);}},[u,G,ne]),Fe=Y=>{if(Y.key==="Escape"){if(Y.preventDefault(),Y.stopPropagation(),L){$(false);return}C(null),k();return}if(L){let Pe=Y.key==="ArrowLeft"?-1:Y.key==="ArrowRight"?1:Y.key==="ArrowUp"?-7:Y.key==="ArrowDown"?7:0;if(Pe!==0){Y.preventDefault(),Y.stopPropagation();let oe=G??R??new Date,ie=new Date(oe.getFullYear(),oe.getMonth(),oe.getDate()+Pe);C(datagridCore.dateDigits(datagridCore.formatDateValue(ie,t),t)),S(ie);return}if(Y.key==="Enter"){Y.preventDefault(),Y.stopPropagation(),$(false),G&&ve(G);return}}if(Y.key==="Enter"){Y.preventDefault(),Y.stopPropagation(),ce(),w();return}if(Y.key==="Tab"){ce(),$(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&&V?reactDom.createPortal(jsxRuntime.jsxs("div",{ref:K,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${f}`,"data-kanuni-portal":"popup",style:{left:V.left,top:V.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":p?`${p} ${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:[A[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 Pe=(new Date(d.getFullYear(),d.getMonth(),1).getDay()-tl(N)+7)%7,oe=datagridCore.daysInMonth(d.getFullYear(),d.getMonth()+1),ie=[];for(let de=0;de<42;de++){let Se=de-Pe+1,Ee=new Date(d.getFullYear(),d.getMonth(),Se),I=Se<1||Se>oe,ue=ou(Ee,G??R);ie.push(jsxRuntime.jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${I?" kanuni-datagrid-date-day--outside":""}${ue?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":ue,"data-testid":"dg-date-day","data-date":datagridCore.toIsoDate(Ee),onClick:()=>ve(Ee),children:Ee.getDate()},de));}return ie})()]})]}),D()):null;return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsxRuntime.jsx("input",{ref:v,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":p,"aria-invalid":h||n?true:void 0,"data-testid":a,"data-column-id":s,disabled:r,className:`kanuni-datagrid-editor${h||n?" kanuni-datagrid-editor--invalid":""}`,value:U,onChange:Y=>{C(datagridCore.dateDigits(Y.target.value,t));},onKeyDown:Fe,onBlur:()=>{L||ce();}}),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),v.current?.focus({preventScroll:true});},children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:"M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),b]})}function Pr(e){return {save:e.save,cancel:e.cancel,editTitle:e.formEditTitle,addTitle:e.formAddTitle,saving:e.editSaving,shortcut:e.formShortcut}}var du=Pr(datagridCore.getGridDictionary("en"));function uu(e,t){switch(e){case "number":return t==null||t===""||!Number.isNaN(Number(t))?"number":"text";case "date":return t==null||t===""||!Number.isNaN(Date.parse(String(t)))?"date":"text";case "boolean":return "checkbox";default:return "text"}}function ol(e,t){if(e==null)return "";if(t==="date"){if(e instanceof Date)return e.toISOString().slice(0,10);let n=String(e);return n.length>10&&n.includes("-")?n.slice(0,10):n}return String(e)}function cu(e,t){if(t==="number"){if(e==="")return null;let n=Number(e);return Number.isNaN(n)?e:n}return e}function Lr({rowKey:e,fields:t,getValue:n,errors:r,lookups:l,customEditors:a=false,row:s,saving:p,saveError:T,isNew:w,dark:k=false,popup:y=false,inline:N=false,onNaturalHeight:f,labels:D,onChange:A,onSave:P,onCancel:v}){let u=Te(),C=Tt(),L=react.useMemo(()=>({...Pr(u),...D}),[u,D]),$=react.useRef(null),V=Object.keys(r)[0]??null,F=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 O=d.querySelector(".kanuni-datagrid-edit-form-fields");O&&f(d.clientHeight-O.clientHeight+O.scrollHeight);}},[f]);react.useEffect(()=>{if(!V||!$.current)return;$.current.querySelector(`[data-field-id="${CSS.escape(V)}"] input, [data-field-id="${CSS.escape(V)}"] select`)?.focus();},[V]);let R=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),U=L.shortcut.replace("{key}",R?"\u2318":"Ctrl"),G=react.useCallback(d=>{if(d.key==="Escape"){d.preventDefault(),d.stopPropagation(),v();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 O=S[0],q=S[S.length-1];!d.shiftKey&&document.activeElement===q?(d.preventDefault(),O.focus()):d.shiftKey&&document.activeElement===O&&(d.preventDefault(),q.focus());},[v,P,y]),h=jsxRuntime.jsxs("div",{ref:F,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:G,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),O=r[d.columnId],q=l?.[d.columnId],K=p||!d.editable,ne=`dg-field-${String(e)}-${d.columnId}`;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":d.columnId,"data-invalid":O?"":void 0,htmlFor:ne,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:O??null,setValue:ve=>A(d.columnId,ve),commit:P,cancel:v}):q!==void 0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(Qt,{options:q??[],value:S,matchMode:d.def?.lookup?.matchMode,allowCustom:d.def?.lookup?.allowCustom,invalid:!!O,testId:ne,ariaLabel:d.label,onChange:ve=>A(d.columnId,ve),onCommit:()=>{},onCancel:v})}):d.def?.lookup?jsxRuntime.jsx("input",{id:ne,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:datagridCore.lookupLabel(d.def,S)??ol(S,d.dataType)}):d.dataType==="date"?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(en,{value:S,format:d.def?.dateFormat,invalid:!!O,disabled:K,autoFocus:false,testId:ne,columnId:d.columnId,ariaLabel:d.label,onChange:ve=>A(d.columnId,ve),onCommit:()=>{},onCancel:v})}):d.dataType==="boolean"?jsxRuntime.jsx("input",{id:ne,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:K,checked:S===true,onChange:ve=>A(d.columnId,ve.target.checked)}):jsxRuntime.jsx("input",{id:ne,className:"kanuni-datagrid-edit-form-input",type:uu(d.dataType,S),disabled:K,"aria-invalid":O?true:void 0,value:ol(S,d.dataType),onChange:ve=>A(d.columnId,cu(ve.target.value,d.dataType))}),O&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-message",role:"alert",children:O})]},d.columnId)})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:U}),jsxRuntime.jsx("button",{type:"button",onClick:v,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":""}${C}`,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:v}),h]}):h}function Ir({controller:e,engine:t,columnId:n,message:r,saving:l,lookupOptions:a,onSave:s,onCancel:p}){let T=e.getColumnModel(),w=T.getDef(n);if(a!==void 0)return jsxRuntime.jsx(Qt,{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(en,{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 D=f.target.value;t.setRowEditValue(n,y?D===""?null:Number(D):D);},onKeyDown:N})}function rl(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=Te(),{engine:D,version:A,beginRowEdit:P,saveRowEdit:v,cancelRowEdit:u,rowSaveError:C,saveChanges:L,cancelChanges:$}=t,V=r&&datagridCore.isRowEditMode(n),F=V?D?.getRowSession()??null:null,R=react.useRef(y);R.current=y;let U=react.useMemo(()=>{if(!e||!F)return [];let z=e.getColumnModel();return rl(e,R.current).map(X=>{let Ge=z.getDef(X);return {columnId:X,label:Ge?.headerName??Ge?.field??X,dataType:z.getEditorDataType(X),def:Ge,editable:D?.canUpdate(F.rowKey,X)??true}})},[e,D,F]),G=n==="row"?F?.rowKey??null:null;react.useEffect(()=>{if(G===null)return;let z=l.current;if(!z)return;let X=z.querySelectorAll('[data-testid="dg-row-editor"]');if(X.length===0)return;let Ge=e?.getFocus(),We=(Ge&&String(Ge.rowKey)===String(G)?z.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(Ge.columnId)}"]`):null)??X[0],Ke=D?ho.get(D):void 0;D&&ho.delete(D),We.focus({preventScroll:true}),We instanceof HTMLInputElement&&(Ke!==void 0&&We.getAttribute("data-column-id")===Ke?We.setSelectionRange(We.value.length,We.value.length):We.select());},[G]);let h=react.useCallback(z=>V&&F?.rowKey===z,[V,F]),d=react.useCallback((z,X)=>{let Ge=e?.getColumnModel().getDef(z.columnId);if(Ge?.renderCell&&z.node.kind==="data")return Ge.renderCell({value:X,row:z.node.data,node:z.node,column:Ge});let He=Ge?datagridCore.lookupLabel(Ge,X):null;return He!==null?He:Ge?.valueFormatter&&z.node.kind==="data"?Ge.valueFormatter(X,z.node.data):Ge?.dateFormat&&Ge.dataType==="date"?datagridCore.formatDateValue(X,Ge.dateFormat):X==null?"":String(X)},[e]),S=react.useCallback(z=>{if(!(n!=="row"||!D||!e||z.node.kind!=="data"||!h(z.node.key)))return D.canUpdate(z.node.key,z.columnId)?jsxRuntime.jsx(Ir,{controller:e,engine:D,columnId:z.columnId,message:F?.errors[z.columnId]??null,saving:F?.saving??false,lookupOptions:w?.[z.columnId],onSave:()=>{v();},onCancel:u}):d(z,D.rowEditValue(z.columnId))},[n,D,e,A,h,F,w,d,v,u]),O=react.useCallback(z=>{if(!D||z.node.kind!=="data")return;let X=D.changes.get(z.node.key,z.columnId);return X?d(z,X.newValue):void 0},[D,A,d]),[q,K]=react.useState(null),ne=q??p??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,ve=react.useCallback(z=>{z>0&&K(X=>X!==null&&Math.abs(X-z)<a?X:z);},[a]);react.useEffect(()=>{F||K(null);},[F]);let ce=(z,X)=>F?jsxRuntime.jsx(Lr,{rowKey:z,fields:U,getValue:Ge=>D?.rowEditValue(Ge),errors:F.errors,lookups:w,customEditors:k,row:D?.effectiveRow(F.rowKey),saving:F.saving,saveError:C,isNew:F.isNew,dark:T,popup:n==="popup",inline:X,onNaturalHeight:X?ve:void 0,labels:s,onChange:(Ge,He)=>D?.setRowEditValue(Ge,He),onSave:()=>{v();},onCancel:u}):null,Fe=F&&n==="popup"?ce(F.rowKey,false):null,b=react.useRef(ce);b.current=ce;let Y=react.useCallback(z=>b.current(z,true),[]),Pe=n==="form"?F?.rowKey??null:null,oe=F?.isNew??false,ie=react.useRef(null);react.useEffect(()=>{if(e){if(Pe===null){if(ie.current!==e)return;ie.current=null,e.setEditFormRow(null);return}ie.current=e,e.setEditFormRow(Pe,{height:ne,atTop:oe});}},[e,Pe,oe,ne]),react.useEffect(()=>()=>{let z=ie.current;ie.current=null,z?.setEditFormRow(null);},[]);let de=V&&n==="row"&&!!F,Se=N&&r&&n==="batch"&&(D?.hasChanges()??false),Ee=de||Se?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[de&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-active","data-testid":"dg-row-editing",children:F?.isNew?f.formAddTitle:datagridCore.fillText(f.editEditingRow,{row:String(F?.rowKey)})}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-row",disabled:F?.saving,onClick:()=>{v();},children:F?.saving?f.editSaving:f.editSaveRow}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:u,children:f.cancel}),C&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:C})]}),Se&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:D?.isSaving(),onClick:()=>{L();},children:datagridCore.fillText(f.editSaveCount,{n:D?.getChanges().length??0})}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:$,children:f.cancel})]})]}):null,I=react.useCallback(z=>!V||!D||D.isEditingRow()?null:{id:"dg-edit-row",label:f.editRowMenu,onSelect:()=>P(z)},[V,D,P,f,A]),ue=react.useCallback(z=>V?(P(z),true):false,[V,P]);return {rowModeActive:V,rowSession:F,isRowEditing:h,defaultContent:d,renderRowCell:S,renderPending:O,renderEditForm:n==="form"?Y:void 0,popup:Fe,bar:Ee,rowSessionAttr:F&&(n==="form"||n==="popup")?n:void 0,editRowMenuItem:I,openRow:ue}}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),D=react.useRef(false);react.useEffect(()=>{let u=f.current;if(u&&(u.focus({preventScroll:true}),!(!(u instanceof HTMLInputElement)||u.type==="checkbox")))if(r){if(u.type==="text"||u.type==="search"){let C=u.value.length;u.setSelectionRange(C,C);}}else u.select();},[]);let P={ref:f,onKeyDown:u=>{u.nativeEvent.isComposing||u.keyCode===229||(u.key==="Enter"?(u.preventDefault(),u.stopPropagation(),k(u.shiftKey?"none":"down")):u.key==="Tab"?(u.preventDefault(),u.stopPropagation(),D.current=true,y(u.shiftKey?-1:1)):u.key==="Escape"?(u.preventDefault(),u.stopPropagation(),N()):u.stopPropagation());},onBlur:()=>{D.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"},v;return l===null?v=jsxRuntime.jsx("input",{...P,type:"text",value:"\u2026",readOnly:true,disabled:true}):l&&l.length>0?v=a?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{...P,type:"text",list:`${P["data-testid"]}-list`,value:Kr(e,t),onChange:u=>{let C=l.find(L=>L.label===u.target.value);w(C?C.value:u.target.value);}}),jsxRuntime.jsx("datalist",{id:`${P["data-testid"]}-list`,children:l.map(u=>jsxRuntime.jsx("option",{value:u.label},String(u.value)))})]}):jsxRuntime.jsx(Qt,{options:l,value:e,matchMode:s,allowCustom:false,invalid:!!n,testId:P["data-testid"],ariaLabel:p,onChange:w,onCommit:()=>k("none"),onCancel:N,onTab:u=>{D.current=true,y(u?-1:1);}}):t==="boolean"?v=jsxRuntime.jsx("input",{...P,type:"checkbox",checked:e===true,onChange:u=>w(u.target.checked)}):t==="number"?v=jsxRuntime.jsx("input",{...P,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:Kr(e,t),onChange:u=>w(u.target.value===""?null:Number(u.target.value))}):t==="date"?v=jsxRuntime.jsx(en,{value:e,format:T,invalid:!!n,testId:P["data-testid"],ariaLabel:p,onChange:w,onCommit:()=>k("none"),onCancel:N,onTab:u=>{D.current=true,y(u?-1:1);}}):v=jsxRuntime.jsx("input",{...P,type:"text",value:Kr(e,t),onChange:u=>w(u.target.value)}),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[v,n&&jsxRuntime.jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function sl(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 O=e?.getColumnModel().getDef(S);return !O?.lookup&&!O?.renderEditor&&O?.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:D,focusScroller:A,saveError:P,clearSaveError:v}=k,u=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:C,renderPending:L,openRow:$}=u,{renderCellContent:V,getCellClassName:F,onCellDoubleClick:R}=r,U=react.useCallback(S=>{if(!s||!y||S.node.kind!=="data")return V?.(S);let O=C(S);if(O!==void 0)return O;if(!y.isEditing(S.node.key,S.columnId))return L(S)??V?.(S);let q=y.getSession(),K=e.getColumnModel(),ne=K.getDef(S.columnId);return jsxRuntime.jsx(Br,{value:q.value,dataType:K.getEditorDataType(S.columnId),ariaLabel:ne?.headerName??S.columnId,dateFormat:ne?.dateFormat,error:q.validation.message,seeded:q.seeded,onChange:ve=>y.setEditValue(ve),onCommit:ve=>{y.commitEdit()&&(ve==="down"&&e?.moveFocus("down"),A());},onTab:ve=>{if(t?.focusCellOnTab===false){y.commitEdit();return}D(ve,{open:false,cycle:t?.focusCellOnCycle!==false}),A();},onCancel:()=>{y.cancelEdit(),A();}})},[s,y,e,N,V,C,L,D,A,t?.focusCellOnTab,t?.focusCellOnCycle]),G=react.useCallback(S=>{let O=F?.(S);if(!s||!y||S.node.kind!=="data")return O;let q=O?[O]:[];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,F]),h=react.useCallback(S=>{R?.(S),!(!s||!y||S.node.kind!=="data")&&($(S.node.key)||y.beginEdit(S.node.key,S.columnId));},[s,y,R,$]),d=react.useCallback(S=>p?f(S):false,[p,f]);return {active:s,renderCellContent:p?U:V,getCellClassName:p?G:F,onCellDoubleClick:p?h:R,handleKeyDown:d,saveError:s?P:null,clearSaveError:v,renderEditForm:p?u.renderEditForm:void 0,bar:p?u.bar:null,popup:p?u.popup:null,rowSessionAttr:p?u.rowSessionAttr:void 0,editRowMenuItem:u.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(),D=Pt();return react.useEffect(()=>{if(!e)return;let A=document.activeElement;w.current?.focus();let P=k.current;return ()=>{let v=document.activeElement;P&&(P.contains(v)||v===document.body||v===null)&&A?.isConnected&&A.focus({preventScroll:true});}},[e]),react.useEffect(()=>{if(!e)return;let A=P=>{if(P.key==="Escape"){P.stopPropagation(),T();return}if(P.key==="Tab"&&k.current){let v=Array.from(k.current.querySelectorAll("button:not([disabled])"));if(v.length===0)return;let u=v.indexOf(document.activeElement),C=P.shiftKey?u<=0?v.length-1:u-1:u===v.length-1?0:u+1;P.preventDefault(),P.stopPropagation(),v[C].focus();}};return document.addEventListener("keydown",A,true),()=>document.removeEventListener("keydown",A,true)},[e,T]),!e||typeof document>"u"?null:reactDom.createPortal(jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${s?" kanuni-datagrid-dark":""}${f}`,"data-kanuni-portal":"popup",role:"presentation",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:T}),jsxRuntime.jsxs("div",{ref: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})]})]})]}),D())}var To=0,Vr=5e3;function Tu(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Vr,onLimit:t.onLimit}}function xu(e,t){return e<=t}function Ur(e,t){let n=Tu(t),r=n!==null,l=n?.always??false,a=n?.maxRows??Vr,s=n?.onLimit,p=react.useRef(s);react.useEffect(()=>{p.current=s;},[s]);let[T,w]=react.useState(false),k=react.useCallback(()=>w(true),[]),y=react.useCallback(()=>w(false),[]);react.useEffect(()=>{if(!r||l||typeof window>"u"||typeof window.addEventListener!="function")return;let f=()=>{let A=e.getRows().length;if(!xu(A,a)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${A} rows exceeds maxRows (${a}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`),p.current?.({rows:A,maxRows:a});return}reactDom.flushSync(()=>w(true));},D=()=>reactDom.flushSync(()=>w(false));return window.addEventListener("beforeprint",f),window.addEventListener("afterprint",D),()=>{window.removeEventListener("beforeprint",f),window.removeEventListener("afterprint",D);}},[r,l,a,e]);let N=l||T;return react.useEffect(()=>{if(!N||typeof document>"u")return;let f=document.documentElement;return To++,f.classList.add("kanuni-datagrid-printing"),()=>{To--,To<=0&&(To=0,f.classList.remove("kanuni-datagrid-printing"));}},[N]),{active:N,begin:k,end:y}}var xo=new Map,zr=new Set;function fl(e,t){let n=xo.get(e);return n?[...n].filter(r=>r!==t):[]}function Yr(e,t,n){let r=react.useRef(null);return react.useEffect(()=>{if(!t)return;let a={controller:e,scroller:()=>n.current};r.current=a;let s=xo.get(t)??new Set;s.add(a),xo.set(t,s);let p=e.events.on("columnStateChanged",()=>{if(zr.has(t))return;let T=fl(t,a);if(T.length===0)return;let w=e.getColumnStates();zr.add(t);try{for(let k of T)k.controller.applyColumnStates(w);}finally{zr.delete(t);}});return ()=>{p(),s.delete(a),s.size===0&&xo.delete(t),r.current=null;}},[e,t,n]),{syncScroll:react.useCallback(a=>{let s=r.current;if(!t||!s)return;let p=fl(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 gl(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,D)=>n+D),y=e.stickyIndices.filter(f=>f<n);if(y.length>0){let f=y.map(D=>e.center[D]);T-=f.reduce((D,A)=>D+A.state.width,0),w=[...f,...w],k=[...y,...k];}let N=new Map;for(let f of e.stickyIndices){let D=e.centerStickyOffsets[f];D!==null&&N.set(e.center[f].state.id,D);}return {centerColumns:w,centerIndices:k,leadingSpacer:Math.max(0,T),trailingSpacer:p,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:N}}function wl(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 hl(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,kn=60,vn=24,Ku=[["statusColumn",vn],["rowNumberColumn",kn],["detailColumn",Go],["checkboxColumn",Eo]];function ea(e,t,n=false,r=false){return Gt({checkboxColumn:e,detailColumn:t,rowNumberColumn:n,statusColumn:r}).total}function Gt(e){let t=new Map,n=new Map,r=0,l=0;for(let[a,s]of Ku)e[a]&&(t.set(a,r),a!=="statusColumn"&&n.set(a,++l),r+=s);return {total:r,count:l,inset:a=>t.get(a)??0,colIndex:a=>n.get(a)??1}}function Jr(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function jr(e,t,n){return e?e.kind==="covered"?t?n():null:jsxRuntime.jsx("div",{className:"kanuni-datagrid-span-box",style:{height:e.height},children:n()}):n()}function Zr(e,t){let n=e??(t==="number"||t==="bigint"?"right":"left");return n==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":n==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function So(e,t){if(t===""||e==="")return e;let n=datagridCore.foldText(e),r=n.indexOf(t);if(r===-1)return e;let l=[],a=0,s=0;for(;r!==-1;)r>a&&l.push(e.slice(a,r)),l.push(jsxRuntime.jsx("mark",{className:"kanuni-datagrid-highlight",children:e.slice(r,r+t.length)},s++)),a=r+t.length,r=n.indexOf(t,a);return a<e.length&&l.push(e.slice(a)),jsxRuntime.jsx("span",{className:"kanuni-datagrid-cell-text",children:l})}function Bu(e,t,n,r=""){if(e.renderCell)return e.renderCell({value:t,row:n.data,node:n,column:e});let l=datagridCore.lookupLabel(e,t);if(l!==null)return So(l,r);if(e.valueFormatter){let a=e.valueFormatter(t,n.data);return typeof a=="string"?So(a,r):a}return e.dateFormat&&e.dataType==="date"?So(datagridCore.formatDateValue(t,e.dateFormat),r):t==null?"":So(String(t),r)}function _u({gridId:e,node:t,index:n,layout:r,columnModel:l,centerColumns:a,centerIndices:s,stickyInsets:p,leadingSpacer:T,trailingSpacer:w,striped:k,selected:y,ariaSelectable:N=true,selectable:f=true,groupSelection:D,onToggleGroupSelect:A,groupDisplay:P="fullWidth",focusedColumnId:v,rowFocused:u=false,renderRow:C,checkboxColumn:L,statusColumn:$=false,rowNumberColumn:V=false,rowNumber:F=null,getNote:R,getSpan:U,resolveColSpans:G,findKind:h,headerRowCount:d,onRowClick:S,onRowMouseDown:O,onRowDoubleClick:q,onToggleSelect:K,onCellMouseDown:ne,onRowContextMenu:ve,searchNeedle:ce="",onToggleGroup:Fe,summaryDefs:b,detailColumn:Y=false,detailExpanded:Pe=false,onToggleDetail:oe,onToggleTreeRow:ie,renderDetail:de,renderEditForm:Se,renderRowMessage:Ee,renderCellContent:I,getCellClassName:ue,onCellPointerDown:z,onCellPointerEnter:X,onCellDoubleClick:Ge,rowDrag:He,dropSide:We=null,rowStatus:Ke,rowStatusText:rt,rowStatusTint:st=false,height:ct}){let ee=Te();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:de?.(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:Se?.(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:Ee?.(t.parentKey,t.data)})});if(datagridCore.isFillerRow(t))return null;if(datagridCore.isGroupRow(t)&&P==="fullWidth"){let H=l.getDef(t.columnId),j=H?.headerName??t.columnId,he=datagridCore.lookupLabel(H,t.value)??t.display??(t.label===""?ee.filterBlank:t.label),Me=t.aggregates??null;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${v?" 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:[D&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:D==="all",ref:ae=>{ae&&(ae.indeterminate=D==="some");},"aria-label":datagridCore.fillText(ee.selectGroupAria,{count:String(t.count),group:he}),onChange:()=>A?.(String(t.key)),onClick:ae=>ae.stopPropagation(),onMouseDown:ae=>ae.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,")"]}),Me&&b?.map(ae=>jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[datagridCore.summaryLabel(ae)," ",l.getDef(ae.columnId)?.headerName??ae.columnId,":"]})," ",datagridCore.formatSummaryValue(ae,Me[datagridCore.summaryKey(ae.columnId,ae.type)],l.getDef(ae.columnId))]},datagridCore.summaryKey(ae.columnId,ae.type)))]})})}let le=[],xe=Gt({statusColumn:$,rowNumberColumn:V,detailColumn:Y,checkboxColumn:L}),M=xe.count,B=(H,j)=>({node:t,columnId:H,rowIndex:n,columnIndex:j,value:J?void 0:l.getCellValue(t.data,H)}),te=(H,j)=>{let he=()=>B(H,j);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${H}`,"aria-colindex":M+j+1,"data-column-id":H,onMouseDown:Me=>{ne?.(t,H),z?.(he(),Me);},onMouseEnter:X?Me=>X(he(),Me):void 0,onDoubleClick:Ge?()=>Ge(he()):void 0}},Z=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,se=t.kind==="treePath",J=datagridCore.isGroupRow(t)?t:null,Ae=se||J!==null,Be=J?P==="column"?datagridCore.GROUP_COLUMN_ID:(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,Ue=()=>{let H=J,j=l.getDef(H.columnId),he=datagridCore.lookupLabel(j,H.value)??H.display??(H.label===""?ee.filterBlank:H.label);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:H.level*16},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:H.expanded?"\u25BE":"\u25B8"}),P!=="column"&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[j?.headerName??H.columnId,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:he}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",H.count,")"]})]})},ge=(H,j)=>{let he=J.aggregates?b?.find(Me=>Me.columnId===j):void 0;return he?jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:datagridCore.formatSummaryValue(he,J.aggregates[datagridCore.summaryKey(j,he.type)],H)}):null},i=Z?(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,at=(H,j,he)=>{if(J){if(j===Be)return Ue();if(I){let ae=I(B(j,he));if(ae!==void 0)return ae}return ge(H,j)}if(I&&!se){let ae=I(B(j,he));if(ae!==void 0)return ae}let Me=se?j===i?jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:Bu(H,l.getCellValue(t.data,j),t,ce);return Z&&j===i?jsxRuntime.jsxs("span",{className:Z.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:Z.depth*16},children:[Z.hasChildren?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":Z.expanded,"aria-label":Z.expanded?ee.collapseTreeRow:ee.expandTreeRow,onClick:ae=>{ae.stopPropagation(),ie?.(t.key);},children:Z.expanded?"\u25BE":"\u25B8"}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),Me]}):Me},it=(H,j)=>{if(!ue||J)return "";let he=ue(B(H,j));return he?` ${he}`:""},Ne=H=>!R||t.kind!=="data"?"":R(t.key,H,t.data)?" kanuni-datagrid-cell--noted":"",je=H=>U&&t.kind==="data"?U(n,H):null,c=(H,j)=>{let he=H.autoHeight?" kanuni-datagrid-cell--wrap":"";return !H.cellClassName||Ae?he:he+m(H,j)},m=(H,j)=>{let he=H.cellClassName;if(!he)return "";if(typeof he=="string")return ` ${he}`;let Me=t.data,ae=he({value:l.getCellValue(Me,j),row:Me,node:t,column:H});return ae?` ${ae}`:""};if($&&le.push(jsxRuntime.jsx("div",{role:"presentation","aria-hidden":"true",className:"kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell",style:{width:vn,insetInlineStart:xe.inset("statusColumn")},children:jsxRuntime.jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),V){let H=t.kind==="data"&&F!==null;le.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":xe.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:kn,insetInlineStart:xe.inset("rowNumberColumn")},children:H?F:""},"__rownum"));}Y&&le.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":xe.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:Go,insetInlineStart:xe.inset("detailColumn")},children:Ae?null:jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Pe,"aria-label":Pe?ee.collapseDetails:ee.expandDetails,onMouseDown:H=>H.stopPropagation(),onClick:H=>{H.stopPropagation(),oe?.(t.key);},children:Pe?"\u25BE":"\u25B8"})},"__detail")),L&&le.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":xe.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:Eo,insetInlineStart:xe.inset("checkboxColumn")},onMouseDown:H=>H.stopPropagation(),onClick:H=>{H.target.tagName!=="INPUT"&&(H.stopPropagation(),K?.(t));},children:J?D&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:D==="all",ref:H=>{H&&(H.indeterminate=D==="some");},"aria-label":datagridCore.fillText(ee.selectGroupAria,{count:String(J.count),group:J.display??J.label}),onChange:()=>A?.(String(J.key)),onClick:H=>H.stopPropagation(),onMouseDown:H=>H.stopPropagation()}):se?null:jsxRuntime.jsx("input",{type:"checkbox",checked:y,disabled:!f,tabIndex:-1,"aria-label":datagridCore.fillText(ee.selectRowAria,{row:String(t.key)}),onChange:()=>K?.(t),onClick:H=>H.stopPropagation(),onMouseDown:H=>H.stopPropagation()})},"__select"));let x=xe.total,_=H=>v===H?" kanuni-datagrid-cell--focused":"",Q=H=>{let j=h&&t.kind==="data"?h(t.key,H):null;return j==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":j==="match"?" kanuni-datagrid-cell--find-match":""},re={left:r.left.length,center:r.center.length},we=t.kind==="data"&&G?G(t):null,ye=H=>we?.widths.get(H.state.id)??H.state.width,Re=H=>{let j=we?.spans.get(H);return j?{"aria-colspan":j}:null};r.left.forEach((H,j)=>{let he=H.def,Me=j===r.left.length-1,ae=H.state.id;if(we?.covered.has(ae))return;let Ze=Do("left",j,re);le.push(jsxRuntime.jsx("div",{...te(ae,Ze),className:`${Zr(he.align,he.dataType)} kanuni-datagrid-cell--pinned${Me?" kanuni-datagrid-pin-edge-left":""}${_(ae)}${Q(ae)}${c(he,ae)}${it(ae,Ze)}${Ne(ae)}${Jr(je(ae))}`,...Re(ae),style:{width:ye(H),insetInlineStart:r.leftOffsets[j]+x},children:jr(je(ae),v===ae,()=>at(he,ae,Ze))},ae));});let Ce=we?.lead??null,_e=T-(we?.leadingDelta??0),Rt=w-(we?.trailingDelta??0);_e>0&&le.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:_e}},"__lead"));let sn=(H,j)=>{let he=H.def,Me=H.state.id,ae=Do("center",j,re),Ze=p?.get(Me),eo=Ze===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",Ln=Ce&&Ce.column.state.id===Me?Ce.width:ye(H);return jsxRuntime.jsx("div",{...te(Me,ae),...Re(Me),className:`${Zr(he.align,he.dataType)}${eo}${_(Me)}${Q(Me)}${c(he,Me)}${it(Me,ae)}${Ne(Me)}${Jr(je(Me))}`,style:Ze===void 0?{width:Ln}:{width:Ln,insetInlineStart:Ze+x},children:jr(je(Me),v===Me,()=>at(he,Me,ae))},Me)},Pn=Ce?r.center.indexOf(Ce.column):-1,ze=Ce===null;return a.forEach((H,j)=>{let he=s?.[j]??j;!ze&&he>Pn&&(le.push(sn(Ce.column,Pn)),ze=true),!we?.covered.has(H.state.id)&&le.push(sn(H,he));}),ze||le.push(sn(Ce.column,Pn)),Rt>0&&le.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Rt}},"__trail")),r.right.forEach((H,j)=>{let he=H.def,Me=j===0,ae=H.state.id;if(we?.covered.has(ae))return;let Ze=Do("right",j,re);le.push(jsxRuntime.jsx("div",{...te(ae,Ze),className:`${Zr(he.align,he.dataType)} kanuni-datagrid-cell--pinned${Me?" kanuni-datagrid-pin-edge-right":""}${_(ae)}${Q(ae)}${c(he,ae)}${it(ae,Ze)}${Ne(ae)}${Jr(je(ae))}`,...Re(ae),style:{width:ye(H),insetInlineEnd:r.rightOffsets[j]},children:jr(je(ae),v===ae,()=>at(he,ae,Ze))},ae));}),jsxRuntime.jsxs("div",{className:`kanuni-datagrid-row${k&&n%2===1?" kanuni-datagrid-row--odd":""}${y?" kanuni-datagrid-row--selected":""}${u?" kanuni-datagrid-row--focused":""}${se?" kanuni-datagrid-row--tree-path":""}${J?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${J.level}`:""}${We?` kanuni-datagrid-row--drop-${We}`:""}${Ke?` ${datagridCore.rowStatusClassName(Ke,st)}`:""}`,role:"row","aria-rowindex":n+1+d,"aria-selected":J||!N?void 0:y,"aria-expanded":J?J.expanded:void 0,"aria-level":J?J.level+1:void 0,"data-row-key":String(t.key),"data-row-status":Ke,"aria-description":Ke?rt:void 0,"aria-busy":Ke==="saving"?true:void 0,"aria-invalid":Ke==="error"?true:void 0,"data-group-key":J?String(J.key):void 0,"data-group-level":J?J.level:void 0,style:ct===void 0?void 0:{height:ct},draggable:He?.draggable&&!J?true:void 0,onDragStart:He&&!J?H=>He.onDragStart(t,H):void 0,onDragEnd:He&&!J?()=>He.onDragEnd():void 0,onDragOver:He&&!J?H=>He.onDragOver(t,H):void 0,onDrop:He&&!J?H=>He.onDrop(t,H):void 0,onMouseDown:O&&!J?H=>O(t,H):void 0,onClick:J?()=>Fe?.(String(J.key)):S?H=>S(t,n,H):void 0,onDoubleClick:q?H=>q(t,n,H):void 0,onContextMenu:ve?H=>ve(t,n,H):void 0,children:[He&&!J&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:ee.dragToReorder,onMouseEnter:()=>He.setDraggable(true),onMouseLeave:()=>He.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"})]})})}),C&&t.kind==="data"?C({row:t.data,node:t,rowIndex:n,selected:y,focused:u}):le]})}var Tn=react.memo(_u);var xn=26;function ta(e,t){return datagridCore.computeHeaderBands(e,t)}function na(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function oa(e,t){let n=jsxRuntime.jsx("span",{className:"kanuni-datagrid-band-label",children:e.label});if(!t||e.spacer||e.columnIds.length===0)return n;let r=t.pathOf(e.columnIds[0]).slice(0,e.level+1);if(r.length!==e.level+1||!t.collapsible(r))return n;let l=t.collapsed(r);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-band-toggle","aria-expanded":!l,"aria-label":l?t.labels.expand:t.labels.collapse,title:l?t.labels.expand:t.labels.collapse,onClick:a=>{a.stopPropagation(),t.onToggle(r);},children:jsxRuntime.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[jsxRuntime.jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),jsxRuntime.jsx("path",{d:"M5 8h6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),l&&jsxRuntime.jsx("path",{d:"M8 5v6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}),n]})}function Vu({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,depth:l,checkboxColumn:a=false,detailColumn:s=false,statusColumn:p=false,rowNumberColumn:T=false,rowHeight:w=xn,bandFold:k}){if(l<=0)return null;let y=Gt({statusColumn:p,rowNumberColumn:T,detailColumn:s,checkboxColumn:a}).total,N=ta(e.left,l),f=ta(t,l),D=ta(e.right,l),A=(P,v,u)=>{let C=u;for(let L=0;L<v;L++)C+=P[L].width;return C};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:l},(P,v)=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":v+1,style:{width:e.totalWidth+y,height:w,top:v*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[v]??[]).map((u,C)=>jsxRuntime.jsx("div",{className:na(u,` kanuni-datagrid-band-cell--pinned${C===(N[v]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:u.spacer?"presentation":"columnheader","aria-colspan":u.spacer?void 0:u.columnIds.length,style:{width:u.width,insetInlineStart:A(N[v]??[],C,y)},title:u.spacer?void 0:u.label,children:oa(u,k)},u.columnIds[0])),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(f[v]??[]).map(u=>jsxRuntime.jsx("div",{className:na(u),role:u.spacer?"presentation":"columnheader","aria-colspan":u.spacer?void 0:u.columnIds.length,style:{width:u.width},title:u.spacer?void 0:u.label,children:oa(u,k)},u.columnIds[0])),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),(D[v]??[]).map((u,C)=>{let L=D[v]??[],$=0;for(let V=C+1;V<L.length;V++)$+=L[V].width;return jsxRuntime.jsx("div",{className:na(u,` kanuni-datagrid-band-cell--pinned${C===0?" kanuni-datagrid-pin-edge-right":""}`),role:u.spacer?"presentation":"columnheader","aria-colspan":u.spacer?void 0:u.columnIds.length,style:{width:u.width,insetInlineEnd:$},title:u.spacer?void 0:u.label,children:oa(u,k)},u.columnIds[0])})]},v))})}var aa=react.memo(Vu);var Xu=()=>jsxRuntime.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:"M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"0.6",strokeLinejoin:"round"})});function Ju(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function ju({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,sort:s,sortable:p,onSort:T,headerFilter:w=false,filteredColumns:k,onOpenFilter:y,filterIconMode:N="hover",checkboxColumn:f=false,detailColumn:D=false,statusColumn:A=false,rowNumberColumn:P=false,rowNumberHeader:v="#",selectAllState:u="none",selectAllDisabled:C=false,onToggleSelectAll:L,draggable:$=false,reorderable:V=false,onReorder:F,resizable:R=false,onResize:U,onAutoFit:G,onHeaderContextMenu:h,groupLevels:d,onHeaderClick:S,getHeaderClassName:O,renderHeaderLabel:q}){let K=Te(),ne=Gt({statusColumn:A,rowNumberColumn:P,detailColumn:D,checkboxColumn:f}),ve=new Map(s.map((ee,le)=>[ee.columnId,{direction:ee.direction,order:le}])),ce=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),Pe=react.useId(),oe=b&&Fe.includes(b)?b:Fe[0],ie=ee=>{Y(ee),document.querySelector(`[data-column-id="${ee}"].kanuni-datagrid-header-cell`)?.focus();},de=ee=>{let le=Fe.indexOf(oe),xe=Math.min(Fe.length-1,Math.max(0,le+ee));xe!==le&&ie(Fe[xe]);},Se=react.useRef(null),Ee=react.useRef(false),[I,ue]=react.useState(null),z=Fe,X=ee=>[...n.left,...n.center,...n.right].find(le=>le.state.id===ee)?.state.pinned??null,Ge=(ee,le)=>(Ee.current?ee>le.left+le.width/2:ee<le.left+le.width/2)?"before":"after",He=(ee,le)=>{let xe=Se.current;if(!V||!xe||xe===ee||X(xe)!==X(ee))return;le.preventDefault(),le.dataTransfer.dropEffect="move";let M=Ge(le.clientX,le.currentTarget.getBoundingClientRect());ue(B=>B?.id===ee&&B.side===M?B:{id:ee,side:M});},We=(ee,le)=>{let xe=Se.current;if(ue(null),!V||!xe||xe===ee||X(xe)!==X(ee))return;if(le.preventDefault(),le.stopPropagation(),Ge(le.clientX,le.currentTarget.getBoundingClientRect())==="before")F?.(xe,ee);else {let B=z[z.indexOf(ee)+1];F?.(xe,B===xe?z[z.indexOf(ee)+2]:B);}Se.current=null;},[Ke,rt]=react.useState(null),st=(ee,le)=>{if(!R)return;le.preventDefault(),le.stopPropagation();let xe=le.currentTarget,M=le.clientX,B=ee.state.width,te=Ee.current?-1:1,Z=ee.state.id;rt(Z),xe.setPointerCapture(le.pointerId);let se=B,J=false,Ae=Ue=>{J=true,se=B+(Ue.clientX-M)*te,U?.(Z,se,false);},Be=()=>{xe.releasePointerCapture?.(le.pointerId),xe.removeEventListener("pointermove",Ae),xe.removeEventListener("pointerup",Be),xe.removeEventListener("pointercancel",Be),J&&U?.(Z,se,true),rt(null);};xe.addEventListener("pointermove",Ae),xe.addEventListener("pointerup",Be),xe.addEventListener("pointercancel",Be);},ct=(ee,le,xe)=>{let M=ee.def,B=ee.state.id,te=p&&M.sortable!==false,Z=w&&M.filterable!==false,se=B===datagridCore.GROUP_COLUMN_ID,J=ve.get(se?d?.[0]??B:B),Ae=$&&M.groupable!==false||V&&M.reorderable!==false,Be=I?.id===B?I.side:null,Ue=O?.(B);return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-header-cell${le}${Ue?` ${Ue}`:""}${te?" kanuni-datagrid-header-cell--sortable":""}${Be?` kanuni-datagrid-header-cell--drop-${Be}`:""}${Ke===B?" kanuni-datagrid-header-cell--resizing":""}${M.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:xe,role:"columnheader","aria-labelledby":`${Pe}-${encodeURIComponent(B)}`,"aria-sort":J?J.direction==="asc"?"ascending":"descending":"none","data-column-id":B,tabIndex:B===oe?0:-1,onFocus:()=>Y(B),draggable:Ae&&Ke===null,onDragStart:ge=>{ge.dataTransfer.setData("text/x-kanuni-column",B),ge.dataTransfer.effectAllowed="move",Se.current=B,Ee.current=getComputedStyle(ge.currentTarget).direction==="rtl";},onDragEnd:()=>{Se.current=null,ue(null);},onDragOver:V?ge=>He(B,ge):void 0,onDragLeave:V?()=>ue(ge=>ge?.id===B?null:ge):void 0,onDrop:V?ge=>We(B,ge):void 0,onContextMenu:h&&!datagridCore.isChromeColumn(B)?ge=>h(B,ge):void 0,onClick:te||S?ge=>{S?.(B,ge)||te&&T(B,ge.shiftKey);}:void 0,onKeyDown:ge=>{ge.key==="ArrowRight"?(ge.preventDefault(),de(1)):ge.key==="ArrowLeft"?(ge.preventDefault(),de(-1)):ge.key==="Home"?(ge.preventDefault(),ie(Fe[0])):ge.key==="End"?(ge.preventDefault(),ie(Fe[Fe.length-1])):Z&&ge.altKey&&ge.key==="ArrowDown"?(ge.preventDefault(),y?.(B,ge.currentTarget)):te&&(ge.key==="Enter"||ge.key===" ")&&(ge.preventDefault(),T(B,ge.shiftKey));},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-header-label",id:`${Pe}-${encodeURIComponent(B)}`,children:q?.(B)??Ju(M,B)}),J&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:J.direction==="asc"?"\u25B2":"\u25BC"}),J&&s.length>1&&!se&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:J.order+1}),w&&M.filterable!==false&&jsxRuntime.jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${ce.has(B)?" kanuni-datagrid-filter-button--active":""}${N==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":datagridCore.fillText(K.filterColumnAria,{column:M.headerName??B}),"aria-haspopup":"dialog","data-filter-button":B,tabIndex:-1,onClick:ge=>{ge.stopPropagation(),y?.(B,ge.currentTarget);},children:jsxRuntime.jsx(Xu,{})}),R&&M.resizable!==false&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":B,role:"presentation",onPointerDown:ge=>st(ee,ge),onDoubleClick:ge=>{ge.stopPropagation(),G?.(B);},onClick:ge=>ge.stopPropagation()})]},B)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/xn)+1,style:{width:n.totalWidth+ne.total,top:e||void 0},children:[A&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell",role:"presentation","aria-hidden":"true",style:{width:vn,insetInlineStart:ne.inset("statusColumn")}}),P&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":ne.colIndex("rowNumberColumn"),"aria-label":K.rowNumberAria,style:{width:kn,insetInlineStart:ne.inset("rowNumberColumn")},children:v??""}),D&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":ne.colIndex("detailColumn"),"aria-label":K.detailsAria,style:{width:Go,insetInlineStart:ne.inset("detailColumn")}}),f&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":ne.colIndex("checkboxColumn"),style:{width:Eo,insetInlineStart:ne.inset("checkboxColumn")},children:jsxRuntime.jsx("input",{type:"checkbox",checked:u==="all",ref:ee=>{ee&&(ee.indeterminate=u==="some");},"aria-label":K.selectAllRows,disabled:C,onChange:()=>L?.()})}),n.left.map((ee,le)=>ct(ee,` kanuni-datagrid-header-cell--pinned${le===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:ee.state.width,insetInlineStart:n.leftOffsets[le]+ne.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(ee=>{let le=t?.get(ee.state.id);return le===void 0?ct(ee,"",{width:ee.state.width}):ct(ee," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:ee.state.width,insetInlineStart:le+ne.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((ee,le)=>ct(ee,` kanuni-datagrid-header-cell--pinned${le===0?" kanuni-datagrid-pin-edge-right":""}`,{width:ee.state.width,insetInlineEnd:n.rightOffsets[le]}))]})}var la=react.memo(ju);function da(e,t,n=[]){let r=null,l=new Set,a=s=>{if(l.has(s)||(l.add(s),t.isPending(s)))return;let p=t.textFor(s);if(p===null)return;let T=e[s]??"";T!==p&&(T===""&&p===""||(r??={...e},r[s]=p));};for(let s of Object.keys(e))a(s);for(let s of n)a(s);return r??e}function ec({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:l,trailingSpacer:a,values:s,checkboxColumn:p=false,detailColumn:T=false,statusColumn:w=false,rowNumberColumn:k=false,placeholder:y,onChange:N,onCommit:f,periodSuggestions:D,periodListId:A,operators:P,onOperatorChange:v,renderCustom:u}){let C=Te(),L=Gt({statusColumn:w,rowNumberColumn:k,detailColumn:T,checkboxColumn:p}),$=y??C.filterPlaceholder,V=(F,R,U)=>{let G=F.state.id,h=F.def.filterable!==false,d=h?u?.(G):void 0,S=h&&d===void 0?datagridCore.customFilterOperators(F.def):[],O=S.some(K=>K.id===P?.[G])?P[G]:"",q=S.find(K=>K.id===O)?.operandType==="none";return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-cell${R}`,role:"gridcell",style:U,"data-column-id":G,children:[h&&d!==void 0&&d,h&&d===void 0&&S.length>0&&jsxRuntime.jsxs("select",{className:"kanuni-datagrid-filter-operator",value:O,"aria-label":datagridCore.fillText(C.filterOperatorAria,{column:F.def.headerName??G}),"data-filter-operator-for":G,onChange:K=>v?.(G,K.target.value),children:[jsxRuntime.jsx("option",{value:"",children:C.filterOperatorDefault}),S.map(K=>jsxRuntime.jsx("option",{value:K.id,children:K.label},K.id))]}),h&&d===void 0&&jsxRuntime.jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:s[G]??"",placeholder:$,"aria-label":datagridCore.fillText(C.filterColumnAria,{column:F.def.headerName??G}),"data-filter-for":G,disabled:q||void 0,list:F.def.dataType==="date"&&A&&O===""?A:void 0,onChange:K=>N(G,K.target.value),onKeyDown:K=>{K.key==="Enter"&&f?.(G,K.target.value);},onBlur:K=>f?.(G,K.target.value)})]},G)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+L.total,"--dg-band-offset":`${e}px`},children:[A&&D&&D.length>0&&jsxRuntime.jsx("datalist",{id:A,children:D.map(F=>jsxRuntime.jsx("option",{value:F},F))}),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((F,R)=>V(F,` kanuni-datagrid-filter-cell--pinned${R===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:F.state.width,insetInlineStart:n.leftOffsets[R]+L.total})),l>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),r.map(F=>{let R=t?.get(F.state.id);return R===void 0?V(F,"",{width:F.state.width}):V(F," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:F.state.width,insetInlineStart:R+L.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((F,R)=>V(F,` kanuni-datagrid-filter-cell--pinned${R===0?" kanuni-datagrid-pin-edge-right":""}`,{width:F.state.width,insetInlineEnd:n.rightOffsets[R]}))]})}var ua=react.memo(ec);function pt({children:e,dark:t=false,kind:n="popup"}){let[r,l]=react.useState(null),a=Tt(),s=Pt();return react.useEffect(()=>{let p=document.createElement("div");return p.className=`kanuni-datagrid-root kanuni-datagrid-portal${t?" kanuni-datagrid-dark":""}${a}`,p.setAttribute(datagridCore.PORTAL_ATTRIBUTE,n),p.style.pointerEvents="auto",s().appendChild(p),l(p),()=>{p.remove();}},[t,a,s,n]),r?reactDom.createPortal(e,r):null}function on({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 Ft=25,Yn=new Map,kl=200,pc=200,vl=8;function fc(e){let t=Te();return react.useMemo(()=>({search:t.search,selectAll:t.filterSelectAll,clear:t.clear,apply:t.apply,cancel:t.cancel,blank:t.filterBlank,custom:t.filterCustom,popupAria:t.filterPopupAria,nonBlank:t.filterNonBlank,emptyText:t.filterEmptyText,space:t.filterSpace,spaces:t.filterSpaces,noMatch:t.filterNoMatch,loading:t.filterLoading,truncated:t.filterTruncated,...e}),[t,e])}var gc=react.memo(function({itemKey:t,label:n,display:r,index:l,active:a,checked:s,onToggle:p,onFocus:T}){return jsxRuntime.jsxs("div",{role:"option","aria-selected":s,tabIndex:a?0:-1,className:`kanuni-datagrid-filter-item${a?" kanuni-datagrid-filter-item--active":""}`,"data-value":n,"data-index":l,onFocus:()=>T(l),onClick:()=>p(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:s,tabIndex:-1}),jsxRuntime.jsx("span",{children:r})]})});function wc(e,t){return e.nonBlank?t.nonBlank:Tl({value:e.blank?null:e.value,label:e.label},t)}function Tl(e,t){return datagridCore.distinctDisplayText(e,{filterBlank:t.blank,filterEmptyText:t.emptyText,filterSpace:t.space,filterSpaces:t.spaces})}var wa={value:void 0,label:""},Po=e=>e.value===null||e.value===void 0;function hc({index:e,row:t,active:n,checked:r,text:l,onToggle:a,onFocus:s}){return t?jsxRuntime.jsxs("div",{role:"option","aria-selected":r,tabIndex:n?0:-1,className:`kanuni-datagrid-filter-item${n?" kanuni-datagrid-filter-item--active":""}`,"data-value":t.label,"data-index":e,onFocus:()=>s(e),onClick:()=>a(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:r,tabIndex:-1}),jsxRuntime.jsx("span",{children:wc(t,l)})]}):jsxRuntime.jsx("div",{role:"option","aria-selected":false,"aria-busy":"true",className:"kanuni-datagrid-filter-item kanuni-datagrid-filter-item--pending","data-index":e,children:jsxRuntime.jsx("span",{"aria-hidden":"true",children:"\u2026"})})}function ha({gridId:e,columnId:t,headerLabel:n,entries:r,initialSelected:l,anchor:a,loading:s=false,dark:p,onApply:T,onClose:w,onCustom:k,truncated:y=false,onSearch:N,pager:f,labels:D}){let A=fc(D),[,P]=react.useReducer(M=>M+1,0);react.useEffect(()=>f?f.subscribe(P):void 0,[f]);let[v,u]=react.useState(""),[C,L]=react.useState(0),[$,V]=react.useState(()=>new Set(l??r.map(datagridCore.distinctEntryKey))),[F,R]=react.useState(false),U=react.useRef(null),G=react.useRef(null),[h,d]=react.useState(0),[S,O]=react.useState(240),q=`${e??""}:${t}`,K=Yn.get(q),ne=react.useRef(K?.scrollTop??null),[ve,ce]=react.useState(K&&K.width&&K.height?{width:K.width,height:K.height}:null),Fe=react.useCallback(M=>{U.current=M,M?.focus();},[]),b=react.useRef(null),Y=react.useMemo(()=>{let M=datagridCore.foldText(v.trim());if(!M||y)return r;let B=b.current;(!B||B.entries!==r)&&(B={entries:r,lowered:r.map(Z=>datagridCore.foldText(Z.label)),needle:"",result:[]},b.current=B);let te=B.needle!==""&&M.includes(B.needle)?B.result.filter(Z=>datagridCore.foldText(Z.label).includes(M)):r.filter((Z,se)=>B.lowered[se].includes(M));return B.needle=M,B.result=te,te},[r,v,y]);react.useEffect(()=>{if(!N)return;let M=setTimeout(()=>N(v),150);return ()=>clearTimeout(M)},[v,N]),react.useEffect(()=>{if(!f)return;let M=setTimeout(()=>{if(f.getSearch()===v.trim())return;f.setSearch(v);let B=G.current;B&&(B.scrollTop=0),d(0),L(0);},150);return ()=>clearTimeout(M)},[f,v]),react.useEffect(()=>{F||!l||V(new Set(l));},[l,F]),react.useEffect(()=>{F||l||V(new Set(r.map(datagridCore.distinctEntryKey)));},[r,F,l]);let Pe=react.useCallback(M=>{G.current=M,M&&O(M.clientHeight||240);},[]);react.useEffect(()=>{let M=G.current;!M||ne.current===null||s||M.scrollHeight<=M.clientHeight||(M.scrollTop=ne.current,ne.current=null,d(M.scrollTop));});let oe=react.useMemo(()=>{if(v.trim()!=="")return Y;let M=Y.findIndex(Po);return M<0?Y:[...Y.slice(0,M+1),wa,...Y.slice(M+1)]},[Y,v]),ie=react.useMemo(()=>{let M=oe.length,B=Math.max(0,Math.floor(h/Ft)-vl),te=Math.ceil(S/Ft)+vl*2,Z=Math.min(B,Math.max(0,M-1)),se=Math.min(M,Z+te);return {start:Z,end:se,count:M,rows:oe.slice(Z,se)}},[oe,h,S]);react.useEffect(()=>{let M=G.current;f&&M&&O(M.clientHeight||240);},[f,s,f?.isLoading(),f?.getRowCount()]);let de=f?f.getWindow(h,Math.max(S,150)):null,Se=de?.start??0,Ee=de?.end??0;react.useEffect(()=>{f&&f.ensure(Se,Ee);},[f,Se,Ee,h]);let I=f?f.getRowCount():oe.length,ue=f?!!de&&C>=de.start&&C<de.end&&!!f.getRow(C):C>=ie.start&&C<ie.end,z=s||(f?f.isLoading():false),X=on({anchor:a,onClose:w}),[Ge,He]=react.useState(null),We=(Ge??X.position.left)+(ve?.width??260)+48<window.innerWidth?"right":"left",Ke=M=>{M.preventDefault(),M.stopPropagation();let B=X.elementRef.current;if(!B)return;let te=B.getBoundingClientRect(),Z=We,se={x:M.clientX,y:M.clientY,w:te.width,h:te.height,left:te.left},J=null,Ae=Ue=>{let ge=Ue.clientX-se.x,i=Ue.clientY-se.y,at=window.innerHeight-te.top-12,it=Math.min(at,Math.max(pc,se.h+i));if(Z==="right"){let Ne=window.innerWidth-se.left-12;J={width:Math.min(Ne,Math.max(kl,se.w+ge)),height:it},ce(J);}else {let Ne=se.left+se.w,je=Ne-12,c=Math.min(je,Math.max(kl,se.w-ge));J={width:c,height:it},ce(J),He(Ne-c);}G.current&&O(G.current.clientHeight);},Be=()=>{if(window.removeEventListener("pointermove",Ae),window.removeEventListener("pointerup",Be),J){let Ue=Yn.get(q);Yn.set(q,{scrollTop:Ue?.scrollTop??G.current?.scrollTop??0,width:Math.round(J.width),height:Math.round(J.height)});}};window.addEventListener("pointermove",Ae),window.addEventListener("pointerup",Be);},rt=react.useCallback(M=>{R(true),V(B=>{let te=new Set(B);if(M===datagridCore.NONBLANK_KEY){let Z=datagridCore.distinctNonBlankTicked(r,B);for(let se of r)Po(se)&&!Z?te.delete(datagridCore.BLANK_KEY):te.add(datagridCore.distinctEntryKey(se));return te}return te.has(M)?te.delete(M):te.add(M),te});},[r]),st=react.useCallback(M=>L(M),[]),ct=()=>{if(z)return;if(f){T(f.buildFilter(t));return}if($.size===r.length){T(null);return}let M=r.filter(se=>$.has(datagridCore.distinctEntryKey(se))),B=M.some(Po),te=M.filter(se=>!Po(se)),Z;datagridCore.distinctNonBlankTicked(r,$)?Z={columnId:t,operator:"isnotnull"}:te.length===0?Z={columnId:t,operator:"isnull"}:B?Z={logic:"or",nodes:[{columnId:t,operator:"in",value:te.map(se=>se.value)},{columnId:t,operator:"isnull"}]}:Z={columnId:t,operator:"in",value:te.map(se=>se.value)},T(Z);},ee=M=>{let B=Math.max(0,Math.min(I-1,M));if(L(B),f){let J=G.current;J&&(M<=0||M>=I-1)&&(J.scrollTop=M<=0?0:J.scrollHeight),requestAnimationFrame(()=>{let Ae=X.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${B}"]`);Ae?.focus(),Ae?.scrollIntoView?.({block:"nearest"});});return}let te=G.current;if(te){let J=B*Ft,Ae=te.clientHeight||240,Be=te.scrollTop;J<Be?Be=J:J+Ft>Be+Ae&&(Be=J+Ft-Ae),Be!==te.scrollTop&&(te.scrollTop=Be),d(Be);}let Z=()=>X.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${B}"]`),se=Z();se?(se.focus(),se.scrollIntoView?.({block:"nearest"})):requestAnimationFrame(()=>Z()?.focus());},le=M=>M.key.length===1&&!M.ctrlKey&&!M.metaKey&&!M.altKey,xe=M=>{let B=M.target===U.current;if(!((M.key==="Enter"||M.key===" ")&&M.target instanceof HTMLButtonElement)){if(M.key==="Tab"){let te=X.elementRef.current,Z=te?Array.from(te.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')):[],se=Z[0],J=Z[Z.length-1],Ae=document.activeElement;se&&J&&(!M.shiftKey&&(Ae===J||Ae===te)?(M.preventDefault(),se.focus()):M.shiftKey&&(Ae===se||Ae===te)&&(M.preventDefault(),J.focus()));return}if(M.key==="Backspace"&&!B){M.preventDefault(),U.current?.focus(),u(te=>te.slice(0,-1)),L(0);return}if(M.key==="ArrowDown"){M.preventDefault(),ee(B?0:C+1);return}if(M.key==="ArrowUp"){M.preventDefault(),ee(B?f?0:oe.length-1:C-1);return}if(!B&&(M.key==="Home"||M.key==="End")){M.preventDefault(),ee(M.key==="Home"?0:I-1);return}if(M.key===" "&&!B){if(M.preventDefault(),f){let Z=f.getRow(C);Z&&f.toggle(Z);return}let te=oe[C];te&&rt(te===wa?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(te));return}if(M.key==="Enter"){M.preventDefault(),ct();return}!B&&le(M)&&M.key!==" "&&(M.preventDefault(),U.current?.focus(),u(te=>te+M.key),L(0));}};return jsxRuntime.jsx(pt,{dark:p,children:jsxRuntime.jsxs("div",{ref:X.ref,className:"kanuni-datagrid-filter-popup",style:{left:Ge??X.position.left,top:X.position.top,...ve?{width:ve.width,height:ve.height,maxHeight:"none"}:null},role:"dialog","aria-label":A.popupAria.replace("{column}",n),tabIndex:-1,onKeyDown:xe,children:[jsxRuntime.jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${We}`,"data-testid":"dg-filter-resize",onPointerDown:Ke}),jsxRuntime.jsx("input",{ref:Fe,className:"kanuni-datagrid-filter-search",type:"search",placeholder:A.search,value:v,onChange:M=>{u(M.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:A.truncated}),k&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-custom","data-testid":"dg-filter-custom",onClick:k,children:A.custom}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(f)return f.selectAll();R(true),v.trim()===""?V(new Set(r.map(datagridCore.distinctEntryKey))):V(M=>{let B=new Set(M);for(let te of Y)B.add(datagridCore.distinctEntryKey(te));return B});},children:A.selectAll}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(f)return f.clear();R(true),v.trim()===""?V(new Set):V(M=>{let B=new Set(M);for(let te of Y)B.delete(datagridCore.distinctEntryKey(te));return B});},children:A.clear})]}),jsxRuntime.jsxs("div",{ref:Pe,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true",tabIndex:ue||I===0?-1:0,"aria-busy":z||void 0,"aria-setsize":I,onScroll:M=>{let B=M.target.scrollTop;d(B),ne.current=null;let te=Yn.get(q);Yn.set(q,{...te,scrollTop:B});},children:[z&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:A.loading}),!z&&I===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:A.noMatch}),f&&de&&I>0&&jsxRuntime.jsx("div",{style:{height:de.totalHeight,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${de.offsetY}px)`},children:Array.from({length:de.end-de.start},(M,B)=>{let te=de.start+B,Z=f.getRow(te);return jsxRuntime.jsx(hc,{index:te,row:Z,active:te===C,checked:Z?f.isChecked(Z):false,text:A,onToggle:se=>f.toggle(se),onFocus:st},te)})})}),!f&&ie.count>0&&jsxRuntime.jsx("div",{style:{height:oe.length*Ft,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${ie.start*Ft}px)`},children:ie.rows.map((M,B)=>{let te=ie.start+B,Z=M===wa,se=Z?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(M);return jsxRuntime.jsx(gc,{itemKey:se,label:M.label,display:Z?A.nonBlank:Tl(M,A),index:te,active:te===C,checked:Z?datagridCore.distinctNonBlankTicked(r,$):$.has(se),onToggle:rt,onFocus:st},se)})})})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:w,children:A.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:ct,disabled:z,"data-testid":"dg-filter-apply",children:A.apply})]})]})})}function ba(e,t,n){return n==="row"?e.getColumnFilter(t,datagridCore.FILTER_PART_ROW):e.getColumnFilter(t,datagridCore.FILTER_PART_SET)??e.getColumnFilter(t,datagridCore.FILTER_PART_DEFAULT)}function Ra({controller:e,columnId:t,surface:n,close:r}){let[l,a]=react.useState(()=>ba(e,t,n));react.useEffect(()=>(a(ba(e,t,n)),e.events.on("filterChanged",()=>{a(ba(e,t,n));})),[e,t,n]);let s=react.useCallback(w=>{e.setColumnFilter(t,w,n==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET);},[e,t,n]),p=react.useCallback(()=>{},[]),T=e.getColumnModel().getDef(t);return T?.renderFilter?jsxRuntime.jsx(jsxRuntime.Fragment,{children:T.renderFilter({columnId:t,column:T,surface:n,value:l,setValue:s,close:r??p})}):null}var kc='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function Sl({controller:e,columnId:t,headerLabel:n,anchor:r,dark:l,onClose:a}){let s=Te(),p=on({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(kc)??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(Ra,{controller:e,columnId:t,surface:"popup",close:a})})})}var Ca="text/x-kanuni-column";function Dc({columns:e,levels:t,onSetLevels:n,maxLevels:r=1,onExpandAll:l,onCollapseAll:a,emptyText:s}){let p=Te(),T=s??p.groupPanelHint,[w,k]=react.useState(false),y=react.useRef(null),[N,f]=react.useState(null),D=R=>e.find(G=>G.state.id===R)?.def.headerName??R,A=R=>{if(!R||t.includes(R))return;let U=t.length>=r?t.slice(0,r-1):[...t];n([...U,R]);},P=R=>n(t.filter(U=>U!==R)),v=(R,U)=>{let G=t.filter(d=>d!==R),h=Math.max(0,Math.min(G.length,U));n([...G.slice(0,h),R,...G.slice(h)]);},u=(R,U,G)=>{if(R===U)return;let d=t.filter(S=>S!==R).indexOf(U);d<0||v(R,G==="before"?d:d+1);},C=(R,U)=>{let G=R+U;G<0||G>=t.length||u(t[R],t[G],U<0?"before":"after");},L=(R,U)=>R<U.top+U.height/2?"before":"after",$=(R,U)=>{U.preventDefault(),U.stopPropagation();let G=L(U.clientY,U.currentTarget.getBoundingClientRect());f(null),k(false);let h=y.current;if(y.current=null,h){u(h,t[R],G);return}let d=U.dataTransfer.getData(Ca);if(!d||t.includes(d))return;if(t.length>=r){A(d);return}let S=G==="before"?R:R+1;n([...t.slice(0,S),d,...t.slice(S)]);},V=(R,U,G)=>{let h=G.ctrlKey||G.metaKey;h&&(G.key==="ArrowUp"||G.key==="ArrowLeft")?(G.preventDefault(),C(R,-1)):h&&(G.key==="ArrowDown"||G.key==="ArrowRight")?(G.preventDefault(),C(R,1)):(G.key==="Delete"||G.key==="Backspace")&&(G.preventDefault(),P(U));},F=e.filter(R=>!t.includes(R.state.id));return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-group-panel${w?" kanuni-datagrid-group-panel--over":""}`,onDragOver:R=>{R.preventDefault(),k(true);},onDragLeave:()=>k(false),onDrop:R=>{if(R.preventDefault(),k(false),f(null),y.current){y.current=null;return}A(R.dataTransfer.getData(Ca));},children:[t.length>0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((R,U)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-group-level${N?.index===U?` kanuni-datagrid-group-level--drop-${N.side}`:""}`,style:{"--dg-group-level":U},"data-group-level":U,onDragOver:G=>{G.preventDefault(),G.stopPropagation();let h=L(G.clientY,G.currentTarget.getBoundingClientRect());f(d=>d?.index===U&&d.side===h?d:{index:U,side:h});},onDragLeave:()=>f(G=>G?.index===U?null:G),onDrop:G=>$(U,G),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:U+1})}: ${D(R)}`,onDragStart:G=>{y.current=R,G.dataTransfer.effectAllowed="move",G.dataTransfer.setData(Ca,R);},onDragEnd:()=>{y.current=null,f(null);},onKeyDown:G=>V(U,R,G),children:[r>1&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-chip-level",children:U+1}),D(R),jsxRuntime.jsx("button",{type:"button","aria-label":datagridCore.fillText(p.groupRemoveAria,{column:D(R)}),onClick:()=>P(R),children:"\xD7"})]})},R))}):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:F.length===0,onChange:R=>A(R.target.value),children:[jsxRuntime.jsx("option",{value:"",children:p.groupAddLevelButton}),F.map(R=>jsxRuntime.jsx("option",{value:R.state.id,children:R.def.headerName??R.state.id},R.state.id))]}):jsxRuntime.jsxs("select",{value:t[0]??"",onChange:R=>n(R.target.value?[R.target.value]:[]),children:[jsxRuntime.jsx("option",{value:"",children:p.groupNoGrouping}),e.map(R=>jsxRuntime.jsx("option",{value:R.state.id,children:R.def.headerName??R.state.id},R.state.id))]})]})]})]})}var ka=react.memo(Dc);function Nc({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,defs:l,values:a,checkboxColumn:s=false,detailColumn:p=false,statusColumn:T=false,rowNumberColumn:w=false,onPickSummary:k,emptyHint:y="",position:N="bottom",bandOffset:f=0,headerRowsBetween:D=0}){let A=Te(),P=datagridCore.summaryTypeLabels(A),v=new Map(l.map(L=>[L.columnId,L])),u=Gt({statusColumn:T,rowNumberColumn:w,detailColumn:p,checkboxColumn:s}).total,C=(L,$,V)=>{let F=L.state.id,R=v.get(F),U=R?a[datagridCore.summaryKey(R.columnId,R.type)]:void 0,G=L.def.dataType==="number"||L.def.dataType==="bigint",h=datagridCore.isChromeColumn(F)?void 0:k;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-footer-cell${$}${G?" kanuni-datagrid-footer-cell--number":""}${R?" kanuni-datagrid-footer-cell--active":""}`,style:V,role:"gridcell","data-column-id":F,"data-summary-type":R?.type??"",title:R?`${datagridCore.summaryLabel(R,P)} \u2014 ${L.def.headerName??F}`:void 0,onContextMenu:h?d=>h(F,d):void 0,onClick:h?d=>h(F,d):void 0,children:R?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-value",children:datagridCore.formatSummaryValue(R,U,L.def)}):h?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-hint",children:y}):null},F)};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${N}`,role:"row","aria-label":A.columnTotalsAria,style:{width:e.totalWidth+u,"--dg-band-offset":`${f}px`,"--dg-pinned-gap":String(D)},children:[u>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:u,insetInlineStart:0}}),e.left.map((L,$)=>C(L,` kanuni-datagrid-footer-cell--pinned${$===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:L.state.width,insetInlineStart:e.leftOffsets[$]+u})),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(L=>C(L,"",{width:L.state.width})),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),e.right.map((L,$)=>C(L,` kanuni-datagrid-footer-cell--pinned${$===0?" kanuni-datagrid-pin-edge-right":""}`,{width:L.state.width,insetInlineEnd:e.rightOffsets[$]}))]})}var Fo=react.memo(Nc);function Ic(e,t){return `__dg_pinned_${e}_${t}`}function Fc({gridId:e,side:t,rows:n,rowKeys:r,onUserRowContextMenu:l,layout:a,columnModel:s,centerColumns:p,centerIndices:T,stickyInsets:w,leadingSpacer:k,trailingSpacer:y,checkboxColumn:N=false,detailColumn:f=false,statusColumn:D=false,rowNumberColumn:A=false,rowHeight:P,bandOffset:v=0,headerRowsBetween:u,ariaRowBase:C}){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":`${v}px`,"--dg-pinned-gap":String(u)},children:n.map((L,$)=>{let V=r?.[$]??null,F={kind:"data",key:Ic(t,$),sourceIndex:-1,data:L};return jsxRuntime.jsx(Tn,{gridId:e,node:F,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:D,rowNumberColumn:A,rowNumber:null,headerRowCount:C,height:P,onRowContextMenu:V!==null&&l?(R,U,G)=>l(V,L,G):void 0},F.key)})})}var Ho=react.memo(Fc);function Nl({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 va({name:e,size:t=14}){return jsxRuntime.jsx("svg",{width:t,height:t,viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",className:"kanuni-datagrid-icon",children:jsxRuntime.jsx("path",{d:datagridCore.TOOLBAR_ICON_PATHS[e],fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}async function qn(e,t){try{let n=t==="csv"?await e.exportToCsv():t==="excel"?await e.exportToExcel():t==="excel-selected"?await e.exportToExcel({selectedOnly:!0}):await e.exportToPdf();return datagridCore.downloadBlob(n.blob,n.fileName),{completed:!0}}catch(n){return n instanceof datagridCore.ExportAbortedError?{completed:false}:{completed:false,error:n instanceof Error?n.message:String(n)}}}function an({anchor:e,onClose:t,children:n,dark:r,className:l="",label:a,role:s="dialog"}){let p=on({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 Yc(e){let t=Te();return react.useMemo(()=>({search:t.toolbarSearch,csv:t.exportCsv,excel:t.exportExcel,excelSelected:t.exportExcelSelected,pdf:t.exportPdf,columns:t.columns,exporting:t.exporting,exportMenu:t.exportMenu,...e}),[t,e])}var qc=()=>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 Xc({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 D=Yc(f),[A,P]=react.useState(()=>e.getSearchText()),v=react.useRef(false),[u,C]=react.useState(null),[L,$]=react.useState(null),[V,F]=react.useState(null),R=react.useId(),U=y?.debounce??k,G=y?.validate?.(A)??null,h=K=>{v.current=false;let ne=K.trim();e.getSearchText()!==ne&&e.setSearchText(ne);},d=()=>{G===null&&h(A);};react.useEffect(()=>{if(G!==null||!v.current)return;let K=setTimeout(()=>h(A),U);return ()=>clearTimeout(K)},[e,A,U,G]),react.useEffect(()=>{let K=ne=>{v.current||P(ve=>ve.trim()===ne?ve:ne);};return K(e.getSearchText()),e.events.on("filterChanged",({searchText:ne})=>K(ne))},[e]);let[S,O]=react.useState(()=>e.getSelectedCount());react.useEffect(()=>(O(e.getSelectedCount()),e.events.on("selectionChanged",()=>O(e.getSelectedCount()))),[e]);let q=async K=>{C(K),F(null);let ne=await qn(e,K);ne.error?F(ne.error):$(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??D.search,value:A,maxLength:y?.maxLength,"aria-label":y?.ariaLabel??D.search,"aria-invalid":G!==null||void 0,"aria-describedby":G!==null?R:void 0,"data-testid":"dg-toolbar-search",onChange:K=>{v.current=true,P(K.target.value);},onBlur:()=>{y?.applyOnBlur!==false&&d();},onKeyDown:K=>{K.key==="Enter"&&y?.applyOnBlur!==false&&d();}}),t&&G!==null&&jsxRuntime.jsx("span",{id:R,className:"kanuni-datagrid-toolbar-search-error",role:"alert","data-testid":"dg-toolbar-search-error",children:G}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxRuntime.jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:K=>{let ne=K.currentTarget.getBoundingClientRect();p?.({left:ne.left,top:ne.bottom+2});},children:[jsxRuntime.jsx(va,{name:"columns"}),jsxRuntime.jsx("span",{children:D.columns})]}),N&&(n&&e.canExportAll()||r||l)&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":D.exportMenu,title:D.exportMenu,disabled:u!==null,"data-testid":"dg-export-menu",onClick:K=>{let ne=K.currentTarget.getBoundingClientRect();$(L?null:{left:ne.right-190,top:ne.bottom+2});},children:u?jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsxRuntime.jsx(qc,{})}),L&&jsxRuntime.jsxs(an,{anchor:L,onClose:()=>$(null),dark:s,role:"menu",label:D.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:u!==null,"data-testid":"dg-export-csv",onClick:()=>q("csv"),children:u==="csv"?D.exporting:D.csv}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:u!==null,"data-testid":"dg-export-excel",onClick:()=>q("excel"),children:u==="excel"?D.exporting:D.excel}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:u!==null||S===0,"data-testid":"dg-export-excel-selected",onClick:()=>q("excel-selected"),children:u==="excel-selected"?D.exporting:D.excelSelected}),l&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:u!==null,"data-testid":"dg-export-pdf",onClick:()=>q("pdf"),children:u==="pdf"?D.exporting:D.pdf})]}),w,V&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:V})]})}var Da=react.memo(Xc);var Qc=8;function em(e){let t=Te();return react.useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function Sa({controller:e,columns:t,anchor:n,onClose:r,dark:l,labels:a}){let s=em(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,D=p.trim().toLocaleLowerCase(),A=D?N.filter(P=>k(P).toLocaleLowerCase().includes(D)):N;return jsxRuntime.jsxs(an,{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>Qc&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:s.search,"aria-label":s.search,value:p,onChange:P=>T(P.target.value)}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-list",children:[A.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-empty",children:s.empty}),A.map(P=>{let v=P.visible&&f===1;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsxRuntime.jsx("input",{type:"checkbox",checked:P.visible,disabled:v,"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 am(e){let t=Te();return react.useMemo(()=>({first:t.pagerFirst,previous:t.pagerPrevious,next:t.pagerNext,last:t.pagerLast,page:t.pagerPage,of:t.pagerOf,rowsPerPage:t.pagerRowsPerPage,pageButton:t.pagerPageButton,navigation:t.pagerAria,...e}),[t,e])}function im({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=am(y),f=e<=0,D=e>=t-1,A=l===0?0:e*n+1,P=Math.min(l,(e+1)*n),v=react.useRef(null),u=react.useRef(null);return react.useEffect(()=>{let C=u.current,L=v.current;if(!L||!(C instanceof HTMLButtonElement)||!C.disabled)return;let $=document.activeElement;if($&&$!==document.body&&$!==C)return;let V=L.querySelector('[aria-current="page"]')??L.querySelector("button:not(:disabled)");V?.focus(),u.current=V;},[e,t]),jsxRuntime.jsxs("div",{ref:v,className:"kanuni-datagrid-pager",role:"navigation","aria-label":N.navigation,onFocus:C=>{u.current=C.target;},onBlur:C=>{let L=C.relatedTarget;L&&!v.current?.contains(L)&&(u.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:C=>T(Number(C.target.value)),children:r.map(C=>jsxRuntime.jsx("option",{value:C,children:C},C))})]}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[A.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(C=>typeof C=="number"?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":datagridCore.fillText(N.pageButton,{n:String(C+1)}),"aria-current":C===e?"page":void 0,onClick:()=>a(C),children:C+1},C):jsxRuntime.jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},C)):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:D,"data-testid":"dg-page-next",onClick:s,children:"\u203A"}),jsxRuntime.jsx("button",{type:"button","aria-label":N.last,disabled:D,onClick:()=>a(t-1),children:"\xBB"})]})]})}var Ea=react.memo(im);function pm(e){let t=Te();return react.useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function fm({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:r,labels:l}){let a=pm(l),s=Te(),[,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 Ga=react.memo(fm);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=Te(),T=react.useRef(null),[w,k]=react.useState({left:e,top:t}),[y,N]=react.useState(()=>n.findIndex(Ko)),[f,D]=react.useState(null),[A,P]=react.useState(null),v=react.useRef(null),[u,C]=react.useState(null);react.useEffect(()=>P(null),[f]);let L=react.useCallback((h,d)=>{if(D(h),h===null||!d)return;let S=d.getBoundingClientRect();C({left:S.left,right:S.right,top:S.top});},[]),$=h=>T.current?.querySelector(`[data-item-index="${h}"]`)??null,V=react.useCallback(h=>{if(v.current=h,!h||!u)return;let d=8,S=h.getBoundingClientRect(),O=Math.max(d,Math.min(u.top-4,window.innerHeight-S.height-d)),K=u.right+S.width+d<=window.innerWidth?u.right:Math.max(d,u.left-S.width);P({left:K,top:O});},[u]),F=react.useCallback(h=>{if(T.current=h,!h)return;let d=h.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))}),h.focus();},[e,t]);react.useEffect(()=>{let h=S=>{let O=S.target;v.current?.contains(O)||T.current&&!T.current.contains(O)&&l();},d=()=>l();return document.addEventListener("mousedown",h),window.addEventListener("scroll",d,true),()=>{document.removeEventListener("mousedown",h),window.removeEventListener("scroll",d,true);}},[l]);let R=(h,d)=>{let S=n.length;for(let O=1;O<=S;O++){let q=(h+d*O+S*S)%S;if(Ko(n[q]))return q}return h},U=h=>{let d=n[h];if(!(!d||!Ko(d))){if(d.items?.length){L(h,$(h));return}d.onSelect?.(r),l();}},G=h=>{switch(h.key){case "ArrowDown":N(d=>R(d,1));break;case "ArrowUp":N(d=>R(d,-1));break;case "Home":N(n.findIndex(Ko));break;case "End":N(R(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 " ":U(y);break;case "Escape":l();break;case "Tab":l();return;default:return}h.preventDefault(),h.stopPropagation();};return jsxRuntime.jsxs(pt,{dark:a,children:[jsxRuntime.jsx("div",{ref:F,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":s??p.rowActions,tabIndex:-1,style:{left:w.left,top:w.top},onKeyDown:G,children:n.map((h,d)=>h.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},h.id??`sep-${d}`):jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${d===y?" kanuni-datagrid-menu-item--active":""}`,disabled:h.disabled,"data-item-index":d,"aria-haspopup":h.items?.length?"menu":void 0,"aria-expanded":h.items?.length?f===d:void 0,onMouseEnter:S=>{N(d),L(h.items?.length?d:null,S.currentTarget);},onClick:()=>U(d),children:[h.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:h.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:h.label}),h.shortcut&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:h.shortcut}),h.items?.length?jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},h.id??d))}),f!==null&&n[f]?.items?.length?jsxRuntime.jsx("div",{ref:V,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:A?{left:A.left,top:A.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[f].items.map((h,d)=>h.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},h.id??`sub-sep-${d}`):jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:h.disabled,onClick:()=>{h.onSelect?.(r),l();},children:[h.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:h.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:h.label})]},h.id??d))}):null]})}var wm=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),Pa=wm?"\u2318":"Ctrl+",Al=`${Pa}C`,hm=`${Pa}X`,bm=`${Pa}V`;function En(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
3
+ `).length:0,()=>e.writeClipboard(n,"copy"));}function ym(e){navigator.clipboard?.writeText(e).catch(()=>{});}function Rm(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 Cm(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var km={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function La(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&&Rm(e)&&s.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>En(e,{includeGroupHeaders:true})});let p=Cm(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[km[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 Ia(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 Ha({anchor:e,value:t,dark:n,onCommit:r,onCancel:l}){let a=Te(),[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(an,{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 Sm(e){let t=Te();return react.useMemo(()=>({busy:t.busy,loading:t.busyLoading,encoding:t.busyEncoding,filtering:t.busyFiltering,sorting:t.busySorting,computing:t.busyComputing,grouping:t.busyGrouping,aggregating:t.busyAggregating,projecting:t.busyProjecting,exporting:t.busyExporting,cancel:t.cancel,...e}),[t,e])}var Em=new Set(["filtering","sorting","computing","encoding","exporting"]);function Oa({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",D=>s(D))),[e]);let w=a.busy&&a.background!==true;react.useEffect(()=>{if(!w){T(false);return}let D=setTimeout(()=>T(true),t);return ()=>clearTimeout(D)},[w,t]);let k=Sm(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&&Em.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 Gm(){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 Mm(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function Nm(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=Gm();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(Mm(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,Nm(p)));}return s===0?null:Math.round(Math.min(640,Math.max(48,s)))}function Ka(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 _a(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),D=react.useRef(t);D.current=t;let A=react.useCallback(h=>e.getRowByKey(h),[e]),P=(h,d)=>{let S=d.getBoundingClientRect();return h.clientY<S.top+S.height/2?"before":"after"},v=react.useCallback((h,d)=>{if(!datagridCore.isDataRow(h))return;f.current=h.key,N.current=h.key,y.current=false,k.current=null;let S={gridId:e.gridId,group:r,rowKey:h.key,row:h.data};d.dataTransfer.setData($o,JSON.stringify(S)),d.dataTransfer.setData("text/plain",String(h.key)),d.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:h.key}),d.stopPropagation();},[e,r]),u=react.useCallback(()=>{let h=N.current;h!==null&&e.notifyRowDragEnd({rowKey:h,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]),C=react.useCallback(h=>h.dataTransfer.types.includes($o)?f.current!==null?l:a&&r!==null:false,[l,a,r]),L=react.useCallback((h,d)=>{if(!datagridCore.isDataRow(h)||!C(d))return;if(d.preventDefault(),d.dataTransfer.dropEffect="move",f.current===h.key){k.current=null,w(null);return}let S=P(d,d.currentTarget),O=k.current?.key!==h.key||k.current.side!==S;k.current={key:h.key,side:S},w(q=>q?.key===h.key&&q.side===S?q:{key:h.key,side:S}),O&&f.current!==null&&e.notifyRowDrag("move",{rowKey:f.current,overKey:h.key,position:S});},[C,e]),$=react.useCallback((h,d,S)=>{let O=null;try{let K=h.dataTransfer.getData($o);O=K?JSON.parse(K):null;}catch{O=null;}if(!O)return;if(O.gridId===e.gridId){if(!l)return;let K=D.current?.onReorder;if(K){K({dragKey:O.rowKey,targetKey:d,position:S,row:A(O.rowKey)});return}e.moveRow(O.rowKey,d,S);return}!a||r===null||O.group!==r||D.current?.onAdd?.({row:O.row,rowKey:O.rowKey,otherGridId:O.gridId,targetKey:d,position:S});},[e,l,a,r,A]),V=react.useCallback((h,d)=>{if(w(null),!datagridCore.isDataRow(h)||!C(d))return;d.preventDefault(),d.stopPropagation();let S=P(d,d.currentTarget);y.current=true,k.current={key:h.key,side:S},$(d,h.key,S),f.current=null;},[C,$]),F=react.useCallback(h=>{C(h)&&(h.preventDefault(),h.dataTransfer.dropEffect="move");},[C]),R=react.useCallback(h=>{w(null),C(h)&&(h.preventDefault(),y.current=true,k.current=null,$(h,null,"after"),f.current=null);},[C,$]),U=react.useCallback(h=>{let d=h.relatedTarget;d&&h.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:v,onDragEnd:u,onDragOver:L,onDrop:V}:void 0,dropAt:n?T:null,bodyHandlers:n?{onDragOver:F,onDrop:R,onDragLeave:U}:void 0}}var Om=400;function Yl(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function ql(e){return (e.textContent??"").trim()}function Km(e){let{def:t,node:n,value:r,clipped:l,note:a}=e;if(a)return a;if(t&&n){if(typeof t.tooltip=="function"){let s=t.tooltip({value:r,row:n.data,node:n,column:t});return s||null}if(typeof t.tooltip=="string")return t.tooltip||null;if(t.tooltipField){let s=n.data[t.tooltipField];return s==null||s===""?null:String(s)}}return l&&l.length>0?l:null}function $a({rootRef:e,columnModel:t,getRowNode:n,getNote:r,config:l,controller:a,gridId:s}){let p=l?.enabled!==false,T=l?.delay??Om,w=l?.showOnTruncation!==false,k=l?.trigger??"hover",y=k!=="focus",N=k!=="hover"&&!!a&&!!s,f=l?.interactive===true,[D,A]=react.useState(null),P=react.useRef({columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:T});return P.current={columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:T},react.useEffect(()=>{if(!p){A(null);return}let v=e.current;if(!v)return;let u=null,C=null,L=null,$=null,V=s?`${s}-tooltip`:void 0,F=()=>{$?.removeAttribute("aria-describedby"),$=null;},R=()=>{u!==null&&(clearTimeout(u),u=null),C!==null&&(clearTimeout(C),C=null),L=null,F(),A(null);},U=()=>{C!==null&&(clearTimeout(C),C=null);},G=()=>{C=null,F(),A(null);},h=()=>{U(),u!==null&&(clearTimeout(u),u=null);},d=()=>{if(!f){R();return}C!==null&&clearTimeout(C),C=setTimeout(G,150);},S=(oe,ie)=>{let{columnModel:de,getRowNode:Se,getNote:Ee}=P.current,I=de.getDef(ie);if(!I?.renderTooltip)return;let ue=oe.closest("[data-row-key]")?.dataset.rowKey,z=ue===void 0?void 0:Se(ue);if(!z||Ee&&Ee(z.key,ie,z.data))return;let X=I.renderTooltip({value:de.getCellValue(z.data,ie),row:z.data,node:z,column:I});return X==null||X===false?null:{content:X}},O=(oe,ie,de,Se)=>{let Ee=de?void 0:S(oe,ie);if(Ee===null)return;let I=Ee?"":de?K(ie,oe):q(oe,ie);if(!Ee&&!I)return;let ue=oe.getBoundingClientRect();U(),F(),Se&&V&&(oe.setAttribute("aria-describedby",V),$=oe),A({text:I??"",...Ee?{content:Ee.content}:{},anchor:{top:ue.top,left:ue.left,width:ue.width,height:ue.height},...f?{interactive:true,hold:h,release:R}:{},...V?{id:V}:{}});},q=(oe,ie)=>{let{columnModel:de,getRowNode:Se,getNote:Ee,showOnTruncation:I}=P.current,ue=de.getDef(ie),z=oe.closest("[data-row-key]")?.dataset.rowKey,X=z===void 0?void 0:Se(z);return Km({def:ue,node:X,value:X?de.getCellValue(X.data,ie):void 0,clipped:I&&Yl(oe)?ql(oe):null,note:X&&Ee?Ee(X.key,ie,X.data):null})},K=(oe,ie)=>{let de=P.current.columnModel.getDef(oe);if(de?.headerTooltip)return de.headerTooltip;if(!P.current.showOnTruncation)return null;let Se=ie.querySelector(".kanuni-datagrid-header-label")??ie;if(!Yl(Se))return null;let Ee=ql(Se);return Ee.length>0?Ee:null},ne=oe=>{if(!y)return;let de=oe.target?.closest("[data-column-id]")??null;if(de===L){U();return}if(f&&C!==null?(u!==null&&(clearTimeout(u),u=null),L=null):R(),!de||!v.contains(de))return;let Se=de.dataset.columnId;if(!Se)return;let Ee=de.classList.contains("kanuni-datagrid-header-cell");!Ee&&!de.closest("[data-row-key]")||(L=de,u=setTimeout(()=>{u=null,!(L!==de||!de.isConnected)&&O(de,Se,Ee,false);},P.current.delay));},ve=oe=>{if(!y)return;let ie=oe.relatedTarget;L&&ie&&L.contains(ie)||d();},ce=-1/0,Fe=()=>{ce=Date.now();},b=()=>{R();let oe=a?.getFocus();!oe||!s||(u=setTimeout(()=>{if(u=null,!v.contains(document.activeElement)&&Date.now()-ce>1500)return;let ie=document.getElementById(`${s}-cell-${String(oe.rowKey)}-${oe.columnId}`);!ie||!v.contains(ie)||(L=ie,O(ie,oe.columnId,false,true));},P.current.delay));},Y=N?a.events.on("focusChanged",b):null,Pe=oe=>{(!N||oe.key==="Escape")&&R();};return v.addEventListener("mouseover",ne),v.addEventListener("mouseout",ve),v.addEventListener("mousedown",R),v.addEventListener("pointerdown",Fe),v.addEventListener("keydown",Pe),v.addEventListener("scroll",R,true),window.addEventListener("blur",R),()=>{R(),Y?.(),v.removeEventListener("mouseover",ne),v.removeEventListener("mouseout",ve),v.removeEventListener("mousedown",R),v.removeEventListener("pointerdown",Fe),v.removeEventListener("keydown",Pe),v.removeEventListener("scroll",R,true),window.removeEventListener("blur",R);}},[p,e,y,N,f,a,s]),p?D:null}var Jl=6,Mn=8;function Wa({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:D}=n.getBoundingClientRect(),A=document.documentElement.clientWidth,P=document.documentElement.clientHeight,v=p.top+p.height+Jl,u=p.top-D-Jl,L=v+D+Mn<=P||u<Mn?v:u,$=Math.min(Math.max(Mn,p.left),Math.max(Mn,A-f-Mn));a({top:Math.min(L,P-D-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 Va(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(C=>C.columnId===a),w=r.getGroupLevels(),k=w.includes(a),y=s?.sortable!==false,N=r.getColumnStates().find(C=>C.id===a)?.pinned??null,f=s?.groupable!==false,D=r.canGroup(),A=[{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(C=>C.columnId!==a))},{id:"sep-1",separator:true}];D&&A.push({id:"group",label:k?n.ungroup:n.groupBy,disabled:!f,onSelect:()=>{k?r.groupBy(w.filter(C=>C!==a)):r.groupBy([...w,a].slice(-l));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&A.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),A.push({id:"footer",label:t.footerVisible?n.hideFooter:n.showFooter,onSelect:t.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:n.hideColumn,disabled:r.getColumnStates().filter(C=>C.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(C=>C.visible&&C.pinned===N).map(C=>C.id),v=P.indexOf(a),u=s?.reorderable!==false&&v>=0;return A.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!u||v<=0,onSelect:()=>r.moveColumn(a,P[v-1])},{id:"move-right",label:n.moveRight,disabled:!u||v<0||v>=P.length-1,onSelect:()=>r.moveColumn(a,P[v+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)}),A}var qt=typeof window<"u"?react.useLayoutEffect:react.useEffect,rs=1e8,Vo=null;function is(){if(Vo!==null)return Vo;if(typeof document>"u"||!document.body)return null;let e=document.createElement("div");e.setAttribute("aria-hidden","true"),e.style.cssText="position:fixed;top:0;left:-9999px;width:80px;height:80px;overflow:auto;visibility:hidden;pointer-events:none;";let t=document.createElement("div");t.style.cssText="width:1px;",t.style.height=`${rs}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=rs;let n=e.scrollTop;return Ja=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(Vo=n),Vo}var Ja=null;function hp(){return Ja===null&&is(),Ja}function qa(e){return Math.abs(e)}function as(e,t){return getComputedStyle(t).direction==="rtl"?-e:e}function Uo(e,t){if(t)return e;if(e.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");if(e.dataSource!=null&&!Array.isArray(e.dataSource)&&e.grouping){e.debugMode&&console.warn("[datagrid] grouping a server-side DataSource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let s={...e};return delete s.grouping,Uo(s,t)}if(e.columns?.some(s=>s.spanRows)){e.debugMode&&console.warn("[datagrid] cell span/merge (spanRows) is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let s={...e,columns:e.columns.map(p=>p.spanRows?{...p,spanRows:void 0}:p)};return Uo(s,t)}if(e.tree){e.debugMode&&console.warn("[datagrid] tree data is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let s={...e};return delete s.tree,Uo(s,t)}if(!e.grouping)return e.masterDetail?Xa(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?Xa(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?Xa(a):a}function Xa(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 bp(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(yp,{...e})})})}function yp(e){let t=Te(),{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:D=true,columnResize:A=true,loadingOverlay:P=true,announcements:v=true,groupPanel:u=false,showRowCount:C=false,toolbar:L=false,toolbarExcel:$=false,toolbarPdf:V=false,filterPanel:F=false,filterPanelLabels:R,onOpenFilterBuilder:U,toolbarItemsBefore:G,toolbarItemsAfter:h,renderRow:d,stateStoring:S,headerMenu:O=true,focusedRow:q=false,focusedRowKey:K,onFocusedRowChanged:ne,footer:ve,footerMenu:ce=true,onRowClick:Fe,onRowActivate:b,onReady:Y,renderCellContent:Pe,getCellClassName:oe,renderOverlay:ie,onCellPointerDown:de,onCellPointerEnter:Se,onCellDoubleClick:Ee,onHeaderClick:I,getHeaderClassName:ue,renderHeaderLabel:z,enterpriseEdition:X=false,renderDetail:Ge,renderEditForm:He,density:We,rowMenu:Ke,cellMenu:rt,autoColumns:st,rowDrag:ct,tooltip:ee,pinnedTopRows:le,pinnedBottomRows:xe,footerPosition:M="bottom",autoSizeStrategy:B="none",highlightSearch:te=true,...Z}=e,se=react.useMemo(()=>{let o=Z.columns;if(o&&o.length>0)return o;let g=Z.dataSource;if(!Array.isArray(g)||g.length===0)return o??[];let E=typeof st=="object"?st:void 0;return st===false?o??[]:datagridCore.inferColumns(g,E)},[Z.columns,Z.dataSource,st]),J={...Z,columns:se},Ae=datagridCore.isPackagedTheme(a)?datagridCore.THEME_ROW_HEIGHT[a][We??"normal"]:We?datagridCore.DENSITY_ROW_HEIGHT[We]:datagridCore.DEFAULT_ROW_HEIGHT,Be=J.rowHeight===void 0?{...J,rowHeight:Ae}:J,Ue=X?Number.POSITIVE_INFINITY:1,ge=Uo(Be,X),{controller:i,rows:at,window:it,layout:Ne,sort:je,rowHeight:c,visibleCount:m}=yr(ge),x=e.cardView,_=x?x===true?"on":`${x.breakpoint??""}|${(x.columns??[]).join("|")}`:"",Q=react.useMemo(()=>datagridCore.resolveCardView(x),[_]),[re,we]=react.useState(false),ye=react.useRef(Q);qt(()=>{ye.current=Q;let o=Ct.current;we(o?datagridCore.showsCards(datagridCore.cardViewWidth(o),Q):false);},[Q]);let Re=re?datagridCore.cardColumnIds(i.getColumnModel(),Q):null,Ce=Re?JSON.stringify(Re):"",_e=react.useMemo(()=>Re,[Ce]);react.useEffect(()=>{i.setDataRowHeight(_e?datagridCore.cardHeight(_e.length):null);},[i,_e]);let Rt=e.onCardViewChange,sn=react.useRef(false);react.useEffect(()=>{re!==sn.current&&(sn.current=re,Rt?.(re));},[re,Rt]);let Pn=react.useCallback(o=>jsxRuntime.jsx($l,{fields:datagridCore.cardFields(i.getColumnModel(),_e??[],o.row)}),[i,_e]),ze=react.useRef(null),H=datagridCore.normalizeRowStatus(e.rowStatus),j=sl(i,e.editing,X,{renderCellContent:Pe,getCellClassName:oe,onCellDoubleClick:Ee},re,{rootRef:ze,rowHeight:c,dark:l,savedDuration:H?.savedDuration??0}),he=j.rowStatusSource??e.rowStatusSource??null,Me=o=>{if(!H||o.kind!=="data")return {};let g=datagridCore.resolveRowStatus(H,o.data,o.key,he);return g?{rowStatus:g.status,rowStatusText:datagridCore.rowStatusDescription(g,t),rowStatusTint:H.tint}:{}};react.useEffect(()=>{if(re||!H?.messages){i.setMessageRows([],c);return}let o=H.get,g=datagridCore.rowMessageKeys(H,he).filter(E=>{if(!o)return true;let W=i.getDataRowNode(E)?.data;if(W===void 0)return true;let me=o({row:W,rowKey:E});return me===void 0||me==="error"});i.setMessageRows(g,c);});let ae=(o,g)=>{if(!H)return null;let E=datagridCore.rowMessageModel(H,o,g,he,t);return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-row-message","data-testid":"dg-row-message",children:[jsxRuntime.jsxs("svg",{className:"kanuni-datagrid-row-message-icon",viewBox:"0 0 16 16",width:"14",height:"14","aria-hidden":"true",children:[jsxRuntime.jsx("path",{d:"M8 1.5 15 14H1z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsxRuntime.jsx("path",{d:"M8 6v3.5M8 11.6v.4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-message-text",title:E.text,children:E.text}),E.retry&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-retry",onClick:E.retry,children:t.rowStatusRetry}),E.remove&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-delete",onClick:E.remove,children:t.rowStatusDelete})]})},Ze=datagridCore.resolveToolbar(L),eo=j.renderCellContent,Ln=j.getCellClassName,ds=j.onCellDoubleClick,Za=Ur(i,e.printLayout),In=Za.active?{...it,rows:{...it.rows,start:0,end:at.length,offsetY:0,totalHeight:0}}:it,Fn=react.useMemo(()=>se.some(o=>o.autoHeight===true),[se]),Qa=N&&i.canListDistinctValues();N&&!Qa&&Z.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);qt(()=>{i.setEnterpriseEdition(X);},[i,X]),react.useEffect(()=>{Y?.(i);},[i,Y]),qt(()=>{let o=is();o!==null&&o<datagridCore.DEFAULT_MAX_SCROLL_OFFSET&&i.setMaxScrollOffset(o);let g=hp();g!==null&&i.setMaxCanvasHeight(g);},[i]),qt(()=>{let o=Ct.current;if(!o)return;let g=()=>{i.setViewportSize(o.clientWidth,o.clientHeight),ye.current&&we(datagridCore.showsCards(datagridCore.cardViewWidth(o),ye.current)),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let me=o.querySelector(".kanuni-datagrid-rows"),pe=o.querySelector(".kanuni-datagrid-canvas");if(me&&pe){let fe=me.getBoundingClientRect(),Ie=pe.getBoundingClientRect();i.setChromeOffsets(fe.top-Ie.top,Ie.bottom-fe.bottom);}datagridCore.calibrateMaxScrollOffset(o,i);};if(g(),typeof ResizeObserver>"u")return;let E=new ResizeObserver(g);E.observe(o);let W=o.querySelector(".kanuni-datagrid-canvas");return W&&E.observe(W),()=>E.disconnect()},[i]),qt(()=>{if(!k)return;let o=Ct.current?.querySelector(".kanuni-datagrid-canvas"),g=o?.querySelector(".kanuni-datagrid-header");if(!o||!g)return;let E=null,W=()=>{let pe=g.offsetHeight,fe=pe>0?`${pe}px`:null;fe!==E&&(E=fe,fe?o.style.setProperty("--dg-header-actual",fe):o.style.removeProperty("--dg-header-actual"));};W();let me=typeof ResizeObserver>"u"?null:new ResizeObserver(W);return me?.observe(g),()=>{me?.disconnect(),o.style.removeProperty("--dg-header-actual");}},[i,k]),qt(()=>{if(!Fn)return;let o=Ct.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let g=i.getVirtualWindow(),E=i.getRows(),W=new Map(i.getMeasuredRowHeights()),me=false;for(let pe=g.rows.start;pe<g.rows.end;pe++){let fe=E[pe];if(!fe||fe.kind!=="data")continue;let Ie=o.querySelector(`[data-row-key="${CSS.escape(String(fe.key))}"]`);if(!Ie)continue;let Le=Ie.getBoundingClientRect().height;Le>0&&W.get(fe.key)!==Le&&(W.set(fe.key,Le),me=true);}me&&i.setMeasuredRowHeights(W);}),react.useEffect(()=>{if(Fn)return i.events.on("columnStateChanged",()=>{i.clearMeasuredRowHeights();})},[i,Fn]),react.useEffect(()=>i.events.on("scrollRequested",o=>{let g=Ct.current;if(!g)return;o.scrollTop!==void 0&&(g.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(g.scrollLeft=as(o.scrollLeft,g)),i.setScroll(g.scrollTop,qa(g.scrollLeft));let E=o.scrollTop;E===void 0||Math.abs(g.scrollTop-E)<=1||setTimeout(()=>{let W=Ct.current;!W||Math.abs(W.scrollTop-E)<=1||(W.scrollTop=E,i.setScroll(W.scrollTop,qa(W.scrollLeft)));},0);}),[i]);let ei=Yr(i,e.alignedGrids,Ct),us=react.useCallback(o=>{let g=o.currentTarget;i.setScroll(g.scrollTop,qa(g.scrollLeft)),ei.syncScroll(g.scrollLeft);},[i,ei]),cs=react.useCallback((o,g)=>i.toggleSort(o,g),[i]);Ka(i,S);let dn=_a(i,ct);react.useEffect(()=>{K!=null&&i.getFocusedRowKey()!==K&&i.focusRow(K);},[i,K]),react.useEffect(()=>{if(ne)return i.events.on("focusedRowChanged",o=>ne({rowKey:o.rowKey,row:o.row}))},[i,ne]);let[Yo,ms]=react.useState(null);react.useEffect(()=>i.events.on("overlayChanged",o=>{ms(o.manual?o.overlay:null);}),[i]);let ps=react.useCallback(o=>{let g=i.getDataRowNode(o);if(g)return g;if(o==="")return;let E=Number(o);return Number.isNaN(E)?void 0:i.getDataRowNode(E)},[i]),mt=X?e.notes:void 0;!X&&e.notes&&e.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use them.");let to=!!mt?.onChange&&mt.menu!==false,no=react.useCallback((o,g,E)=>mt?mt.get({rowKey:o,columnId:g,row:E})??null:null,[mt]),ti=$a({rootRef:ze,columnModel:i.getColumnModel(),getRowNode:ps,getNote:mt?no:void 0,config:ee,controller:i,gridId:Z.gridId}),[ni,fs]=react.useState(0);react.useEffect(()=>{let o=new Set,g=[i.events.on("cellsFlashed",({rowKeys:E,columnIds:W,duration:me})=>{let pe=ze.current;if(!pe)return;let fe=E.length?E.map($e=>`[data-row-key="${CSS.escape(String($e))}"]`).join(","):".kanuni-datagrid-row",Ie=W.length?W.map($e=>`[data-column-id="${CSS.escape($e)}"]`).join(","):"[data-column-id]",Le=[];pe.querySelectorAll(fe).forEach($e=>{$e.querySelectorAll(Ie).forEach(tt=>Le.push(tt));});for(let $e of Le)$e.classList.remove("kanuni-datagrid-cell--flash");pe.offsetWidth;for(let $e of Le)$e.classList.add("kanuni-datagrid-cell--flash");let qe=setTimeout(()=>{for(let $e of Le)$e.classList.remove("kanuni-datagrid-cell--flash");o.delete(qe);},me);o.add(qe);}),i.events.on("cellsRefreshed",({revision:E})=>fs(E))];return ()=>{g.forEach(E=>E()),o.forEach(clearTimeout);}},[i]);let gs=react.useCallback((o,g)=>i.moveColumn(o,g),[i]),ws=react.useCallback((o,g,E)=>i.setColumnWidth(o,g,E??true),[i]),qo=react.useCallback(o=>{if(!ze.current)return;let g=_o(ze.current,o);g!==null&&i.setColumnWidth(o,g);},[i]),Xo=react.useCallback(()=>{let o=ze.current;if(o)for(let g of i.getColumnStates()){if(!g.visible||g.flex)continue;let E=_o(o,g.id);E!==null&&i.setColumnWidth(g.id,E);}},[i]),Jo=react.useRef(null),[oo]=react.useState(()=>new datagridCore.RowMotion),oi=e.animateRows===true;react.useEffect(()=>{i.setAnimateRows(oi);},[i,oi]),react.useEffect(()=>{let o=()=>{i.getAnimateRows()&&oo.capture(Jo.current);},g=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(E=>i.events.on(E,o));return ()=>{g.forEach(E=>E()),oo.dispose();}},[i,oo]),qt(()=>{i.getAnimateRows()&&oo.play(Jo.current);}),react.useEffect(()=>{if(B!=="fitGrid")return;let o=()=>i.sizeColumnsToFit();return o(),i.events.on("gridSizeChanged",o)},[i,B]);let jo=react.useRef(null);qt(()=>{if(B!=="fitCells"){jo.current=null;return}jo.current!==i&&ze.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(jo.current=i,Xo());});let[Zo,ri]=react.useState({}),[Qo,ai]=react.useState({}),un=react.useRef(Qo);un.current=Qo;let ii=react.useRef(Zo);ii.current=Zo;let li=e.filterDebounce??(i.isRemote()?200:0),er=react.useRef(false),ro=react.useMemo(()=>datagridCore.datePeriodLabels(t),[t]),tr=react.useRef(ro);tr.current=ro;let hs=react.useMemo(()=>datagridCore.periodSuggestionList(ro),[ro]),cn=react.useCallback((o,g)=>{let E=i.getColumnModel(),W=E.getDataType(o),me=datagridCore.findCustomFilterOperator(E.getDef(o),un.current[o]??"");er.current=true;try{i.setColumnFilter(o,me?datagridCore.parseCustomFilterInput(o,g,me):datagridCore.parseFilterInput(o,g,W,tr.current),datagridCore.FILTER_PART_ROW);}finally{er.current=false;}},[i]),kt=react.useMemo(()=>datagridCore.createDebouncedCommit(li),[li]);react.useEffect(()=>()=>kt.cancelAll(),[kt]);let bs=react.useCallback((o,g)=>{ri(E=>({...E,[o]:g})),kt.schedule(o,()=>cn(o,g));},[cn,kt]),ys=react.useCallback((o,g)=>{un.current={...un.current,[o]:g},ai(un.current),kt.cancel(o),cn(o,ii.current[o]??"");},[cn,kt]),Rs=react.useCallback(o=>{if(i.getColumnModel().getDef(o)?.renderFilter)return jsxRuntime.jsx(Ra,{controller:i,columnId:o,surface:"row"})},[i]),Cs=react.useCallback((o,g)=>{kt.cancel(o),cn(o,g);},[cn,kt]);react.useEffect(()=>i.events.on("filterChanged",()=>{if(er.current)return;let o=i.getColumnModel();ai(g=>{let E=null;for(let W of o.getOrder()){let me=o.getDef(W);if(!me?.filterOperators?.length||kt.isPending(W))continue;let pe=i.getColumnFilter(W,datagridCore.FILTER_PART_ROW),fe=g[W]??"",Ie=fe;pe?Ie=datagridCore.customFilterInputFromNode(pe,me)?.operatorId??"":datagridCore.findCustomFilterOperator(me,fe)?.operandType==="none"&&(Ie=""),Ie!==fe&&(E??={...g},E[W]=Ie);}return E&&(un.current=E),E??g}),ri(g=>da(g,{isPending:E=>kt.isPending(E),textFor:E=>{let W=i.getColumnFilter(E,datagridCore.FILTER_PART_ROW);if(!W)return "";let me=datagridCore.customFilterInputFromNode(W,o.getDef(E));return me?me.text:!datagridCore.isFilterGroup(W)&&!datagridCore.isBuiltInFilterOperator(W.operator)?null:datagridCore.filterInputFromNode(E,W,o.getDataType(E),tr.current)}},o.getOrder()));}),[i,kt]);let[Ye,wt]=react.useState(null),Xt=react.useRef(null);react.useEffect(()=>{!Ye&&Xt.current&&(Xt.current.dispose(),Xt.current=null);},[Ye]);let mn=react.useRef(0),[pn,nr]=react.useState(null),or=react.useRef(null),St=react.useCallback(o=>{let g=document.activeElement instanceof HTMLElement?document.activeElement:null;if(g?.closest(".kanuni-datagrid-portal"))return;let E=g&&ze.current&&g!==ze.current&&g.contains(ze.current)?null:g;or.current={el:E,columnId:E?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??o??null};},[]),ks=react.useCallback((o,g)=>{St(o);let E=g.getBoundingClientRect(),W=i.getColumnModel().getDef(o),me={left:E.left,top:E.bottom+2},pe=W?.headerName??o;if(W?.renderFilter){++mn.current,wt(null),nr({columnId:o,label:pe,anchor:me});return}nr(null);let fe=i.getColumnFilter(o,datagridCore.FILTER_PART_SET)??i.getColumnFilter(o,datagridCore.FILTER_PART_DEFAULT);if(!i.isRemote()){let qe=++mn.current;wt({columnId:o,label:pe,entries:[],selected:null,anchor:me,loading:true}),i.getDistinctValueSetAsync(o).then(({entries:$e,truncated:tt})=>{mn.current===qe&&wt(go=>go&&go.columnId===o?{...go,entries:$e,truncated:tt,capped:tt,selected:datagridCore.selectedLabelsFromFilter(fe,$e,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:go);});return}let Ie=++mn.current,Le=i.openRemoteDistinct(o,Ft);if(Le){Xt.current?.dispose(),Xt.current=Le,wt({columnId:o,label:pe,entries:[],selected:null,anchor:me,loading:true,pager:Le}),Le.start().then(qe=>{if(mn.current!==Ie){Le.dispose();return}if(qe.kind==="paged"){wt(tt=>tt&&tt.columnId===o?{...tt,loading:false}:tt);return}Le.dispose(),Xt.current===Le&&(Xt.current=null);let $e=i.sortDistinctEntries(qe.values);wt(tt=>tt&&tt.columnId===o?{...tt,pager:void 0,entries:$e,selected:datagridCore.selectedLabelsFromFilter(fe,$e,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:tt);});return}wt({columnId:o,label:pe,entries:[],selected:null,anchor:me,loading:true}),i.getDistinctValuesAsync(o).then(qe=>{mn.current===Ie&&wt($e=>$e&&$e.columnId===o?{...$e,entries:qe,selected:datagridCore.selectedLabelsFromFilter(fe,qe,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:$e);});},[i,St]),vs=react.useCallback(o=>{Ye&&(i.setColumnFilter(Ye.columnId,o,datagridCore.FILTER_PART_SET),wt(null));},[i,Ye]),Ts=Object.keys(i.getColumnStates().reduce((o,g)=>(i.getColumnFilter(g.id)&&(o[g.id]=true),o),{})),fn=i.getSelectionMode(),Qe=fn!=="none"&&(Z.selection?.checkboxColumn??false),si=(Z.selection?.rowClick??(Qe?"toggle":"replace"))==="toggle",xs=react.useCallback((o,g)=>{i.handleRowClick(o.key,{ctrlKey:g.ctrlKey||si&&!g.shiftKey,metaKey:g.metaKey,shiftKey:g.shiftKey});},[i,si]),Ds=react.useCallback((o,g)=>i.focusCell(o.key,g),[i]),Ss=react.useCallback(o=>i.toggleRow(o.key),[i]),[gn,rr]=react.useState(null),Es=react.useCallback(()=>rr(null),[]),[Hn,ar]=react.useState(null),di=react.useCallback((o,g)=>{let W=(ze.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(g)}"]`)??ze.current)?.getBoundingClientRect();return {left:W?.left??0,top:(W?.bottom??0)+2}},[]),Gs=react.useCallback(o=>{let g=Hn;ar(null),!(!g||!mt?.onChange)&&mt.onChange({rowKey:g.rowKey,columnId:g.columnId,row:g.row,text:o});},[Hn,mt]),ui=react.useCallback((o,g)=>{if(!mt?.onChange||mt.menu===false)return [];let E=o.columnId;if(!E)return [];let W=i.getRowKey(o.row),me=no(W,E,o.row),pe=()=>ar({rowKey:W,columnId:E,row:o.row,text:me??"",anchor:di(W,E)}),fe=[];return g&&fe.push({separator:true,id:"__note-sep"}),fe.push({id:"__note-edit",label:me?t.editNote:t.addNote,onSelect:pe}),me&&fe.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>mt.onChange?.({rowKey:W,columnId:E,row:o.row,text:null})}),fe},[mt,i,no,di,t]),[ao,io]=react.useState(null),ir=react.useRef({x:0,y:0}),ci=react.useCallback(o=>La(i,t,rt,o,g=>{io({message:g,...ir.current}),console.error("[datagrid] export failed:",g);}),[i,t,rt]),lo=react.useCallback((o,g,E,W,me)=>{if(E.kind!=="data")return;St();let pe={row:E.data,node:E,rowIndex:W,columnId:me,selectedKeys:i.getSelectedKeys()},fe=(typeof Ke=="function"?Ke(pe):Ke)??[],Ie=j.editRowMenuItem(E.key),Le=Ie?[...fe,...fe.length>0?[{id:"dg-sep-edit",separator:true}]:[],Ie]:fe,qe=ui(pe,Le.length>0),$e=Ia(i,t,E.key,Le.length+qe.length>0),tt=[...Le,...qe,...$e,...ci(Le.length+qe.length+$e.length>0)];tt.length!==0&&(ir.current={x:o,y:g},io(null),rr({x:o,y:g,items:tt,context:pe}));},[Ke,i,t,ui,ci,St,j.editRowMenuItem]),mi=react.useCallback((o,g,E)=>{let W=Ia(i,t,o,false);if(W.length===0)return;E.preventDefault(),St();let me={row:g,node:{kind:"data",key:o,sourceIndex:-1,data:g},rowIndex:-1,columnId:E.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:i.getSelectedKeys()};ir.current={x:E.clientX,y:E.clientY},io(null),rr({x:E.clientX,y:E.clientY,items:W,context:me});},[i,t,St]),pi=react.useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),wn=react.useCallback((o,g,E,W,me)=>{let pe=W??-1;o&&i.notifyRow(o,E,pe);let fe=pi(me);fe!==null&&i.notifyCell(g,E,pe,fe);},[i,pi]),Ms=react.useCallback((o,g,E)=>{Fe?.(o),wn("rowClicked","cellClicked",o,g,E);},[Fe,wn]),Ns=react.useCallback((o,g,E)=>{b?.(o),wn("rowDoubleClicked","cellDoubleClicked",o,g,E);},[b,wn]),Ps=react.useCallback((o,g,E)=>{if(wn(null,"cellContextMenu",o,g,E),o.kind!=="data"||!Ke&&!to&&rt===false&&!i.isRowPinningEnabled()&&j.editRowMenuItem(o.key)===null)return;E.preventDefault(),i.isRowSelected(o.key)||i.handleRowClick(o.key,{});let W=E.target.closest("[data-column-id]")?.dataset.columnId??null;lo(E.clientX,E.clientY,o,g,W);},[Ke,to,rt,i,lo,wn,j.editRowMenuItem]),[Ls,Is]=react.useState(null),[Fs,Hs]=react.useState(null),[lr,As]=react.useState(()=>Z.grouping?.groupSummaries??false),[Jt,sr]=react.useState(null),[fi,dr]=react.useState(null),ur=gn!==null||Jt!==null||Ye!==null||pn!==null,gi=react.useRef(false);react.useEffect(()=>{if(gi.current&&!ur){let o=or.current;or.current=null;let g=o?.columnId?ze.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,E=o?.el?.isConnected?o.el:g,W=document.activeElement,me=!W||W===document.body||!!ze.current&&W!==ze.current&&W.contains(ze.current);E&&me&&(E.focus({preventScroll:true}),document.activeElement!==E&&g&&g.focus({preventScroll:true}));}gi.current=ur;},[ur]);let Os=react.useCallback(()=>{i.getSelectedCount()>0?i.clearSelection():i.selectAll();},[i]),cr=Qe?i.getSelectableCount():m,mr=i.getSelectedCount(),Ks=cr>0&&mr>=cr?"all":mr>0?"some":"none",Bs=react.useCallback(o=>{let g=o.target;if(g.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let E=g.tagName;if(E==="INPUT"||E==="TEXTAREA"||E==="SELECT"||g.isContentEditable||j.handleKeyDown(o))return;if((Ke||to||rt!==false||i.isRowPinningEnabled())&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let pe=i.getFocus(),fe=pe?at.findIndex(Le=>Le.key===pe.rowKey):-1,Ie=fe>=0?at[fe]:void 0;if(Ie){let qe=Ct.current?.querySelector(`[data-row-key="${CSS.escape(String(Ie.key))}"]`)?.getBoundingClientRect();lo(qe?qe.left+16:0,qe?qe.bottom:0,Ie,fe,pe?.columnId??null),o.preventDefault();}return}let W=datagridCore.resolveGridCommand({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!W)return;if(W.type==="copy"){En(i);return}if(W.type==="activate"){let pe=i.getFocus(),fe=pe?at.find(Ie=>Ie.key===pe.rowKey):void 0;fe&&b?.(fe),W.preventDefault&&o.preventDefault();return}i.executeCommand(W),W.preventDefault&&o.preventDefault();let me=i.getFocusIndices();if(me&&Ct.current){let fe=i.getColumnLayout().center.findIndex(Le=>Le.state.id===i.getFocus()?.columnId),Ie=i.ensureVisible(me.rowIndex,fe===-1?void 0:fe);if(Ie){let Le=Ct.current;Ie.scrollTop!==void 0&&(Le.scrollTop=Ie.scrollTop),Ie.scrollLeft!==void 0&&(Le.scrollLeft=as(Ie.scrollLeft,Le)),i.setScroll(Le.scrollTop,Le.scrollLeft);}}},[i,at,b,Ke,to,rt,lo,j.handleKeyDown]),jt=react.useMemo(()=>datagridCore.bandDepth([...Ne.left,...Ne.center,...Ne.right]),[Ne]),hn=xn,pr=(y?2:1)+jt,wi=i.getPinnedRows("top"),hi=i.getPinnedRows("bottom"),fr=[...le??[],...wi.map(o=>o.row)],gr=[...xe??[],...hi.map(o=>o.row)],_s=[...(le??[]).map(()=>null),...wi.map(o=>o.key)],$s=[...(xe??[]).map(()=>null),...hi.map(o=>o.key)],so=fr.length,Ws=gr.length,uo=pr+so,co=Ls??Z.grouping?.panel??u,bi=i.getGroupLevels(),Vs=react.useCallback(o=>i.groupBy(o.slice(0,Ue)),[i,Ue]),Us=react.useCallback(o=>i.toggleGroup(o),[i]),yi=react.useCallback(o=>i.toggleGroupSelection(o),[i]),zs=i.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),ft=i.hasMasterDetail()&&!!Ge,et=e.rowNumbers??false,ht=!!H?.icons&&!re,Ys=et&&i.isPaginated()?i.getPage()*i.getPageSize():0;react.useEffect(()=>{i.setLeadWidth(ea(Qe,ft,et,ht));},[i,Qe,ft,et,ht]);let qs=react.useCallback(o=>i.toggleDetail(o),[i]),Xs=react.useCallback(o=>i.toggleTreeRow(o),[i]),Ri=i.getSummaryDefs(),Js=i.getSummaries(),bn=Fs??ve??Ri.length>0,An=bn&&M==="top",wr=y?2:1,Ci=ge.grouping?.groupSummaries&&lr?Z.summaries:void 0,ki=i.getGroupDisplay(),vi=react.useCallback(()=>{As(o=>(i.setGroupSummaries(!o),!o));},[i]),js=react.useCallback((o,g)=>{if(!ce)return;g.preventDefault();let E=i.getColumnModel().getDef(o),W=i.getColumnSummary(o),me={columnId:o,headerName:E?.headerName??E?.field??o},pe=[{id:"none",label:t.noTotal,disabled:W===null,onSelect:()=>i.setColumnSummary(o,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(E?.dataType).map(fe=>({id:fe,label:datagridCore.summaryTypeLabels(t)[fe],disabled:W?.type===fe,onSelect:()=>i.setColumnSummary(o,fe)}))];St(),sr({x:g.clientX,y:g.clientY,items:pe,context:me});},[i,ce,St]),Zs=react.useCallback((o,g)=>{if(O===false)return;g.preventDefault();let E=i.getColumnModel().getDef(o),W={columnId:o,headerName:E?.headerName??E?.field??o},me=Va(W,{controller:i,groupPanelVisible:co,footerVisible:bn,groupFootersAvailable:X&&i.getGroupLevels().length>0,groupFootersVisible:lr,onToggleGroupPanel:()=>Is(!co),onToggleFooter:()=>Hs(!bn),onToggleGroupFooters:vi,onOpenFieldChooser:()=>dr({left:g.clientX,top:g.clientY}),onBestFit:qo,onBestFitAll:Xo,maxGroupLevels:Ue,labels:Wo(t)}),pe=typeof O=="function"?O(W,me):me;!pe||pe.length===0||(St(),sr({x:g.clientX,y:g.clientY,items:pe,context:W}));},[O,i,co,bn,X,lr,vi,qo,Xo,Ue,t,St]),yn=i.getFocus(),Qs=yn?`${e.gridId}-cell-${String(yn.rowKey)}-${yn.columnId}`:void 0,hr=i.getSelectedCount(),ed=react.useMemo(()=>{let o=[datagridCore.fillText(t.announceRows,{n:m})];if(je.length>0){let g=je.map(E=>{let W=i.getColumnModel().getDef(E.columnId),me=String(W?.headerName??W?.field??E.columnId),pe=E.direction==="desc"?t.announceDescending:t.announceAscending;return `${me} ${pe}`}).join(", ");o.push(datagridCore.fillText(t.announceSortedBy,{columns:g}));}return hr>0&&o.push(datagridCore.fillText(t.announceSelected,{n:hr})),o.join(", ")},[i,m,je,hr,t]),{centerColumns:Ot,centerIndices:mo,stickyInsets:Rn,leadingSpacer:Kt,trailingSpacer:Bt,rowStart:td,rowEnd:Ti}=gl(Ne,In),po=i.getColumnModel(),Cn=td,nd=o=>{if(Fn)return;let g=i.getRowHeightAt(o);return g===c?void 0:g},od=Array.from(at.slice(Cn,Ti)),rd=react.useMemo(()=>!et||i.getGroupLevels().length===0&&!i.hasMasterDetail()&&!i.hasTreePathRows()?null:wl(at),[et,i,at]),ad=i.hasCellSpans(),xi=react.useRef({start:0,end:0});xi.current={start:Cn,end:Ti-1};let Di=react.useRef(In.columns);Di.current=In.columns;let id=react.useCallback(o=>i.planRowColSpans(o,Di.current),[i]),ld=datagridCore.hasColSpans(Ne),sd=react.useCallback((o,g)=>{let E=i.getCellSpans(g);if(E.length===0)return null;let{start:W,end:me}=xi.current,pe=datagridCore.spanRoleAt(E,o,W,me);if(!pe)return null;if(pe.role==="covered")return {kind:"covered"};let fe=i.getRowOffset(pe.drawStart);return {kind:"draw",height:i.getRowOffset(pe.drawEnd)+i.getRowHeightAt(pe.drawEnd)-fe,offset:0}},[i]),Si=i.getFindNeedle()||(te?datagridCore.normalizeSearch(i.getSearchText()):""),Ei=i.getFindState(),fo=Ei.count>0?`${i.getFindNeedle()}\0${Ei.activeIndex}`:"",Gi=react.useCallback((o,g)=>i.getFindMatchKind(o,g),[i]),dd={pathOf:o=>datagridCore.bandPath(i.getColumnModel().getDef(o)),collapsible:o=>i.isBandCollapsible(o),collapsed:o=>i.isBandCollapsed(o),onToggle:o=>i.toggleBand(o),labels:{expand:t.expandColumnGroup,collapse:t.collapseColumnGroup}},Mi={layout:Ne,centerColumns:Ot,leadingSpacer:Kt,trailingSpacer:Bt,defs:Ri,values:Js,checkboxColumn:Qe,detailColumn:ft,statusColumn:ht,rowNumberColumn:et,onPickSummary:ce?js:void 0,emptyHint:ce?"\xB7":""};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${Za.active?" kanuni-datagrid-print":""}${re?" kanuni-datagrid-cards":""}${datagridCore.themeClassName(a,We,s)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${c}px`,"--dg-grip-inset":`${(et?kn:0)+(ht?vn: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:ze,children:[j.bar&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:j.bar}),Ze.show&&jsxRuntime.jsx(Da,{controller:i,dark:l,search:Ze.search!==null,searchOptions:Ze.search??void 0,exportMenu:Ze.export,columnChooser:Ze.columns??e.toolbarColumnChooser??true,exportExcel:X&&$,exportPdf:X&&V,itemsBefore:G,itemsAfter:h,onOpenColumnChooser:o=>dr(g=>g?null:o)}),co&&jsxRuntime.jsx(ka,{columns:zs,levels:bi,onSetLevels:Vs,maxLevels:Ue,onExpandAll:()=>i.expandAllGroups(),onCollapseAll:()=>i.collapseAllGroups()}),re&&jsxRuntime.jsx(Wl,{controller:i,sort:je,text:t,columns:w?i.getColumnModel().getOrder().filter(o=>{let g=i.getColumnModel();return g.getState(o)?.visible!==false&&g.getDef(o)?.sortable!==false}).map(o=>({id:o,label:i.getColumnModel().getDef(o)?.headerName??o})):[]}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-scroller",ref:Ct,onScroll:us,onKeyDown:Bs,tabIndex:0,role:"grid","aria-rowcount":m+pr+so+Ws,"aria-colcount":Ne.left.length+Ne.center.length+Ne.right.length+(Qe?1:0)+(ft?1:0)+(et?1:0),"aria-multiselectable":fn==="multiple"||void 0,"aria-activedescendant":Qs,"aria-label":e.ariaLabel??e.gridId,children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(Ne.totalWidth||0)+ea(Qe,ft,et,ht)||"100%"},role:"rowgroup",children:[jsxRuntime.jsx(aa,{layout:Ne,centerColumns:Ot,leadingSpacer:Kt,trailingSpacer:Bt,depth:jt,checkboxColumn:Qe,detailColumn:ft,statusColumn:ht,rowNumberColumn:et,rowHeight:hn,bandFold:dd}),jsxRuntime.jsx(la,{bandOffset:jt*hn,stickyInsets:Rn,layout:Ne,centerColumns:Ot,leadingSpacer:Kt,trailingSpacer:Bt,sort:je,sortable:w,onSort:cs,groupLevels:bi,headerFilter:Qa,filteredColumns:Ts,onOpenFilter:ks,filterIconMode:f,checkboxColumn:Qe,detailColumn:ft,statusColumn:ht,rowNumberColumn:et,selectAllState:Ks,selectAllDisabled:cr===0&&mr===0,onToggleSelectAll:Os,draggable:u,reorderable:D,onReorder:gs,resizable:A,onResize:ws,onAutoFit:qo,onHeaderContextMenu:O===false?void 0:Zs,onHeaderClick:I,getHeaderClassName:ue,renderHeaderLabel:z}),y&&jsxRuntime.jsx(ua,{bandOffset:jt*hn,stickyInsets:Rn,layout:Ne,centerColumns:Ot,leadingSpacer:Kt,trailingSpacer:Bt,values:Zo,checkboxColumn:Qe,detailColumn:ft,statusColumn:ht,rowNumberColumn:et,onChange:bs,onCommit:Cs,periodSuggestions:hs,periodListId:`${e.gridId}-filter-periods`,operators:Qo,onOperatorChange:ys,renderCustom:Rs}),An&&jsxRuntime.jsx(Fo,{...Mi,position:"top",bandOffset:jt*hn,headerRowsBetween:wr}),fr.length>0&&jsxRuntime.jsx(Ho,{gridId:e.gridId,side:"top",rows:fr,rowKeys:_s,onUserRowContextMenu:mi,layout:Ne,columnModel:po,centerColumns:Ot,centerIndices:mo,stickyInsets:Rn,leadingSpacer:Kt,trailingSpacer:Bt,checkboxColumn:Qe,detailColumn:ft,statusColumn:ht,rowNumberColumn:et,rowHeight:c,bandOffset:jt*hn,headerRowsBetween:wr+(An?1:0),ariaRowBase:pr}),i.hasStickyGroupHeaders()&&jsxRuntime.jsx(Nl,{controller:i,width:Ne.totalWidth,bandOffset:jt*hn,headerRowsBetween:wr+(An?1:0),belowPinned:so>0?so*c+1:0,renderRow:(o,g,E)=>jsxRuntime.jsx(Tn,{gridId:e.gridId,node:o,index:g,layout:Ne,columnModel:po,centerColumns:Ot,centerIndices:mo,stickyInsets:Rn,leadingSpacer:Kt,trailingSpacer:Bt,striped:false,selected:false,groupSelection:Qe&&fn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:yi,groupDisplay:ki,focusedColumnId:null,checkboxColumn:Qe,statusColumn:ht,rowNumberColumn:et,rowNumber:null,headerRowCount:uo,onToggleGroup:W=>{i.toggleGroup(W),i.scrollToRow(W);},revision:ni,searchNeedle:Si,findStamp:fo,findKind:fo?Gi:void 0,summaryDefs:Ci,detailColumn:ft,height:E,renderCellContent:eo,getCellClassName:Ln})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:In.rows.totalHeight},onDragOver:dn.bodyHandlers?.onDragOver,onDrop:dn.bodyHandlers?.onDrop,onDragLeave:dn.bodyHandlers?.onDragLeave,children:[jsxRuntime.jsx("div",{ref:Jo,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${In.rows.offsetY}px)`},children:od.map((o,g)=>o?jsxRuntime.jsx(Tn,{gridId:e.gridId,node:o,index:Cn+g,layout:Ne,columnModel:po,centerColumns:Ot,centerIndices:mo,stickyInsets:Rn,leadingSpacer:Kt,trailingSpacer:Bt,striped:p,selected:i.isRowSelected(o.key),ariaSelectable:fn!=="none",selectable:Qe&&o.kind==="data"?i.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&Qe&&fn==="multiple"?i.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:yi,groupDisplay:ki,focusedColumnId:yn?.rowKey===o.key?yn.columnId:null,rowFocused:q&&yn?.rowKey===o.key,rowDrag:dn.handlers,dropSide:dn.dropAt?.key===o.key?dn.dropAt.side:null,...Me(o),renderRow:re?Pn:d,checkboxColumn:Qe,statusColumn:ht,rowNumberColumn:et,getSpan:ad?sd:void 0,resolveColSpans:ld?id:void 0,getNote:mt?no:void 0,rowNumber:et?hl(Cn+g,rd,Ys):null,headerRowCount:uo,onRowClick:Ms,onRowMouseDown:fn==="none"?void 0:xs,onRowDoubleClick:Ns,onToggleSelect:Ss,onCellMouseDown:Ds,onRowContextMenu:Ps,onToggleGroup:Us,onToggleTreeRow:Xs,revision:ni,searchNeedle:Si,findStamp:fo,findKind:fo?Gi:void 0,summaryDefs:Ci,detailColumn:ft,detailExpanded:ft&&i.isDetailExpanded(o.key),onToggleDetail:qs,renderDetail:Ge,renderEditForm:He??j.renderEditForm,renderRowMessage:o.kind==="message"?ae:void 0,height:nd(Cn+g),renderCellContent:eo,getCellClassName:Ln,onCellPointerDown:de,onCellPointerEnter:Se,onCellDoubleClick:ds},String(o.key)):(()=>{let E=Cn+g,W=i.isRowLoadFailed(E);return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${W?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":E+1+uo,"aria-busy":W?void 0:"true",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:W?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-${E}`)})())}),ie?.()]}),gr.length>0&&jsxRuntime.jsx(Ho,{gridId:e.gridId,side:"bottom",rows:gr,rowKeys:$s,onUserRowContextMenu:mi,layout:Ne,columnModel:po,centerColumns:Ot,centerIndices:mo,stickyInsets:Rn,leadingSpacer:Kt,trailingSpacer:Bt,checkboxColumn:Qe,detailColumn:ft,statusColumn:ht,rowNumberColumn:et,rowHeight:c,headerRowsBetween:bn&&!An?1:0,ariaRowBase:uo+m}),bn&&!An&&jsxRuntime.jsx(Fo,{...Mi,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}),F&&jsxRuntime.jsx(Ga,{controller:i,alwaysVisible:F==="always",onOpenBuilder:U,describeOptions:R}),P!==false&&jsxRuntime.jsx(Oa,{controller:i,delay:typeof P=="number"?P:void 0,forced:Yo==="loading"}),i.isPaginated()&&jsxRuntime.jsx(Ea,{page:i.getPage(),pageCount:i.getPageCount(),pageSize:i.getPageSize(),pageSizes:Z.pagination?.pageSizes,pageButtons:Z.pagination?.pageButtons,maxPageButtons:Z.pagination?.maxPageButtons,totalRows:m,onPage:o=>i.setPage(o),onNext:()=>i.nextPage(),onPrevious:()=>i.previousPage(),onPageSize:o=>i.setPageSize(o)}),v&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:ed}),Hn&&jsxRuntime.jsx(Ha,{anchor:Hn.anchor,value:Hn.text,dark:l,onCommit:Gs,onCancel:()=>ar(null)}),gn&&jsxRuntime.jsx(Bo,{x:gn.x,y:gn.y,items:gn.items,context:gn.context,dark:l,onClose:Es}),ao&&jsxRuntime.jsx(pt,{dark:l,kind:"toast",children:jsxRuntime.jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:ao.x,top:ao.y},onClick:()=>io(null),children:ao.message})}),Jt&&jsxRuntime.jsx(Bo,{x:Jt.x,y:Jt.y,items:Jt.items,context:Jt.context,dark:l,label:`${Jt.context.headerName} column`,onClose:()=>sr(null)}),ti&&jsxRuntime.jsx(Wa,{state:ti,dark:l}),fi&&jsxRuntime.jsx(Sa,{controller:i,columns:i.getColumnStates(),anchor:fi,dark:l,onClose:()=>dr(null)}),pn&&jsxRuntime.jsx(Sl,{controller:i,columnId:pn.columnId,headerLabel:pn.label,anchor:pn.anchor,dark:l,onClose:()=>nr(null)},pn.columnId),Ye&&jsxRuntime.jsx(ha,{gridId:e.gridId,columnId:Ye.columnId,headerLabel:Ye.label,entries:Ye.entries,initialSelected:Ye.selected,anchor:Ye.anchor,loading:Ye.loading,truncated:Ye.truncated,pager:Ye.pager,onSearch:Ye.capped&&!i.isRemote()?o=>{let{entries:g,truncated:E}=i.searchDistinctValues(Ye.columnId,o);wt(W=>W&&W.columnId===Ye.columnId?{...W,entries:g,truncated:E}:W);}:void 0,dark:l,onApply:vs,onClose:()=>wt(null),onCustom:U?()=>{let o=Ye.columnId;wt(null),U({columnId:o});}:void 0},Ye.columnId)]})}function kp({defs:e,values:t,columnModel:n,rowCount:r,rowCountLabel:l}){let a=Te(),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 vp=react.memo(kp);function Tp({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 Mp(e,t){return ja(e,t,t?.source,(n,r)=>n.computeChartData(r))}function Np(e,t){return ja(e,t,t?.source,(n,r)=>n.computeChartXYData(r))}function Pp(e,t){return ja(e,t,t?.source,(n,r)=>n.computeChartBoxData(r))}function ja(e,t,n,r){let[l,a]=react.useState(null);return react.useEffect(()=>{if(!e||!t){a(null);return}let s=n??"view",p=datagridCore.chartNeedsOrder(t),T=false,w=0,k=false,y=false,N=null,f=()=>{let P=++w;r(e,t).then(v=>{!T&&P===w&&a(v);},()=>{});},D=(P=false)=>{y||=P,!k&&(k=true,queueMicrotask(()=>{if(k=false,T)return;let v=e.chartBasis(s,p);!y&&v===N||(y=false,N=v,f());}));};N=e.chartBasis(s,p),f();let A=[e.events.on("contentReady",()=>D()),e.events.on("rowsChanged",()=>D()),e.events.on("dataUpdated",()=>D()),...s==="selection"?[e.events.on("selectionChanged",()=>D(true))]:[]];return ()=>{T=true,w++,A.forEach(P=>P());}},[e,t]),l}Object.defineProperty(exports,"ClientRowModel",{enumerable:true,get:function(){return datagridCore.ClientRowModel}});Object.defineProperty(exports,"ColumnModel",{enumerable:true,get:function(){return datagridCore.ColumnModel}});Object.defineProperty(exports,"DEFAULT_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DEFAULT_ROW_HEIGHT}});Object.defineProperty(exports,"DENSITY_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DENSITY_ROW_HEIGHT}});Object.defineProperty(exports,"DataGridController",{enumerable:true,get:function(){return datagridCore.DataGridController}});Object.defineProperty(exports,"GRID_COLOR_SCHEMES",{enumerable:true,get:function(){return datagridCore.GRID_COLOR_SCHEMES}});Object.defineProperty(exports,"GRID_PALETTES",{enumerable:true,get:function(){return datagridCore.GRID_PALETTES}});Object.defineProperty(exports,"GRID_THEMES",{enumerable:true,get:function(){return datagridCore.GRID_THEMES}});Object.defineProperty(exports,"GridStateStore",{enumerable:true,get:function(){return datagridCore.GridStateStore}});Object.defineProperty(exports,"SUMMARY_TYPE_LABEL",{enumerable:true,get:function(){return datagridCore.SUMMARY_TYPE_LABEL}});Object.defineProperty(exports,"THEME_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.THEME_ROW_HEIGHT}});Object.defineProperty(exports,"VirtualWindowEngine",{enumerable:true,get:function(){return datagridCore.VirtualWindowEngine}});Object.defineProperty(exports,"allowedSummaryTypes",{enumerable:true,get:function(){return datagridCore.allowedSummaryTypes}});Object.defineProperty(exports,"andFilters",{enumerable:true,get:function(){return datagridCore.andFilters}});Object.defineProperty(exports,"attachStateStoring",{enumerable:true,get:function(){return datagridCore.attachStateStoring}});Object.defineProperty(exports,"bandDepth",{enumerable:true,get:function(){return datagridCore.bandDepth}});Object.defineProperty(exports,"bandPath",{enumerable:true,get:function(){return datagridCore.bandPath}});Object.defineProperty(exports,"computeColumnLayout",{enumerable:true,get:function(){return datagridCore.computeColumnLayout}});Object.defineProperty(exports,"computeHeaderBands",{enumerable:true,get:function(){return datagridCore.computeHeaderBands}});Object.defineProperty(exports,"createRestDataSource",{enumerable:true,get:function(){return datagridCore.createRestDataSource}});Object.defineProperty(exports,"describeFilter",{enumerable:true,get:function(){return datagridCore.describeFilter}});Object.defineProperty(exports,"downloadBlob",{enumerable:true,get:function(){return datagridCore.downloadBlob}});Object.defineProperty(exports,"fillText",{enumerable:true,get:function(){return datagridCore.fillText}});Object.defineProperty(exports,"filterInputFromNode",{enumerable:true,get:function(){return datagridCore.filterInputFromNode}});Object.defineProperty(exports,"formatSummaryValue",{enumerable:true,get:function(){return datagridCore.formatSummaryValue}});Object.defineProperty(exports,"humanizeField",{enumerable:true,get:function(){return datagridCore.humanizeField}});Object.defineProperty(exports,"importCsv",{enumerable:true,get:function(){return datagridCore.importCsv}});Object.defineProperty(exports,"inferColumns",{enumerable:true,get:function(){return datagridCore.inferColumns}});Object.defineProperty(exports,"isDataRow",{enumerable:true,get:function(){return datagridCore.isDataRow}});Object.defineProperty(exports,"isDataSource",{enumerable:true,get:function(){return datagridCore.isDataSource}});Object.defineProperty(exports,"isFilterGroup",{enumerable:true,get:function(){return datagridCore.isFilterGroup}});Object.defineProperty(exports,"isGroupRow",{enumerable:true,get:function(){return datagridCore.isGroupRow}});Object.defineProperty(exports,"isPackagedTheme",{enumerable:true,get:function(){return datagridCore.isPackagedTheme}});Object.defineProperty(exports,"lookupLabel",{enumerable:true,get:function(){return datagridCore.lookupLabel}});Object.defineProperty(exports,"moveRowInArray",{enumerable:true,get:function(){return datagridCore.moveRowInArray}});Object.defineProperty(exports,"parseCsv",{enumerable:true,get:function(){return datagridCore.parseCsv}});Object.defineProperty(exports,"parseFilterInput",{enumerable:true,get:function(){return datagridCore.parseFilterInput}});Object.defineProperty(exports,"sniffDelimiter",{enumerable:true,get:function(){return datagridCore.sniffDelimiter}});Object.defineProperty(exports,"summaryKey",{enumerable:true,get:function(){return datagridCore.summaryKey}});Object.defineProperty(exports,"summaryLabel",{enumerable:true,get:function(){return datagridCore.summaryLabel}});Object.defineProperty(exports,"summaryTypeLabels",{enumerable:true,get:function(){return datagridCore.summaryTypeLabels}});Object.defineProperty(exports,"themeClassName",{enumerable:true,get:function(){return datagridCore.themeClassName}});exports.BAND_ROW_HEIGHT=xn;exports.DEFAULT_EDIT_FORM_LABELS=du;exports.DEFAULT_HEADER_MENU_LABELS=Zl;exports.DataGrid=bp;exports.GridCellEditor=Br;exports.GridColumnChooser=Sa;exports.GridContextMenu=Bo;exports.GridDateEditor=en;exports.GridDialog=$r;exports.GridEditForm=Lr;exports.GridFilterPanel=Ga;exports.GridFilterRow=ua;exports.GridFooterRow=Fo;exports.GridGroupPanel=ka;exports.GridHeader=la;exports.GridHeaderBands=aa;exports.GridHeaderFilterPopup=ha;exports.GridLoadingOverlay=Oa;exports.GridLookupEditor=Qt;exports.GridNoteEditor=Ha;exports.GridPager=Ea;exports.GridPinnedRows=Ho;exports.GridPopupPanel=an;exports.GridPortal=pt;exports.GridRow=Tn;exports.GridRowEditor=Ir;exports.GridSummaryBar=vp;exports.GridSurfaceProvider=Sr;exports.GridTextProvider=Rr;exports.GridToolbar=Da;exports.GridToolbarButton=Tp;exports.GridTooltip=Wa;exports.PRINT_MAX_ROWS=Vr;exports.ROW_DRAG_MIME=$o;exports.SHORTCUT_COPY=Al;exports.SHORTCUT_CUT=hm;exports.SHORTCUT_PASTE=bm;exports.ToolbarIcon=va;exports.buildCellMenuItems=La;exports.buildHeaderMenu=Va;exports.copyToClipboard=En;exports.editFormColumnIds=rl;exports.editFormLabels=Pr;exports.headerMenuLabels=Wo;exports.matchOptions=Vd;exports.measureBestFitWidth=_o;exports.reconcileFilterInputs=da;exports.runGridExport=qn;exports.useAlignedGrids=Yr;exports.useAnchoredPopup=on;exports.useCellTooltip=$a;exports.useDataGrid=yr;exports.useEditModes=Or;exports.useGridChartBoxData=Pp;exports.useGridChartData=Mp;exports.useGridChartXYData=Np;exports.useGridEditing=vr;exports.useGridPortalTarget=Pt;exports.useGridSurfaceClass=Tt;exports.useGridText=Te;exports.usePrintLayout=Ur;exports.useRowDrag=_a;exports.useStateStoring=Ka;exports.writeClipboardText=ym;