@kanunilabs/datagrid-react 1.8.7 → 1.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +640 -53
- package/dist/index.d.ts +640 -53
- package/dist/index.js +3 -3
- package/dist/styles.css +105 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {createContext,memo,useState,useId,useRef,useEffect,useContext,useMemo,useCallback,useSyncExternalStore,useLayoutEffect,useReducer}from'react';import {getGridDictionary,isDetailRow,isEditFormRow,isMessageRow,isFillerRow,isGroupRow,lookupLabel,fillText,summaryLabel,formatSummaryValue,summaryKey,GROUP_COLUMN_ID,rowStatusClassName,summaryTypeLabels,pageButtonItems,describeFilter,filterLabels,computeHeaderBands,isChromeColumn,customFilterOperators,TOOLBAR_ICON_PATHS,PORTAL_ATTRIBUTE,downloadBlob,ExportAbortedError,formatDateValue,foldText,RangeSelectionEngine,rangesFromSaved,rangesToSaved,EditingEngine,createDebouncedCommit,isRowEditMode,edgeEditableColumn,nextEditableColumn,computeFillTarget,computeFillValues,cellDisplayText,parseClipboardTable,computePasteCells,coercePastedValue,RANGE_KEY_DIRECTIONS,extendRangeByKey,keyboardFill,themeClassName,portalTarget,toDate,DEFAULT_DATE_FORMAT,maskDate,parseDateValue,dateDigitCount,placeAnchoredLayer,toIsoDate,daysInMonth,dateDigits,DEFAULT_EDIT_FORM_HEIGHT,distinctEntryKey,NONBLANK_KEY,distinctNonBlankTicked,BLANK_KEY,attachStateStoring,isDataRow,inferColumns,isPackagedTheme,THEME_ROW_HEIGHT,DENSITY_ROW_HEIGHT,DEFAULT_ROW_HEIGHT,resolveCardView,showsCards,cardViewWidth,cardColumnIds,cardHeight,cardFields,normalizeRowStatus,rowMessageKeys,resolveToolbar,DEFAULT_MAX_SCROLL_OFFSET,calibrateMaxScrollOffset,RowMotion,datePeriodLabels,periodSuggestionList,findCustomFilterOperator,parseCustomFilterInput,parseFilterInput,FILTER_PART_ROW,customFilterInputFromNode,FILTER_PART_SET,FILTER_PART_DEFAULT,selectedLabelsFromFilter,resolveGridCommand,bandDepth,allowedSummaryTypes,hasColSpans,spanRoleAt,normalizeSearch,isRtlLocale,chartNeedsOrder,DataGridController,distinctDisplayText,resolveRowStatus,rowStatusDescription,rowMessageModel,isFilterGroup,isBuiltInFilterOperator,filterInputFromNode,bandPath}from'@kanunilabs/datagrid-core';export{ClientRowModel,ColumnModel,DEFAULT_ROW_HEIGHT,DENSITY_ROW_HEIGHT,DataGridController,GRID_COLOR_SCHEMES,GRID_PALETTES,GRID_THEMES,GridStateStore,SUMMARY_TYPE_LABEL,THEME_ROW_HEIGHT,VirtualWindowEngine,allowedSummaryTypes,andFilters,attachStateStoring,bandDepth,bandPath,computeColumnLayout,computeHeaderBands,createRestDataSource,describeFilter,downloadBlob,fillText,filterInputFromNode,formatSummaryValue,humanizeField,importCsv,inferColumns,isDataRow,isDataSource,isFilterGroup,isGroupRow,isPackagedTheme,lookupLabel,moveRowInArray,parseCsv,parseFilterInput,sniffDelimiter,summaryKey,summaryLabel,summaryTypeLabels,themeClassName}from'@kanunilabs/datagrid-core';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {createPortal,flushSync}from'react-dom';var 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=useRef(t);useEffect(()=>{n.current=t;},[t]);let[r]=useState(()=>((U,M)=>n.current?.(U,M))),l=()=>{let U=new DataGridController(t?{...e,sorting:{...e.sorting,postSort:r}}:e);return br(U),U},[a,s]=useState(l);useEffect(()=>{if(a.isDisposed()){s(l());return}return ()=>a.dispose()},[a]);let p=useCallback(U=>{let{listeners:M}=br(a);return M.add(U),()=>{M.delete(U);}},[a]),T=useCallback(()=>br(a).version,[a]);useSyncExternalStore(p,T,T);let{dataSource:w,columns:k}=e,y=useRef(true);useEffect(()=>{if(y.current){y.current=false;return}Array.isArray(w)&&a.setData(w);},[a,w]);let N=useRef(true);useEffect(()=>{if(N.current){N.current=false;return}a.setColumns(k);},[a,k]);let f=e.pagination?e.pagination.enabled!==false:false;useEffect(()=>{a.setPaginationEnabled(f);},[a,f]);let D=e.rowHeight,A=useRef(true);useEffect(()=>{if(A.current){A.current=false;return}D!==void 0&&a.setRowHeight(D);},[a,D]);let P=e.selection?.mode??"none";useEffect(()=>{a.setSelectionMode(P);},[a,P]);let v=e.rowPinning;useEffect(()=>{a.setRowPinning(v);},[a,v]);let u=e.selection?.isRowSelectable,E=useRef(true);useEffect(()=>{if(E.current){E.current=false;return}a.setRowSelectable(u??null);},[a,u]);let L=t!==void 0,$=useRef(true);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=useRef(true);return 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=createContext(getGridDictionary("en"));function Rr({locale:e,messages:t,children:n}){let r=useMemo(()=>getGridDictionary(e,t),[e,t]);return jsx(Fi.Provider,{value:r,children:n})}function Te(){return 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]=useState(0),S=useCallback(()=>d(c=>c+1),[]),O=useMemo(()=>new RangeSelectionEngine,[]),q=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=useRef(null);useEffect(()=>{if(!(!e||!F))return e.registerViewStatePart("ranges",{session:true,get:()=>rangesToSaved(O.getRanges(),e.getVisualColumnIds()),apply:c=>{O.setRanges(rangesFromSaved(c,e.getVisualColumnIds())),S();}})},[e,F,O,S]);let[te,ve]=useState(null),de=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=useRef(null),b=useMemo(()=>{if(!e||!$)return null;let c=m=>e.getRowByKey(m);return new 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,$]);useEffect(()=>{b?.setMessages(M);},[b,M]),useEffect(()=>{b?.setMode(t);},[b,t]),useEffect(()=>{V!==void 0&&b?.setSavedDuration(V);},[b,V]),useEffect(()=>(b?.resume(),()=>b?.dispose()),[b]),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]),useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>q.clear())},[e,q]),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]),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=useMemo(()=>createDebouncedCommit(150),[]);useEffect(()=>()=>Y.cancelAll(),[Y]);let Me=useRef(h);useEffect(()=>{!e||!b||h===Me.current||(Me.current=h,Y.schedule("footer",()=>e.refreshSummaries()));},[e,b,h,Y]);let ne=useCallback(c=>{let m=e?.getRows()[c];return m&&m.kind==="data"?m.key:null},[e]),le=useCallback(c=>e?.getColumnIdAt(c)??null,[e]),ge=useCallback((c,m)=>{e?.scrollToCell(c,m),b?.beginEdit(c,m);},[b,e]),De=useCallback((c={},m)=>{let x=b?.addRow(c,m)??null;if(x===null||!e)return x;if(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=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=useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),se=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(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=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=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=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=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: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]=useState(null),[_e,Oe]=useState(null),it=useCallback(c=>{let m=_e;Oe(null),c&&m&&b&&b.removeRow(m.rowKey);},[_e,b]),st=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=useCallback(async()=>{if(!b)return;Le(null);let c=await b.saveChanges();c.saved||c.superseded||st(c);},[b,st]),ee=useCallback(()=>Le(null),[]),ie=useCallback(()=>{Le(null),b?.cancelChanges();},[b]);useEffect(()=>{(b?.getSession()||b?.isEditingRow())&&Le(null);},[h,b]);let C=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=useCallback((c,m)=>!!b&&!isChromeColumn(m)&&b.canUpdate(c,m),[b]),B=useCallback((c,m)=>{let x=q.getRange();K.current=x??{startRow:c,startColumn:m,endRow:c,endColumn:m},ve(null);},[q]),ue=useCallback((c,m)=>{let x=K.current;if(!x)return;let _=computeFillTarget(x,c,m);ve(_?{startRow:_.bounds.minRow,startColumn:_.bounds.minColumn,endRow:_.bounds.maxRow,endColumn:_.bounds.maxColumn}:null);},[]),X=useCallback((c,m)=>{if(!b||!e)return 0;let _=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(_,fillText(M.editFillUndo,{count:_.length}),"fill"),true)),_.length},[b,e,ne,le,Z,M]),He=useCallback(()=>{let c=K.current,m=te;if(K.current=null,ve(null),!c||!m||!b||!e)return;let x=computeFillTarget(c,m.endRow,m.endColumn);x&&X(c,x);},[te,b,e,X]),ae=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=cellDisplayText(Q.getDef(_),oe,x.data);return e.clipboardCellText(x,_,oe,fe).replace(/[\t\r\n]+/g," ")},[e,b]),Xe=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=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||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,fillText(M.editCutUndo,{count:oe.length}),"cut"),true)),true},[e,b,q,O,Xe,ae,M]),ze=useCallback(async c=>{if(!b||!e)return;let m="";try{m=await navigator.clipboard.readText();}catch{return}if(!m)return;let x=e.processPastedTable(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=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,coercePastedValue(Ce.text,ye.getEditorDataType(Rt)))}}).filter(Ce=>Ce!==null);e.notifyClipboardGesture("paste",Re.length,()=>Re.length===0?false:(b.applyEdits(Re,fillText(M.editPasteUndo,{count:Re.length}),"paste"),true));},[b,e,q,ne,le,Z,M]),[we,i]=useState(null),Ze=useCallback(c=>b?(i(null),b.beginRowEdit(c)):false,[b]),Je=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=useCallback(()=>{b&&(i(null),b.cancelRowEdit(),I());},[b,I]);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=>!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=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()&&RANGE_KEY_DIRECTIONS[c.key]){let x=e.getFocus(),_=e.getVisualColumnIds(),Q=_.flatMap((ye,Re)=>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=extendRangeByKey(q.getRange(),{row:oe,column:fe},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=>!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?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(),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=createContext(""),Vi=createContext(()=>document.body),_d=typeof window<"u"?useLayoutEffect:useEffect;function Er({theme:e,density:t,palette:n,portalContainer:r,children:l}){let a=useMemo(()=>themeClassName(e,t,n),[e,t,n]),s=useRef(r);_d(()=>{s.current=r;},[r]);let p=useMemo(()=>()=>portalTarget(s.current),[]);return jsx(Wi.Provider,{value:a,children:jsx(Vi.Provider,{value:p,children:l})})}function Pt(){return useContext(Vi)}function Tt(){return useContext(Wi)}var Mr=8,Lt=26,Yi=4;function qi(e,t,n){let r=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=>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=useRef(null),u=useRef(null),[E,L]=useState(null),[$,V]=useState(false),[F,R]=useState(0),[U,M]=useState(0),[h,d]=useState(null),S=useMemo(()=>e.map(I=>foldText(I.label)),[e]),O=useMemo(()=>{let I=e.find(se=>se.value===t);return I?I.label:t==null||t===""?"":String(t)},[e,t]),q=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;useEffect(()=>{R(I=>I<K?I:0);},[K]),useLayoutEffect(()=>{a&&(v.current?.focus({preventScroll:true}),v.current?.select());},[]);let de=()=>{let I=v.current;if(!I)return;let se=I.getBoundingClientRect(),z=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});};useLayoutEffect(()=>{$&&de();},[$,K]),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);}},[$]),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=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(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?createPortal(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?jsx("div",{className:"kanuni-datagrid-lookup-empty",children:D.editNoMatch}):jsx("div",{style:{position:"relative",height:K*Lt},children:De})}),P()):null;return jsxs(Fragment,{children:[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=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=useMemo(()=>nu(N),[N]),P=useMemo(()=>tu(N),[N]),v=useRef(null),[u,E]=useState(null),[L,$]=useState(false),[V,F]=useState(null),R=useMemo(()=>toDate(e),[e]),U=u===null?formatDateValue(e,t):maskDate(u,t),M=u===null?null:parseDateValue(U,t),h=u!==null&&u.length===dateDigitCount(t)&&M===null,[d,S]=useState(()=>R??new Date);useEffect(()=>{L&&S(M??R??new Date);},[L]),useLayoutEffect(()=>{l&&(v.current?.focus({preventScroll:true}),v.current?.select());},[]);let O=useRef(null),q=useCallback(()=>{let Y=v.current;if(!Y)return;let Me=Y.getBoundingClientRect(),ne=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=useCallback(Y=>{O.current=Y,Y&&q();},[q]);useLayoutEffect(()=>{L&&q();},[L,q]),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=useCallback(Y=>{if(Y===null){T(null);return}T(e instanceof Date?Y:toIsoDate(Y));},[T,e]),ve=Y=>{E(null),$(false),te(Y),v.current?.focus({preventScroll:true});},de=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(dateDigits(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?createPortal(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:[jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[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"}),jsxs("span",{"data-testid":"dg-date-title",children:[A[d.getMonth()]," ",d.getFullYear()]}),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"})]}),jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[P.map(Y=>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=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(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":toIsoDate(Ee),onClick:()=>ve(Ee),children:Ee.getDate()},ge));}return le})()]})]}),D()):null;return jsxs("span",{className:"kanuni-datagrid-date-editor",children:[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(dateDigits(Y.target.value,t));},onKeyDown:Fe,onBlur:()=>{L||de();}}),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:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),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(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=useMemo(()=>({...Pr(u),...D}),[u,D]),$=useRef(null),V=Object.keys(r)[0]??null,F=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]);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=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=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:[jsx("div",{className:"kanuni-datagrid-edit-form-header",children:jsx("strong",{children:w?L.addTitle:L.editTitle})}),T&&jsx("div",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-form-error",children:T}),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 jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":d.columnId,"data-invalid":O?"":void 0,htmlFor:te,children:[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?jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children: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?jsx("input",{id:te,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:lookupLabel(d.def,S)??ol(S,d.dataType)}):d.dataType==="date"?jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children: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"?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)}):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&&jsx("span",{className:"kanuni-datagrid-edit-form-message",role:"alert",children:O})]},d.columnId)})}),jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:U}),jsx("button",{type:"button",onClick:v,disabled:p,"data-testid":"dg-form-cancel",children:L.cancel}),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?jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-edit-popup${k?" kanuni-datagrid-dark":""}${E}`,children:[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 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 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"?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}):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=>!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&&isRowEditMode(n),F=V?D?.getRowSession()??null:null,R=useRef(y);R.current=y;let U=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;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=useCallback(z=>V&&F?.rowKey===z,[V,F]),d=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?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"?formatDateValue(j,Ge.dateFormat):j==null?"":String(j)},[e]),S=useCallback(z=>{if(!(n!=="row"||!D||!e||z.node.kind!=="data"||!h(z.node.key)))return D.canUpdate(z.node.key,z.columnId)?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=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]=useState(null),te=q??p??DEFAULT_EDIT_FORM_HEIGHT,ve=useCallback(z=>{z>0&&K(j=>j!==null&&Math.abs(j-z)<a?j:z);},[a]);useEffect(()=>{F||K(null);},[F]);let de=(z,j)=>F?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=useRef(de);b.current=de;let Y=useCallback(z=>b.current(z,true),[]),Me=n==="form"?F?.rowKey??null:null,ne=F?.isNew??false,le=useRef(null);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]),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?jsxs(Fragment,{children:[ge&&jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-filter-active","data-testid":"dg-row-editing",children:F?.isNew?f.formAddTitle:fillText(f.editEditingRow,{row:String(F?.rowKey)})}),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}),jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:u,children:f.cancel}),E&&jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:E})]}),De&&jsxs(Fragment,{children:[jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:D?.isSaving(),onClick:()=>{L();},children:fillText(f.editSaveCount,{n:D?.getChanges().length??0})}),jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:$,children:f.cancel})]})]}):null,I=useCallback(z=>!V||!D||D.isEditingRow()?null:{id:"dg-edit-row",label:f.editRowMenu,onSelect:()=>P(z)},[V,D,P,f,A]),se=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=useRef(null),D=useRef(false);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=jsx("input",{...P,type:"text",value:"\u2026",readOnly:true,disabled:true}):l&&l.length>0?v=a?jsxs(Fragment,{children:[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);}}),jsx("datalist",{id:`${P["data-testid"]}-list`,children:l.map(u=>jsx("option",{value:u.label},String(u.value)))})]}):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=jsx("input",{...P,type:"checkbox",checked:e===true,onChange:u=>w(u.target.checked)}):t==="number"?v=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=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=jsx("input",{...P,type:"text",value:Kr(e,t),onChange:u=>w(u.target.value)}),jsxs(Fragment,{children:[v,n&&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=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=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 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=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=useCallback(S=>{R?.(S),!(!s||!y||S.node.kind!=="data")&&($(S.node.key)||y.beginEdit(S.node.key,S.columnId));},[s,y,R,$]),d=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=useRef(null),k=useRef(null),y=useId(),N=useId(),f=Tt(),D=Pt();return 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]),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:createPortal(jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${s?" kanuni-datagrid-dark":""}${f}`,"data-kanuni-portal":"popup",role:"presentation",children:[jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:T}),jsxs("div",{ref:k,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":y,"aria-describedby":N,"data-testid":"dg-dialog",children:[jsx("div",{className:"kanuni-datagrid-dialog-title",id:y,children:t}),jsx("div",{className:"kanuni-datagrid-dialog-message",id:N,children:n}),jsxs("div",{className:"kanuni-datagrid-dialog-actions",children:[r!==void 0&&jsx("button",{type:"button","data-testid":"dg-dialog-cancel",onClick:T,children:r}),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=useRef(s);useEffect(()=>{p.current=s;},[s]);let[T,w]=useState(false),k=useCallback(()=>w(true),[]),y=useCallback(()=>w(false),[]);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}flushSync(()=>w(true));},D=()=>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 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=useRef(null);return 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: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: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=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(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)),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=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(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(isDetailRow(t))return 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:jsx("div",{className:"kanuni-datagrid-detail-cell",role:"gridcell","aria-colindex":1,children:ge?.(t.data)})});if(isEditFormRow(t))return 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:jsx("div",{className:"kanuni-datagrid-editform-cell",role:"gridcell","aria-colindex":1,children:t.parentKey===null?null:De?.(t.parentKey,t.data)})});if(isMessageRow(t))return 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:jsx("div",{className:"kanuni-datagrid-message-cell",role:"gridcell","aria-colindex":1,children:Ee?.(t.parentKey,t.data)})});if(isFillerRow(t))return null;if(isGroupRow(t)&&P==="fullWidth"){let H=l.getDef(t.columnId),J=H?.headerName??t.columnId,he=lookupLabel(H,t.value)??t.display??(t.label===""?ee.filterBlank:t.label),Se=t.aggregates??null;return 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: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&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:D==="all",ref:re=>{re&&(re.indeterminate=D==="some");},"aria-label":fillText(ee.selectGroupAria,{count:String(t.count),group:he}),onChange:()=>A?.(String(t.key)),onClick:re=>re.stopPropagation(),onMouseDown:re=>re.stopPropagation()}),jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:t.expanded?"\u25BE":"\u25B8"}),jsxs("span",{className:"kanuni-datagrid-group-caption",children:[J,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:he}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),Se&&b?.map(re=>jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[summaryLabel(re)," ",l.getDef(re.columnId)?.headerName??re.columnId,":"]})," ",formatSummaryValue(re,Se[summaryKey(re.columnId,re.type)],l.getDef(re.columnId))]},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=isGroupRow(t)?t:null,Xe=He||ae!==null,Ve=ae?P==="column"?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=lookupLabel(J,H.value)??H.display??(H.label===""?ee.filterBlank:H.label);return jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:H.level*16},children:[jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:H.expanded?"\u25BE":"\u25B8"}),P!=="column"&&jsxs("span",{className:"kanuni-datagrid-group-caption",children:[J?.headerName??H.columnId,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:he}),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?jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:formatSummaryValue(he,ae.aggregates[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?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?jsxs("span",{className:X.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:X.depth*16},children:[X.hasChildren?jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":X.expanded,"aria-label":X.expanded?ee.collapseTreeRow:ee.expandTreeRow,onClick:re=>{re.stopPropagation(),le?.(t.key);},children:X.expanded?"\u25BE":"\u25B8"}):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(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:jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),V){let H=t.kind==="data"&&F!==null;ie.push(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(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: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(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&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:D==="all",ref:H=>{H&&(H.indeterminate=D==="some");},"aria-label":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:jsx("input",{type:"checkbox",checked:y,disabled:!f,tabIndex:-1,"aria-label":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(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(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 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(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(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));}),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?` ${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&&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:jsx("svg",{width:"10",height:"14",viewBox:"0 0 10 14",focusable:"false",children:jsxs("g",{fill:"currentColor",children:[jsx("circle",{cx:"3",cy:"3",r:"1.2"}),jsx("circle",{cx:"7",cy:"3",r:"1.2"}),jsx("circle",{cx:"3",cy:"7",r:"1.2"}),jsx("circle",{cx:"7",cy:"7",r:"1.2"}),jsx("circle",{cx:"3",cy:"11",r:"1.2"}),jsx("circle",{cx:"7",cy:"11",r:"1.2"})]})})}),E&&t.kind==="data"?E({row:t.data,node:t,rowIndex:n,selected:y,focused:u}):ie]})}var vn=memo(_u);var Tn=26;function ta(e,t){return 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=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 jsxs(Fragment,{children:[jsx("button",{type:"button",className:"kanuni-datagrid-band-toggle","aria-expanded":!l,"aria-label":l?t.labels.expand:t.labels.collapse,title:l?t.labels.expand:t.labels.collapse,onClick:a=>{a.stopPropagation(),t.onToggle(r);},children:jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),jsx("path",{d:"M5 8h6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),l&&jsx("path",{d:"M8 5v6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}),n]})}function 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 jsx(Fragment,{children:Array.from({length:l},(P,v)=>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&&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)=>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&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(f[v]??[]).map(u=>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&&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 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=memo(Vu);var Xu=()=>jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"0.6",strokeLinejoin:"round"})});function 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]=useState(null),Me=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=useRef(null),Ee=useRef(false),[I,se]=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]=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===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 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&&!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:[jsx("span",{className:"kanuni-datagrid-header-label",id:`${Me}-${encodeURIComponent(B)}`,children:q?.(B)??Ju(Z,B)}),ae&&jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:ae.direction==="asc"?"\u25B2":"\u25BC"}),ae&&s.length>1&&!He&&jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:ae.order+1}),w&&Z.filterable!==false&&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":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:jsx(Xu,{})}),R&&Z.resizable!==false&&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 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&&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&&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&&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&&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: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&&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&&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=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?customFilterOperators(F.def):[],O=S.some(K=>K.id===P?.[M])?P[M]:"",q=S.find(K=>K.id===O)?.operandType==="none";return 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&&jsxs("select",{className:"kanuni-datagrid-filter-operator",value:O,"aria-label":fillText(E.filterOperatorAria,{column:F.def.headerName??M}),"data-filter-operator-for":M,onChange:K=>v?.(M,K.target.value),children:[jsx("option",{value:"",children:E.filterOperatorDefault}),S.map(K=>jsx("option",{value:K.id,children:K.label},K.id))]}),h&&d===void 0&&jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:s[M]??"",placeholder:$,"aria-label":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 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&&jsx("datalist",{id:A,children:D.map(F=>jsx("option",{value:F},F))}),L.total>0&&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&&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&&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=memo(ec);function pt({children:e,dark:t=false,kind:n="popup"}){let[r,l]=useState(null),a=Tt(),s=Pt();return useEffect(()=>{let p=document.createElement("div");return p.className=`kanuni-datagrid-root kanuni-datagrid-portal${t?" kanuni-datagrid-dark":""}${a}`,p.setAttribute(PORTAL_ATTRIBUTE,n),p.style.pointerEvents="auto",s().appendChild(p),l(p),()=>{p.remove();}},[t,a,s,n]),r?createPortal(e,r):null}function nn({anchor:e,onClose:t,margin:n=8,autoFocus:r=false}){let l=useRef(null),[a,s]=useState(e),p=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 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 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=memo(function({itemKey:t,label:n,display:r,index:l,active:a,checked:s,onToggle:p,onFocus:T}){return 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:[jsx("input",{type:"checkbox",readOnly:true,checked:s,tabIndex:-1}),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 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?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:[jsx("input",{type:"checkbox",readOnly:true,checked:r,tabIndex:-1}),jsx("span",{children:wc(t,l)})]}):jsx("div",{role:"option","aria-selected":false,"aria-busy":"true",className:"kanuni-datagrid-filter-item kanuni-datagrid-filter-item--pending","data-index":e,children: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]=useReducer(C=>C+1,0);useEffect(()=>f?f.subscribe(P):void 0,[f]);let[v,u]=useState(""),[E,L]=useState(0),[$,V]=useState(()=>new Set(l??r.map(distinctEntryKey))),[F,R]=useState(false),U=useRef(null),M=useRef(null),[h,d]=useState(0),[S,O]=useState(240),q=`${e??""}:${t}`,K=Yn.get(q),te=useRef(K?.scrollTop??null),[ve,de]=useState(K&&K.width&&K.height?{width:K.width,height:K.height}:null),Fe=useCallback(C=>{U.current=C,C?.focus();},[]),b=useRef(null),Y=useMemo(()=>{let C=foldText(v.trim());if(!C||y)return r;let Z=b.current;(!Z||Z.entries!==r)&&(Z={entries:r,lowered:r.map(ue=>foldText(ue.label)),needle:"",result:[]},b.current=Z);let B=Z.needle!==""&&C.includes(Z.needle)?Z.result.filter(ue=>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]);useEffect(()=>{if(!N)return;let C=setTimeout(()=>N(v),150);return ()=>clearTimeout(C)},[v,N]),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]),useEffect(()=>{F||!l||V(new Set(l));},[l,F]),useEffect(()=>{F||l||V(new Set(r.map(distinctEntryKey)));},[r,F,l]);let Me=useCallback(C=>{M.current=C,C&&O(C.clientHeight||240);},[]);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=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=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]);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;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]=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=useCallback(C=>{R(true),V(Z=>{let B=new Set(Z);if(C===NONBLANK_KEY){let ue=distinctNonBlankTicked(r,Z);for(let X of r)Po(X)&&!ue?B.delete(BLANK_KEY):B.add(distinctEntryKey(X));return B}return B.has(C)?B.delete(C):B.add(C),B});},[r]),it=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(distinctEntryKey(X))),Z=C.some(Po),B=C.filter(X=>!Po(X)),ue;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?NONBLANK_KEY: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 jsx(pt,{dark:p,children: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:[jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${Le}`,"data-testid":"dg-filter-resize",onPointerDown:_e}),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&&jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:A.truncated}),k&&jsx("button",{type:"button",className:"kanuni-datagrid-filter-custom","data-testid":"dg-filter-custom",onClick:k,children:A.custom}),jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsx("button",{type:"button",onClick:()=>{if(f)return f.selectAll();R(true),v.trim()===""?V(new Set(r.map(distinctEntryKey))):V(C=>{let Z=new Set(C);for(let B of Y)Z.add(distinctEntryKey(B));return Z});},children:A.selectAll}),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(distinctEntryKey(B));return Z});},children:A.clear})]}),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&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:A.loading}),!se&&I===0&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:A.noMatch}),f&&ge&&I>0&&jsx("div",{style:{height:ge.totalHeight,position:"relative"},children: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 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&&jsx("div",{style:{height:ne.length*xn,position:"relative"},children: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?NONBLANK_KEY:distinctEntryKey(C);return jsx(gc,{itemKey:X,label:C.label,display:ue?A.nonBlank:Tl(C,A),index:B,active:B===E,checked:ue?distinctNonBlankTicked(r,$):$.has(X),onToggle:Oe,onFocus:it},X)})})})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",onClick:w,children:A.cancel}),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,FILTER_PART_ROW):e.getColumnFilter(t,FILTER_PART_SET)??e.getColumnFilter(t,FILTER_PART_DEFAULT)}function Ra({controller:e,columnId:t,surface:n,close:r}){let[l,a]=useState(()=>ba(e,t,n));useEffect(()=>(a(ba(e,t,n)),e.events.on("filterChanged",()=>{a(ba(e,t,n));})),[e,t,n]);let s=useCallback(w=>{e.setColumnFilter(t,w,n==="row"?FILTER_PART_ROW:FILTER_PART_SET);},[e,t,n]),p=useCallback(()=>{},[]),T=e.getColumnModel().getDef(t);return T?.renderFilter?jsx(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=useRef(false),w=p.ref,k=useCallback(y=>{w(y),!(!y||T.current)&&(T.current=true,(y.querySelector(kc)??y).focus({preventScroll:true}));},[w]);return jsx(pt,{dark:l,children: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: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]=useState(false),y=useRef(null),[N,f]=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 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?jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((R,U)=>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:jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:r>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${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&&jsx("span",{className:"kanuni-datagrid-group-chip-level",children:U+1}),D(R),jsx("button",{type:"button","aria-label":fillText(p.groupRemoveAria,{column:D(R)}),onClick:()=>P(R),children:"\xD7"})]})},R))}):jsx("span",{className:"kanuni-datagrid-group-panel-hint",children:T}),jsxs("div",{className:"kanuni-datagrid-group-panel-actions",children:[t.length>0&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:l,children:p.groupExpandAll}),jsx("button",{type:"button",onClick:a,children:p.groupCollapseAll})]}),jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsx("span",{className:"kanuni-datagrid-sr-only",children:r>1?p.groupAddLevel:p.groupByColumn}),r>1?jsxs("select",{value:"",disabled:F.length===0,onChange:R=>A(R.target.value),children:[jsx("option",{value:"",children:p.groupAddLevelButton}),F.map(R=>jsx("option",{value:R.state.id,children:R.def.headerName??R.state.id},R.state.id))]}):jsxs("select",{value:t[0]??"",onChange:R=>n(R.target.value?[R.target.value]:[]),children:[jsx("option",{value:"",children:p.groupNoGrouping}),e.map(R=>jsx("option",{value:R.state.id,children:R.def.headerName??R.state.id},R.state.id))]})]})]})]})}var ka=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=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[summaryKey(R.columnId,R.type)]:void 0,M=L.def.dataType==="number"||L.def.dataType==="bigint",h=isChromeColumn(F)?void 0:k;return 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?`${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?jsx("span",{className:"kanuni-datagrid-footer-value",children:formatSummaryValue(R,U,L.def)}):h?jsx("span",{className:"kanuni-datagrid-footer-hint",children:y}):null},F)};return 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&&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&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(L=>E(L,"",{width:L.state.width})),r>0&&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=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: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 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=memo(Fc);function Nl({controller:e,renderRow:t,width:n,bandOffset:r,headerRowsBetween:l,belowPinned:a}){let[,s]=useReducer(w=>w+1,0);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=useRef(null);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: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)=>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 jsx("svg",{width:t,height:t,viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",className:"kanuni-datagrid-icon",children:jsx("path",{d:TOOLBAR_ICON_PATHS[e],fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}async function 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 downloadBlob(n.blob,n.fileName),{completed:!0}}catch(n){return n instanceof ExportAbortedError?{completed:false}:{completed:false,error:n instanceof Error?n.message:String(n)}}}function rn({anchor:e,onClose:t,children:n,dark:r,className:l="",label:a,role:s="dialog"}){let p=nn({anchor:e,onClose:t});return jsx(pt,{dark:r,children:jsx("div",{ref:p.ref,className:`kanuni-datagrid-filter-popup ${l}`.trim(),style:{left:p.position.left,top:p.position.top},role:s,"aria-label":a,children:n})})}function Yc(e){let t=Te();return useMemo(()=>({search:t.toolbarSearch,csv:t.exportCsv,excel:t.exportExcel,excelSelected:t.exportExcelSelected,pdf:t.exportPdf,columns:t.columns,exporting:t.exporting,exportMenu:t.exportMenu,...e}),[t,e])}var qc=()=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})});function 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]=useState(()=>e.getSearchText()),v=useRef(false),[u,E]=useState(null),[L,$]=useState(null),[V,F]=useState(null),R=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);};useEffect(()=>{if(M!==null||!v.current)return;let K=setTimeout(()=>h(A),U);return ()=>clearTimeout(K)},[e,A,U,M]),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]=useState(()=>e.getSelectedCount());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 jsxs("div",{className:"kanuni-datagrid-toolbar",children:[T,t&&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&&jsx("span",{id:R,className:"kanuni-datagrid-toolbar-search-error",role:"alert","data-testid":"dg-toolbar-search-error",children:M}),jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&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:[jsx(va,{name:"columns"}),jsx("span",{children:D.columns})]}),N&&(n&&e.canExportAll()||r||l)&&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?jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsx(qc,{})}),L&&jsxs(rn,{anchor:L,onClose:()=>$(null),dark:s,role:"menu",label:D.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&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&&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&&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&&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&&jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:V})]})}var Da=memo(Xc);var Qc=8;function em(e){let t=Te();return useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function Ea({controller:e,columns:t,anchor:n,onClose:r,dark:l,labels:a}){let s=em(a),[p,T]=useState(""),w=e.getColumnModel(),k=P=>w.getDef(P.id)?.headerName??P.id,y=t.filter(P=>!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 jsxs(rn,{anchor:n,onClose:r,dark:l,label:s.title,className:"kanuni-datagrid-column-chooser",children:[jsx("div",{className:"kanuni-datagrid-chooser-title",children:s.title}),N.length>Qc&&jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:s.search,"aria-label":s.search,value:p,onChange:P=>T(P.target.value)}),jsxs("div",{className:"kanuni-datagrid-filter-list",children:[A.length===0&&jsx("div",{className:"kanuni-datagrid-chooser-empty",children:s.empty}),A.map(P=>{let v=P.visible&&f===1;return jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsx("input",{type:"checkbox",checked:P.visible,disabled:v,"data-column-toggle":P.id,onChange:()=>e.setColumnVisible(P.id,!P.visible)}),jsx("span",{children:k(P)})]},P.id)})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",disabled:f===N.length,onClick:()=>N.forEach(P=>!P.visible&&e.setColumnVisible(P.id,true)),children:s.showAll}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:r,children:s.ok})]})]})}function am(e){let t=Te();return useMemo(()=>({first:t.pagerFirst,previous:t.pagerPrevious,next:t.pagerNext,last:t.pagerLast,page:t.pagerPage,of:t.pagerOf,rowsPerPage:t.pagerRowsPerPage,pageButton:t.pagerPageButton,navigation:t.pagerAria,...e}),[t,e])}function 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=useRef(null),u=useRef(null);return 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]),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:[jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsx("span",{children:N.rowsPerPage}),jsx("select",{value:n,"data-testid":"dg-page-size",onChange:E=>T(Number(E.target.value)),children:r.map(E=>jsx("option",{value:E,children:E},E))})]}),jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[A.toLocaleString(),"\u2013",P.toLocaleString()," ",N.of," ",l.toLocaleString()]}),jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsx("button",{type:"button","aria-label":N.first,disabled:f,onClick:()=>a(0),children:"\xAB"}),jsx("button",{type:"button","aria-label":N.previous,disabled:f,"data-testid":"dg-page-prev",onClick:p,children:"\u2039"}),w?pageButtonItems(e,t,k).map(E=>typeof E=="number"?jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":fillText(N.pageButton,{n:String(E+1)}),"aria-current":E===e?"page":void 0,onClick:()=>a(E),children:E+1},E):jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},E)):jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[N.page," ",e+1," ",N.of," ",t]}),jsx("button",{type:"button","aria-label":N.next,disabled:D,"data-testid":"dg-page-next",onClick:s,children:"\u203A"}),jsx("button",{type:"button","aria-label":N.last,disabled:D,onClick:()=>a(t-1),children:"\xBB"})]})]})}var Sa=memo(im);function pm(e){let t=Te();return 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]=useState(0);useEffect(()=>e.events.on("filterChanged",()=>p(y=>y+1)),[e]);let T=e.getEffectiveFilter(),w=e.isFilterEnabled(),k=describeFilter(T,e.getColumnModel(),{...r,labels:{...filterLabels(s),...r?.labels}});return !T&&!n?null: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:[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"}),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)}),jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:k??void 0,"data-testid":"dg-filter-panel-text",children:k??a.empty}),t&&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=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=useRef(null),[w,k]=useState({left:e,top:t}),[y,N]=useState(()=>n.findIndex(Ko)),[f,D]=useState(null),[A,P]=useState(null),v=useRef(null),[u,E]=useState(null);useEffect(()=>P(null),[f]);let L=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=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=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]);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 jsxs(pt,{dark:a,children:[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?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},h.id??`sep-${d}`):jsx("div",{className:"kanuni-datagrid-menu-row",children: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&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:h.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:h.label}),h.shortcut&&jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:h.shortcut}),h.items?.length?jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},h.id??d))}),f!==null&&n[f]?.items?.length?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?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},h.id??`sub-sep-${d}`):jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:h.disabled,onClick:()=>{h.onSelect?.(r),l();},children:[h.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:h.icon}),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]=useState(t),T=useRef(null);useEffect(()=>{let k=T.current;k&&(k.focus(),k.select());},[]);let w=()=>{let k=s.trim();r(k===""?null:k);};return jsxs(rn,{anchor:e,onClose:l,dark:n,label:a.noteEditorAria,className:"kanuni-datagrid-note-editor",children:[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());}}),jsxs("div",{className:"kanuni-datagrid-note-actions",children:[jsx("button",{type:"button",className:"kanuni-datagrid-note-cancel",onClick:l,children:a.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-note-save",onClick:w,children:a.save})]})]})}function Em(e){let t=Te();return useMemo(()=>({busy:t.busy,loading:t.busyLoading,encoding:t.busyEncoding,filtering:t.busyFiltering,sorting:t.busySorting,computing:t.busyComputing,grouping:t.busyGrouping,aggregating:t.busyAggregating,projecting:t.busyProjecting,exporting:t.busyExporting,cancel:t.cancel,...e}),[t,e])}var 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]=useState(()=>e.getBusy()),[p,T]=useState(false);useEffect(()=>(s(e.getBusy()),e.events.on("busyChanged",D=>s(D))),[e]);let w=a.busy&&a.background!==true;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 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:jsxs("div",{className:"kanuni-datagrid-loading-card",children:[jsx("span",{className:"kanuni-datagrid-loading-spinner","aria-hidden":"true"}),jsx("span",{className:"kanuni-datagrid-loading-label",children:y}),N!==null&&jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(N),"aria-valuemin":0,"aria-valuemax":100,children:[jsx("div",{className:"kanuni-datagrid-loading-track",children:jsx("div",{className:"kanuni-datagrid-loading-fill",style:{width:`${N}%`}})}),jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(N),"%"]})]}),f&&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 jsxs("div",{role:"gridcell",className:"kanuni-datagrid-card",children:[jsx("div",{className:"kanuni-datagrid-card-title",children:t?.text}),n.length>0&&jsx("dl",{className:"kanuni-datagrid-card-fields",children:n.map(r=>jsxs("div",{className:"kanuni-datagrid-card-field",children:[jsx("dt",{children:r.label}),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 jsxs("div",{className:"kanuni-datagrid-cardbar",children:[jsxs("label",{className:"kanuni-datagrid-cardbar-label",children:[jsx("span",{children:r.cardSortBy}),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:[jsx("option",{value:"",children:r.none}),n.map(s=>jsx("option",{value:s.id,children:s.label},s.id))]})]}),l&&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: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=useRef(t);n.current=t;let r=!!t?.enabled,l=t?.storageKey,a=t?.type;useEffect(()=>{if(r)return 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]=useState(false),[T,w]=useState(null),k=useRef(null),y=useRef(false),N=useRef(null),f=useRef(null),D=useRef(t);D.current=t;let A=useCallback(h=>e.getRowByKey(h),[e]),P=(h,d)=>{let S=d.getBoundingClientRect();return h.clientY<S.top+S.height/2?"before":"after"},v=useCallback((h,d)=>{if(!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=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=useCallback(h=>h.dataTransfer.types.includes($o)?f.current!==null?l:a&&r!==null:false,[l,a,r]),L=useCallback((h,d)=>{if(!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]),$=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=useCallback((h,d)=>{if(w(null),!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=useCallback(h=>{E(h)&&(h.preventDefault(),h.dataTransfer.dropEffect="move");},[E]),R=useCallback(h=>{w(null),E(h)&&(h.preventDefault(),y.current=true,k.current=null,$(h,null,"after"),f.current=null);},[E,$]),U=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]=useState(null),P=useRef({columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:T});return P.current={columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:T},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]=useState(null),[l,a]=useState(null),{text:s,anchor:p,content:T,interactive:w,hold:k,release:y,id:N}=e;return 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]),jsx(pt,{dark:t,kind:"tooltip",children: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(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"?useLayoutEffect: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 jsx(Rr,{locale:e.locale,messages:e.messages,children:jsx(Er,{theme:e.theme,density:e.density,palette:e.palette,portalContainer:e.portalContainer,children: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=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??[]:inferColumns(g,G)},[X.columns,X.dataSource,st]),ae={...X,columns:He},Xe=isPackagedTheme(a)?THEME_ROW_HEIGHT[a][_e??"normal"]:_e?DENSITY_ROW_HEIGHT[_e]: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=useMemo(()=>resolveCardView(x),[_]),[oe,fe]=useState(false),ye=useRef(Q);Yt(()=>{ye.current=Q;let o=Ct.current;fe(o?showsCards(cardViewWidth(o),Q):false);},[Q]);let Re=oe?cardColumnIds(i.getColumnModel(),Q):null,Ce=Re?JSON.stringify(Re):"",Ke=useMemo(()=>Re,[Ce]);useEffect(()=>{i.setDataRowHeight(Ke?cardHeight(Ke.length):null);},[i,Ke]);let Rt=e.onCardViewChange,ln=useRef(false);useEffect(()=>{oe!==ln.current&&(ln.current=oe,Rt?.(oe));},[oe,Rt]);let Pn=useCallback(o=>jsx($l,{fields:cardFields(i.getColumnModel(),Ke??[],o.row)}),[i,Ke]),We=useRef(null),H=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=resolveRowStatus(H,o.data,o.key,he);return g?{rowStatus:g.status,rowStatusText:rowStatusDescription(g,t),rowStatusTint:H.tint}:{}};useEffect(()=>{if(oe||!H?.messages){i.setMessageRows([],c);return}let o=H.get,g=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=rowMessageModel(H,o,g,he,t);return jsxs("div",{className:"kanuni-datagrid-row-message","data-testid":"dg-row-message",children:[jsxs("svg",{className:"kanuni-datagrid-row-message-icon",viewBox:"0 0 16 16",width:"14",height:"14","aria-hidden":"true",children:[jsx("path",{d:"M8 1.5 15 14H1z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsx("path",{d:"M8 6v3.5M8 11.6v.4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsx("span",{className:"kanuni-datagrid-row-message-text",title:G.text,children:G.text}),G.retry&&jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-retry",onClick:G.retry,children:t.rowStatusRetry}),G.remove&&jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-delete",onClick:G.remove,children:t.rowStatusDelete})]})},et=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=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=useRef(null);Yt(()=>{i.setEnterpriseEdition(j);},[i,j]),useEffect(()=>{Y?.(i);},[i,Y]),Yt(()=>{let o=is();o!==null&&o<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(showsCards(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);}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);}),useEffect(()=>{if(Fn)return i.events.on("columnStateChanged",()=>{i.clearMeasuredRowHeights();})},[i,Fn]),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=useCallback(o=>{let g=o.currentTarget;i.setScroll(g.scrollTop,qa(g.scrollLeft)),ei.syncScroll(g.scrollLeft);},[i,ei]),cs=useCallback((o,g)=>i.toggleSort(o,g),[i]);Ka(i,S);let sn=_a(i,dt);useEffect(()=>{K!=null&&i.getFocusedRowKey()!==K&&i.focusRow(K);},[i,K]),useEffect(()=>{if(te)return i.events.on("focusedRowChanged",o=>te({rowKey:o.rowKey,row:o.row}))},[i,te]);let[Yo,ms]=useState(null);useEffect(()=>i.events.on("overlayChanged",o=>{ms(o.manual?o.overlay:null);}),[i]);let ps=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=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]=useState(0);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=useCallback((o,g)=>i.moveColumn(o,g),[i]),ws=useCallback((o,g,G)=>i.setColumnWidth(o,g,G??true),[i]),qo=useCallback(o=>{if(!We.current)return;let g=_o(We.current,o);g!==null&&i.setColumnWidth(o,g);},[i]),Xo=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=useRef(null),[oo]=useState(()=>new RowMotion),oi=e.animateRows===true;useEffect(()=>{i.setAnimateRows(oi);},[i,oi]),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);}),useEffect(()=>{if(B!=="fitGrid")return;let o=()=>i.sizeColumnsToFit();return o(),i.events.on("gridSizeChanged",o)},[i,B]);let jo=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]=useState({}),[Qo,ai]=useState({}),dn=useRef(Qo);dn.current=Qo;let ii=useRef(Zo);ii.current=Zo;let li=e.filterDebounce??(i.isRemote()?200:0),er=useRef(false),ro=useMemo(()=>datePeriodLabels(t),[t]),tr=useRef(ro);tr.current=ro;let hs=useMemo(()=>periodSuggestionList(ro),[ro]),un=useCallback((o,g)=>{let G=i.getColumnModel(),W=G.getDataType(o),ce=findCustomFilterOperator(G.getDef(o),dn.current[o]??"");er.current=true;try{i.setColumnFilter(o,ce?parseCustomFilterInput(o,g,ce):parseFilterInput(o,g,W,tr.current),FILTER_PART_ROW);}finally{er.current=false;}},[i]),kt=useMemo(()=>createDebouncedCommit(li),[li]);useEffect(()=>()=>kt.cancelAll(),[kt]);let bs=useCallback((o,g)=>{ri(G=>({...G,[o]:g})),kt.schedule(o,()=>un(o,g));},[un,kt]),ys=useCallback((o,g)=>{dn.current={...dn.current,[o]:g},ai(dn.current),kt.cancel(o),un(o,ii.current[o]??"");},[un,kt]),Rs=useCallback(o=>{if(i.getColumnModel().getDef(o)?.renderFilter)return jsx(Ra,{controller:i,columnId:o,surface:"row"})},[i]),Cs=useCallback((o,g)=>{kt.cancel(o),un(o,g);},[un,kt]);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,FILTER_PART_ROW),pe=g[W]??"",Ie=pe;me?Ie=customFilterInputFromNode(me,ce)?.operatorId??"":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,FILTER_PART_ROW);if(!W)return "";let ce=customFilterInputFromNode(W,o.getDef(G));return ce?ce.text:!isFilterGroup(W)&&!isBuiltInFilterOperator(W.operator)?null:filterInputFromNode(G,W,o.getDataType(G),tr.current)}},o.getOrder()));}),[i,kt]);let[Ue,wt]=useState(null),qt=useRef(null);useEffect(()=>{!Ue&&qt.current&&(qt.current.dispose(),qt.current=null);},[Ue]);let cn=useRef(0),[mn,nr]=useState(null),or=useRef(null),Et=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=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,FILTER_PART_SET)??i.getColumnFilter(o,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: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: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:selectedLabelsFromFilter(pe,Ye,{text:i.getColumnModel().getDataType(o)==="string"}),loading:false}:Be);});},[i,Et]),vs=useCallback(o=>{Ue&&(i.setColumnFilter(Ue.columnId,o,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=useCallback((o,g)=>{i.handleRowClick(o.key,{ctrlKey:g.ctrlKey||si&&!g.shiftKey,metaKey:g.metaKey,shiftKey:g.shiftKey});},[i,si]),Ds=useCallback((o,g)=>i.focusCell(o.key,g),[i]),Es=useCallback(o=>i.toggleRow(o.key),[i]),[fn,rr]=useState(null),Ss=useCallback(()=>rr(null),[]),[Hn,ar]=useState(null),di=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=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=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]=useState(null),ir=useRef({x:0,y:0}),ci=useCallback(o=>La(i,t,it,o,g=>{io({message:g,...ir.current}),console.error("[datagrid] export failed:",g);}),[i,t,it]),lo=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=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=useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),gn=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=useCallback((o,g,G)=>{Fe?.(o),gn("rowClicked","cellClicked",o,g,G);},[Fe,gn]),Ns=useCallback((o,g,G)=>{b?.(o),gn("rowDoubleClicked","cellDoubleClicked",o,g,G);},[b,gn]),Ps=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]=useState(null),[Fs,Hs]=useState(null),[lr,As]=useState(()=>X.grouping?.groupSummaries??false),[Xt,sr]=useState(null),[fi,dr]=useState(null),ur=fn!==null||Xt!==null||Ue!==null||mn!==null,gi=useRef(false);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=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=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=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=useMemo(()=>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=useCallback(o=>i.groupBy(o.slice(0,ze)),[i,ze]),Us=useCallback(o=>i.toggleGroup(o),[i]),yi=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;useEffect(()=>{i.setLeadWidth(ea(tt,ft,nt,ht));},[i,tt,ft,nt,ht]);let qs=useCallback(o=>i.toggleDetail(o),[i]),Xs=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=useCallback(()=>{As(o=>(i.setGroupSummaries(!o),!o));},[i]),js=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},...allowedSummaryTypes(G?.dataType).map(pe=>({id:pe,label: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=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=useMemo(()=>{let o=[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(fillText(t.announceSortedBy,{columns:g}));}return hr>0&&o.push(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=useMemo(()=>!nt||i.getGroupLevels().length===0&&!i.hasMasterDetail()&&!i.hasTreePathRows()?null:wl(Ze),[nt,i,Ze]),ad=i.hasCellSpans(),xi=useRef({start:0,end:0});xi.current={start:Rn,end:Ti-1};let Di=useRef(In.columns);Di.current=In.columns;let id=useCallback(o=>i.planRowColSpans(o,Di.current),[i]),ld=hasColSpans(Ne),sd=useCallback((o,g)=>{let G=i.getCellSpans(g);if(G.length===0)return null;let{start:W,end:ce}=xi.current,me=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?normalizeSearch(i.getSearchText()):""),Si=i.getFindState(),fo=Si.count>0?`${i.getFindNeedle()}\0${Si.activeIndex}`:"",Gi=useCallback((o,g)=>i.getFindMatchKind(o,g),[i]),dd={pathOf:o=>bandPath(i.getColumnModel().getDef(o)),collapsible:o=>i.isBandCollapsible(o),collapsed:o=>i.isBandCollapsed(o),onToggle:o=>i.toggleBand(o),labels:{expand:t.expandColumnGroup,collapse:t.collapseColumnGroup}},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 jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${Za.active?" kanuni-datagrid-print":""}${oe?" kanuni-datagrid-cards":""}${themeClassName(a,_e,s)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${c}px`,"--dg-grip-inset":`${(nt?Cn:0)+(ht?kn:0)}px`,...r},dir: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&&jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:J.bar}),et.show&&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&&jsx(ka,{columns:zs,levels:bi,onSetLevels:Vs,maxLevels:ze,onExpandAll:()=>i.expandAllGroups(),onCollapseAll:()=>i.collapseAllGroups()}),oe&&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})):[]}),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:jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(Ne.totalWidth||0)+ea(tt,ft,nt,ht)||"100%"},role:"rowgroup",children:[jsx(aa,{layout:Ne,centerColumns:At,leadingSpacer:Ot,trailingSpacer:Kt,depth:Jt,checkboxColumn:tt,detailColumn:ft,statusColumn:ht,rowNumberColumn:nt,rowHeight:wn,bandFold:dd}),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&&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&&jsx(Fo,{...Mi,position:"top",bandOffset:Jt*wn,headerRowsBetween:wr}),fr.length>0&&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()&&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)=>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})}),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:[jsx("div",{ref:Jo,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${In.rows.offsetY}px)`},children:od.map((o,g)=>o?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 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:jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:W?jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-load-failed-text",children:t.rowsLoadFailed}),jsx("button",{type:"button",className:"kanuni-datagrid-retry-button","data-retry-load":"",onClick:()=>i.retryFailedLoads(),children:t.retryLoad})]}):jsx("span",{className:"kanuni-datagrid-loading-bar"})})},`__loading-${G}`)})())}),le?.()]}),gr.length>0&&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&&jsx(Fo,{...Mi,position:"bottom"})]})}),(Yo==="noRows"||Yo===null&&m===0)&&jsx("div",{className:"kanuni-datagrid-empty",children:T??t.noData}),J.active&&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&&jsx(pt,{dark:l,children:J.popup}),F&&jsx(Ga,{controller:i,alwaysVisible:F==="always",onOpenBuilder:U,describeOptions:R}),P!==false&&jsx(Oa,{controller:i,delay:typeof P=="number"?P:void 0,forced:Yo==="loading"}),i.isPaginated()&&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&&jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:ed}),Hn&&jsx(Ha,{anchor:Hn.anchor,value:Hn.text,dark:l,onCommit:Gs,onCancel:()=>ar(null)}),fn&&jsx(Bo,{x:fn.x,y:fn.y,items:fn.items,context:fn.context,dark:l,onClose:Ss}),ao&&jsx(pt,{dark:l,kind:"toast",children: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&&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&&jsx(Wa,{state:ti,dark:l}),fi&&jsx(Ea,{controller:i,columns:i.getColumnStates(),anchor:fi,dark:l,onClose:()=>dr(null)}),mn&&jsx(El,{controller:i,columnId:mn.columnId,headerLabel:mn.label,anchor:mn.anchor,dark:l,onClose:()=>nr(null)},mn.columnId),Ue&&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=summaryTypeLabels(a);return e.length===0&&r===void 0?null:jsxs("div",{className:"kanuni-datagrid-summary-bar",role:"status","aria-label":a.summaryAria,children:[r!==void 0&&jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsx("strong",{children:r.toLocaleString()})," ",l??a.summaryRows]}),e.map(p=>{let T=t[summaryKey(p.columnId,p.type)],w=n.getDef(p.columnId),k=formatSummaryValue(p,T,w);return jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxs("span",{className:"kanuni-datagrid-summary-label",children:[summaryLabel(p,s)," ",w?.headerName??p.columnId,":"]}),jsx("strong",{children:k})]},summaryKey(p.columnId,p.type))})]})}var vp=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 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&&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]=useState(null);return useEffect(()=>{if(!e||!t){a(null);return}let s=n??"view",p=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}export{Tn as BAND_ROW_HEIGHT,du as DEFAULT_EDIT_FORM_LABELS,Zl as DEFAULT_HEADER_MENU_LABELS,bp as DataGrid,Br as GridCellEditor,Ea as GridColumnChooser,Bo as GridContextMenu,Qt as GridDateEditor,$r as GridDialog,Lr as GridEditForm,Ga as GridFilterPanel,ua as GridFilterRow,Fo as GridFooterRow,ka as GridGroupPanel,la as GridHeader,aa as GridHeaderBands,ha as GridHeaderFilterPopup,Oa as GridLoadingOverlay,Zt as GridLookupEditor,Ha as GridNoteEditor,Sa as GridPager,Ho as GridPinnedRows,rn as GridPopupPanel,pt as GridPortal,vn as GridRow,Ir as GridRowEditor,vp as GridSummaryBar,Er as GridSurfaceProvider,Rr as GridTextProvider,Da as GridToolbar,Tp as GridToolbarButton,Wa as GridTooltip,Vr as PRINT_MAX_ROWS,$o as ROW_DRAG_MIME,Al as SHORTCUT_COPY,hm as SHORTCUT_CUT,bm as SHORTCUT_PASTE,va as ToolbarIcon,La as buildCellMenuItems,Va as buildHeaderMenu,Sn as copyToClipboard,rl as editFormColumnIds,Pr as editFormLabels,Wo as headerMenuLabels,Vd as matchOptions,_o as measureBestFitWidth,da as reconcileFilterInputs,qn as runGridExport,Yr as useAlignedGrids,nn as useAnchoredPopup,$a as useCellTooltip,yr as useDataGrid,Or as useEditModes,Pp as useGridChartBoxData,Mp as useGridChartData,Np as useGridChartXYData,vr as useGridEditing,Pt as useGridPortalTarget,Tt as useGridSurfaceClass,Te as useGridText,Ur as usePrintLayout,_a as useRowDrag,Ka as useStateStoring,ym as writeClipboardText};
|
|
1
|
+
import {createContext,memo,useState,useId,useRef,useEffect,useContext,useMemo,useCallback,useSyncExternalStore,useLayoutEffect,useReducer}from'react';import {getGridDictionary,isDetailRow,isEditFormRow,isMessageRow,isFillerRow,isGroupRow,lookupLabel,fillText,summaryLabel,formatSummaryValue,summaryKey,GROUP_COLUMN_ID,rowStatusClassName,summaryTypeLabels,pageButtonItems,describeFilter,filterLabels,computeHeaderBands,isChromeColumn,customFilterOperators,TOOLBAR_ICON_PATHS,PORTAL_ATTRIBUTE,downloadBlob,ExportAbortedError,formatDateValue,numberCellText,foldText,RangeSelectionEngine,rangesFromSaved,rangesToSaved,EditingEngine,isRowKey,createEditingApi,createDebouncedCommit,isRowEditMode,edgeEditableColumn,nextEditableColumn,numberSeparators,computeFillTarget,computeFillValues,cellDisplayText,parseClipboardTable,computePasteCells,coercePastedValue,RANGE_KEY_DIRECTIONS,extendRangeByKey,keyboardFill,themeClassName,portalTarget,lookupMatchMode,dateDigits,DEFAULT_DATE_FORMAT,toDate,maskDate,parseDateValue,dateDigitCount,placeAnchoredLayer,toIsoDate,daysInMonth,DEFAULT_EDIT_FORM_HEIGHT,distinctEntryKey,NONBLANK_KEY,distinctNonBlankTicked,BLANK_KEY,attachStateStoring,isDataRow,inferColumns,isPackagedTheme,THEME_ROW_HEIGHT,DENSITY_ROW_HEIGHT,DEFAULT_ROW_HEIGHT,resolveCardView,showsCards,cardViewWidth,cardColumnIds,cardHeight,normalizeRowStatus,rowMessageKeys,resolveToolbar,DEFAULT_MAX_SCROLL_OFFSET,calibrateMaxScrollOffset,RowMotion,datePeriodLabels,periodSuggestionList,findCustomFilterOperator,parseCustomFilterInput,parseFilterInput,FILTER_PART_ROW,customFilterInputFromNode,FILTER_PART_SET,FILTER_PART_DEFAULT,selectedLabelsFromFilter,resolveGridCommand,bandDepth,allowedSummaryTypes,hasColSpans,spanRoleAt,normalizeSearch,isRtlLocale,chartNeedsOrder,stepNumberText,DataGridController,formatNumberDisplay,numberBoundsError,readNumberText,editableNumberText,parseLocaleNumber,distinctDisplayText,resolveRowStatus,rowStatusDescription,rowMessageModel,isFilterGroup,isBuiltInFilterOperator,filterInputFromNode,bandPath,cardFields}from'@kanunilabs/datagrid-core';export{ClientRowModel,ColumnModel,DEFAULT_ROW_HEIGHT,DENSITY_ROW_HEIGHT,DataGridController,GRID_COLOR_SCHEMES,GRID_PALETTES,GRID_THEMES,GridStateStore,SUMMARY_TYPE_LABEL,SaveRejected,THEME_ROW_HEIGHT,VirtualWindowEngine,allowedSummaryTypes,andFilters,attachStateStoring,bandDepth,bandPath,computeColumnLayout,computeHeaderBands,createRestDataSource,describeFilter,downloadBlob,fillText,filterInputFromNode,formatSummaryValue,humanizeField,importCsv,inferColumns,isDataRow,isDataSource,isFilterGroup,isGroupRow,isPackagedTheme,isSaveRejected,lookupLabel,moveRowInArray,parseCsv,parseFilterInput,sniffDelimiter,summaryKey,summaryLabel,summaryTypeLabels,themeClassName}from'@kanunilabs/datagrid-core';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {createPortal,flushSync}from'react-dom';var au=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],fl=new WeakMap;function Xr(e){let t=fl.get(e);if(!t){let n={version:0,listeners:new Set},r=()=>{n.version++,n.listeners.forEach(i=>i());};for(let i of au)e.events.on(i,r);fl.set(e,n),t=n;}return t}function jr(e){let t=e.sorting?.postSort,n=useRef(t);useEffect(()=>{n.current=t;},[t]);let[r]=useState(()=>((M,g)=>n.current?.(M,g))),i=()=>{let M=new DataGridController(t?{...e,sorting:{...e.sorting,postSort:r}}:e);return Xr(M),M},[a,u]=useState(i);useEffect(()=>{if(a.isDisposed()){u(i());return}return ()=>a.dispose()},[a]);let m=useCallback(M=>{let{listeners:g}=Xr(a);return g.add(M),()=>{g.delete(M);}},[a]),f=useCallback(()=>Xr(a).version,[a]);useSyncExternalStore(m,f,f);let{dataSource:w,columns:C}=e,h=useRef(true);useEffect(()=>{if(h.current){h.current=false;return}Array.isArray(w)&&a.setData(w);},[a,w]);let F=useRef(true);useEffect(()=>{if(F.current){F.current=false;return}a.setColumns(C);},[a,C]);let E=e.pagination?e.pagination.enabled!==false:false;useEffect(()=>{a.setPaginationEnabled(E);},[a,E]);let k=e.rowHeight,S=useRef(true);useEffect(()=>{if(S.current){S.current=false;return}k!==void 0&&a.setRowHeight(k);},[a,k]);let K=e.selection?.mode??"none";useEffect(()=>{a.setSelectionMode(K);},[a,K]);let L=e.rowPinning;useEffect(()=>{a.setRowPinning(L);},[a,L]);let P=e.selection?.isRowSelectable,N=useRef(true);useEffect(()=>{if(N.current){N.current=false;return}a.setRowSelectable(P??null);},[a,P]);let _=t!==void 0,X=useRef(true);useEffect(()=>{if(X.current){X.current=false;return}a.setPostSort(_?r:null);},[a,_,r]);let j=e.grouping?.groupBy??null,W=JSON.stringify(j==null?[]:typeof j=="string"?[j]:j),R=useRef(true);return useEffect(()=>{if(R.current){R.current=false;return}a.groupBy(JSON.parse(W));},[a,W]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var wl=createContext(getGridDictionary("en"));function Jr({locale:e,messages:t,children:n}){let r=useMemo(()=>getGridDictionary(e,t),[e,t]);return jsx(wl.Provider,{value:r,children:n})}function Se(){return useContext(wl)}var $o=new WeakSet;function mo(e){return "nativeEvent"in e?e.nativeEvent:e}function Qr(e){$o.add(mo(e));}function po(e){let t=mo(e);return t.key.length===1&&typeof t.getModifierState=="function"&&t.getModifierState("AltGraph")}function Zr(e){let t=mo(e);return t.defaultPrevented||$o.has(t)?true:t.altKey&&!po(t)}function Tn(e){let t=mo(e);return t.defaultPrevented||$o.has(t)}var uu=new Set(["a","c","v","x","z","y","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","Backspace","Delete"]);function vn(e){let t=mo(e);return $o.has(t)||/^F([1-9]|1[0-2])$/.test(t.key)?false:po(t)?true:t.altKey?false:t.ctrlKey||t.metaKey?uu.has(t.key.length===1?t.key.toLowerCase():t.key):true}var Yt="[data-kanuni-editor]",yl=".kanuni-datagrid-portal, [data-kanuni-portal]";function Dt(e,t=false){let n=e.currentTarget,r=e.target;return typeof Node>"u"||!(n instanceof Node)||!(r instanceof Node)||n.contains(r)?true:t?!!(r instanceof Element?r:r.parentElement)?.closest(yl):false}function Wo(e,t){return t?!!t.closest(`${e}, .kanuni-datagrid-detached, [data-kanuni-portal], ${Yt}`):false}function Nt(e){let t=e?.numberFormat;if(!(!t?.locale||e?.lookup||e?.renderEditor||e?.allowFormulas))return t}function Vo(e,t){return typeof e=="number"||e===null||e===void 0?editableNumberText(e,t.locale):e}function hl(e,t){if(typeof e!="string")return e;let n=readNumberText(e,t);return n===void 0?Number.NaN:n}function Rl(e,t,n){let r=e.getColumnModel().getNumberFormat(t);if(r)return [{type:"custom",validate:({value:i})=>{if(typeof i!="number")return true;let a=n();if(Number.isNaN(i)){let f=formatNumberDisplay(r.decimals===0?1234:1234.5,r);return a.validationNumberLocale.replace("{example}",f)}let u=numberBoundsError(i,r);if(!u)return true;let m=formatNumberDisplay(u.limit,{...r,decimals:void 0});return u.bound==="min"?a.validationMin.replace("{min}",m):a.validationMax.replace("{max}",m)}}]}var zo=new WeakMap,Yo=new WeakMap,Gu=1e5,Nu=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function Mu(e){let{controller:t,canEditColumn:n}=e;return {controller:t,mode:e.mode??"cell",onSave:e.onSave,editOnKeyPress:e.editOnKeyPress,editKeys:e.editKeys,focusCellOnTab:e.focusCellOnTab,focusCellOnCycle:e.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,enabled:e.enabled,savedDuration:e.savedDuration,range:false,history:false,onReady:e.onReady,canEditColumn:r=>{let i=t?.getColumnModel().getDef(r);return i?.lookup||i?.renderEditor||i?.allowFormulas===true?false:n?.(r)??true}}}function ta(e){let t=e.controller?.isEnterpriseEdition()??false;return Pu(t?e:Mu(e))}function Pu({controller:e,mode:t="batch",rules:n,onSave:r,crud:i,allowAdding:a,allowUpdating:u,allowDeleting:m,onInitNewRow:f,onRowInserted:w,onRowUpdated:C,onRowRemoved:h,editOnKeyPress:F,confirmDelete:E,confirmDeleteMessage:k,insertKey:S,appendOnArrowDown:K,newRowPosition:L,focusCellOnTab:P,focusCellOnCycle:N,keepEditingOnTab:_,enabled:X=true,savedDuration:j,range:W=true,history:R=true,canEditColumn:M,onReady:g,commitOn:y="cell",rowMessages:G=false,editKeys:D,appendOnTab:U,deleteKey:re,fillKeys:A,rangePaste:Z}){let de=Se(),[fe,Oe]=useState(0),Te=useCallback(()=>Oe(s=>s+1),[]),be=useMemo(()=>new RangeSelectionEngine,[]),Ne=useMemo(()=>({start(s,c){be.start(s,c),Te();},add(s,c){be.add(s,c),Te();},extend(s,c){be.extend(s,c)&&Te();},finish(){be.finish(),Te(),e?.notifyViewStateChanged();},clear(){be.clear()&&(Te(),e?.notifyViewStateChanged());},contains:(s,c)=>be.contains(s,c),isAnchor:(s,c)=>be.isAnchor(s,c),getRange:()=>be.getRange(),getBounds:()=>be.getBounds(),toTsv:s=>be.toTsv(s),selectColumn(s,c,x){return be.selectColumn(s,c,x)?(Te(),e?.notifyViewStateChanged(),true):false},fullColumns:s=>be.fullColumns(s)}),[be,Te,e]),O=useRef(null);useEffect(()=>{if(!(!e||!W))return e.registerViewStatePart("ranges",{session:true,get:()=>rangesToSaved(be.getRanges(),e.getVisualColumnIds()),apply:s=>{be.setRanges(rangesFromSaved(s,e.getVisualColumnIds())),Te();}})},[e,W,be,Te]);let[ie,oe]=useState(null),V=useRef({onSave:r,crud:i,allowAdding:a,allowUpdating:u,allowDeleting:m,onInitNewRow:f,onRowInserted:w,onRowUpdated:C,onRowRemoved:h,editOnKeyPress:F,confirmDelete:E,confirmDeleteMessage:k,insertKey:S,appendOnArrowDown:K,newRowPosition:L,focusCellOnTab:P,focusCellOnCycle:N,keepEditingOnTab:_,canEditColumn:M,onReady:g,historyEnabled:R,rowMessages:G,editKeys:D,appendOnTab:U,deleteKey:re,fillKeys:A,rangePaste:Z,text:de});V.current={onSave:r,crud:i,allowAdding:a,allowUpdating:u,allowDeleting:m,onInitNewRow:f,onRowInserted:w,onRowUpdated:C,onRowRemoved:h,editOnKeyPress:F,confirmDelete:E,confirmDeleteMessage:k,insertKey:S,appendOnArrowDown:K,newRowPosition:L,focusCellOnTab:P,focusCellOnCycle:N,keepEditingOnTab:_,canEditColumn:M,onReady:g,historyEnabled:R,rowMessages:G,editKeys:D,appendOnTab:U,deleteKey:re,fillKeys:A,rangePaste:Z,text:de};let Ee=useRef(null),d=useMemo(()=>{if(!e||!X)return null;let s=c=>e.getRowByKey(c);return new EditingEngine({mode:t,commitOn:y,rules:n,messages:de,onChange:Te,onAutoSaveFailed:c=>Ee.current?.(c),onCellValueChanged:c=>e.notifyCellValueChanged(c),onEditingStarted:c=>e.notifyEditingStarted(c),onEditingStopped:c=>e.notifyEditingStopped(c),onRowEditingStarted:c=>e.notifyRowEditingStarted(c),onRowEditingStopped:c=>e.notifyRowEditingStopped(c),onHistoryStarted:({kind:c,label:x})=>e.notifyHistoryStarted(c,x),onHistoryEnded:({kind:c,...x})=>e.notifyHistoryEnded(c,x),onChangesChanged:c=>e.notifyChangesChanged(c),newRowKey:c=>{let x=e.getRowKeyField(),H=x?c[x]:void 0;return isRowKey(H)&&H!==""?H:void 0},readValue:(c,x)=>{let H=s(c);return H?e.getColumnModel().getStoredValue(H,x):void 0},formatForEdit:(c,x,H)=>{let J=Nt(e.getColumnModel().getDef(x));return J?Vo(H,J):e.formatCellForEdit(x,H)},parseFromEdit:(c,x,H)=>{let J=e.getColumnModel().getDef(x),$=Nt(J);return $&&!J?.valueParser?hl(H,$):e.parseCellFromEdit(x,H,c)},columnRules:c=>Rl(e,c,()=>V.current.text),readRow:s,editableColumns:c=>{let x=e.getColumnLayout(),H=s(c);return [...x.left,...x.center,...x.right].map(J=>J.state.id).filter(J=>{if(e.getColumnModel().getDef(J)?.editable===false||V.current.canEditColumn&&!V.current.canEditColumn(J))return false;let $=V.current.allowUpdating;return $===void 0?true:typeof $=="function"?$(H,J):$})},isColumnEditable:c=>e.getColumnModel().getDef(c)?.editable!==false&&(V.current.canEditColumn?.(c)??true),applyValue:(c,x,H)=>e.writeCellValue(c,x,H),storedValue:(c,x,H)=>e.valueAfterWrite(c,x,H),insertRow:(c,x,H,J)=>{let $=e.getRowKeyField(),Y={...x};$&&!isRowKey(Y[$])&&(Y[$]=c),e.applyTransaction({add:[Y],addPosition:H,addBeforeKey:J});},dropRow:c=>e.applyTransaction({remove:[c]}),replaceRow:(c,x)=>{let H=e.getRowKey(x);return H===c?(e.applyTransaction({update:[x]}),H):(e.applyTransaction({remove:[c],add:[x]}),H)},allowAdding:()=>V.current.allowAdding??false,allowUpdating:(c,x)=>{let H=V.current.allowUpdating;return H===void 0?true:typeof H=="function"?H(c,x):H},allowDeleting:c=>{let x=V.current.allowDeleting;return x===void 0?false:typeof x=="function"?x(c):x},onInitNewRow:c=>V.current.onInitNewRow?.(c),get newRowPosition(){return V.current.newRowPosition},onRowInserted:(c,x)=>V.current.onRowInserted?.(c,x),onRowUpdated:(c,x,H)=>V.current.onRowUpdated?.(c,x,H),onRowRemoved:(c,x)=>V.current.onRowRemoved?.(c,x),crud:{get insert(){let c=V.current.crud?.insert;return c&&(x=>c(x))},get update(){let c=V.current.crud?.update;return c&&((x,H,J)=>c(x,H,J))},get remove(){let c=V.current.crud?.remove;return c&&((x,H)=>c(x,H))}},onSave:c=>V.current.onSave?.(c)})},[e,X]);useEffect(()=>{d?.setMessages(de);},[d,de]),useEffect(()=>{d?.setMode(t);},[d,t]),useEffect(()=>{d?.setCommitOn(y);},[d,y]),useEffect(()=>{j!==void 0&&d?.setSavedDuration(j);},[d,j]);let Le=useRef(null),He=useRef(null),Ge=useMemo(()=>createEditingApi({engine:()=>Le.current,history:()=>V.current.historyEnabled!==false,addRow:(s,c)=>He.current?.(s,c)??null}),[]),Ue=useRef(false);useEffect(()=>{if(!(!e||!d))return Le.current=d,e.setEditingApi(Ge),Ue.current||(Ue.current=true,V.current.onReady?.(Ge)),()=>{Le.current=null,e.editing===Ge&&e.setEditingApi(null);}},[e,d,Ge]),useEffect(()=>(d?.resume(),()=>d?.dispose()),[d]),useEffect(()=>{if(!e||!d)return;let s=false,c=e.events.on("rowsChanged",H=>{s=H.removed===0;}),x=e.events.on("dataUpdated",()=>{let H=s;s=false,!H&&d.retainKeys(new Set(e.getDataRows().map(J=>J.key)));});return ()=>{c(),x();}},[e,d]),useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>Ne.clear())},[e,Ne]),useEffect(()=>{if(!(!e||!d))return e.setPendingValueReader({effectiveValue:(s,c,x)=>d.changes.effectiveValue(s,c,x),effectiveRow:(s,c)=>d.changes.applyPendingTo(s,c),hasPending:()=>d.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,d]),useEffect(()=>{if(!(!e||!d||!R))return e.setHistoryDelegate({undo:()=>d.undo(),redo:()=>d.redo(),canUndo:()=>d.canUndo(),canRedo:()=>d.canRedo(),depth:()=>d.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,d,R]);let et=useMemo(()=>createDebouncedCommit(150),[]);useEffect(()=>()=>et.cancelAll(),[et]);let Q=useRef(fe);useEffect(()=>{!e||!d||fe===Q.current||(Q.current=fe,et.schedule("footer",()=>e.refreshSummaries()));},[e,d,fe,et]);let ge=useCallback(s=>{let c=e?.getRows()[s];return c&&c.kind==="data"?c.key:null},[e]),ue=useCallback(s=>e?.getColumnIdAt(s)??null,[e]),qe=useCallback((s,c)=>{e?.scrollToCell(s,c),d?.beginEdit(s,c);},[d,e]),Fe=useCallback((s={},c,x={})=>{let H=d?.addRow(s,c,x.position)??null;if(H===null||!e)return H;if(isRowEditMode(t))return e.revealRow(H),H;let J=e.getRowKeyField(),$=e.getColumnModel().runtime().find(Y=>Y.state.visible&&Y.def.editable!==false&&(J===null||(Y.def.field??Y.state.id)!==J));return e.revealRow(H),$&&(e.focusCell(H,$.state.id),x.open!==false?d?.beginEdit(H,$.state.id):T()),H},[d,e]);He.current=Fe;let te=useCallback(s=>{if(!d)return false;let c=V.current.confirmDelete;if(c===false)return d.removeRow(s);let x=e?.getRowByKey(s);if(typeof c!="function")return Ae({rowKey:s,message:V.current.confirmDeleteMessage??de.editDeleteConfirm}),false;let H=c(s,x);return typeof H=="boolean"?H?d.removeRow(s):false:(H.then(J=>{J&&d.removeRow(s);}),false)},[d,e]),Re=useCallback((s,c)=>{if(!d||!e)return;if(d.isRemoved(s)){d.restoreRow(s);return}if(!d.canDelete(s))return;let x=V.current.confirmDelete;if(typeof x!="function")return;let H=()=>{let Y=e.getRows(),me=Y.findIndex(pe=>pe.key===s);if(me<0)return null;for(let pe=me+1;pe<Y.length;pe++)if(Y[pe]?.kind==="data")return Y[pe].key;for(let pe=me-1;pe>=0;pe--)if(Y[pe]?.kind==="data")return Y[pe].key;return null},J=()=>{let Y=d.getMode()!=="batch"||d.changes.isInserted(s),me=Y?H():null;d.removeRow(s)&&Y&&(me!==null?e.focusCell(me,c):e.clearFocus(),T());},$=x(s,e.getRowByKey(s));if(typeof $=="boolean"){$&&J();return}$.then(Y=>{Y&&J();});},[d,e]),T=useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),b=useCallback((s,c={})=>{if(!d||!e)return false;let x=d.getSession(),H=x?{rowKey:x.rowKey,columnId:x.columnId}:e.getFocus();if(!H)return false;let J=x!==null;if(!d.commitEdit())return false;let $=()=>(J&&T(),false),Y=ze=>e.getColumnModel().getDef(ze)?.editable!==false&&(V.current.canEditColumn?.(ze)??true),me=e.getColumnModel().runtime().filter(ze=>ze.state.visible).map(ze=>ze.state.id);if(edgeEditableColumn(me,Y,1)===null)return false;let pe=e.getRows(),ke=pe.findIndex(ze=>ze.key===H.rowKey);if(ke<0)return false;let Ye=nextEditableColumn(me,Y,H.columnId,s);if(Ye===null){if(c.cycle===false)return $();let ze=s;do ke+=ze;while(ke>=0&&ke<pe.length&&pe[ke]?.kind!=="data");if(ke>=pe.length&&s===1&&V.current.appendOnTab===true&&d.canAdd())return Fe({},void 0,{position:"last",open:c.open===true})!==null;if(ke<0||ke>=pe.length)return $();Ye=edgeEditableColumn(me,Y,s);}let Ve=pe[ke];return !Ve||Ve.kind!=="data"?$():(e.focusCell(Ve.key,Ye),e.scrollToCell(Ve.key,Ye),c.open===true?d.beginEdit(Ve.key,Ye):(T(),true))},[d,e,Fe]),I=useCallback((s,c,x)=>!d||!e||d.isEditingRow()||!d.canEditRow(s)||(e.scrollToCell(s,c),!d.beginRowEdit(s))?false:(x!==void 0&&d.getMode()==="row"&&(zo.set(d,c),d.setRowEditValue(c,x)),true),[d,e]),q=useCallback(s=>{if(!d||!e||d.getSession())return false;let c=e.getFocus();if(!c)return false;let x=e.getColumnModel().getDef(c.columnId);if(x?.editable===false)return false;let H=e.getColumnModel().getEditorDataType(c.columnId);if(H==="boolean")return false;let J=s,$,Y=Nt(x);if(Y){let{decimal:pe}=numberSeparators(Y.locale);if(!(/^\d$/.test(s)||s===pe||s==="-"&&Y.allowNegative!==false))return false}else if(H==="number")if(/^\d$/.test(s))J=Number(s);else if(s==="-"||s===",")J=void 0,$=s;else return false;else if(H==="date"){if(!/^\d$/.test(s))return false;J=void 0,$=s;}if(isRowEditMode(d.getMode()))return I(c.rowKey,c.columnId,J);if(e.scrollToCell(c.rowKey,c.columnId),!d.beginEdit(c.rowKey,c.columnId,J))return false;let me=d.getSession();return $!==void 0&&me&&Yo.set(me,$),true},[d,e,I]),[ve,ee]=useState(null),[Me,Ae]=useState(null),$e=useCallback(s=>{let c=Me;Ae(null),s&&c&&d&&d.removeRow(c.rowKey);},[Me,d]),Ce=useCallback(s=>{if(d?.getMode()==="cell"&&d.getCommitOn()==="row"){if(V.current.rowMessages)return;ee({message:s.error??de.editSaveFailed,rowKey:s.rowKey,columnId:s.columnId});return}ee({message:s.error??de.editSaveFailed,rowKey:s.rowKey,columnId:s.columnId}),s.rowKey!==void 0&&s.columnId!==void 0&&(e?.revealRow(s.rowKey),e?.focusCell(s.rowKey,s.columnId));},[e,de,d]);Ee.current=Ce;let ce=useRef(false);useEffect(()=>{if(!e||!d)return;let s=()=>d.getMode()==="cell"&&d.getCommitOn()==="row",c=e.events.on("focusedRowChanged",Y=>{s()&&d.commitRows(Y.rowKey);});if(typeof document>"u")return c;let x=`[data-grid-id="${CSS.escape(e.gridId)}"]`,H=Y=>!Wo(x,Y),J=null,$=Y=>{if(!s()||ce.current)return;let me=Y.target instanceof Element?Y.target:null;if(!me||!me.closest(x))return;let pe=Y.relatedTarget instanceof Element?Y.relatedTarget:null;pe&&!H(pe)||!me.isConnected&&!pe||(J!==null&&clearTimeout(J),J=setTimeout(()=>{if(J=null,d.getSession()||ce.current)return;let ke=document.activeElement;ke&&ke!==document.body&&!H(ke)||d.commitRows(null);},0));};return document.addEventListener("focusout",$,true),()=>{c(),document.removeEventListener("focusout",$,true),J!==null&&clearTimeout(J);}},[e,d]);let Lt=useCallback((s,c)=>{if(!d||!e||d.getMode()!=="cell"||d.getCommitOn()!=="row"||!d.isEmptyNewRow(s))return false;let x=e.getRows(),H=x.findIndex(Y=>Y.key===s),J=null;for(let Y=H+1;H>=0&&Y<x.length&&J===null;Y++)x[Y]?.kind==="data"&&(J=x[Y].key);for(let Y=H-1;H>=0&&Y>=0&&J===null;Y--)x[Y]?.kind==="data"&&(J=x[Y].key);d.discardEmptyNewRow(s);let $=c??e.getFocus()?.columnId??null;return J!==null&&$!==null?e.focusCell(J,$):e.clearFocus(),true},[d,e]),l=useRef(null),nt=useCallback(()=>{if(!d)return;let s=d.getSession();d.cancelEdit(),s&&Lt(s.rowKey,s.columnId),T();},[d,Lt,T]),xt=useCallback(s=>{!d||!d.commitEdit()||s!=="blur"&&(s==="down"&&V.current.editKeys?.enter!==true&&e?.moveFocus("down"),T());},[d,e,T]),We=useCallback(s=>{if(!d||!e)return false;if(s==="next"||s==="previous"){if(V.current.focusCellOnTab===false)return d.commitEdit()?(T(),true):false;let c=d.getSession();return b(s==="next"?1:-1,{open:V.current.keepEditingOnTab===true,cycle:V.current.focusCellOnCycle!==false}),c===null||d.getSession()!==c}return d.commitEdit()?s==="blur"?(d.getMode()==="cell"&&d.getCommitOn()==="row"&&typeof document<"u"&&!Wo(`[data-grid-id="${CSS.escape(e.gridId)}"]`,document.activeElement)&&d.commitRows(null),true):(s==="down"&&e.moveFocus("down"),T(),true):false},[d,e,T,b]),Rt=useCallback((s,c)=>{ce.current=s,!(s||typeof document>"u")&&setTimeout(()=>{setTimeout(()=>{let x=document.activeElement;if(x&&x!==document.body&&x.isConnected)return;let H=d?.getSession()?c?.():null;H?.isConnected?H.focus({preventScroll:true}):T();},0);},0);},[d,T]);useEffect(()=>{d?.getSession()||(ce.current=false);},[d,fe]);let Ct=useCallback(()=>ce.current,[]),ft=useCallback(()=>{let s=d?.getSession()??null,c=d?.getRowSession()??null,x=e?.getFocus()??null,H=s?{rowKey:s.rowKey,columnId:s.columnId}:c?{rowKey:c.rowKey,columnId:x?.columnId??""}:x?{rowKey:x.rowKey,columnId:x.columnId}:null;return {editing:s!==null||c!==null,cell:H,isNewRow:!!d&&H!==null&&d.changes.isInserted(H.rowKey),commit:()=>d?d.getRowSession()?false:d.getSession()?d.commitEdit()?(T(),true):false:true:true,cancel:()=>{d&&(d.getRowSession()?l.current?.():d.getSession()&&nt());}}},[d,e,T,nt]),Ze=useCallback(async()=>{if(!d)return;ee(null);let s=await d.saveChanges();s.saved||s.superseded||Ce(s);},[d,Ce]),In=useCallback(()=>ee(null),[]),Vt=useCallback(()=>{ee(null),d?.cancelChanges();},[d]);useEffect(()=>{(d?.getSession()||d?.isEditingRow())&&ee(null);},[fe,d]);let ot=useMemo(()=>{if(!e||!be.getRange())return null;let s=be.cellCount();if(s>Gu)return {cells:s,truncated:true,numeric:null};let c=e.getColumnModel(),x=e.getVisualColumnIds(),H=e.getRows(),J=be.getStats(($,Y)=>{let me=H[$],pe=x[Y];if(!me||me.kind!=="data"||!pe)return;let ke=d?d.effectiveValue(me.key,pe):c.getCellValue(me.data,pe);return typeof ke=="string"&&ke.trim()!==""&&!Number.isNaN(Number(ke))?Number(ke):ke});return {cells:s,truncated:false,numeric:J}},[e,be,d,fe]),It=useCallback((s,c)=>!!d&&!isChromeColumn(c)&&d.canUpdate(s,c),[d]),Jt=useCallback((s,c)=>{let x=Ne.getRange();O.current=x??{startRow:s,startColumn:c,endRow:s,endColumn:c},oe(null);},[Ne]),kt=useCallback((s,c)=>{let x=O.current;if(!x)return;let H=computeFillTarget(x,s,c);oe(H?{startRow:H.bounds.minRow,startColumn:H.bounds.minColumn,endRow:H.bounds.maxRow,endColumn:H.bounds.maxColumn}:null);},[]),Ut=useCallback((s,c)=>{if(!d||!e)return 0;let H=computeFillValues(s,c,(J,$)=>{let Y=ge(J),me=ue($);return Y!==null&&me?d.effectiveValue(Y,me):void 0}).map(J=>{let $=ge(J.row),Y=ue(J.column);if($===null||!Y||!It($,Y))return null;let me=J.from?e.shiftCellFormula(Y,J.value,J.row-J.from.row,J.column-J.from.column):J.value;return {rowKey:$,columnId:Y,value:me}}).filter(J=>J!==null);return e.notifyClipboardGesture("fill",H.length,()=>H.length===0?false:(d.applyEdits(H,fillText(de.editFillUndo,{count:H.length}),"fill"),true)),H.length},[d,e,ge,ue,It,de]),Ft=useCallback(()=>{let s=O.current,c=ie;if(O.current=null,oe(null),!s||!c||!d||!e)return;let x=computeFillTarget(s,c.endRow,c.endColumn);x&&Ut(s,x);},[ie,d,e,Ut]),gt=useCallback((s,c)=>{if(!e)return "";let x=e.getRows()[s],H=e.getColumnIdAt(c);if(!x||x.kind!=="data"||!H)return "";let J=e.getColumnModel(),$=d?d.effectiveValue(x.key,H):J.getCellValue(x.data,H),Y=cellDisplayText(J.getDef(H),$,x.data);return e.clipboardCellText(x,H,$,Y).replace(/[\t\r\n]+/g," ")},[e,d]),Kt=useCallback((s="copy")=>{if(!e||!Ne.getRange())return false;let c=Ne.toTsv(gt);return e.notifyClipboardGesture("copy",c?c.split(`
|
|
2
|
+
`).length:0,()=>e.writeClipboard(c,s)),true},[e,Ne,gt]),Je=useCallback(s=>{if(!e||!d)return false;let c=Ne.getRange()!==null,x=s??e.getFocus();if(!c&&!x)return false;if(!Kt("cut")){let Y=x?e.getVisualColumnIds().indexOf(x.columnId):-1,me=x?e.getRows().findIndex(ke=>ke.key===x.rowKey):-1;if(me<0||Y<0)return false;let pe=gt(me,Y);e.notifyClipboardGesture("copy",pe?1:0,()=>e.writeClipboard(pe,"cut"));}let H=[];if(c)be.forEachCell((Y,me)=>H.push([Y,me]));else {let Y=e.getRows().findIndex(pe=>pe.key===x.rowKey),me=e.getVisualColumnIds().indexOf(x.columnId);if(Y<0||me<0)return false;H.push([Y,me]);}let J=e.getRows(),$=[];for(let[Y,me]of H){let pe=J[Y];if(!pe||pe.kind!=="data")continue;let ke=e.getColumnIdAt(me);!ke||isChromeColumn(ke)||d.canUpdate(pe.key,ke)&&$.push({rowKey:pe.key,columnId:ke,value:null});}return e.notifyClipboardGesture("cut",$.length,()=>$.length===0?false:(d.applyEdits($,fillText(de.editCutUndo,{count:$.length}),"cut"),true)),true},[e,d,Ne,be,Kt,gt,de]),Xe=useCallback((s,c)=>{if(!d||!e||!s)return;let x=V.current.rangePaste===false,H=e.processPastedTable(x?[[s.replace(/\r?\n$/,"")]]:parseClipboardTable(s));if(!H)return;let J=x?null:Ne.getBounds(),$,Y;if(J)$=J.minRow,Y=J.minColumn;else {let Ye=c??e.getFocus();if(!Ye||($=e.getRows().findIndex(Ve=>Ve.key===Ye.rowKey),Y=e.getVisualColumnIds().indexOf(Ye.columnId),$<0||Y<0))return}let me=computePasteCells(H,$,Y,{target:J,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),pe=e.getColumnModel(),ke=me.map(Ye=>{let Ve=ge(Ye.row),ze=ue(Ye.column);return Ve===null||!ze||!It(Ve,ze)?null:{rowKey:Ve,columnId:ze,value:e.pastedCellValue(Ve,ze,Ye.text,coercePastedValue(Ye.text,pe.getEditorDataType(ze)))}}).filter(Ye=>Ye!==null);e.notifyClipboardGesture("paste",ke.length,()=>ke.length===0?false:(d.applyEdits(ke,fillText(de.editPasteUndo,{count:ke.length}),"paste"),true));},[d,e,Ne,ge,ue,It,de]),Ke=useCallback(async s=>{let c="";try{c=await navigator.clipboard.readText();}catch{return}Xe(c,s);},[Xe]),it=useCallback(()=>{if(!e||typeof document>"u")return false;let s=document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"]`);if(!s)return false;let c=document.createElement("textarea");c.className="kanuni-datagrid-paste-catcher",c.setAttribute("aria-hidden","true"),c.tabIndex=-1,Object.assign(c.style,{position:"fixed",left:"-10000px",top:"0",width:"1px",height:"1px",opacity:"0"}),s.appendChild(c);let x=false,H=$=>{x||(x=true,c.removeEventListener("paste",J),c.remove(),T(),Xe($));},J=$=>{$.preventDefault(),H($.clipboardData?.getData("text/plain")??"");};return c.addEventListener("paste",J),c.focus({preventScroll:true}),setTimeout(()=>H(c.value),300),true},[e,T,Xe]),[B,we]=useState(null),he=useCallback((s,c)=>d?(we(null),d.beginRowEdit(s,c)):false,[d]),ye=useCallback(async()=>{if(!d||!d.getRowSession())return false;let c=e?.getVisualColumnIds()??[],x=await d.saveRowEdit(c);return we(x.saved?null:x.error??null),x.saved&&T(),x.saved},[d,e,T]),ne=useCallback(()=>{d&&(we(null),d.cancelRowEdit(),T());},[d,T]);l.current=ne,useEffect(()=>{if(!(!e||!d))return e.setEditingDelegate({startEditingCell:(s,c)=>(e.scrollToCell(s,c),d.beginEdit(s,c)),stopEditing:async s=>{if(d.isEditingRow())return s?(ne(),true):ye();if(!d.getSession())return false;if(s)return d.cancelEdit(),T(),true;let c=d.commitEdit();return c&&T(),c},getEditingCells:()=>{let s=d.getRowSession();if(s)return e.getVisualColumnIds().filter(x=>!isChromeColumn(x)&&d.canUpdate(s.rowKey,x)).map(x=>({rowKey:s.rowKey,columnId:x}));let c=d.getSession();return c?[{rowKey:c.rowKey,columnId:c.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,d,ye,ne,T]);let yt=useCallback(s=>{if(!d||!e)return false;let c=po(s),x=(s.ctrlKey||s.metaKey)&&!c;if(R&&x&&(s.key==="z"||s.key==="Z"))return s.preventDefault(),s.shiftKey?d.redo():d.undo(),true;if(R&&x&&(s.key==="y"||s.key==="Y"))return s.preventDefault(),d.redo(),true;if(W&&x&&(s.key==="v"||s.key==="V"))return typeof window<"u"&&window.isSecureContext===false&&it()||(s.preventDefault(),Ke()),true;if(W&&x&&(s.key==="x"||s.key==="X"))return s.preventDefault(),Je(),true;if(x&&(s.key==="c"||s.key==="C"))return Kt()?(s.stopPropagation(),true):false;if(d.isEditingRow()){if(s.key==="Enter")return s.preventDefault(),ye(),true;if(s.key==="Escape")return s.preventDefault(),ne(),true}if(s.key==="Escape"&&d.getSession())return s.preventDefault(),nt(),true;if(s.key==="Escape"&&!x&&!d.getSession()){let $=e.getFocus();if($&&Lt($.rowKey,$.columnId))return s.preventDefault(),true}if(s.key==="Enter"&&V.current.editKeys?.enter===true&&!x&&!d.getSession()&&!d.isEditingRow()){let $=e.getFocus();if($&&!isChromeColumn($.columnId)&&d.canUpdate($.rowKey,$.columnId)){let Y;if(isRowEditMode(d.getMode())?Y=I($.rowKey,$.columnId):(e.scrollToCell($.rowKey,$.columnId),Y=d.beginEdit($.rowKey,$.columnId)),Y)return s.preventDefault(),s.stopPropagation(),true}}if(s.key==="Tab"&&V.current.focusCellOnTab!==false&&!d.getSession()&&e.getFocus()&&(b(s.shiftKey?-1:1,{open:V.current.keepEditingOnTab===true,cycle:V.current.focusCellOnCycle!==false})||s.shiftKey&&V.current.appendOnTab===true))return s.preventDefault(),true;if(W&&s.shiftKey&&!s.altKey&&!d.getSession()&&RANGE_KEY_DIRECTIONS[s.key]){let $=e.getFocus(),Y=e.getVisualColumnIds(),me=Y.flatMap((Ye,Ve)=>isChromeColumn(Ye)?[]:[Ve]),pe=$?e.getRowIndex($.rowKey):-1,ke=$?Y.indexOf($.columnId):-1;if(pe>=0&&ke>=0&&me.length>0){s.preventDefault(),s.stopPropagation();let Ye=e.getRows(),Ve=extendRangeByKey(Ne.getRange(),{row:pe,column:ke},RANGE_KEY_DIRECTIONS[s.key],x,{rows:Ye.length,firstColumn:me[0],lastColumn:me[me.length-1]});Ne.getRange()||Ne.start(Ve.startRow,Ve.startColumn),Ne.extend(Ve.endRow,Ve.endColumn),e.notifyViewStateChanged();let ze=Ye[Ve.endRow]?.key;return ze!==void 0&&e.scrollToCell(ze,Y[Ve.endColumn]),true}}if(W&&V.current.fillKeys!==false&&x&&!s.shiftKey&&!s.altKey&&!d.getSession()&&(s.key==="d"||s.key==="D"||s.key==="r"||s.key==="R")){let $=e.getFocus(),Y=e.getVisualColumnIds(),me=Y.findIndex(ze=>!isChromeColumn(ze)),pe=$?e.getRowIndex($.rowKey):-1,ke=$?Y.indexOf($.columnId):-1,Ye=Ne.getRange()??(pe>=0&&ke>=0?{startRow:pe,startColumn:ke,endRow:pe,endColumn:ke}:null),Ve=Ye?keyboardFill(Ye,s.key.toLowerCase()==="d"?"down":"right",Math.max(0,me)):null;if(Ve)return s.preventDefault(),s.stopPropagation(),Ut(Ve.source,Ve.target),true}!x&&!s.shiftKey&&!d.getSession()&&Nu.has(s.key)&&Ne.clear();let H=V.current.insertKey;if(s.key==="Insert"&&(H===true||H==="above"||H==="below")&&!x&&!d.getSession()){let $=e.getFocus();if($){if(s.preventDefault(),d.canAdd())if(H==="below"){let Y=e.getRows(),me=Y.findIndex(ke=>ke.key===$.rowKey),pe;for(let ke=me+1;me>=0&&ke<Y.length&&pe===void 0;ke++)Y[ke]?.kind==="data"&&(pe=Y[ke].key);pe!==void 0?Fe({},pe):Fe({},void 0,{position:"last"});}else Fe({},$.rowKey);return true}}if(s.key==="Delete"&&x&&!s.shiftKey&&V.current.deleteKey===true&&!d.getSession()){let $=e.getFocus();if($)return s.preventDefault(),Re($.rowKey,$.columnId),true}if(s.key==="ArrowDown"&&V.current.appendOnArrowDown===true&&!x&&!s.shiftKey&&!d.getSession()){let $=e.getFocus(),Y=e.getRows(),me=Y.length>0?Y[Y.length-1]:void 0;if($&&me&&me.key===$.rowKey&&d.canAdd())return s.preventDefault(),s.stopPropagation(),Fe({}),true}if(s.key==="F2"&&V.current.editKeys?.f2!==false&&!x&&!s.shiftKey){let $=e.getFocus();if($)return s.preventDefault(),isRowEditMode(d.getMode())?(I($.rowKey,$.columnId),true):(e.scrollToCell($.rowKey,$.columnId),d.beginEdit($.rowKey,$.columnId),true)}return (V.current.editKeys?.typing??V.current.editOnKeyPress)!==false&&!x&&(!s.altKey||c)&&s.key.length===1&&s.key!==" "&&!d.getSession()&&q(s.key)?(s.preventDefault(),true):false},[d,e,W,R,Ke,Je,Kt,q,I,b,Fe,ye,ne,Ut,nt,Lt,Re,it]);return {engine:d,range:Ne,version:fe,api:Ge,beginEdit:qe,beginRowEdit:he,saveRowEdit:ye,cancelRowEdit:ne,rowSaveError:B,addRow:Fe,commitCellEditor:xt,commitCustomEditor:We,suspendBlurCommit:Rt,blurCommitSuspended:Ct,keyContext:ft,doubleClickEdits:D?.doubleClick!==false,editAdjacentCell:b,editFocusedCellWith:q,cancelCellEdit:nt,focusScroller:T,deleteRow:te,saveChanges:Ze,cancelChanges:Vt,selectionStats:ot,handleKeyDown:yt,cut:Je,copySelection:Kt,paste:Ke,saveError:ve,clearSaveError:In,pendingDelete:Me,resolveDelete:$e,fillPreview:ie,startFillDrag:Jt,moveFillDrag:kt,endFillDrag:Ft,isDraggingFill:O.current!==null}}var Gl=createContext(""),Nl=createContext(()=>document.body),Bu=typeof window<"u"?useLayoutEffect:useEffect;function aa({theme:e,density:t,palette:n,portalContainer:r,children:i}){let a=useMemo(()=>themeClassName(e,t,n),[e,t,n]),u=useRef(r);Bu(()=>{u.current=r;},[r]);let m=useMemo(()=>()=>portalTarget(u.current),[]);return jsx(Gl.Provider,{value:a,children:jsx(Nl.Provider,{value:m,children:i})})}function Zt(){return useContext(Nl)}function Bt(){return useContext(Gl)}var la=8,Wu=26,Il=44;function Vu(){return typeof window<"u"&&!!window.matchMedia?.("(pointer: coarse)").matches}var Fl=4;function Hl(e,t,n,r,i="startsWith"){let a=foldText(t.trim());if(a==="")return null;let u=[],m=n==="contains",f=i==="contains";for(let w=0;w<e.length;w++){let C=e[w];if(m?C.includes(a):C.startsWith(a))u.push(w);else if(r){let h=r[w];(f?h.includes(a):h.startsWith(a))&&u.push(w);}}return u}function Uu(e,t,n){let r=e.map(a=>foldText(a.label)),i=Hl(r,t,n);return i===null?e:i.map(a=>e[a])}function wo(e){return e?{matchMode:lookupMatchMode(e,"name"),codeMatchMode:lookupMatchMode(e,"code"),linked:!!e.linkedColumns,allowCustom:e.allowCustom??false,autoCompleteSingle:e.autoCompleteSingle??true,onNoMatch:e.onNoMatch??"keep-open"}:{}}function yo(e,t,n){if(!e||!e.linkedColumns&&!e.map)return null;let r={[t]:n.value},i=e.linkedColumns;return i&&(r[i.code]=n.value,r[i.name]=n.label,i.id&&(r[i.id]=n.id)),e.map&&Object.assign(r,e.map(n)),r}function En({options:e,value:t,matchMode:n="startsWith",codeMatchMode:r="startsWith",linked:i=false,allowCustom:a=false,autoCompleteSingle:u=true,onNoMatch:m="keep-open",onPick:f,invalid:w,autoFocus:C=true,testId:h,columnId:F,ariaLabel:E,onChange:k,onCommit:S,commitOnPick:K=true,onCancel:L,onTab:P,onBlurCommit:N}){let _=Se(),X=Bt(),j=Zt(),W=useRef(null),R=useRef(null),[M,g]=useState(null),[y,G]=useState(false),[D,U]=useState(0),[re,A]=useState(0),[Z,de]=useState(null),[fe,Oe]=useState(false),[Te]=useState(()=>Vu()?Il:Wu),be=u&&!a,Ne=useMemo(()=>e.map(T=>foldText(T.label)),[e]),O=useMemo(()=>i?e.map(T=>foldText(T.value==null?"":String(T.value))):null,[e,i]),ie=useMemo(()=>{if(i)return t==null?"":String(t);let T=e.find(b=>b.value===t);return T?T.label:t==null||t===""?"":String(t)},[e,t,i]),oe=useMemo(()=>M===null?null:Hl(Ne,M,n,O,r),[Ne,O,M,n,r]),V=oe===null?e.length:oe.length,Ee=T=>e[oe===null?T:oe[T]],d=M??ie,Le=T=>{let b=foldText(T.trim());if(b==="")return -1;if(O){let I=O.indexOf(b);if(I>=0)return I}return Ne.indexOf(b)};useEffect(()=>{if(M===null){U(b=>b<V?b:be?0:-1);return}if(be){U(0);return}let T=Le(M);U(T<0||oe===null?T:oe.indexOf(T));},[oe,V]),useLayoutEffect(()=>{C&&(W.current?.focus({preventScroll:true}),W.current?.select());},[]);let He=()=>{let T=W.current;if(!T)return;let b=T.getBoundingClientRect(),I=i?Math.max(b.width,280):b.width,q=placeAnchoredLayer({anchor:{left:b.left,top:b.top,bottom:b.bottom},width:I,height:Math.min(Math.max(V,1),la)*Te,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});de({left:q.left,top:q.top,width:I});};useLayoutEffect(()=>{y&&He();},[y,V]),useEffect(()=>{if(!y)return;let T=()=>He();return window.addEventListener("scroll",T,true),window.addEventListener("resize",T),()=>{window.removeEventListener("scroll",T,true),window.removeEventListener("resize",T);}},[y]),useLayoutEffect(()=>{let T=R.current;if(!T||!y||V===0||D<0)return;let b=D*Te,I=b+Te,q=T.scrollTop;b<q?q=b:I>q+T.clientHeight&&(q=I-T.clientHeight),q!==T.scrollTop&&(T.scrollTop=q,A(q));},[D,y,V]);let Ge=Math.min(Math.max(V,1),la)*Te,Ue=Math.max(0,Math.floor(re/Te)-Fl),et=Math.min(V,Math.ceil((re+Ge)/Te)+Fl),Q=T=>{if(f){if(!f(T))return}else k(T.value);g(null),G(false),Oe(false),K&&S();},ge=()=>{y||(G(true),A(0),R.current&&(R.current.scrollTop=0),!be&&M===null&&U(e.findIndex(T=>Object.is(T.value,t))));},ue=()=>{ge(),Oe(true);},qe=()=>{if(M===null)return true;let T=M.trim();if(T==="")return a&&k(""),true;if(a){let q=Le(T);return k(q>=0?e[q].value:T),true}if(!u)return false;let b=foldText(T),I=Ne.indexOf(b);return I>=0?(k(e[I].value),true):V===1?(k(Ee(0).value),true):false},Fe=T=>{if(!(T.nativeEvent.isComposing||T.keyCode===229)&&!Tn(T)){if(T.key==="ArrowDown"||T.key==="ArrowUp"){if(T.preventDefault(),T.stopPropagation(),!y){ge();return}if(V===0)return;U(b=>b<0?T.key==="ArrowDown"?0:V-1:((T.key==="ArrowDown"?b+1:b-1)+V)%V);return}if(T.key==="PageDown"||T.key==="PageUp"){if(!y||V===0)return;T.preventDefault(),T.stopPropagation();let b=la*(T.key==="PageDown"?1:-1);U(I=>Math.min(V-1,Math.max(0,I+b)));return}if(T.key==="Home"||T.key==="End"){if(!y||V===0)return;T.preventDefault(),T.stopPropagation(),U(T.key==="Home"?0:V-1);return}if(T.key==="Enter"){if(T.preventDefault(),T.stopPropagation(),y&&D>=0&&D<V){Q(Ee(D));return}qe()?(g(null),S()):ue();return}if(T.key==="Escape"){if(T.preventDefault(),T.stopPropagation(),y){G(false);return}g(null),L();return}if(T.key==="Tab"){if(!qe()){if(m!=="revert"){T.preventDefault(),T.stopPropagation(),ue();return}g(null);}G(false),P&&(T.preventDefault(),T.stopPropagation(),P(T.shiftKey));return}vn(T)&&T.stopPropagation();}},te=[];for(let T=Ue;T<et;T++){let b=Ee(T);te.push(jsx("div",{role:"option","aria-selected":T===D,"aria-posinset":T+1,"aria-setsize":V,className:`kanuni-datagrid-lookup-item${T===D?" kanuni-datagrid-lookup-item--active":""}`,style:{position:"absolute",top:T*Te,height:Te,left:0,right:0},onMouseEnter:()=>U(T),onClick:()=>Q(b),children:i?jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-lookup-code",children:b.value==null?"":String(b.value)}),jsx("span",{className:"kanuni-datagrid-lookup-name",children:b.label})]}):b.label},String(b.value)));}let Re=y&&Z?createPortal(jsx("div",{ref:R,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${Te===Il?" kanuni-datagrid-lookup-popup--touch":""}${X}`,"data-kanuni-portal":"popup",role:"listbox","aria-label":E,"data-testid":h?`${h}-list`:void 0,style:{left:Z.left,top:Z.top,width:Z.width,height:Ge},onScroll:T=>A(T.currentTarget.scrollTop),onMouseDown:T=>T.preventDefault(),children:V===0?jsx("div",{className:"kanuni-datagrid-lookup-empty",children:_.editNoMatch}):jsx("div",{style:{position:"relative",height:V*Te},children:te})}),j()):null;return jsxs(Fragment,{children:[jsx("input",{ref:W,type:"text",role:"combobox","aria-expanded":y,"aria-autocomplete":"list","aria-label":E,"data-testid":h,"data-column-id":F,className:`kanuni-datagrid-editor${w?" kanuni-datagrid-editor--invalid":""}`,value:d,onChange:T=>{g(T.target.value),Oe(false),A(0),R.current&&(R.current.scrollTop=0),G(true);},onFocus:ge,onClick:ge,onKeyDown:Fe,onBlur:T=>{M!==null&&!qe()&&g(null),G(false),Oe(false);let b=T.relatedTarget;b instanceof Element&&b.closest(`${Yt}, .kanuni-datagrid-detached`)||N?.();}}),jsx("span",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite",children:!a&&(fe||M!==null&&M.trim()!==""&&V===0)?_.editNoMatch:""}),Re]})}function Ju(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=Yl(e);return [...t.slice(n),...t.slice(0,n)]}function Yl(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function Qu(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 Zu(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Dn({value:e,format:t=DEFAULT_DATE_FORMAT,invalid:n,disabled:r,autoFocus:i=true,testId:a,columnId:u,ariaLabel:m,onChange:f,onCommit:w,onCancel:C,onTab:h,onBlurCommit:F,seedDigits:E}){let k=Se(),S=Bt(),K=Zt(),L=useMemo(()=>Qu(k),[k]),P=useMemo(()=>Ju(k),[k]),N=useRef(null),[_,X]=useState(()=>E!==void 0?dateDigits(E,t):null),[j,W]=useState(false),[R,M]=useState(null),g=useMemo(()=>toDate(e),[e]),y=_===null?formatDateValue(e,t):maskDate(_,t),G=_===null?null:parseDateValue(y,t),D=_!==null&&_.length===dateDigitCount(t)&&G===null,[U,re]=useState(()=>g??new Date);useEffect(()=>{j&&re(G??g??new Date);},[j]),useLayoutEffect(()=>{if(i)if(N.current?.focus({preventScroll:true}),E!==void 0){let O=N.current?.value.length??0;N.current?.setSelectionRange(O,O);}else N.current?.select();},[]);let A=useRef(null),Z=useCallback(()=>{let O=N.current;if(!O)return;let ie=O.getBoundingClientRect(),oe=placeAnchoredLayer({anchor:{left:ie.left,top:ie.top,bottom:ie.bottom},width:A.current?.offsetWidth??0,height:A.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});M({left:oe.left,top:oe.top});},[]),de=useCallback(O=>{A.current=O,O&&Z();},[Z]);useLayoutEffect(()=>{j&&Z();},[j,Z]),useEffect(()=>{if(!j)return;let O=()=>Z();return window.addEventListener("scroll",O,true),window.addEventListener("resize",O),()=>{window.removeEventListener("scroll",O,true),window.removeEventListener("resize",O);}},[j,Z]);let fe=useCallback(O=>{if(O===null){f(null);return}f(e instanceof Date?O:toIsoDate(O));},[f,e]),Oe=O=>{X(null),W(false),fe(O),N.current?.focus({preventScroll:true});},Te=useCallback(()=>{if(_!==null){if(_.length===0){fe(null),X(null);return}G&&fe(G),X(null);}},[_,G,fe]),be=O=>{if(!Tn(O)){if(O.key==="Escape"){if(O.preventDefault(),O.stopPropagation(),j){W(false);return}X(null),C();return}if(j){let ie=O.key==="ArrowLeft"?-1:O.key==="ArrowRight"?1:O.key==="ArrowUp"?-7:O.key==="ArrowDown"?7:0;if(ie!==0){O.preventDefault(),O.stopPropagation();let oe=G??g??new Date,V=new Date(oe.getFullYear(),oe.getMonth(),oe.getDate()+ie);X(dateDigits(formatDateValue(V,t),t)),re(V);return}if(O.key==="Enter"){O.preventDefault(),O.stopPropagation(),W(false),G&&Oe(G);return}}if(O.key==="Enter"){O.preventDefault(),O.stopPropagation(),Te(),w();return}if(O.key==="Tab"){Te(),W(false),h&&(O.preventDefault(),O.stopPropagation(),h(O.shiftKey));return}if(O.key.length===1&&!O.ctrlKey&&!O.metaKey&&!/\d/.test(O.key)){O.preventDefault();return}vn(O)&&O.stopPropagation();}},Ne=j&&R?createPortal(jsxs("div",{ref:de,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${S}`,"data-kanuni-portal":"popup",style:{left:R.left,top:R.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":m?`${m} ${k.dateCalendar}`:k.dateCalendar,onMouseDown:O=>O.preventDefault(),children:[jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsx("button",{type:"button","aria-label":k.datePreviousMonth,"data-testid":"dg-date-prev",onClick:()=>re(new Date(U.getFullYear(),U.getMonth()-1,1)),children:"\u2039"}),jsxs("span",{"data-testid":"dg-date-title",children:[L[U.getMonth()]," ",U.getFullYear()]}),jsx("button",{type:"button","aria-label":k.dateNextMonth,"data-testid":"dg-date-next",onClick:()=>re(new Date(U.getFullYear(),U.getMonth()+1,1)),children:"\u203A"})]}),jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[P.map(O=>jsx("span",{className:"kanuni-datagrid-date-weekday",role:"columnheader",children:O},O)),(()=>{let ie=(new Date(U.getFullYear(),U.getMonth(),1).getDay()-Yl(k)+7)%7,oe=daysInMonth(U.getFullYear(),U.getMonth()+1),V=[];for(let Ee=0;Ee<42;Ee++){let d=Ee-ie+1,Le=new Date(U.getFullYear(),U.getMonth(),d),He=d<1||d>oe,Ge=Zu(Le,G??g);V.push(jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${He?" kanuni-datagrid-date-day--outside":""}${Ge?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":Ge,"data-testid":"dg-date-day","data-date":toIsoDate(Le),onClick:()=>Oe(Le),children:Le.getDate()},Ee));}return V})()]})]}),K()):null;return jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsx("input",{ref:N,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":m,"aria-invalid":D||n?true:void 0,"data-testid":a,"data-column-id":u,disabled:r,className:`kanuni-datagrid-editor${D||n?" kanuni-datagrid-editor--invalid":""}`,value:y,onChange:O=>{let ie=dateDigits(O.target.value,t);X(ie);let oe=ie.length===dateDigitCount(t)?parseDateValue(maskDate(ie,t),t):null;oe&&fe(oe);},onKeyDown:be,onBlur:O=>{if(j)return;Te();let ie=O.relatedTarget;ie instanceof Element&&ie.closest(`${Yt}, .kanuni-datagrid-detached`)||F?.();}}),jsx("button",{type:"button",className:"kanuni-datagrid-date-button","aria-label":m?`${m} \u2014 ${k.dateOpenCalendar}`:k.dateOpenCalendar,"aria-expanded":j,"data-testid":"dg-date-open",disabled:r,tabIndex:-1,onMouseDown:O=>O.preventDefault(),onClick:()=>{W(O=>!O),N.current?.focus({preventScroll:true});},children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),Ne]})}function ua(e){return {save:e.save,cancel:e.cancel,editTitle:e.formEditTitle,addTitle:e.formAddTitle,saving:e.editSaving,shortcut:e.formShortcut}}var ac=ua(getGridDictionary("en"));function ic(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 Xl(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 lc(e,t){if(t==="number"){if(e==="")return null;let n=Number(e);return Number.isNaN(n)?e:n}return e}function ca({rowKey:e,fields:t,getValue:n,errors:r,lookups:i,customEditors:a=false,row:u,saving:m,saveError:f,isNew:w,dark:C=false,popup:h=false,inline:F=false,onNaturalHeight:E,labels:k,onChange:S,setRowValues:K,onSave:L,onCancel:P}){let N=Se(),_=Bt(),X=useMemo(()=>({...ua(N),...k}),[N,k]),j=useRef(null),W=Object.keys(r)[0]??null,R=useCallback(D=>{if(j.current=D,!D)return;let U=D.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");if(U?.focus(),U instanceof HTMLInputElement&&U.type==="text"&&U.select(),E){let re=D.querySelector(".kanuni-datagrid-edit-form-fields");re&&E(D.clientHeight-re.clientHeight+re.scrollHeight);}},[E]);useEffect(()=>{if(!W||!j.current)return;j.current.querySelector(`[data-field-id="${CSS.escape(W)}"] input, [data-field-id="${CSS.escape(W)}"] select`)?.focus();},[W]);let M=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),g=X.shortcut.replace("{key}",M?"\u2318":"Ctrl"),y=useCallback(D=>{if(D.key==="Escape"){D.preventDefault(),D.stopPropagation(),P();return}if(D.key==="Enter"&&(D.ctrlKey||D.metaKey)){D.preventDefault(),D.stopPropagation(),L();return}if(D.key==="Enter"&&!(D.target instanceof HTMLButtonElement)){D.preventDefault();return}if(D.key!=="Tab"||!h||!j.current)return;let U=Array.from(j.current.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(U.length===0)return;let re=U[0],A=U[U.length-1];!D.shiftKey&&document.activeElement===A?(D.preventDefault(),re.focus()):D.shiftKey&&document.activeElement===re&&(D.preventDefault(),A.focus());},[P,L,h]),G=jsxs("div",{ref:R,className:`kanuni-datagrid-edit-form${F?" kanuni-datagrid-edit-form--inline":""}`,"data-testid":"dg-edit-form","data-row-key":String(e),"data-popup":h?"":void 0,role:h?"dialog":"group","aria-modal":h?true:void 0,"aria-label":w?X.addTitle:X.editTitle,onKeyDown:y,children:[jsx("div",{className:"kanuni-datagrid-edit-form-header",children:jsx("strong",{children:w?X.addTitle:X.editTitle})}),f&&jsx("div",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-form-error",children:f}),jsx("div",{className:"kanuni-datagrid-edit-form-fields",children:t.map(D=>{let U=n(D.columnId),re=r[D.columnId],A=i?.[D.columnId],Z=m||!D.editable,de=`dg-field-${String(e)}-${D.columnId}`;return jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":D.columnId,"data-invalid":re?"":void 0,htmlFor:de,children:[jsx("span",{className:"kanuni-datagrid-edit-form-label",children:D.label}),a&&D.def?.renderEditor?D.def.renderEditor({value:U,row:u,columnId:D.columnId,rowKey:e,error:re??null,invalid:!!re,errorId:re?`${de}-error`:void 0,ariaLabel:D.label,setValue:fe=>S(D.columnId,fe),commit:()=>(L(),true),cancel:P,suspendBlurCommit:()=>{},commitOnBlur:()=>{},api:{setRowValues:fe=>K?.(fe)??false}}):A!==void 0?jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsx(En,{options:A??[],value:U,...wo(D.def?.lookup),onPick:D.def?.lookup?.linkedColumns||D.def?.lookup?.map?fe=>K?.(yo(D.def.lookup,D.columnId,fe))??false:void 0,invalid:!!re,testId:de,ariaLabel:D.label,onChange:fe=>S(D.columnId,fe),onCommit:()=>{},onCancel:P})}):D.def?.lookup?jsx("input",{id:de,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:lookupLabel(D.def,U)??Xl(U,D.dataType)}):D.dataType==="date"?jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsx(Dn,{value:U,format:D.def?.dateFormat,invalid:!!re,disabled:Z,autoFocus:false,testId:de,columnId:D.columnId,ariaLabel:D.label,onChange:fe=>S(D.columnId,fe),onCommit:()=>{},onCancel:P})}):Nt(D.def)?jsx("input",{id:de,className:"kanuni-datagrid-edit-form-input",type:"text",inputMode:Nt(D.def).decimals===0?"numeric":"decimal",disabled:Z,"aria-invalid":re?true:void 0,value:U==null?"":String(U),onChange:fe=>S(D.columnId,fe.target.value)}):D.dataType==="boolean"?jsx("input",{id:de,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:Z,checked:U===true,onChange:fe=>S(D.columnId,fe.target.checked)}):jsx("input",{id:de,className:"kanuni-datagrid-edit-form-input",type:ic(D.dataType,U),disabled:Z,"aria-invalid":re?true:void 0,value:Xl(U,D.dataType),onChange:fe=>S(D.columnId,lc(fe.target.value,D.dataType))}),re&&jsx("span",{id:`${de}-error`,className:"kanuni-datagrid-edit-form-message",role:"alert",children:re})]},D.columnId)})}),jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:g}),jsx("button",{type:"button",onClick:P,disabled:m,"data-testid":"dg-form-cancel",children:X.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-edit-form-save",onClick:L,disabled:m,"data-testid":"dg-form-save",children:m?X.saving:X.save})]})]});return h?jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-edit-popup${C?" kanuni-datagrid-dark":""}${_}`,children:[jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:P}),G]}):G}function ma({controller:e,engine:t,columnId:n,message:r,saving:i,lookupOptions:a,onSave:u,onCancel:m}){let f=e.getColumnModel(),w=f.getDef(n);if(a!==void 0){let k=w?.lookup,S=t.getRowSession()?.rowKey;return jsx(En,{options:a??[],value:t.rowEditValue(n),...wo(k),onPick:k?.linkedColumns||k?.map?K=>S!==void 0&&t.setRowValues(S,yo(k,n,K)):void 0,invalid:!!r,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:K=>t.setRowEditValue(n,K),commitOnPick:false,onCommit:u,onCancel:m})}let C=f.getDataType(n);if(C==="date")return jsx(Dn,{value:t.rowEditValue(n),format:w?.dateFormat,invalid:!!r,disabled:i,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:k=>t.setRowEditValue(n,k),onCommit:u,onCancel:m});let h=Nt(w),F=C==="number"&&!h,E=k=>{k.key==="Enter"?(k.preventDefault(),k.stopPropagation(),u()):k.key==="Escape"&&(k.preventDefault(),k.stopPropagation(),m());};return C==="boolean"?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:i,type:"checkbox",checked:t.rowEditValue(n)===true,onChange:k=>t.setRowEditValue(n,k.target.checked),onKeyDown:E}):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:i,type:F?"number":"text",inputMode:h?h.decimals===0?"numeric":"decimal":void 0,value:String(t.rowEditValue(n)??""),onChange:k=>{let S=k.target.value;t.setRowEditValue(n,F?S===""?null:Number(S):S);},onKeyDown:E})}var mn=Symbol("lookupPending");function pa(e){return e instanceof Date?`d${e.getTime()}`:`${typeof e}:${String(e)}`}var Zo=class{constructor(t){this.controller=t;}controller;lists=new WeakMap;shown=new Map;repaintQueued=false;effectiveRow=null;key(t,n,r){let i=pa(r);for(let a of t.dependsOn??[])i+=`${pa(this.controller.getColumnModel().getStoredValue(n,a))}`;return i}repaint(){this.repaintQueued||(this.repaintQueued=true,queueMicrotask(()=>{this.repaintQueued=false,this.controller.isDisposed()||this.controller.refreshCells();}));}items(t,n,r,i=false){if(typeof t.items!="function")return t.items;let a=this.lists.get(t);a||this.lists.set(t,a=new Map);let u=this.key(t,n,r),m=a.get(u);if(m&&!i)return m.items??m.promise;let f={items:null,labels:null,promise:null},w=h=>{f.items=Array.isArray(h)?h:[],f.labels=null,f.promise=null;},C;try{C=t.items(n);}catch{C=[];}return a.set(u,f),Array.isArray(C)?(w(C),f.items):(f.promise=Promise.resolve(C).then(h=>(a.get(u)===f&&(w(h),this.repaint()),f.items??h),()=>(a.get(u)===f&&(w([]),this.repaint()),[])),f.promise)}label(t,n,r,i,a){let u=t?.lookup;if(!u||typeof u.items!="function"||u.linkedColumns||r==null||r==="")return null;let m=this.effectiveRow?.(a)??i,f=this.items(u,m,a),w=`${pa(a)}${n}`;if(!Array.isArray(f)){let F=this.shown.get(w);return F&&Object.is(F.value,r)?F.label:mn}let C=this.lists.get(u).get(this.key(u,m,a));if(!C.labels){C.labels=new Map;for(let F of f)C.labels.set(F.value,F.label);}let h=C.labels.get(r);return h===void 0?(this.shown.delete(w),null):(this.shown.set(w,{value:r,label:h}),h)}},jl=new WeakMap;function ho(e){let t=jl.get(e);return t||(t=new Zo(e),jl.set(e,t)),t}function Jl(e,t){if(!e)return [];let n=e.getColumnLayout();return [...n.left,...n.center,...n.right].map(r=>r.state.id).filter(r=>!isChromeColumn(r)&&(t?.(r)??true))}function ya({controller:e,editing:t,mode:n,active:r,rootRef:i,rowHeight:a,formLabels:u,formHeight:m,dark:f,rowLookups:w,customEditors:C=false,isFormColumn:h,batchBar:F=true,cardPopup:E=false}){let k=Se(),{engine:S,version:K,beginRowEdit:L,saveRowEdit:P,cancelRowEdit:N,rowSaveError:_,saveChanges:X,cancelChanges:j}=t,W=r&&isRowEditMode(n),R=S?.getRowSession()??null,M=W||R?.standalone||E?R:null,g=!!M&&(n==="popup"||!!M.standalone||E&&!W),y=useRef(h);y.current=h;let G=useMemo(()=>{if(!e||!M)return [];let Q=e.getColumnModel();return Jl(e,y.current).map(ge=>{let ue=Q.getDef(ge);return {columnId:ge,label:ue?.headerName??ue?.field??ge,dataType:Q.getEditorDataType(ge),def:ue,editable:S?.canUpdate(M.rowKey,ge)??true}})},[e,S,M]),D=n==="row"&&!g?M?.rowKey??null:null;useEffect(()=>{if(D===null)return;let Q=i.current;if(!Q)return;let ge=Q.querySelectorAll('[data-testid="dg-row-editor"]');if(ge.length===0)return;let ue=e?.getFocus(),Fe=(ue&&String(ue.rowKey)===String(D)?Q.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(ue.columnId)}"]`):null)??ge[0],te=S?zo.get(S):void 0;S&&zo.delete(S),Fe.focus({preventScroll:true}),Fe instanceof HTMLInputElement&&(te!==void 0&&Fe.getAttribute("data-column-id")===te?Fe.setSelectionRange(Fe.value.length,Fe.value.length):Fe.select());},[D]);let U=useCallback(Q=>W&&!g&&M?.rowKey===Q,[W,g,M]),re=useCallback((Q,ge)=>{let ue=e?.getColumnModel().getDef(Q.columnId);if(ue?.renderCell&&Q.node.kind==="data")return ue.renderCell({value:ge,row:Q.node.data,node:Q.node,column:ue});let qe=ue?lookupLabel(ue,ge):null;if(qe!==null)return qe;if(e&&ue?.lookup&&!ue.valueFormatter&&Q.node.kind==="data"){let te=ho(e).label(ue,Q.columnId,ge,Q.node.data,Q.node.key);if(te===mn)return jsx("span",{className:"kanuni-datagrid-lookup-pending","aria-busy":"true"});if(te!==null)return te}if(ue?.valueFormatter&&Q.node.kind==="data")return ue.valueFormatter(ge,Q.node.data);if(ue?.dateFormat&&ue.dataType==="date")return formatDateValue(ge,ue.dateFormat);let Fe=numberCellText(ue,ge);return Fe!==null?Fe:ge==null?"":String(ge)},[e]),A=useCallback(Q=>{if(!(n!=="row"||!S||!e||Q.node.kind!=="data"||!U(Q.node.key)))return S.canUpdate(Q.node.key,Q.columnId)?jsx(ma,{controller:e,engine:S,columnId:Q.columnId,message:M?.errors[Q.columnId]??null,saving:M?.saving??false,lookupOptions:w?.[Q.columnId],onSave:()=>{P();},onCancel:N}):re(Q,S.rowEditValue(Q.columnId))},[n,S,e,K,U,M,w,re,P,N]),Z=useCallback(Q=>{if(!S||Q.node.kind!=="data")return;let ge=S.changes.get(Q.node.key,Q.columnId);return ge?re(Q,ge.newValue):void 0},[S,K,re]),[de,fe]=useState(null),Oe=de??m??DEFAULT_EDIT_FORM_HEIGHT,Te=useCallback(Q=>{Q>0&&fe(ge=>ge!==null&&Math.abs(ge-Q)<a?ge:Q);},[a]);useEffect(()=>{M||fe(null);},[M]);let be=(Q,ge)=>M?jsx(ca,{rowKey:Q,fields:G,getValue:ue=>S?.rowEditValue(ue),errors:M.errors,lookups:w,customEditors:C,row:S?.effectiveRow(M.rowKey),saving:M.saving,saveError:_,isNew:M.isNew,dark:f,popup:g,inline:ge,onNaturalHeight:ge?Te:void 0,labels:u,onChange:(ue,qe)=>S?.setRowEditValue(ue,qe),setRowValues:ue=>S?.setRowValues(Q,ue)??false,onSave:()=>{P();},onCancel:N}):null,Ne=M&&g?be(M.rowKey,false):null,O=useRef(be);O.current=be;let ie=useCallback(Q=>O.current(Q,true),[]),oe=n==="form"&&!g?M?.rowKey??null:null,V=M?.isNew??false,Ee=useRef(null);useEffect(()=>{if(e){if(oe===null){if(Ee.current!==e)return;Ee.current=null,e.setEditFormRow(null);return}Ee.current=e,e.setEditFormRow(oe,{height:Oe,atTop:V});}},[e,oe,V,Oe]),useEffect(()=>()=>{let Q=Ee.current;Ee.current=null,Q?.setEditFormRow(null);},[]);let d=W&&n==="row"&&!!M&&!g,Le=F&&r&&n==="batch"&&(S?.hasChanges()??false),He=d||Le?jsxs(Fragment,{children:[d&&jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-filter-active","data-testid":"dg-row-editing",children:M?.isNew?k.formAddTitle:fillText(k.editEditingRow,{row:String(M?.rowKey)})}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-row",disabled:M?.saving,onClick:()=>{P();},children:M?.saving?k.editSaving:k.editSaveRow}),jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:N,children:k.cancel}),_&&jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:_})]}),Le&&jsxs(Fragment,{children:[jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:S?.isSaving(),onClick:()=>{X();},children:fillText(k.editSaveCount,{n:S?.getChanges().length??0})}),jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:j,children:k.cancel})]})]}):null,Ge=useCallback(Q=>!W||!S||S.isEditingRow()?null:{id:"dg-edit-row",label:k.editRowMenu,onSelect:()=>L(Q)},[W,S,L,k,K]),Ue=useCallback(Q=>W?(L(Q),true):false,[W,L]),et=useCallback(Q=>{if(!S)return false;let ge=S.getRowSession();return ge?ge.rowKey===Q:L(Q,{standalone:true})},[S,L]);return {rowModeActive:W,rowSession:M,isRowEditing:U,defaultContent:re,renderRowCell:A,renderPending:Z,renderEditForm:n==="form"?ie:void 0,popup:Ne,bar:He,rowSessionAttr:g?"popup":M&&n==="form"?"form":void 0,editRowMenuItem:Ge,openRow:Ue,openCardEditor:et}}function Rc(e,t="en-US"){let n=parseLocaleNumber(e,t);return n.ok?n.value:void 0}function Cc(e){return e instanceof Element&&!!e.closest(`${Yt}, .kanuni-datagrid-detached`)}function Ql(e,t){return e==null?"":t==="date"&&e instanceof Date?e.toISOString().slice(0,10):String(e)}function ha({value:e,dataType:t,error:n,seeded:r=false,seedText:i,options:a,allowCustom:u=false,matchMode:m,lookupSettings:f,onPick:w,ariaLabel:C,dateFormat:h,numberFormat:F,numberLocale:E,onChange:k,onCommit:S,onTab:K,onCancel:L}){let P=useRef(null),N=useRef(false),[_,X]=useState(t==="number"&&i!==void 0?i:null),j=useRef(e);useEffect(()=>{let g=P.current;if(g&&(g.focus({preventScroll:true}),!(!(g instanceof HTMLInputElement)||g.type==="checkbox")))if(r||i!==void 0){if(g.type==="text"||g.type==="search"){let y=g.value.length;g.setSelectionRange(y,y);}}else g.select();},[]);let R={ref:P,onKeyDown:g=>{if(!(g.nativeEvent.isComposing||g.keyCode===229)&&!Tn(g)){if(F?.step!==void 0&&(g.key==="ArrowUp"||g.key==="ArrowDown")&&!g.altKey&&!g.shiftKey){g.preventDefault(),g.stopPropagation();let y=g.target.value??"",G=stepNumberText(y,F,g.key==="ArrowUp"?1:-1,g.ctrlKey||g.metaKey?10:1);G!==void 0&&k(G);return}g.key==="Enter"?(g.preventDefault(),g.stopPropagation(),S(g.shiftKey?"none":"down")):g.key==="Tab"?(g.preventDefault(),g.stopPropagation(),N.current=true,K(g.shiftKey?-1:1)):g.key==="Escape"?(g.preventDefault(),g.stopPropagation(),L()):vn(g)&&g.stopPropagation();}},onBlur:g=>{N.current||Cc(g.relatedTarget)||S("blur");},className:`kanuni-datagrid-editor${n?" kanuni-datagrid-editor--invalid":""}`,"aria-invalid":!!n,"aria-errormessage":n?"kanuni-datagrid-editor-error":void 0,"data-testid":"dg-cell-editor"},M;return a===null?M=jsx("input",{...R,type:"text",value:"\u2026",readOnly:true,disabled:true}):a?M=jsx(En,{options:a,value:e,matchMode:m,allowCustom:u,...f,onPick:w,invalid:!!n,testId:R["data-testid"],ariaLabel:C,onChange:k,onCommit:()=>S("none"),onBlurCommit:()=>{N.current||S("blur");},onCancel:L,onTab:g=>{N.current=true,K(g?-1:1);}}):F?M=jsx("input",{...R,type:"text",inputMode:F.decimals===0?"numeric":"decimal",autoComplete:"off",value:String(Vo(e,F)??""),onChange:g=>k(g.target.value)}):t==="boolean"?M=jsx("input",{...R,type:"checkbox",checked:e===true,onChange:g=>k(g.target.checked)}):t==="number"&&_!==null?M=jsx("input",{...R,type:"text",inputMode:"decimal",value:_,onChange:g=>{let y=g.target.value;X(y);let G=Rc(y,E);k(G===void 0?j.current:G);}}):t==="number"?M=jsx("input",{...R,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:Ql(e,t),onChange:g=>k(g.target.value===""?null:Number(g.target.value))}):t==="date"?M=jsx(Dn,{value:e,format:h,invalid:!!n,testId:R["data-testid"],ariaLabel:C,seedDigits:i,onChange:k,onCommit:()=>S("none"),onBlurCommit:()=>{N.current||S("blur");},onCancel:L,onTab:g=>{N.current=true,K(g?-1:1);}}):M=jsx("input",{...R,type:"text",value:Ql(e,t),onChange:g=>k(g.target.value)}),jsxs(Fragment,{children:[M,n&&jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function Zl(e,t,n,r,i,a){let u=!n&&t!==void 0&&t.enabled!==false,m=u&&!i,f=t?.mode??"cell",w=useCallback(A=>{let Z=e?.getColumnModel().getDef(A);return !Z?.lookup&&!Z?.renderEditor&&Z?.allowFormulas!==true},[e]),C=ta({controller:e,enabled:u,mode:f,onSave:t?.onSave,editOnKeyPress:t?.editOnKeyPress,editKeys:t?.editKeys,focusCellOnTab:t?.focusCellOnTab,focusCellOnCycle:t?.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,range:false,history:false,canEditColumn:w,savedDuration:a.savedDuration}),{engine:h,version:F,handleKeyDown:E,editAdjacentCell:k,focusScroller:S,saveError:K,clearSaveError:L,commitCellEditor:P,keyContext:N,doubleClickEdits:_}=C,X=ya({controller:e,editing:C,mode:f,active:m,rootRef:a.rootRef,rowHeight:a.rowHeight,formLabels:t?.formLabels,formHeight:t?.formHeight,dark:a.dark,cardPopup:a.cardPopup}),{renderRowCell:j,renderPending:W,openRow:R}=X,{renderCellContent:M,getCellClassName:g,onCellDoubleClick:y}=r,G=useCallback(A=>{if(!u||!h||A.node.kind!=="data")return M?.(A);let Z=j(A);if(Z!==void 0)return Z;if(!h.isEditing(A.node.key,A.columnId))return W(A)??M?.(A);let de=h.getSession(),fe=e.getColumnModel(),Oe=fe.getDef(A.columnId);return jsx(ha,{value:de.value,dataType:fe.getEditorDataType(A.columnId),ariaLabel:Oe?.headerName??A.columnId,dateFormat:Oe?.dateFormat,numberFormat:Nt(Oe),numberLocale:fe.getNumberLocale(),error:de.validation.message,seeded:de.seeded,seedText:Yo.get(de),onChange:Te=>h.setEditValue(Te),onCommit:P,onTab:Te=>{if(t?.focusCellOnTab===false){h.commitEdit();return}k(Te,{open:false,cycle:t?.focusCellOnCycle!==false}),S();},onCancel:()=>{h.cancelEdit(),S();}})},[u,h,e,F,M,j,W,k,S,P,t?.focusCellOnTab,t?.focusCellOnCycle]),D=useCallback(A=>{let Z=g?.(A);if(!u||!h||A.node.kind!=="data")return Z;let de=Z?[Z]:[];return h.isEditing(A.node.key,A.columnId)&&de.push("kanuni-datagrid-cell--editing"),h.changes.isDirty(A.node.key,A.columnId)&&de.push("kanuni-datagrid-cell--dirty"),de.length>0?de.join(" "):void 0},[u,h,F,g]),U=useCallback(A=>{y?.(A),!(!u||!h||A.node.kind!=="data"||!_)&&(R(A.node.key)||h.beginEdit(A.node.key,A.columnId));},[u,h,y,R,_]),re=useCallback(A=>m?E(A):false,[m,E]);return {active:u,renderCellContent:m?G:M,getCellClassName:m?D:g,onCellDoubleClick:m?U:y,handleKeyDown:re,keyContext:N,saveError:u?K:null,clearSaveError:L,renderEditForm:m?X.renderEditForm:void 0,bar:m?X.bar:null,popup:u?X.popup:null,rowSessionAttr:u?X.rowSessionAttr:void 0,editRowMenuItem:X.editRowMenuItem,rowStatusSource:u?h:null,openCardEditor:u?X.openCardEditor:void 0}}function Ca({open:e,title:t,message:n,cancelLabel:r,confirmLabel:i,danger:a,dark:u,onConfirm:m,onCancel:f}){let w=useRef(null),C=useRef(null),h=useId(),F=useId(),E=Bt(),k=Zt();return useEffect(()=>{if(!e)return;let S=document.activeElement;w.current?.focus();let K=C.current;return ()=>{let L=document.activeElement;K&&(K.contains(L)||L===document.body||L===null)&&S?.isConnected&&S.focus({preventScroll:true});}},[e]),useEffect(()=>{if(!e)return;let S=K=>{if(K.key==="Escape"){K.stopPropagation(),f();return}if(K.key==="Tab"&&C.current){let L=Array.from(C.current.querySelectorAll("button:not([disabled])"));if(L.length===0)return;let P=L.indexOf(document.activeElement),N=K.shiftKey?P<=0?L.length-1:P-1:P===L.length-1?0:P+1;K.preventDefault(),K.stopPropagation(),L[N].focus();}};return document.addEventListener("keydown",S,true),()=>document.removeEventListener("keydown",S,true)},[e,f]),!e||typeof document>"u"?null:createPortal(jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${u?" kanuni-datagrid-dark":""}${E}`,"data-kanuni-portal":"popup",role:"presentation",children:[jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:f}),jsxs("div",{ref:C,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":h,"aria-describedby":F,"data-testid":"dg-dialog",children:[jsx("div",{className:"kanuni-datagrid-dialog-title",id:h,children:t}),jsx("div",{className:"kanuni-datagrid-dialog-message",id:F,children:n}),jsxs("div",{className:"kanuni-datagrid-dialog-actions",children:[r!==void 0&&jsx("button",{type:"button","data-testid":"dg-dialog-cancel",onClick:f,children:r}),jsx("button",{ref:w,type:"button",className:`kanuni-datagrid-dialog-primary${a?" kanuni-datagrid-dialog-primary--danger":""}`,"data-testid":"dg-dialog-confirm",onClick:m,children:i})]})]})]}),k())}var tr=0,Ta=5e3;function Sc(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Ta,onLimit:t.onLimit}}function Gc(e,t){return e<=t}function va(e,t){let n=Sc(t),r=n!==null,i=n?.always??false,a=n?.maxRows??Ta,u=n?.onLimit,m=useRef(u);useEffect(()=>{m.current=u;},[u]);let[f,w]=useState(false),C=useCallback(()=>w(true),[]),h=useCallback(()=>w(false),[]);useEffect(()=>{if(!r||i||typeof window>"u"||typeof window.addEventListener!="function")return;let E=()=>{let S=e.getRows().length;if(!Gc(S,a)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${S} rows exceeds maxRows (${a}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`),m.current?.({rows:S,maxRows:a});return}flushSync(()=>w(true));},k=()=>flushSync(()=>w(false));return window.addEventListener("beforeprint",E),window.addEventListener("afterprint",k),()=>{window.removeEventListener("beforeprint",E),window.removeEventListener("afterprint",k);}},[r,i,a,e]);let F=i||f;return useEffect(()=>{if(!F||typeof document>"u")return;let E=document.documentElement;return tr++,E.classList.add("kanuni-datagrid-printing"),()=>{tr--,tr<=0&&(tr=0,E.classList.remove("kanuni-datagrid-printing"));}},[F]),{active:F,begin:C,end:h}}var nr=new Map,xa=new Set;function as(e,t){let n=nr.get(e);return n?[...n].filter(r=>r!==t):[]}function Ea(e,t,n){let r=useRef(null);return useEffect(()=>{if(!t)return;let a={controller:e,scroller:()=>n.current};r.current=a;let u=nr.get(t)??new Set;u.add(a),nr.set(t,u);let m=e.events.on("columnStateChanged",()=>{if(xa.has(t))return;let f=as(t,a);if(f.length===0)return;let w=e.getColumnStates();xa.add(t);try{for(let C of f)C.controller.applyColumnStates(w);}finally{xa.delete(t);}});return ()=>{m(),u.delete(a),u.size===0&&nr.delete(t),r.current=null;}},[e,t,n]),{syncScroll:useCallback(a=>{let u=r.current;if(!t||!u)return;let m=as(t,u);if(m.length!==0)for(let f of m){let w=f.scroller();w&&w.scrollLeft!==a&&(w.scrollLeft=a);}},[t])}}function or(e,t,n){return e==="left"?t:e==="center"?n.left+t:n.left+n.center+t}function is(e,t){let{start:n,end:r}=t.columns,i=e.centerOffsets,a=i[n]??0,u=(i[r]??0)-a,m=Math.max(0,e.centerWidth-a-u),f=a,w=e.center.slice(n,r),C=Array.from({length:w.length},(E,k)=>n+k),h=e.stickyIndices.filter(E=>E<n);if(h.length>0){let E=h.map(k=>e.center[k]);f-=E.reduce((k,S)=>k+S.state.width,0),w=[...E,...w],C=[...h,...C];}let F=new Map;for(let E of e.stickyIndices){let k=e.centerStickyOffsets[E];k!==null&&F.set(e.center[E].state.id,k);}return {centerColumns:w,centerIndices:C,leadingSpacer:Math.max(0,f),trailingSpacer:m,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:F}}function ls(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 ss(e,t,n=0){if(!t)return n+e+1;let r=0,i=t.length;for(;r<i;){let a=r+i>>1;t[a]<e?r=a+1:i=a;}return n+e-r+1}var Ga=null,rr=null,Vc=400,Uc=24;function us(e,t,n){return `${e}\0${String(t)}\0${n}`}function zc(e,t,n,r,i){let a=us(e,t,n),u=Date.now(),m=Ga;return m&&m.cell===a&&u-m.time<=Vc&&Math.hypot(r-m.x,i-m.y)<=Uc?(Ga=null,rr={cell:a,time:u},true):(Ga={cell:a,time:u,x:r,y:i},false)}function Yc(e,t,n){return !!rr&&rr.cell===us(e,t,n)&&Date.now()-rr.time<800}var ar=36,ir=28,Jn=60,Qn=24,qc=[["statusColumn",Qn],["rowNumberColumn",Jn],["detailColumn",ir],["checkboxColumn",ar]];function Ia(e,t,n=false,r=false){return qt({checkboxColumn:e,detailColumn:t,rowNumberColumn:n,statusColumn:r}).total}function qt(e){let t=new Map,n=new Map,r=0,i=0;for(let[a,u]of qc)e[a]&&(t.set(a,r),a!=="statusColumn"&&n.set(a,++i),r+=u);return {total:r,count:i,inset:a=>t.get(a)??0,colIndex:a=>n.get(a)??1}}function Na(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function Ma(e,t,n){return e?e.kind==="covered"?t?n():null:jsx("div",{className:"kanuni-datagrid-span-box",style:{height:e.height},children:n()}):n()}function Pa(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 jn(e,t){if(t===""||e==="")return e;let n=foldText(e),r=n.indexOf(t);if(r===-1)return e;let i=[],a=0,u=0;for(;r!==-1;)r>a&&i.push(e.slice(a,r)),i.push(jsx("mark",{className:"kanuni-datagrid-highlight",children:e.slice(r,r+t.length)},u++)),a=r+t.length,r=n.indexOf(t,a);return a<e.length&&i.push(e.slice(a)),jsx("span",{className:"kanuni-datagrid-cell-text",children:i})}function Xc(e,t,n,r="",i,a){if(e.renderCell)return e.renderCell({value:t,row:n.data,node:n,column:e});let u=lookupLabel(e,t);if(u!==null)return jn(u,r);if(i&&a!==void 0&&!e.valueFormatter){let f=i.label(e,a,t,n.data,n.key);if(f===mn)return jsx("span",{className:"kanuni-datagrid-lookup-pending","aria-busy":"true"});if(f!==null)return jn(f,r)}if(e.valueFormatter){let f=e.valueFormatter(t,n.data);return typeof f=="string"?jn(f,r):f}if(e.dateFormat&&e.dataType==="date")return jn(formatDateValue(t,e.dateFormat),r);let m=numberCellText(e,t);return m!==null?jn(m,r):t==null?"":jn(String(t),r)}function jc({gridId:e,node:t,index:n,layout:r,columnModel:i,centerColumns:a,centerIndices:u,stickyInsets:m,leadingSpacer:f,trailingSpacer:w,striped:C,selected:h,ariaSelectable:F=true,selectable:E=true,groupSelection:k,onToggleGroupSelect:S,groupDisplay:K="fullWidth",focusedColumnId:L,rowFocused:P=false,renderRow:N,checkboxColumn:_,statusColumn:X=false,rowNumberColumn:j=false,rowNumber:W=null,getNote:R,getSpan:M,resolveColSpans:g,findKind:y,headerRowCount:G,onRowClick:D,onRowMouseDown:U,onRowDoubleClick:re,onToggleSelect:A,onCellMouseDown:Z,onRowContextMenu:de,searchNeedle:fe="",lookupLabels:Oe,onToggleGroup:Te,summaryDefs:be,detailColumn:Ne=false,detailExpanded:O=false,onToggleDetail:ie,onToggleTreeRow:oe,renderDetail:V,renderEditForm:Ee,renderRowMessage:d,renderCellContent:Le,getCellClassName:He,onCellPointerDown:Ge,onCellPointerEnter:Ue,onCellDoubleClick:et,rowDrag:Q,dropSide:ge=null,rowStatus:ue,rowStatusText:qe,rowStatusTint:Fe=false,rowStatusStrike:te=false,rowClass:Re,height:T}){let b=Se();if(isDetailRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+G,"data-row-key":String(t.key),"data-detail-for":String(t.parentKey),style:{height:t.height},children:jsx("div",{className:"kanuni-datagrid-detail-cell",role:"gridcell","aria-colindex":1,children:V?.(t.data)})});if(isEditFormRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+G,"data-row-key":String(t.key),"data-editform-for":t.parentKey===null?"":String(t.parentKey),style:{height:t.height},children:jsx("div",{className:"kanuni-datagrid-editform-cell",role:"gridcell","aria-colindex":1,children:t.parentKey===null?null:Ee?.(t.parentKey,t.data)})});if(isMessageRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-message-row",role:"row","aria-rowindex":n+1+G,"data-row-key":String(t.key),"data-message-for":String(t.parentKey),style:{height:t.height},children:jsx("div",{className:"kanuni-datagrid-message-cell",role:"gridcell","aria-colindex":1,children:d?.(t.parentKey,t.data)})});if(isFillerRow(t))return null;if(isGroupRow(t)&&K==="fullWidth"){let B=i.getDef(t.columnId),we=B?.headerName??t.columnId,he=lookupLabel(B,t.value)??t.display??(t.label===""?b.filterBlank:t.label),ye=t.aggregates??null;return jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${L?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+G,"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:()=>Te?.(String(t.key)),children:jsxs("div",{className:"kanuni-datagrid-group-cell",role:"gridcell","aria-colindex":1,id:`${e}-cell-${String(t.key)}-__group`,style:t.level>0?{paddingLeft:8+t.level*18}:void 0,children:[k&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:k==="all",ref:ne=>{ne&&(ne.indeterminate=k==="some");},"aria-label":fillText(b.selectGroupAria,{count:String(t.count),group:he}),onChange:()=>S?.(String(t.key)),onClick:ne=>ne.stopPropagation(),onMouseDown:ne=>ne.stopPropagation()}),jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:t.expanded?"\u25BE":"\u25B8"}),jsxs("span",{className:"kanuni-datagrid-group-caption",children:[we,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:he}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),ye&&be?.map(ne=>jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[summaryLabel(ne)," ",i.getDef(ne.columnId)?.headerName??ne.columnId,":"]})," ",formatSummaryValue(ne,ye[summaryKey(ne.columnId,ne.type)],i.getDef(ne.columnId))]},summaryKey(ne.columnId,ne.type)))]})})}let I=[],q=qt({statusColumn:X,rowNumberColumn:j,detailColumn:Ne,checkboxColumn:_}),ve=q.count,ee=(B,we)=>({node:t,columnId:B,rowIndex:n,columnIndex:we,value:Ce?void 0:i.getCellValue(t.data,B)}),Me=(B,we)=>{let he=()=>ee(B,we);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${B}`,"aria-colindex":ve+we+1,"data-column-id":B,onMouseDown:ye=>{Dt(ye)&&(Z?.(t,B),Ge?.(he(),ye));},onMouseEnter:Ue?ye=>{Dt(ye)&&Ue(he(),ye);}:void 0,onDoubleClick:et?ye=>{Dt(ye)&&(Yc(e,t.key,B)||et(he()));}:void 0,onPointerUp:et?ye=>{ye.pointerType!=="touch"||!Dt(ye)||zc(e,t.key,B,ye.clientX,ye.clientY)&&et(he());}:void 0}},Ae=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,$e=t.kind==="treePath",Ce=isGroupRow(t)?t:null,ce=$e||Ce!==null,Lt=Ce?K==="column"?GROUP_COLUMN_ID:(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,l=()=>{let B=Ce,we=i.getDef(B.columnId),he=lookupLabel(we,B.value)??B.display??(B.label===""?b.filterBlank:B.label);return jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:B.level*16},children:[jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:B.expanded?"\u25BE":"\u25B8"}),K!=="column"&&jsxs("span",{className:"kanuni-datagrid-group-caption",children:[we?.headerName??B.columnId,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:he}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",B.count,")"]})]})},nt=(B,we)=>{let he=Ce.aggregates?be?.find(ye=>ye.columnId===we):void 0;return he?jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:formatSummaryValue(he,Ce.aggregates[summaryKey(we,he.type)],B)}):null},xt=Ae?(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,We=(B,we,he)=>{if(Ce){if(we===Lt)return l();if(Le){let ne=Le(ee(we,he));if(ne!==void 0)return ne}return nt(B,we)}if(Le&&!$e){let ne=Le(ee(we,he));if(ne!==void 0)return ne}let ye=$e?we===xt?jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:Xc(B,i.getCellValue(t.data,we),t,fe,Oe,we);return Ae&&we===xt?jsxs("span",{className:Ae.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:Ae.depth*16},children:[Ae.hasChildren?jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":Ae.expanded,"aria-label":Ae.expanded?b.collapseTreeRow:b.expandTreeRow,onClick:ne=>{ne.stopPropagation(),oe?.(t.key);},children:Ae.expanded?"\u25BE":"\u25B8"}):jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),ye]}):ye},Rt=(B,we)=>{if(!He||Ce)return "";let he=He(ee(B,we));return he?` ${he}`:""},Ct=B=>!R||t.kind!=="data"?"":R(t.key,B,t.data)?" kanuni-datagrid-cell--noted":"",ft=B=>M&&t.kind==="data"?M(n,B):null,Ze=(B,we)=>{let he=B.autoHeight?" kanuni-datagrid-cell--wrap":"";return !B.cellClassName||ce?he:he+In(B,we)},In=(B,we)=>{let he=B.cellClassName;if(!he)return "";if(typeof he=="string")return ` ${he}`;let ye=t.data,ne=he({value:i.getCellValue(ye,we),row:ye,node:t,column:B});return ne?` ${ne}`:""};if(X&&I.push(jsx("div",{role:"presentation","aria-hidden":"true",className:"kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell",style:{width:Qn,insetInlineStart:q.inset("statusColumn")},children:jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),j){let B=t.kind==="data"&&W!==null;I.push(jsx("div",{role:"gridcell","aria-colindex":q.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:Jn,insetInlineStart:q.inset("rowNumberColumn")},children:B?W:""},"__rownum"));}Ne&&I.push(jsx("div",{role:"gridcell","aria-colindex":q.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:ir,insetInlineStart:q.inset("detailColumn")},children:ce?null:jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":O,"aria-label":O?b.collapseDetails:b.expandDetails,onMouseDown:B=>B.stopPropagation(),onClick:B=>{B.stopPropagation(),ie?.(t.key);},children:O?"\u25BE":"\u25B8"})},"__detail")),_&&I.push(jsx("div",{role:"gridcell","aria-colindex":q.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:ar,insetInlineStart:q.inset("checkboxColumn")},onMouseDown:B=>B.stopPropagation(),onClick:B=>{B.target.tagName!=="INPUT"&&(B.stopPropagation(),A?.(t));},children:Ce?k&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:k==="all",ref:B=>{B&&(B.indeterminate=k==="some");},"aria-label":fillText(b.selectGroupAria,{count:String(Ce.count),group:Ce.display??Ce.label}),onChange:()=>S?.(String(Ce.key)),onClick:B=>B.stopPropagation(),onMouseDown:B=>B.stopPropagation()}):$e?null:jsx("input",{type:"checkbox",checked:h,disabled:!E,tabIndex:-1,"aria-label":fillText(b.selectRowAria,{row:String(t.key)}),onChange:()=>A?.(t),onClick:B=>B.stopPropagation(),onMouseDown:B=>B.stopPropagation()})},"__select"));let Vt=q.total,ot=B=>L===B?" kanuni-datagrid-cell--focused":"",It=B=>{let we=y&&t.kind==="data"?y(t.key,B):null;return we==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":we==="match"?" kanuni-datagrid-cell--find-match":""},Jt={left:r.left.length,center:r.center.length},kt=t.kind==="data"&&g?g(t):null,Ut=B=>kt?.widths.get(B.state.id)??B.state.width,Ft=B=>{let we=kt?.spans.get(B);return we?{"aria-colspan":we}:null};r.left.forEach((B,we)=>{let he=B.def,ye=we===r.left.length-1,ne=B.state.id;if(kt?.covered.has(ne))return;let yt=or("left",we,Jt);I.push(jsx("div",{...Me(ne,yt),className:`${Pa(he.align,he.dataType)} kanuni-datagrid-cell--pinned${ye?" kanuni-datagrid-pin-edge-left":""}${ot(ne)}${It(ne)}${Ze(he,ne)}${Rt(ne,yt)}${Ct(ne)}${Na(ft(ne))}`,...Ft(ne),style:{width:Ut(B),insetInlineStart:r.leftOffsets[we]+Vt},children:Ma(ft(ne),L===ne,()=>We(he,ne,yt))},ne));});let gt=kt?.lead??null,Kt=f-(kt?.leadingDelta??0),Je=w-(kt?.trailingDelta??0);Kt>0&&I.push(jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Kt}},"__lead"));let Xe=(B,we)=>{let he=B.def,ye=B.state.id,ne=or("center",we,Jt),yt=m?.get(ye),s=yt===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",c=gt&>.column.state.id===ye?gt.width:Ut(B);return jsx("div",{...Me(ye,ne),...Ft(ye),className:`${Pa(he.align,he.dataType)}${s}${ot(ye)}${It(ye)}${Ze(he,ye)}${Rt(ye,ne)}${Ct(ye)}${Na(ft(ye))}`,style:yt===void 0?{width:c}:{width:c,insetInlineStart:yt+Vt},children:Ma(ft(ye),L===ye,()=>We(he,ye,ne))},ye)},Ke=gt?r.center.indexOf(gt.column):-1,it=gt===null;return a.forEach((B,we)=>{let he=u?.[we]??we;!it&&he>Ke&&(I.push(Xe(gt.column,Ke)),it=true),!kt?.covered.has(B.state.id)&&I.push(Xe(B,he));}),it||I.push(Xe(gt.column,Ke)),Je>0&&I.push(jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Je}},"__trail")),r.right.forEach((B,we)=>{let he=B.def,ye=we===0,ne=B.state.id;if(kt?.covered.has(ne))return;let yt=or("right",we,Jt);I.push(jsx("div",{...Me(ne,yt),className:`${Pa(he.align,he.dataType)} kanuni-datagrid-cell--pinned${ye?" kanuni-datagrid-pin-edge-right":""}${ot(ne)}${It(ne)}${Ze(he,ne)}${Rt(ne,yt)}${Ct(ne)}${Na(ft(ne))}`,...Ft(ne),style:{width:Ut(B),insetInlineEnd:r.rightOffsets[we]},children:Ma(ft(ne),L===ne,()=>We(he,ne,yt))},ne));}),jsxs("div",{className:`kanuni-datagrid-row${C&&n%2===1?" kanuni-datagrid-row--odd":""}${h?" kanuni-datagrid-row--selected":""}${P?" kanuni-datagrid-row--focused":""}${$e?" kanuni-datagrid-row--tree-path":""}${Ce?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${Ce.level}`:""}${ge?` kanuni-datagrid-row--drop-${ge}`:""}${ue?` ${rowStatusClassName(ue,Fe,te)}`:""}${Re?` ${Re}`:""}`,role:"row","aria-rowindex":n+1+G,"aria-selected":Ce||!F?void 0:h,"aria-expanded":Ce?Ce.expanded:void 0,"aria-level":Ce?Ce.level+1:void 0,"data-row-key":String(t.key),"data-row-status":ue,"aria-description":ue?qe:void 0,"aria-busy":ue==="saving"?true:void 0,"aria-invalid":ue==="error"?true:void 0,"data-group-key":Ce?String(Ce.key):void 0,"data-group-level":Ce?Ce.level:void 0,style:T===void 0?void 0:{height:T},draggable:Q?.draggable&&!Ce?true:void 0,onDragStart:Q&&!Ce?B=>Q.onDragStart(t,B):void 0,onDragEnd:Q&&!Ce?()=>Q.onDragEnd():void 0,onDragOver:Q&&!Ce?B=>Q.onDragOver(t,B):void 0,onDrop:Q&&!Ce?B=>Q.onDrop(t,B):void 0,onMouseDown:U&&!Ce?B=>Dt(B)&&U(t,B):void 0,onClick:Ce?()=>Te?.(String(Ce.key)):D?B=>Dt(B)&&D(t,n,B):void 0,onDoubleClick:re?B=>Dt(B)&&re(t,n,B):void 0,onContextMenu:de?B=>Dt(B)&&de(t,n,B):void 0,children:[Q&&!Ce&&jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:b.dragToReorder,onMouseEnter:()=>Q.setDraggable(true),onMouseLeave:()=>Q.setDraggable(false),children:jsx("svg",{width:"10",height:"14",viewBox:"0 0 10 14",focusable:"false",children:jsxs("g",{fill:"currentColor",children:[jsx("circle",{cx:"3",cy:"3",r:"1.2"}),jsx("circle",{cx:"7",cy:"3",r:"1.2"}),jsx("circle",{cx:"3",cy:"7",r:"1.2"}),jsx("circle",{cx:"7",cy:"7",r:"1.2"}),jsx("circle",{cx:"3",cy:"11",r:"1.2"}),jsx("circle",{cx:"7",cy:"11",r:"1.2"})]})})}),N&&t.kind==="data"?N({row:t.data,node:t,rowIndex:n,selected:h,focused:P}):I]})}var Zn=memo(jc);var eo=26;function Fa(e,t){return computeHeaderBands(e,t)}function Ka(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function Oa(e,t){let n=jsx("span",{className:"kanuni-datagrid-band-label",children:e.label});if(!t||e.spacer||e.columnIds.length===0)return n;let r=t.pathOf(e.columnIds[0]).slice(0,e.level+1);if(r.length!==e.level+1||!t.collapsible(r))return n;let i=t.collapsed(r);return jsxs(Fragment,{children:[jsx("button",{type:"button",className:"kanuni-datagrid-band-toggle","aria-expanded":!i,"aria-label":i?t.labels.expand:t.labels.collapse,title:i?t.labels.expand:t.labels.collapse,onClick:a=>{a.stopPropagation(),t.onToggle(r);},children:jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),jsx("path",{d:"M5 8h6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),i&&jsx("path",{d:"M8 5v6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}),n]})}function Zc({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,depth:i,checkboxColumn:a=false,detailColumn:u=false,statusColumn:m=false,rowNumberColumn:f=false,rowHeight:w=eo,bandFold:C}){if(i<=0)return null;let h=qt({statusColumn:m,rowNumberColumn:f,detailColumn:u,checkboxColumn:a}).total,F=Fa(e.left,i),E=Fa(t,i),k=Fa(e.right,i),S=(K,L,P)=>{let N=P;for(let _=0;_<L;_++)N+=K[_].width;return N};return jsx(Fragment,{children:Array.from({length:i},(K,L)=>jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":L+1,style:{width:e.totalWidth+h,height:w,top:L*w},children:[h>0&&jsx("div",{className:"kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned",style:{width:h,insetInlineStart:0},"aria-hidden":"true"}),(F[L]??[]).map((P,N)=>jsx("div",{className:Ka(P,` kanuni-datagrid-band-cell--pinned${N===(F[L]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:P.spacer?"presentation":"columnheader","aria-colspan":P.spacer?void 0:P.columnIds.length,style:{width:P.width,insetInlineStart:S(F[L]??[],N,h)},title:P.spacer?void 0:P.label,children:Oa(P,C)},P.columnIds[0])),n>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(E[L]??[]).map(P=>jsx("div",{className:Ka(P),role:P.spacer?"presentation":"columnheader","aria-colspan":P.spacer?void 0:P.columnIds.length,style:{width:P.width},title:P.spacer?void 0:P.label,children:Oa(P,C)},P.columnIds[0])),r>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),(k[L]??[]).map((P,N)=>{let _=k[L]??[],X=0;for(let j=N+1;j<_.length;j++)X+=_[j].width;return jsx("div",{className:Ka(P,` kanuni-datagrid-band-cell--pinned${N===0?" kanuni-datagrid-pin-edge-right":""}`),role:P.spacer?"presentation":"columnheader","aria-colspan":P.spacer?void 0:P.columnIds.length,style:{width:P.width,insetInlineEnd:X},title:P.spacer?void 0:P.label,children:Oa(P,C)},P.columnIds[0])})]},L))})}var Aa=memo(Zc);var rm=()=>jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"0.6",strokeLinejoin:"round"})});function am(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function im({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:i,trailingSpacer:a,sort:u,sortable:m,onSort:f,headerFilter:w=false,filteredColumns:C,onOpenFilter:h,filterIconMode:F="hover",checkboxColumn:E=false,detailColumn:k=false,statusColumn:S=false,rowNumberColumn:K=false,rowNumberHeader:L="#",selectAllState:P="none",selectAllDisabled:N=false,onToggleSelectAll:_,draggable:X=false,reorderable:j=false,onReorder:W,resizable:R=false,onResize:M,onAutoFit:g,onHeaderContextMenu:y,groupLevels:G,onHeaderClick:D,getHeaderClassName:U,renderHeaderLabel:re}){let A=Se(),Z=qt({statusColumn:S,rowNumberColumn:K,detailColumn:k,checkboxColumn:E}),de=new Map(u.map((te,Re)=>[te.columnId,{direction:te.direction,order:Re}])),fe=new Set(C??[]),Oe=[...n.left.map(te=>te.state.id),...r.map(te=>te.state.id),...n.right.map(te=>te.state.id)],[Te,be]=useState(null),Ne=useId(),O=Te&&Oe.includes(Te)?Te:Oe[0],ie=te=>{be(te),document.querySelector(`[data-column-id="${te}"].kanuni-datagrid-header-cell`)?.focus();},oe=te=>{let Re=Oe.indexOf(O),T=Math.min(Oe.length-1,Math.max(0,Re+te));T!==Re&&ie(Oe[T]);},V=useRef(null),Ee=useRef(false),[d,Le]=useState(null),He=Oe,Ge=te=>[...n.left,...n.center,...n.right].find(Re=>Re.state.id===te)?.state.pinned??null,Ue=(te,Re)=>(Ee.current?te>Re.left+Re.width/2:te<Re.left+Re.width/2)?"before":"after",et=(te,Re)=>{let T=V.current;if(!j||!T||T===te||Ge(T)!==Ge(te))return;Re.preventDefault(),Re.dataTransfer.dropEffect="move";let b=Ue(Re.clientX,Re.currentTarget.getBoundingClientRect());Le(I=>I?.id===te&&I.side===b?I:{id:te,side:b});},Q=(te,Re)=>{let T=V.current;if(Le(null),!j||!T||T===te||Ge(T)!==Ge(te))return;if(Re.preventDefault(),Re.stopPropagation(),Ue(Re.clientX,Re.currentTarget.getBoundingClientRect())==="before")W?.(T,te);else {let I=He[He.indexOf(te)+1];W?.(T,I===T?He[He.indexOf(te)+2]:I);}V.current=null;},[ge,ue]=useState(null),qe=(te,Re)=>{if(!R)return;Re.preventDefault(),Re.stopPropagation();let T=Re.currentTarget,b=Re.clientX,I=te.state.width,q=Ee.current?-1:1,ve=te.state.id;ue(ve),T.setPointerCapture(Re.pointerId);let ee=I,Me=false,Ae=Ce=>{Me=true,ee=I+(Ce.clientX-b)*q,M?.(ve,ee,false);},$e=()=>{T.releasePointerCapture?.(Re.pointerId),T.removeEventListener("pointermove",Ae),T.removeEventListener("pointerup",$e),T.removeEventListener("pointercancel",$e),Me&&M?.(ve,ee,true),ue(null);};T.addEventListener("pointermove",Ae),T.addEventListener("pointerup",$e),T.addEventListener("pointercancel",$e);},Fe=(te,Re,T)=>{let b=te.def,I=te.state.id,q=m&&b.sortable!==false,ve=w&&b.filterable!==false,ee=I===GROUP_COLUMN_ID,Me=de.get(ee?G?.[0]??I:I),Ae=X&&b.groupable!==false||j&&b.reorderable!==false,$e=d?.id===I?d.side:null,Ce=U?.(I);return jsxs("div",{className:`kanuni-datagrid-header-cell${Re}${Ce?` ${Ce}`:""}${q?" kanuni-datagrid-header-cell--sortable":""}${$e?` kanuni-datagrid-header-cell--drop-${$e}`:""}${ge===I?" kanuni-datagrid-header-cell--resizing":""}${b.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:T,role:"columnheader","aria-labelledby":`${Ne}-${encodeURIComponent(I)}`,"aria-sort":Me?Me.direction==="asc"?"ascending":"descending":"none","data-column-id":I,tabIndex:I===O?0:-1,onFocus:()=>be(I),draggable:Ae&&ge===null,onDragStart:ce=>{ce.dataTransfer.setData("text/x-kanuni-column",I),ce.dataTransfer.effectAllowed="move",V.current=I,Ee.current=getComputedStyle(ce.currentTarget).direction==="rtl";},onDragEnd:()=>{V.current=null,Le(null);},onDragOver:j?ce=>et(I,ce):void 0,onDragLeave:j?()=>Le(ce=>ce?.id===I?null:ce):void 0,onDrop:j?ce=>Q(I,ce):void 0,onContextMenu:y&&!isChromeColumn(I)?ce=>y(I,ce):void 0,onClick:q||D?ce=>{D?.(I,ce)||q&&f(I,ce.shiftKey);}:void 0,onKeyDown:ce=>{ce.key==="ArrowRight"?(ce.preventDefault(),oe(1)):ce.key==="ArrowLeft"?(ce.preventDefault(),oe(-1)):ce.key==="Home"?(ce.preventDefault(),ie(Oe[0])):ce.key==="End"?(ce.preventDefault(),ie(Oe[Oe.length-1])):ve&&ce.altKey&&ce.key==="ArrowDown"?(ce.preventDefault(),h?.(I,ce.currentTarget)):q&&(ce.key==="Enter"||ce.key===" ")&&(ce.preventDefault(),f(I,ce.shiftKey));},children:[jsx("span",{className:"kanuni-datagrid-header-label",id:`${Ne}-${encodeURIComponent(I)}`,children:re?.(I)??am(b,I)}),Me&&jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:Me.direction==="asc"?"\u25B2":"\u25BC"}),Me&&u.length>1&&!ee&&jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:Me.order+1}),w&&b.filterable!==false&&jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${fe.has(I)?" kanuni-datagrid-filter-button--active":""}${F==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":fillText(A.filterColumnAria,{column:b.headerName??I}),"aria-haspopup":"dialog","data-filter-button":I,tabIndex:-1,onClick:ce=>{ce.stopPropagation(),h?.(I,ce.currentTarget);},children:jsx(rm,{})}),R&&b.resizable!==false&&jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":I,role:"presentation",onPointerDown:ce=>qe(te,ce),onDoubleClick:ce=>{ce.stopPropagation(),g?.(I);},onClick:ce=>ce.stopPropagation()})]},I)};return jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/eo)+1,style:{width:n.totalWidth+Z.total,top:e||void 0},children:[S&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell",role:"presentation","aria-hidden":"true",style:{width:Qn,insetInlineStart:Z.inset("statusColumn")}}),K&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":Z.colIndex("rowNumberColumn"),"aria-label":A.rowNumberAria,style:{width:Jn,insetInlineStart:Z.inset("rowNumberColumn")},children:L??""}),k&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":Z.colIndex("detailColumn"),"aria-label":A.detailsAria,style:{width:ir,insetInlineStart:Z.inset("detailColumn")}}),E&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":Z.colIndex("checkboxColumn"),style:{width:ar,insetInlineStart:Z.inset("checkboxColumn")},children:jsx("input",{type:"checkbox",checked:P==="all",ref:te=>{te&&(te.indeterminate=P==="some");},"aria-label":A.selectAllRows,disabled:N,onChange:()=>_?.()})}),n.left.map((te,Re)=>Fe(te,` kanuni-datagrid-header-cell--pinned${Re===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:te.state.width,insetInlineStart:n.leftOffsets[Re]+Z.total})),i>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:i}}),r.map(te=>{let Re=t?.get(te.state.id);return Re===void 0?Fe(te,"",{width:te.state.width}):Fe(te," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:te.state.width,insetInlineStart:Re+Z.total})}),a>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((te,Re)=>Fe(te,` kanuni-datagrid-header-cell--pinned${Re===0?" kanuni-datagrid-pin-edge-right":""}`,{width:te.state.width,insetInlineEnd:n.rightOffsets[Re]}))]})}var _a=memo(im);function Wa(e,t,n=[]){let r=null,i=new Set,a=u=>{if(i.has(u)||(i.add(u),t.isPending(u)))return;let m=t.textFor(u);if(m===null)return;let f=e[u]??"";f!==m&&(f===""&&m===""||(r??={...e},r[u]=m));};for(let u of Object.keys(e))a(u);for(let u of n)a(u);return r??e}function dm({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:i,trailingSpacer:a,values:u,checkboxColumn:m=false,detailColumn:f=false,statusColumn:w=false,rowNumberColumn:C=false,placeholder:h,onChange:F,onCommit:E,periodSuggestions:k,periodListId:S,operators:K,onOperatorChange:L,renderCustom:P}){let N=Se(),_=qt({statusColumn:w,rowNumberColumn:C,detailColumn:f,checkboxColumn:m}),X=h??N.filterPlaceholder,j=(W,R,M)=>{let g=W.state.id,y=W.def.filterable!==false,G=y?P?.(g):void 0,D=y&&G===void 0?customFilterOperators(W.def):[],U=D.some(A=>A.id===K?.[g])?K[g]:"",re=D.find(A=>A.id===U)?.operandType==="none";return jsxs("div",{className:`kanuni-datagrid-filter-cell${R}`,role:"gridcell",style:M,"data-column-id":g,children:[y&&G!==void 0&&G,y&&G===void 0&&D.length>0&&jsxs("select",{className:"kanuni-datagrid-filter-operator",value:U,"aria-label":fillText(N.filterOperatorAria,{column:W.def.headerName??g}),"data-filter-operator-for":g,onChange:A=>L?.(g,A.target.value),children:[jsx("option",{value:"",children:N.filterOperatorDefault}),D.map(A=>jsx("option",{value:A.id,children:A.label},A.id))]}),y&&G===void 0&&jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:u[g]??"",placeholder:X,"aria-label":fillText(N.filterColumnAria,{column:W.def.headerName??g}),"data-filter-for":g,disabled:re||void 0,list:W.def.dataType==="date"&&S&&U===""?S:void 0,onChange:A=>F(g,A.target.value),onKeyDown:A=>{A.key==="Enter"&&E?.(g,A.target.value);},onBlur:A=>E?.(g,A.target.value)})]},g)};return jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+_.total,"--dg-band-offset":`${e}px`},children:[S&&k&&k.length>0&&jsx("datalist",{id:S,children:k.map(W=>jsx("option",{value:W},W))}),_.total>0&&jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",role:"gridcell",style:{width:_.total,insetInlineStart:0}}),n.left.map((W,R)=>j(W,` kanuni-datagrid-filter-cell--pinned${R===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:W.state.width,insetInlineStart:n.leftOffsets[R]+_.total})),i>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:i}}),r.map(W=>{let R=t?.get(W.state.id);return R===void 0?j(W,"",{width:W.state.width}):j(W," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:W.state.width,insetInlineStart:R+_.total})}),a>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((W,R)=>j(W,` kanuni-datagrid-filter-cell--pinned${R===0?" kanuni-datagrid-pin-edge-right":""}`,{width:W.state.width,insetInlineEnd:n.rightOffsets[R]}))]})}var Va=memo(dm);function vt({children:e,dark:t=false,kind:n="popup"}){let[r,i]=useState(null),a=Bt(),u=Zt();return useEffect(()=>{let m=document.createElement("div");return m.className=`kanuni-datagrid-root kanuni-datagrid-portal${t?" kanuni-datagrid-dark":""}${a}`,m.setAttribute(PORTAL_ATTRIBUTE,n),m.style.pointerEvents="auto",u().appendChild(m),i(m),()=>{m.remove();}},[t,a,u,n]),r?createPortal(e,r):null}function Nn({anchor:e,onClose:t,margin:n=8,autoFocus:r=false}){let i=useRef(null),[a,u]=useState(e),m=useCallback(f=>{if(i.current=f,!f)return;let w=f.getBoundingClientRect(),C=e.top+w.height+n>window.innerHeight,h=e.top-w.height-n*2,F=C&&h>n?h:e.top;u({left:Math.max(n,Math.min(e.left,window.innerWidth-w.width-n)),top:Math.max(n,Math.min(F,window.innerHeight-w.height-n))}),r&&f.focus();},[e.left,e.top,n,r]);return useEffect(()=>{let f=h=>{let F=i.current;F&&!F.contains(h.target)&&t();},w=h=>{h.key==="Escape"&&t();},C=h=>{let F=i.current,E=h.target;F&&E instanceof Node&&F.contains(E)||t();};return document.addEventListener("mousedown",f),document.addEventListener("keydown",w),window.addEventListener("scroll",C,true),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("keydown",w),window.removeEventListener("scroll",C,true);}},[t]),{position:a,ref:m,elementRef:i}}var rn=25,ko=new Map,fs=200,km=200,gs=8;function Tm(e){let t=Se();return 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 vm=memo(function({itemKey:t,label:n,display:r,index:i,active:a,checked:u,onToggle:m,onFocus:f}){return jsxs("div",{role:"option","aria-selected":u,tabIndex:a?0:-1,className:`kanuni-datagrid-filter-item${a?" kanuni-datagrid-filter-item--active":""}`,"data-value":n,"data-index":i,onFocus:()=>f(i),onClick:()=>m(t),children:[jsx("input",{type:"checkbox",readOnly:true,checked:u,tabIndex:-1}),jsx("span",{children:r})]})});function xm(e,t){return e.nonBlank?t.nonBlank:ws({value:e.blank?null:e.value,label:e.label},t)}function ws(e,t){return distinctDisplayText(e,{filterBlank:t.blank,filterEmptyText:t.emptyText,filterSpace:t.space,filterSpaces:t.spaces})}var ja={value:void 0,label:""},dr=e=>e.value===null||e.value===void 0;function Em({index:e,row:t,active:n,checked:r,text:i,onToggle:a,onFocus:u}){return t?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:()=>u(e),onClick:()=>a(t),children:[jsx("input",{type:"checkbox",readOnly:true,checked:r,tabIndex:-1}),jsx("span",{children:xm(t,i)})]}):jsx("div",{role:"option","aria-selected":false,"aria-busy":"true",className:"kanuni-datagrid-filter-item kanuni-datagrid-filter-item--pending","data-index":e,children:jsx("span",{"aria-hidden":"true",children:"\u2026"})})}function Ja({gridId:e,columnId:t,headerLabel:n,entries:r,initialSelected:i,anchor:a,loading:u=false,dark:m,onApply:f,onClose:w,onCustom:C,truncated:h=false,onSearch:F,pager:E,labels:k}){let S=Tm(k),[,K]=useReducer(b=>b+1,0);useEffect(()=>E?E.subscribe(K):void 0,[E]);let[L,P]=useState(""),[N,_]=useState(0),[X,j]=useState(()=>new Set(i??r.map(distinctEntryKey))),[W,R]=useState(false),M=useRef(null),g=useRef(null),[y,G]=useState(0),[D,U]=useState(240),re=`${e??""}:${t}`,A=ko.get(re),Z=useRef(A?.scrollTop??null),[de,fe]=useState(A&&A.width&&A.height?{width:A.width,height:A.height}:null),Oe=useCallback(b=>{M.current=b,b?.focus();},[]),Te=useRef(null),be=useMemo(()=>{let b=foldText(L.trim());if(!b||h)return r;let I=Te.current;(!I||I.entries!==r)&&(I={entries:r,lowered:r.map(ve=>foldText(ve.label)),needle:"",result:[]},Te.current=I);let q=I.needle!==""&&b.includes(I.needle)?I.result.filter(ve=>foldText(ve.label).includes(b)):r.filter((ve,ee)=>I.lowered[ee].includes(b));return I.needle=b,I.result=q,q},[r,L,h]);useEffect(()=>{if(!F)return;let b=setTimeout(()=>F(L),150);return ()=>clearTimeout(b)},[L,F]),useEffect(()=>{if(!E)return;let b=setTimeout(()=>{if(E.getSearch()===L.trim())return;E.setSearch(L);let I=g.current;I&&(I.scrollTop=0),G(0),_(0);},150);return ()=>clearTimeout(b)},[E,L]),useEffect(()=>{W||!i||j(new Set(i));},[i,W]),useEffect(()=>{W||i||j(new Set(r.map(distinctEntryKey)));},[r,W,i]);let Ne=useCallback(b=>{g.current=b,b&&U(b.clientHeight||240);},[]);useEffect(()=>{let b=g.current;!b||Z.current===null||u||b.scrollHeight<=b.clientHeight||(b.scrollTop=Z.current,Z.current=null,G(b.scrollTop));});let O=useMemo(()=>{if(L.trim()!=="")return be;let b=be.findIndex(dr);return b<0?be:[...be.slice(0,b+1),ja,...be.slice(b+1)]},[be,L]),ie=useMemo(()=>{let b=O.length,I=Math.max(0,Math.floor(y/rn)-gs),q=Math.ceil(D/rn)+gs*2,ve=Math.min(I,Math.max(0,b-1)),ee=Math.min(b,ve+q);return {start:ve,end:ee,count:b,rows:O.slice(ve,ee)}},[O,y,D]);useEffect(()=>{let b=g.current;E&&b&&U(b.clientHeight||240);},[E,u,E?.isLoading(),E?.getRowCount()]);let oe=E?E.getWindow(y,Math.max(D,150)):null,V=oe?.start??0,Ee=oe?.end??0;useEffect(()=>{E&&E.ensure(V,Ee);},[E,V,Ee,y]);let d=E?E.getRowCount():O.length,Le=E?!!oe&&N>=oe.start&&N<oe.end&&!!E.getRow(N):N>=ie.start&&N<ie.end,He=u||(E?E.isLoading():false),Ge=Nn({anchor:a,onClose:w}),[Ue,et]=useState(null),Q=(Ue??Ge.position.left)+(de?.width??260)+48<window.innerWidth?"right":"left",ge=b=>{b.preventDefault(),b.stopPropagation();let I=Ge.elementRef.current;if(!I)return;let q=I.getBoundingClientRect(),ve=Q,ee={x:b.clientX,y:b.clientY,w:q.width,h:q.height,left:q.left},Me=null,Ae=Ce=>{let ce=Ce.clientX-ee.x,Lt=Ce.clientY-ee.y,l=window.innerHeight-q.top-12,nt=Math.min(l,Math.max(km,ee.h+Lt));if(ve==="right"){let xt=window.innerWidth-ee.left-12;Me={width:Math.min(xt,Math.max(fs,ee.w+ce)),height:nt},fe(Me);}else {let xt=ee.left+ee.w,We=xt-12,Rt=Math.min(We,Math.max(fs,ee.w-ce));Me={width:Rt,height:nt},fe(Me),et(xt-Rt);}g.current&&U(g.current.clientHeight);},$e=()=>{if(window.removeEventListener("pointermove",Ae),window.removeEventListener("pointerup",$e),Me){let Ce=ko.get(re);ko.set(re,{scrollTop:Ce?.scrollTop??g.current?.scrollTop??0,width:Math.round(Me.width),height:Math.round(Me.height)});}};window.addEventListener("pointermove",Ae),window.addEventListener("pointerup",$e);},ue=useCallback(b=>{R(true),j(I=>{let q=new Set(I);if(b===NONBLANK_KEY){let ve=distinctNonBlankTicked(r,I);for(let ee of r)dr(ee)&&!ve?q.delete(BLANK_KEY):q.add(distinctEntryKey(ee));return q}return q.has(b)?q.delete(b):q.add(b),q});},[r]),qe=useCallback(b=>_(b),[]),Fe=()=>{if(He)return;if(E){f(E.buildFilter(t));return}if(X.size===r.length){f(null);return}let b=r.filter(ee=>X.has(distinctEntryKey(ee))),I=b.some(dr),q=b.filter(ee=>!dr(ee)),ve;distinctNonBlankTicked(r,X)?ve={columnId:t,operator:"isnotnull"}:q.length===0?ve={columnId:t,operator:"isnull"}:I?ve={logic:"or",nodes:[{columnId:t,operator:"in",value:q.map(ee=>ee.value)},{columnId:t,operator:"isnull"}]}:ve={columnId:t,operator:"in",value:q.map(ee=>ee.value)},f(ve);},te=b=>{let I=Math.max(0,Math.min(d-1,b));if(_(I),E){let Me=g.current;Me&&(b<=0||b>=d-1)&&(Me.scrollTop=b<=0?0:Me.scrollHeight),requestAnimationFrame(()=>{let Ae=Ge.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${I}"]`);Ae?.focus(),Ae?.scrollIntoView?.({block:"nearest"});});return}let q=g.current;if(q){let Me=I*rn,Ae=q.clientHeight||240,$e=q.scrollTop;Me<$e?$e=Me:Me+rn>$e+Ae&&($e=Me+rn-Ae),$e!==q.scrollTop&&(q.scrollTop=$e),G($e);}let ve=()=>Ge.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${I}"]`),ee=ve();ee?(ee.focus(),ee.scrollIntoView?.({block:"nearest"})):requestAnimationFrame(()=>ve()?.focus());},Re=b=>b.key.length===1&&!b.ctrlKey&&!b.metaKey&&!b.altKey,T=b=>{let I=b.target===M.current;if(!((b.key==="Enter"||b.key===" ")&&b.target instanceof HTMLButtonElement)){if(b.key==="Tab"){let q=Ge.elementRef.current,ve=q?Array.from(q.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')):[],ee=ve[0],Me=ve[ve.length-1],Ae=document.activeElement;ee&&Me&&(!b.shiftKey&&(Ae===Me||Ae===q)?(b.preventDefault(),ee.focus()):b.shiftKey&&(Ae===ee||Ae===q)&&(b.preventDefault(),Me.focus()));return}if(b.key==="Backspace"&&!I){b.preventDefault(),M.current?.focus(),P(q=>q.slice(0,-1)),_(0);return}if(b.key==="ArrowDown"){b.preventDefault(),te(I?0:N+1);return}if(b.key==="ArrowUp"){b.preventDefault(),te(I?E?0:O.length-1:N-1);return}if(!I&&(b.key==="Home"||b.key==="End")){b.preventDefault(),te(b.key==="Home"?0:d-1);return}if(b.key===" "&&!I){if(b.preventDefault(),E){let ve=E.getRow(N);ve&&E.toggle(ve);return}let q=O[N];q&&ue(q===ja?NONBLANK_KEY:distinctEntryKey(q));return}if(b.key==="Enter"){b.preventDefault(),Fe();return}!I&&Re(b)&&b.key!==" "&&(b.preventDefault(),M.current?.focus(),P(q=>q+b.key),_(0));}};return jsx(vt,{dark:m,children:jsxs("div",{ref:Ge.ref,className:"kanuni-datagrid-filter-popup",style:{left:Ue??Ge.position.left,top:Ge.position.top,...de?{width:de.width,height:de.height,maxHeight:"none"}:null},role:"dialog","aria-label":S.popupAria.replace("{column}",n),tabIndex:-1,onKeyDown:T,children:[jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${Q}`,"data-testid":"dg-filter-resize",onPointerDown:ge}),jsx("input",{ref:Oe,className:"kanuni-datagrid-filter-search",type:"search",placeholder:S.search,value:L,onChange:b=>{P(b.target.value),_(0);},"data-testid":"dg-filter-search"}),!E&&h&&jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:S.truncated}),C&&jsx("button",{type:"button",className:"kanuni-datagrid-filter-custom","data-testid":"dg-filter-custom",onClick:C,children:S.custom}),jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsx("button",{type:"button",onClick:()=>{if(E)return E.selectAll();R(true),L.trim()===""?j(new Set(r.map(distinctEntryKey))):j(b=>{let I=new Set(b);for(let q of be)I.add(distinctEntryKey(q));return I});},children:S.selectAll}),jsx("button",{type:"button",onClick:()=>{if(E)return E.clear();R(true),L.trim()===""?j(new Set):j(b=>{let I=new Set(b);for(let q of be)I.delete(distinctEntryKey(q));return I});},children:S.clear})]}),jsxs("div",{ref:Ne,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true",tabIndex:Le||d===0?-1:0,"aria-busy":He||void 0,"aria-setsize":d,onScroll:b=>{let I=b.target.scrollTop;G(I),Z.current=null;let q=ko.get(re);ko.set(re,{...q,scrollTop:I});},children:[He&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:S.loading}),!He&&d===0&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:S.noMatch}),E&&oe&&d>0&&jsx("div",{style:{height:oe.totalHeight,position:"relative"},children:jsx("div",{style:{transform:`translateY(${oe.offsetY}px)`},children:Array.from({length:oe.end-oe.start},(b,I)=>{let q=oe.start+I,ve=E.getRow(q);return jsx(Em,{index:q,row:ve,active:q===N,checked:ve?E.isChecked(ve):false,text:S,onToggle:ee=>E.toggle(ee),onFocus:qe},q)})})}),!E&&ie.count>0&&jsx("div",{style:{height:O.length*rn,position:"relative"},children:jsx("div",{style:{transform:`translateY(${ie.start*rn}px)`},children:ie.rows.map((b,I)=>{let q=ie.start+I,ve=b===ja,ee=ve?NONBLANK_KEY:distinctEntryKey(b);return jsx(vm,{itemKey:ee,label:b.label,display:ve?S.nonBlank:ws(b,S),index:q,active:q===N,checked:ve?distinctNonBlankTicked(r,X):X.has(ee),onToggle:ue,onFocus:qe},ee)})})})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",onClick:w,children:S.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:Fe,disabled:He,"data-testid":"dg-filter-apply",children:S.apply})]})]})})}function Qa(e,t,n){return n==="row"?e.getColumnFilter(t,FILTER_PART_ROW):e.getColumnFilter(t,FILTER_PART_SET)??e.getColumnFilter(t,FILTER_PART_DEFAULT)}function ei({controller:e,columnId:t,surface:n,close:r}){let[i,a]=useState(()=>Qa(e,t,n));useEffect(()=>(a(Qa(e,t,n)),e.events.on("filterChanged",()=>{a(Qa(e,t,n));})),[e,t,n]);let u=useCallback(w=>{e.setColumnFilter(t,w,n==="row"?FILTER_PART_ROW:FILTER_PART_SET);},[e,t,n]),m=useCallback(()=>{},[]),f=e.getColumnModel().getDef(t);return f?.renderFilter?jsx(Fragment,{children:f.renderFilter({columnId:t,column:f,surface:n,value:i,setValue:u,close:r??m})}):null}var Mm='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function hs({controller:e,columnId:t,headerLabel:n,anchor:r,dark:i,onClose:a}){let u=Se(),m=Nn({anchor:r,onClose:a}),f=useRef(false),w=m.ref,C=useCallback(h=>{w(h),!(!h||f.current)&&(f.current=true,(h.querySelector(Mm)??h).focus({preventScroll:true}));},[w]);return jsx(vt,{dark:i,children:jsx("div",{ref:C,tabIndex:-1,className:"kanuni-datagrid-filter-popup kanuni-datagrid-filter-popup--custom",style:{left:m.position.left,top:m.position.top},role:"dialog","aria-label":u.filterPopupAria.replace("{column}",n),"data-column-id":t,children:jsx(ei,{controller:e,columnId:t,surface:"popup",close:a})})})}var ti="text/x-kanuni-column";function Fm({columns:e,levels:t,onSetLevels:n,maxLevels:r=1,onExpandAll:i,onCollapseAll:a,emptyText:u}){let m=Se(),f=u??m.groupPanelHint,[w,C]=useState(false),h=useRef(null),[F,E]=useState(null),k=R=>e.find(g=>g.state.id===R)?.def.headerName??R,S=R=>{if(!R||t.includes(R))return;let M=t.length>=r?t.slice(0,r-1):[...t];n([...M,R]);},K=R=>n(t.filter(M=>M!==R)),L=(R,M)=>{let g=t.filter(G=>G!==R),y=Math.max(0,Math.min(g.length,M));n([...g.slice(0,y),R,...g.slice(y)]);},P=(R,M,g)=>{if(R===M)return;let G=t.filter(D=>D!==R).indexOf(M);G<0||L(R,g==="before"?G:G+1);},N=(R,M)=>{let g=R+M;g<0||g>=t.length||P(t[R],t[g],M<0?"before":"after");},_=(R,M)=>R<M.top+M.height/2?"before":"after",X=(R,M)=>{M.preventDefault(),M.stopPropagation();let g=_(M.clientY,M.currentTarget.getBoundingClientRect());E(null),C(false);let y=h.current;if(h.current=null,y){P(y,t[R],g);return}let G=M.dataTransfer.getData(ti);if(!G||t.includes(G))return;if(t.length>=r){S(G);return}let D=g==="before"?R:R+1;n([...t.slice(0,D),G,...t.slice(D)]);},j=(R,M,g)=>{let y=g.ctrlKey||g.metaKey;y&&(g.key==="ArrowUp"||g.key==="ArrowLeft")?(g.preventDefault(),N(R,-1)):y&&(g.key==="ArrowDown"||g.key==="ArrowRight")?(g.preventDefault(),N(R,1)):(g.key==="Delete"||g.key==="Backspace")&&(g.preventDefault(),K(M));},W=e.filter(R=>!t.includes(R.state.id));return jsxs("div",{className:`kanuni-datagrid-group-panel${w?" kanuni-datagrid-group-panel--over":""}`,onDragOver:R=>{R.preventDefault(),C(true);},onDragLeave:()=>C(false),onDrop:R=>{if(R.preventDefault(),C(false),E(null),h.current){h.current=null;return}S(R.dataTransfer.getData(ti));},children:[t.length>0?jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((R,M)=>jsx("div",{className:`kanuni-datagrid-group-level${F?.index===M?` kanuni-datagrid-group-level--drop-${F.side}`:""}`,style:{"--dg-group-level":M},"data-group-level":M,onDragOver:g=>{g.preventDefault(),g.stopPropagation();let y=_(g.clientY,g.currentTarget.getBoundingClientRect());E(G=>G?.index===M&&G.side===y?G:{index:M,side:y});},onDragLeave:()=>E(g=>g?.index===M?null:g),onDrop:g=>X(M,g),children:jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:r>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${fillText(m.groupLevelAria,{n:M+1})}: ${k(R)}`,onDragStart:g=>{h.current=R,g.dataTransfer.effectAllowed="move",g.dataTransfer.setData(ti,R);},onDragEnd:()=>{h.current=null,E(null);},onKeyDown:g=>j(M,R,g),children:[r>1&&jsx("span",{className:"kanuni-datagrid-group-chip-level",children:M+1}),k(R),jsx("button",{type:"button","aria-label":fillText(m.groupRemoveAria,{column:k(R)}),onClick:()=>K(R),children:"\xD7"})]})},R))}):jsx("span",{className:"kanuni-datagrid-group-panel-hint",children:f}),jsxs("div",{className:"kanuni-datagrid-group-panel-actions",children:[t.length>0&&jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:i,children:m.groupExpandAll}),jsx("button",{type:"button",onClick:a,children:m.groupCollapseAll})]}),jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsx("span",{className:"kanuni-datagrid-sr-only",children:r>1?m.groupAddLevel:m.groupByColumn}),r>1?jsxs("select",{value:"",disabled:W.length===0,onChange:R=>S(R.target.value),children:[jsx("option",{value:"",children:m.groupAddLevelButton}),W.map(R=>jsx("option",{value:R.state.id,children:R.def.headerName??R.state.id},R.state.id))]}):jsxs("select",{value:t[0]??"",onChange:R=>n(R.target.value?[R.target.value]:[]),children:[jsx("option",{value:"",children:m.groupNoGrouping}),e.map(R=>jsx("option",{value:R.state.id,children:R.def.headerName??R.state.id},R.state.id))]})]})]})]})}var ni=memo(Fm);function Bm({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,defs:i,values:a,checkboxColumn:u=false,detailColumn:m=false,statusColumn:f=false,rowNumberColumn:w=false,onPickSummary:C,emptyHint:h="",position:F="bottom",bandOffset:E=0,headerRowsBetween:k=0}){let S=Se(),K=summaryTypeLabels(S),L=new Map(i.map(_=>[_.columnId,_])),P=qt({statusColumn:f,rowNumberColumn:w,detailColumn:m,checkboxColumn:u}).total,N=(_,X,j)=>{let W=_.state.id,R=L.get(W),M=R?a[summaryKey(R.columnId,R.type)]:void 0,g=_.def.dataType==="number"||_.def.dataType==="bigint",y=isChromeColumn(W)?void 0:C;return jsx("div",{className:`kanuni-datagrid-footer-cell${X}${g?" kanuni-datagrid-footer-cell--number":""}${R?" kanuni-datagrid-footer-cell--active":""}`,style:j,role:"gridcell","data-column-id":W,"data-summary-type":R?.type??"",title:R?`${summaryLabel(R,K)} \u2014 ${_.def.headerName??W}`:void 0,onContextMenu:y?G=>y(W,G):void 0,onClick:y?G=>y(W,G):void 0,children:R?jsx("span",{className:"kanuni-datagrid-footer-value",children:formatSummaryValue(R,M,_.def)}):y?jsx("span",{className:"kanuni-datagrid-footer-hint",children:h}):null},W)};return jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${F}`,role:"row","aria-label":S.columnTotalsAria,style:{width:e.totalWidth+P,"--dg-band-offset":`${E}px`,"--dg-pinned-gap":String(k)},children:[P>0&&jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:P,insetInlineStart:0}}),e.left.map((_,X)=>N(_,` kanuni-datagrid-footer-cell--pinned${X===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:_.state.width,insetInlineStart:e.leftOffsets[X]+P})),n>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(_=>N(_,"",{width:_.state.width})),r>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),e.right.map((_,X)=>N(_,` kanuni-datagrid-footer-cell--pinned${X===0?" kanuni-datagrid-pin-edge-right":""}`,{width:_.state.width,insetInlineEnd:e.rightOffsets[X]}))]})}var mr=memo(Bm);function Wm(e,t){return `__dg_pinned_${e}_${t}`}function Vm({gridId:e,side:t,rows:n,rowKeys:r,onUserRowContextMenu:i,layout:a,columnModel:u,centerColumns:m,centerIndices:f,stickyInsets:w,leadingSpacer:C,trailingSpacer:h,checkboxColumn:F=false,detailColumn:E=false,statusColumn:k=false,rowNumberColumn:S=false,rowHeight:K,bandOffset:L=0,headerRowsBetween:P,ariaRowBase:N,rowClassFor:_}){return n.length===0?null:jsx("div",{className:`kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--${t}`,role:"rowgroup",style:{width:a.totalWidth||"100%","--dg-band-offset":`${L}px`,"--dg-pinned-gap":String(P)},children:n.map((X,j)=>{let W=r?.[j]??null,R={kind:"data",key:Wm(t,j),sourceIndex:-1,data:X};return jsx(Zn,{gridId:e,node:R,index:j,layout:a,columnModel:u,centerColumns:m,centerIndices:f,stickyInsets:w,leadingSpacer:C,trailingSpacer:h,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:F,detailColumn:E,statusColumn:k,rowNumberColumn:S,rowNumber:null,headerRowCount:N,height:K,rowClass:_?.(R,j,W),onRowContextMenu:W!==null&&i?(M,g,y)=>i(W,X,y):void 0},R.key)})})}var pr=memo(Vm);function Ts({controller:e,renderRow:t,width:n,bandOffset:r,headerRowsBetween:i,belowPinned:a}){let[,u]=useReducer(w=>w+1,0);useEffect(()=>{let w=[e.events.on("bodyScroll",u),e.events.on("contentReady",u),e.events.on("viewportChanged",u)];return ()=>w.forEach(C=>C())},[e]);let m=useRef(null);useLayoutEffect(()=>{m.current?.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(w=>w.setAttribute("tabindex","-1"));});let f=e.getStickyGroupRows();return f.length===0?null:jsx("div",{ref:m,className:"kanuni-datagrid-sticky-groups","aria-hidden":"true",style:{width:n||"100%","--dg-band-offset":`${r}px`,"--dg-pinned-gap":String(i),"--dg-sticky-below":`${a}px`},children:f.map((w,C)=>jsx("div",{className:`kanuni-datagrid-sticky-group${C===f.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:w.offset,height:w.height,zIndex:f.length-C},children:t(w.node,w.index,w.height)},String(w.node.key)))})}function oi({name:e,size:t=14}){return jsx("svg",{width:t,height:t,viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",className:"kanuni-datagrid-icon",children:jsx("path",{d:TOOLBAR_ICON_PATHS[e],fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}async function To(e,t){try{let n=t==="csv"?await e.exportToCsv():t==="excel"?await e.exportToExcel():t==="excel-selected"?await e.exportToExcel({selectedOnly:!0}):await e.exportToPdf();return downloadBlob(n.blob,n.fileName),{completed:!0}}catch(n){return n instanceof ExportAbortedError?{completed:false}:{completed:false,error:n instanceof Error?n.message:String(n)}}}function Pn({anchor:e,onClose:t,children:n,dark:r,className:i="",label:a,role:u="dialog"}){let m=Nn({anchor:e,onClose:t});return jsx(vt,{dark:r,children:jsx("div",{ref:m.ref,className:`kanuni-datagrid-filter-popup ${i}`.trim(),style:{left:m.position.left,top:m.position.top},role:u,"aria-label":a,children:n})})}function np(e){let t=Se();return useMemo(()=>({search:t.toolbarSearch,csv:t.exportCsv,excel:t.exportExcel,excelSelected:t.exportExcelSelected,pdf:t.exportPdf,columns:t.columns,exporting:t.exporting,exportMenu:t.exportMenu,...e}),[t,e])}var op=()=>jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsx("path",{d:"M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})});function rp({controller:e,search:t=true,exportCsv:n=true,exportExcel:r=false,exportPdf:i=false,columnChooser:a=true,dark:u,onOpenColumnChooser:m,itemsBefore:f,itemsAfter:w,searchDebounce:C=200,searchOptions:h,exportMenu:F=true,labels:E}){let k=np(E),[S,K]=useState(()=>e.getSearchText()),L=useRef(false),[P,N]=useState(null),[_,X]=useState(null),[j,W]=useState(null),R=useId(),M=h?.debounce??C,g=h?.validate?.(S)??null,y=A=>{L.current=false;let Z=A.trim();e.getSearchText()!==Z&&e.setSearchText(Z);},G=()=>{g===null&&y(S);};useEffect(()=>{if(g!==null||!L.current)return;let A=setTimeout(()=>y(S),M);return ()=>clearTimeout(A)},[e,S,M,g]),useEffect(()=>{let A=Z=>{L.current||K(de=>de.trim()===Z?de:Z);};return A(e.getSearchText()),e.events.on("filterChanged",({searchText:Z})=>A(Z))},[e]);let[D,U]=useState(()=>e.getSelectedCount());useEffect(()=>(U(e.getSelectedCount()),e.events.on("selectionChanged",()=>U(e.getSelectedCount()))),[e]);let re=async A=>{N(A),W(null);let Z=await To(e,A);Z.error?W(Z.error):X(null),N(null);};return jsxs("div",{className:"kanuni-datagrid-toolbar",children:[f,t&&jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:h?.placeholder??k.search,value:S,maxLength:h?.maxLength,"aria-label":h?.ariaLabel??k.search,"aria-invalid":g!==null||void 0,"aria-describedby":g!==null?R:void 0,"data-testid":"dg-toolbar-search",onChange:A=>{L.current=true,K(A.target.value);},onBlur:()=>{h?.applyOnBlur!==false&&G();},onKeyDown:A=>{A.key==="Enter"&&h?.applyOnBlur!==false&&G();}}),t&&g!==null&&jsx("span",{id:R,className:"kanuni-datagrid-toolbar-search-error",role:"alert","data-testid":"dg-toolbar-search-error",children:g}),jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:A=>{let Z=A.currentTarget.getBoundingClientRect();m?.({left:Z.left,top:Z.bottom+2});},children:[jsx(oi,{name:"columns"}),jsx("span",{children:k.columns})]}),F&&(n&&e.canExportAll()||r||i)&&jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":k.exportMenu,title:k.exportMenu,disabled:P!==null,"data-testid":"dg-export-menu",onClick:A=>{let Z=A.currentTarget.getBoundingClientRect();X(_?null:{left:Z.right-190,top:Z.bottom+2});},children:P?jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsx(op,{})}),_&&jsxs(Pn,{anchor:_,onClose:()=>X(null),dark:u,role:"menu",label:k.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-csv",onClick:()=>re("csv"),children:P==="csv"?k.exporting:k.csv}),r&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-excel",onClick:()=>re("excel"),children:P==="excel"?k.exporting:k.excel}),r&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null||D===0,"data-testid":"dg-export-excel-selected",onClick:()=>re("excel-selected"),children:P==="excel-selected"?k.exporting:k.excelSelected}),i&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-pdf",onClick:()=>re("pdf"),children:P==="pdf"?k.exporting:k.pdf})]}),w,j&&jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:j})]})}var ii=memo(rp);var sp=8;function dp(e){let t=Se();return useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function li({controller:e,columns:t,anchor:n,onClose:r,dark:i,labels:a}){let u=dp(a),[m,f]=useState(""),w=e.getColumnModel(),C=K=>w.getDef(K.id)?.headerName??K.id,h=t.filter(K=>!isChromeColumn(K.id)),F=h.filter(K=>!w.getDef(K.id)?.hideInChooser),E=h.filter(K=>K.visible).length,k=m.trim().toLocaleLowerCase(),S=k?F.filter(K=>C(K).toLocaleLowerCase().includes(k)):F;return jsxs(Pn,{anchor:n,onClose:r,dark:i,label:u.title,className:"kanuni-datagrid-column-chooser",children:[jsx("div",{className:"kanuni-datagrid-chooser-title",children:u.title}),F.length>sp&&jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:u.search,"aria-label":u.search,value:m,onChange:K=>f(K.target.value)}),jsxs("div",{className:"kanuni-datagrid-filter-list",children:[S.length===0&&jsx("div",{className:"kanuni-datagrid-chooser-empty",children:u.empty}),S.map(K=>{let L=K.visible&&E===1;return jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsx("input",{type:"checkbox",checked:K.visible,disabled:L,"data-column-toggle":K.id,onChange:()=>e.setColumnVisible(K.id,!K.visible)}),jsx("span",{children:C(K)})]},K.id)})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",disabled:E===F.length,onClick:()=>F.forEach(K=>!K.visible&&e.setColumnVisible(K.id,true)),children:u.showAll}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:r,children:u.ok})]})]})}function fp(e){let t=Se();return useMemo(()=>({first:t.pagerFirst,previous:t.pagerPrevious,next:t.pagerNext,last:t.pagerLast,page:t.pagerPage,of:t.pagerOf,rowsPerPage:t.pagerRowsPerPage,pageButton:t.pagerPageButton,navigation:t.pagerAria,...e}),[t,e])}function gp({page:e,pageCount:t,pageSize:n,pageSizes:r=[25,50,100,250],totalRows:i,onPage:a,onNext:u,onPrevious:m,onPageSize:f,pageButtons:w=false,maxPageButtons:C,labels:h}){let F=fp(h),E=e<=0,k=e>=t-1,S=i===0?0:e*n+1,K=Math.min(i,(e+1)*n),L=useRef(null),P=useRef(null);return useEffect(()=>{let N=P.current,_=L.current;if(!_||!(N instanceof HTMLButtonElement)||!N.disabled)return;let X=document.activeElement;if(X&&X!==document.body&&X!==N)return;let j=_.querySelector('[aria-current="page"]')??_.querySelector("button:not(:disabled)");j?.focus(),P.current=j;},[e,t]),jsxs("div",{ref:L,className:"kanuni-datagrid-pager",role:"navigation","aria-label":F.navigation,onFocus:N=>{P.current=N.target;},onBlur:N=>{let _=N.relatedTarget;_&&!L.current?.contains(_)&&(P.current=null);},children:[jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsx("span",{children:F.rowsPerPage}),jsx("select",{value:n,"data-testid":"dg-page-size",onChange:N=>f(Number(N.target.value)),children:r.map(N=>jsx("option",{value:N,children:N},N))})]}),jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[S.toLocaleString(),"\u2013",K.toLocaleString()," ",F.of," ",i.toLocaleString()]}),jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsx("button",{type:"button","aria-label":F.first,disabled:E,onClick:()=>a(0),children:"\xAB"}),jsx("button",{type:"button","aria-label":F.previous,disabled:E,"data-testid":"dg-page-prev",onClick:m,children:"\u2039"}),w?pageButtonItems(e,t,C).map(N=>typeof N=="number"?jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":fillText(F.pageButton,{n:String(N+1)}),"aria-current":N===e?"page":void 0,onClick:()=>a(N),children:N+1},N):jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},N)):jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[F.page," ",e+1," ",F.of," ",t]}),jsx("button",{type:"button","aria-label":F.next,disabled:k,"data-testid":"dg-page-next",onClick:u,children:"\u203A"}),jsx("button",{type:"button","aria-label":F.last,disabled:k,onClick:()=>a(t-1),children:"\xBB"})]})]})}var si=memo(gp);function kp(e){let t=Se();return useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function Tp({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:r,labels:i}){let a=kp(i),u=Se(),[,m]=useState(0);useEffect(()=>e.events.on("filterChanged",()=>m(h=>h+1)),[e]);let f=e.getEffectiveFilter(),w=e.isFilterEnabled(),C=describeFilter(f,e.getColumnModel(),{...r,labels:{...filterLabels(u),...r?.labels}});return !f&&!n?null: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:[jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-clear",title:a.clear,"aria-label":a.clear,disabled:!f,"data-testid":"dg-filter-panel-clear",onClick:()=>{e.setFilter(null),e.clearColumnFilters(),e.setFilterEnabled(true);},children:"\xD7"}),jsx("input",{type:"checkbox",className:"kanuni-datagrid-filter-panel-toggle",checked:w,disabled:!f,title:a.toggle,"aria-label":a.toggle,"data-testid":"dg-filter-panel-toggle",onChange:h=>e.setFilterEnabled(h.target.checked)}),jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:C??void 0,"data-testid":"dg-filter-panel-text",children:C??a.empty}),t&&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 di=memo(Tp);var wr=e=>!e.separator&&!e.disabled;function yr({x:e,y:t,items:n,context:r,onClose:i,dark:a=false,label:u}){let m=Se(),f=useRef(null),[w,C]=useState({left:e,top:t}),[h,F]=useState(()=>n.findIndex(wr)),[E,k]=useState(null),[S,K]=useState(null),L=useRef(null),[P,N]=useState(null);useEffect(()=>K(null),[E]);let _=useCallback((y,G)=>{if(k(y),y===null||!G)return;let D=G.getBoundingClientRect();N({left:D.left,right:D.right,top:D.top});},[]),X=y=>f.current?.querySelector(`[data-item-index="${y}"]`)??null,j=useCallback(y=>{if(L.current=y,!y||!P)return;let G=8,D=y.getBoundingClientRect(),U=Math.max(G,Math.min(P.top-4,window.innerHeight-D.height-G)),A=P.right+D.width+G<=window.innerWidth?P.right:Math.max(G,P.left-D.width);K({left:A,top:U});},[P]),W=useCallback(y=>{if(f.current=y,!y)return;let G=y.getBoundingClientRect(),D=8;C({left:Math.max(D,Math.min(e,window.innerWidth-G.width-D)),top:Math.max(D,Math.min(t,window.innerHeight-G.height-D))}),y.focus();},[e,t]);useEffect(()=>{let y=D=>{let U=D.target;L.current?.contains(U)||f.current&&!f.current.contains(U)&&i();},G=()=>i();return document.addEventListener("mousedown",y),window.addEventListener("scroll",G,true),()=>{document.removeEventListener("mousedown",y),window.removeEventListener("scroll",G,true);}},[i]);let R=(y,G)=>{let D=n.length;for(let U=1;U<=D;U++){let re=(y+G*U+D*D)%D;if(wr(n[re]))return re}return y},M=y=>{let G=n[y];if(!(!G||!wr(G))){if(G.items?.length){_(y,X(y));return}G.onSelect?.(r),i();}},g=y=>{switch(y.key){case "ArrowDown":F(G=>R(G,1));break;case "ArrowUp":F(G=>R(G,-1));break;case "Home":F(n.findIndex(wr));break;case "End":F(R(0,-1));break;case "ArrowRight":if(n[h]?.items?.length)_(h,X(h));else return;break;case "ArrowLeft":if(E!==null)_(null);else return;break;case "Enter":case " ":M(h);break;case "Escape":i();break;case "Tab":i();return;default:return}y.preventDefault(),y.stopPropagation();};return jsxs(vt,{dark:a,children:[jsx("div",{ref:W,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":u??m.rowActions,tabIndex:-1,style:{left:w.left,top:w.top},onKeyDown:g,children:n.map((y,G)=>y.separator?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},y.id??`sep-${G}`):jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${G===h?" kanuni-datagrid-menu-item--active":""}`,disabled:y.disabled,"data-item-index":G,"aria-haspopup":y.items?.length?"menu":void 0,"aria-expanded":y.items?.length?E===G:void 0,onMouseEnter:D=>{F(G),_(y.items?.length?G:null,D.currentTarget);},onClick:()=>M(G),children:[y.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:y.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:y.label}),y.shortcut&&jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:y.shortcut}),y.items?.length?jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},y.id??G))}),E!==null&&n[E]?.items?.length?jsx("div",{ref:j,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:S?{left:S.left,top:S.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[E].items.map((y,G)=>y.separator?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},y.id??`sub-sep-${G}`):jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:y.disabled,onClick:()=>{y.onSelect?.(r),i();},children:[y.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:y.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:y.label})]},y.id??G))}):null]})}var xp=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),mi=xp?"\u2318":"Ctrl+",Gs=`${mi}C`,Ep=`${mi}X`,Dp=`${mi}V`;function oo(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
|
|
3
|
+
`).length:0,()=>e.writeClipboard(n,"copy"));}function Sp(e){navigator.clipboard?.writeText(e).catch(()=>{});}function Gp(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 Np(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var Mp={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function pi(e,t,n,r,i){if(n===false)return [];let a=n===true||n===void 0?{}:n,u=[];a.copy!==false&&u.push({id:"__dg-copy",label:t.menuCopy,shortcut:Gs,onSelect:()=>oo(e)}),a.copyWithHeaders!==false&&u.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>oo(e,{includeHeaders:true})}),a.copyWithGroupHeaders!==false&&Gp(e)&&u.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>oo(e,{includeGroupHeaders:true})});let m=Np(a.export).filter(f=>f!=="csv"||e.canExportAll());if(m.length>0){let f=e.getSelectedCount()===0;u.push({id:"__dg-export",label:t.menuExport,items:m.map(w=>({id:`__dg-export-${w}`,label:t[Mp[w]],disabled:w==="excel-selected"&&f,onSelect:()=>{To(e,w).then(C=>{C.error&&i?.(C.error);});}}))});}return u.length>0&&r&&u.unshift({id:"__dg-sep-builtin",separator:true}),u}function fi(e,t,n,r){if(!e.isRowPinningEnabled()||!e.canPinRow(n))return [];let i=e.getRowPinSide(n),a=[];return i!=="top"&&a.push({id:"__dg-pin-top",label:t.pinRowTop,onSelect:()=>e.pinRow(n,"top")}),i!=="bottom"&&a.push({id:"__dg-pin-bottom",label:t.pinRowBottom,onSelect:()=>e.pinRow(n,"bottom")}),i&&a.push({id:"__dg-unpin",label:t.unpinRow,onSelect:()=>e.pinRow(n,null)}),r?[{id:"__dg-sep-pin",separator:true},...a]:a}function wi({anchor:e,value:t,dark:n,onCommit:r,onCancel:i}){let a=Se(),[u,m]=useState(t),f=useRef(null);useEffect(()=>{let C=f.current;C&&(C.focus(),C.select());},[]);let w=()=>{let C=u.trim();r(C===""?null:C);};return jsxs(Pn,{anchor:e,onClose:i,dark:n,label:a.noteEditorAria,className:"kanuni-datagrid-note-editor",children:[jsx("textarea",{ref:f,className:"kanuni-datagrid-note-input",value:u,rows:4,"aria-label":a.noteEditorAria,placeholder:a.notePlaceholder,onChange:C=>m(C.target.value),onKeyDown:C=>{C.key==="Enter"&&(C.ctrlKey||C.metaKey)&&(C.preventDefault(),w()),C.key==="Escape"&&(C.preventDefault(),i());}}),jsxs("div",{className:"kanuni-datagrid-note-actions",children:[jsx("button",{type:"button",className:"kanuni-datagrid-note-cancel",onClick:i,children:a.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-note-save",onClick:w,children:a.save})]})]})}function Kp(e){let t=Se();return useMemo(()=>({busy:t.busy,loading:t.busyLoading,encoding:t.busyEncoding,filtering:t.busyFiltering,sorting:t.busySorting,computing:t.busyComputing,grouping:t.busyGrouping,aggregating:t.busyAggregating,projecting:t.busyProjecting,exporting:t.busyExporting,cancel:t.cancel,...e}),[t,e])}var Op=new Set(["filtering","sorting","computing","encoding","exporting"]);function bi({controller:e,delay:t=300,labels:n,cancellable:r=true,forced:i=false}){let[a,u]=useState(()=>e.getBusy()),[m,f]=useState(false);useEffect(()=>(u(e.getBusy()),e.events.on("busyChanged",k=>u(k))),[e]);let w=a.busy&&a.background!==true;useEffect(()=>{if(!w){f(false);return}let k=setTimeout(()=>f(true),t);return ()=>clearTimeout(k)},[w,t]);let C=Kp(n);if(!i&&(!m||!w))return null;let h=a.phase?C[a.phase]:C.busy,F=a.progress===null?null:Math.max(0,Math.min(100,a.progress)),E=r&&a.phase!==null&&Op.has(a.phase)&&a.cancellable!==false;return 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:jsxs("div",{className:"kanuni-datagrid-loading-card",children:[jsx("span",{className:"kanuni-datagrid-loading-spinner","aria-hidden":"true"}),jsx("span",{className:"kanuni-datagrid-loading-label",children:h}),F!==null&&jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(F),"aria-valuemin":0,"aria-valuemax":100,children:[jsx("div",{className:"kanuni-datagrid-loading-track",children:jsx("div",{className:"kanuni-datagrid-loading-fill",style:{width:`${F}%`}})}),jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(F),"%"]})]}),E&&jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:C.cancel})]})})}var Is=10;function Fs({fields:e,content:t,statusIcon:n=false,onPress:r}){let i=useRef(null),a=f=>f.closest(".kanuni-datagrid-scroller"),[u,...m]=e;return jsx("div",{role:"gridcell",className:`kanuni-datagrid-card${t!==void 0?" kanuni-datagrid-card--custom":""}${r?" kanuni-datagrid-card--pressable":""}`,"data-testid":"dg-card",onPointerDown:r?f=>{i.current={x:f.clientX,y:f.clientY,scrollTop:a(f.currentTarget)?.scrollTop??0,moved:false};}:void 0,onPointerMove:r?f=>{let w=i.current;w&&Math.hypot(f.clientX-w.x,f.clientY-w.y)>Is&&(w.moved=true);}:void 0,onClick:r?f=>{let w=i.current;if(i.current=null,w){let C=(a(f.currentTarget)?.scrollTop??0)!==w.scrollTop,h=Math.hypot(f.clientX-w.x,f.clientY-w.y)>Is;if(w.moved||C||h)return}r(f);}:void 0,children:t!==void 0?t:jsxs(Fragment,{children:[jsxs("div",{className:"kanuni-datagrid-card-title",children:[n&&jsx("span",{className:"kanuni-datagrid-status-icon","aria-hidden":"true"}),jsx("span",{className:"kanuni-datagrid-card-title-text","aria-busy":u?.pending?true:void 0,children:u?.text})]}),m.length>0&&jsx("dl",{className:"kanuni-datagrid-card-fields",children:m.map(f=>jsxs("div",{className:"kanuni-datagrid-card-field",children:[jsx("dt",{children:f.label}),jsx("dd",{"aria-busy":f.pending?true:void 0,children:f.text})]},f.columnId))})]})})}function Ks({controller:e,sort:t,columns:n,text:r}){if(n.length===0)return null;let i=t[0],a=i?.direction==="desc";return jsxs("div",{className:"kanuni-datagrid-cardbar",children:[jsxs("label",{className:"kanuni-datagrid-cardbar-label",children:[jsx("span",{children:r.cardSortBy}),jsxs("select",{className:"kanuni-datagrid-cardbar-select",value:i?.columnId??"",onChange:u=>e.setSort(u.target.value?[{columnId:u.target.value,direction:i?.direction??"asc"}]:[]),children:[jsx("option",{value:"",children:r.none}),n.map(u=>jsx("option",{value:u.id,children:u.label},u.id))]})]}),i&&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:i.columnId,direction:a?"asc":"desc"}]),children:jsx("span",{"aria-hidden":"true",children:a?"\u2193":"\u2191"})})]})}var Os=null;function Bp(){return typeof document>"u"?null:(Os??=document.createElement("canvas"),Os.getContext("2d"))}function Hs(e){let t=getComputedStyle(e);return `${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function _p(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function $p(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 i=Math.ceil(r.getBoundingClientRect().width);i>n&&(n=i);}return e.forEach((r,i)=>{[r.style.width,r.style.minWidth,r.style.maxWidth]=t[i];}),n}function br(e,t){let n=Bp();if(!n)return null;let r=typeof CSS<"u"&&CSS.escape?CSS.escape(t):t.replace(/"/g,'\\"'),i=e.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${r}"]`),a=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${r}"]`);if(!i&&a.length===0)return null;let u=0;if(i){let m=i.querySelector(".kanuni-datagrid-header-label")??i;n.font=Hs(m),u=n.measureText(m.textContent??"").width+44;}if(a.length>0){n.font=Hs(a[0]);let m=[];for(let f=0;f<a.length;f++){if(_p(a[f])){m.push(a[f]);continue}let w=a[f].textContent??"";if(w==="")continue;let C=n.measureText(w).width+20;C>u&&(u=C);}m.length>0&&(u=Math.max(u,$p(m)));}return u===0?null:Math.round(Math.min(640,Math.max(48,u)))}function hi(e,t){let n=useRef(t);n.current=t;let r=!!t?.enabled,i=t?.storageKey,a=t?.type;useEffect(()=>{if(r)return attachStateStoring(e,{...n.current,enabled:true})},[e,r,i,a]);}var hr="application/x-kanuni-row";function Ci(e,t){let n=!!t?.enabled,r=t?.group??null,i=t?.allowReordering??true,a=t?.allowDropInsert??r!==null,[u,m]=useState(false),[f,w]=useState(null),C=useRef(null),h=useRef(false),F=useRef(null),E=useRef(null),k=useRef(t);k.current=t;let S=useCallback(y=>e.getRowByKey(y),[e]),K=(y,G)=>{let D=G.getBoundingClientRect();return y.clientY<D.top+D.height/2?"before":"after"},L=useCallback((y,G)=>{if(!isDataRow(y))return;E.current=y.key,F.current=y.key,h.current=false,C.current=null;let D={gridId:e.gridId,group:r,rowKey:y.key,row:y.data};G.dataTransfer.setData(hr,JSON.stringify(D)),G.dataTransfer.setData("text/plain",String(y.key)),G.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:y.key}),G.stopPropagation();},[e,r]),P=useCallback(()=>{let y=F.current;y!==null&&e.notifyRowDragEnd({rowKey:y,dropped:h.current,overKey:C.current?.key??null,position:C.current?.side??null}),h.current=false,C.current=null,F.current=null,E.current=null,w(null),m(false);},[e]),N=useCallback(y=>y.dataTransfer.types.includes(hr)?E.current!==null?i:a&&r!==null:false,[i,a,r]),_=useCallback((y,G)=>{if(!isDataRow(y)||!N(G))return;if(G.preventDefault(),G.dataTransfer.dropEffect="move",E.current===y.key){C.current=null,w(null);return}let D=K(G,G.currentTarget),U=C.current?.key!==y.key||C.current.side!==D;C.current={key:y.key,side:D},w(re=>re?.key===y.key&&re.side===D?re:{key:y.key,side:D}),U&&E.current!==null&&e.notifyRowDrag("move",{rowKey:E.current,overKey:y.key,position:D});},[N,e]),X=useCallback((y,G,D)=>{let U=null;try{let A=y.dataTransfer.getData(hr);U=A?JSON.parse(A):null;}catch{U=null;}if(!U)return;if(U.gridId===e.gridId){if(!i)return;let A=k.current?.onReorder;if(A){A({dragKey:U.rowKey,targetKey:G,position:D,row:S(U.rowKey)});return}e.moveRow(U.rowKey,G,D);return}!a||r===null||U.group!==r||k.current?.onAdd?.({row:U.row,rowKey:U.rowKey,otherGridId:U.gridId,targetKey:G,position:D});},[e,i,a,r,S]),j=useCallback((y,G)=>{if(w(null),!isDataRow(y)||!N(G))return;G.preventDefault(),G.stopPropagation();let D=K(G,G.currentTarget);h.current=true,C.current={key:y.key,side:D},X(G,y.key,D),E.current=null;},[N,X]),W=useCallback(y=>{N(y)&&(y.preventDefault(),y.dataTransfer.dropEffect="move");},[N]),R=useCallback(y=>{w(null),N(y)&&(y.preventDefault(),h.current=true,C.current=null,X(y,null,"after"),E.current=null);},[N,X]),M=useCallback(y=>{let G=y.relatedTarget;G&&y.currentTarget.contains(G)||E.current!==null&&(C.current=null,w(null),e.notifyRowDrag("leave",{rowKey:E.current}));},[e]);return {handlers:n?{draggable:u,setDraggable:m,onDragStart:L,onDragEnd:P,onDragOver:_,onDrop:j}:void 0,dropAt:n?f:null,bodyHandlers:n?{onDragOver:W,onDrop:R,onDragLeave:M}:void 0}}var Xp=400;function Bs(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function _s(e){return (e.textContent??"").trim()}function jp(e){let{def:t,node:n,value:r,clipped:i,note:a}=e;if(a)return a;if(t&&n){if(typeof t.tooltip=="function"){let u=t.tooltip({value:r,row:n.data,node:n,column:t});return u||null}if(typeof t.tooltip=="string")return t.tooltip||null;if(t.tooltipField){let u=n.data[t.tooltipField];return u==null||u===""?null:String(u)}}return i&&i.length>0?i:null}function ki({rootRef:e,columnModel:t,getRowNode:n,getNote:r,config:i,controller:a,gridId:u}){let m=i?.enabled!==false,f=i?.delay??Xp,w=i?.showOnTruncation!==false,C=i?.trigger??"hover",h=C!=="focus",F=C!=="hover"&&!!a&&!!u,E=i?.interactive===true,[k,S]=useState(null),K=useRef({columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:f});return K.current={columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:f},useEffect(()=>{if(!m){S(null);return}let L=e.current;if(!L)return;let P=null,N=null,_=null,X=null,j=u?`${u}-tooltip`:void 0,W=()=>{X?.removeAttribute("aria-describedby"),X=null;},R=()=>{P!==null&&(clearTimeout(P),P=null),N!==null&&(clearTimeout(N),N=null),_=null,W(),S(null);},M=()=>{N!==null&&(clearTimeout(N),N=null);},g=()=>{N=null,W(),S(null);},y=()=>{M(),P!==null&&(clearTimeout(P),P=null);},G=()=>{if(!E){R();return}N!==null&&clearTimeout(N),N=setTimeout(g,150);},D=(O,ie)=>{let{columnModel:oe,getRowNode:V,getNote:Ee}=K.current,d=oe.getDef(ie);if(!d?.renderTooltip)return;let Le=O.closest("[data-row-key]")?.dataset.rowKey,He=Le===void 0?void 0:V(Le);if(!He||Ee&&Ee(He.key,ie,He.data))return;let Ge=d.renderTooltip({value:oe.getCellValue(He.data,ie),row:He.data,node:He,column:d});return Ge==null||Ge===false?null:{content:Ge}},U=(O,ie,oe,V)=>{let Ee=oe?void 0:D(O,ie);if(Ee===null)return;let d=Ee?"":oe?A(ie,O):re(O,ie);if(!Ee&&!d)return;let Le=O.getBoundingClientRect();M(),W(),V&&j&&(O.setAttribute("aria-describedby",j),X=O),S({text:d??"",...Ee?{content:Ee.content}:{},anchor:{top:Le.top,left:Le.left,width:Le.width,height:Le.height},...E?{interactive:true,hold:y,release:R}:{},...j?{id:j}:{}});},re=(O,ie)=>{let{columnModel:oe,getRowNode:V,getNote:Ee,showOnTruncation:d}=K.current,Le=oe.getDef(ie),He=O.closest("[data-row-key]")?.dataset.rowKey,Ge=He===void 0?void 0:V(He);return jp({def:Le,node:Ge,value:Ge?oe.getCellValue(Ge.data,ie):void 0,clipped:d&&Bs(O)?_s(O):null,note:Ge&&Ee?Ee(Ge.key,ie,Ge.data):null})},A=(O,ie)=>{let oe=K.current.columnModel.getDef(O);if(oe?.headerTooltip)return oe.headerTooltip;if(!K.current.showOnTruncation)return null;let V=ie.querySelector(".kanuni-datagrid-header-label")??ie;if(!Bs(V))return null;let Ee=_s(V);return Ee.length>0?Ee:null},Z=O=>{if(!h)return;let oe=O.target?.closest("[data-column-id]")??null;if(oe===_){M();return}if(E&&N!==null?(P!==null&&(clearTimeout(P),P=null),_=null):R(),!oe||!L.contains(oe))return;let V=oe.dataset.columnId;if(!V)return;let Ee=oe.classList.contains("kanuni-datagrid-header-cell");!Ee&&!oe.closest("[data-row-key]")||(_=oe,P=setTimeout(()=>{P=null,!(_!==oe||!oe.isConnected)&&U(oe,V,Ee,false);},K.current.delay));},de=O=>{if(!h)return;let ie=O.relatedTarget;_&&ie&&_.contains(ie)||G();},fe=-1/0,Oe=()=>{fe=Date.now();},Te=()=>{R();let O=a?.getFocus();!O||!u||(P=setTimeout(()=>{if(P=null,!L.contains(document.activeElement)&&Date.now()-fe>1500)return;let ie=document.getElementById(`${u}-cell-${String(O.rowKey)}-${O.columnId}`);!ie||!L.contains(ie)||(_=ie,U(ie,O.columnId,false,true));},K.current.delay));},be=F?a.events.on("focusChanged",Te):null,Ne=O=>{(!F||O.key==="Escape")&&R();};return L.addEventListener("mouseover",Z),L.addEventListener("mouseout",de),L.addEventListener("mousedown",R),L.addEventListener("pointerdown",Oe),L.addEventListener("keydown",Ne),L.addEventListener("scroll",R,true),window.addEventListener("blur",R),()=>{R(),be?.(),L.removeEventListener("mouseover",Z),L.removeEventListener("mouseout",de),L.removeEventListener("mousedown",R),L.removeEventListener("pointerdown",Oe),L.removeEventListener("keydown",Ne),L.removeEventListener("scroll",R,true),window.removeEventListener("blur",R);}},[m,e,h,F,E,a,u]),m?k:null}var Ws=6,io=8;function Ti({state:e,dark:t}){let[n,r]=useState(null),[i,a]=useState(null),{text:u,anchor:m,content:f,interactive:w,hold:C,release:h,id:F}=e;return useLayoutEffect(()=>{if(!n)return;let{width:E,height:k}=n.getBoundingClientRect(),S=document.documentElement.clientWidth,K=document.documentElement.clientHeight,L=m.top+m.height+Ws,P=m.top-k-Ws,_=L+k+io<=K||P<io?L:P,X=Math.min(Math.max(io,m.left),Math.max(io,S-E-io));a({top:Math.min(_,K-k-io),left:X});},[n,u,f,m]),jsx(vt,{dark:t,kind:"tooltip",children:jsx("div",{ref:r,id:F,className:w?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:w?C:void 0,onMouseLeave:w?h:void 0,style:i?{top:i.top,left:i.left}:{top:0,left:0,visibility:"hidden"},children:f??u})})}function Rr(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 Us=Rr(getGridDictionary("en"));function vi(e,t){let n={...Us,...t.labels},{controller:r,maxGroupLevels:i}=t,a=e.columnId,u=r.getColumnModel().getDef(a),m=r.getSort(),f=m.find(N=>N.columnId===a),w=r.getGroupLevels(),C=w.includes(a),h=u?.sortable!==false,F=r.getColumnStates().find(N=>N.id===a)?.pinned??null,E=u?.groupable!==false,k=r.canGroup(),S=[{id:"sort-asc",label:n.sortAsc,disabled:!h||f?.direction==="asc",onSelect:()=>r.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!h||f?.direction==="desc",onSelect:()=>r.setSort([{columnId:a,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!f,onSelect:()=>r.setSort(m.filter(N=>N.columnId!==a))},{id:"sep-1",separator:true}];k&&S.push({id:"group",label:C?n.ungroup:n.groupBy,disabled:!E,onSelect:()=>{C?r.groupBy(w.filter(N=>N!==a)):r.groupBy([...w,a].slice(-i));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&S.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),S.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(N=>N.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:u?.resizable===false,onSelect:()=>t.onBestFit(a)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll});let K=r.getColumnStates().filter(N=>N.visible&&N.pinned===F).map(N=>N.id),L=K.indexOf(a),P=u?.reorderable!==false&&L>=0;return S.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!P||L<=0,onSelect:()=>r.moveColumn(a,K[L-1])},{id:"move-right",label:n.moveRight,disabled:!P||L<0||L>=K.length-1,onSelect:()=>r.moveColumn(a,K[L+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:F==="left",onSelect:()=>r.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:F==="right",onSelect:()=>r.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:F==="sticky",onSelect:()=>r.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:F===null,onSelect:()=>r.setColumnPinned(a,null)}),S}var yn=typeof window<"u"?useLayoutEffect:useEffect,Js=1e8,Cr=null;function Zs(){if(Cr!==null)return Cr;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=`${Js}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=Js;let n=e.scrollTop;return Mi=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(Cr=n),Cr}var Mi=null;function Sf(){return Mi===null&&Zs(),Mi}function Gi(e){return Math.abs(e)}function Qs(e,t){return getComputedStyle(t).direction==="rtl"?-e:e}function kr(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 u={...e};return delete u.grouping,kr(u,t)}if(e.columns?.some(u=>u.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 u={...e,columns:e.columns.map(m=>m.spanRows?{...m,spanRows:void 0}:m)};return kr(u,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 u={...e};return delete u.tree,kr(u,t)}if(!e.grouping)return e.masterDetail?Ni(e):e;let{groupBy:n,groupSummaries:r}=e.grouping,i=n==null?[]:typeof n=="string"?[n]:n;if(i.length<=1&&!r)return e.masterDetail?Ni(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:i.slice(0,1),groupSummaries:false}};return e.masterDetail?Ni(a):a}function Ni(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 Gf(e){return jsx(Jr,{locale:e.locale,messages:e.messages,children:jsx(aa,{theme:e.theme,density:e.density,palette:e.palette,portalContainer:e.portalContainer,children:jsx(Nf,{...e})})})}function Nf(e){let t=Se(),{className:n,style:r,dark:i=false,theme:a,palette:u,striped:m=true,emptyText:f,sortable:w=true,autoHeaderHeight:C=false,filterRow:h=false,headerFilter:F=false,filterIconMode:E="hover",columnReorder:k=true,columnResize:S=true,loadingOverlay:K=true,announcements:L=true,groupPanel:P=false,showRowCount:N=false,toolbar:_=false,toolbarExcel:X=false,toolbarPdf:j=false,filterPanel:W=false,filterPanelLabels:R,onOpenFilterBuilder:M,toolbarItemsBefore:g,toolbarItemsAfter:y,renderRow:G,stateStoring:D,headerMenu:U=true,focusedRow:re=false,focusedRowKey:A,onFocusedRowChanged:Z,footer:de,footerMenu:fe=true,onRowClick:Oe,onRowActivate:Te,onReady:be,onKeyDown:Ne,renderCellContent:O,getCellClassName:ie,renderOverlay:oe,onCellPointerDown:V,onCellPointerEnter:Ee,onCellDoubleClick:d,onHeaderClick:Le,getHeaderClassName:He,renderHeaderLabel:Ge,enterpriseEdition:Ue=false,renderDetail:et,renderEditForm:Q,density:ge,rowMenu:ue,cellMenu:qe,autoColumns:Fe,rowDrag:te,tooltip:Re,pinnedTopRows:T,pinnedBottomRows:b,footerPosition:I="bottom",autoSizeStrategy:q="none",highlightSearch:ve=true,...ee}=e,Me=useMemo(()=>{let o=ee.columns;if(o&&o.length>0)return o;let p=ee.dataSource;if(!Array.isArray(p)||p.length===0)return o??[];let v=typeof Fe=="object"?Fe:void 0;return Fe===false?o??[]:inferColumns(p,v)},[ee.columns,ee.dataSource,Fe]),Ae={...ee,columns:Me},$e=isPackagedTheme(a)?THEME_ROW_HEIGHT[a][ge??"normal"]:ge?DENSITY_ROW_HEIGHT[ge]:DEFAULT_ROW_HEIGHT,Ce=Ae.rowHeight===void 0?{...Ae,rowHeight:$e}:Ae,ce=Ue?Number.POSITIVE_INFINITY:1,Lt=kr(Ce,Ue),{controller:l,rows:nt,window:xt,layout:We,sort:Rt,rowHeight:Ct,visibleCount:ft}=jr(Lt),Ze=e.cardView,In=Ze?Ze===true?"on":`${Ze.breakpoint??""}|${Ze.height??""}|${(Ze.columns??[]).join("|")}`:"",Vt=useMemo(()=>resolveCardView(Ze),[In]),[ot,It]=useState(false),Jt=useRef(Vt);yn(()=>{Jt.current=Vt;let o=Ot.current;It(o?showsCards(cardViewWidth(o),Vt):false);},[Vt]);let kt=ot?cardColumnIds(l.getColumnModel(),Vt):null,Ut=kt?JSON.stringify(kt):"",Ft=useMemo(()=>kt,[Ut]);useEffect(()=>{let o=Ze&&Ze!==true?Ze.height:void 0;l.setDataRowHeight(Ft?typeof o=="number"&&o>0?Math.max(44,o):cardHeight(Ft.length):null);},[l,Ft,In]);let gt=e.onCardViewChange,Kt=useRef(false);useEffect(()=>{ot!==Kt.current&&(Kt.current=ot,gt?.(ot));},[ot,gt]);let Je=useRef(null),Xe=normalizeRowStatus(e.rowStatus),Ke=Zl(l,e.editing,Ue,{renderCellContent:O,getCellClassName:ie,onCellDoubleClick:d},ot,{rootRef:Je,rowHeight:Ct,dark:i,savedDuration:Xe?.savedDuration??0,cardPopup:ot&&!!Ze&&Ze!==true&&Ze.edit==="popup"}),it=Ke.rowStatusSource??e.rowStatusSource??null,B=ho(l);B.effectiveRow=it?.effectiveRow?o=>it.effectiveRow(o):null;let we=o=>{if(!Xe||o.kind!=="data")return {};let p=resolveRowStatus(Xe,o.data,o.key,it);return p?{rowStatus:p.status,rowStatusText:rowStatusDescription(p,t),rowStatusTint:Xe.tint,rowStatusStrike:Xe.strike}:{}},he=e.rowClassName,ye=(o,p,v=o.key)=>{if(!he||o.kind!=="data")return;let z=o,ae=it?.effectiveRow?.(v)??z.data,le=Xe?resolveRowStatus(Xe,ae,v,it)?.status??null:it?.getRowStatus(v)??null,se=he({row:ae,node:z,rowKey:v,status:le,index:p});return typeof se=="string"&&se.trim()!==""?se.trim():void 0},ne=Ze&&Ze!==true?Ze:null,yt=e.openCardEditor??Ke.openCardEditor,s=ot,c=(o,p)=>{let v=Ft?.[0];v!==void 0&&l.focusCell(o.key,v),ne?.onCardPress?.(o.key,o,p),!p.defaultPrevented&&ne?.edit==="popup"&&yt?.(o.key);},x=o=>{let p=l.getColumnModel(),v=it?.effectiveRow?.(o.key)??o.data,z=cardFields(p,Ft??[],v).map(ae=>{let le=p.getDef(ae.columnId);if(!le?.lookup||le.valueFormatter)return ae;let se=B.label(le,ae.columnId,p.getCellValue(v,ae.columnId),o.data,o.key);return se===mn?{...ae,text:"",pending:true}:se===null?ae:{...ae,text:se}});return {row:v,fields:z}},H=!!Xe?.icons,J=ne?.renderCard,$=o=>{let p=o.node,{row:v,fields:z}=x(p),ae;if(J){let le=Xe?resolveRowStatus(Xe,v,p.key,it)?.status??null:it?.getRowStatus(p.key)??null;ae=J({row:v,node:p,fields:z,selected:o.selected,status:le})??null;}return jsx(Fs,{fields:z,content:ae,statusIcon:H,onPress:s?le=>c(p,le):void 0})};useEffect(()=>{if(ot||!Xe?.messages){l.setMessageRows([],Ct);return}let o=Xe.get,p=rowMessageKeys(Xe,it).filter(v=>{if(!o)return true;let z=l.getDataRowNode(v)?.data;if(z===void 0)return true;let ae=o({row:z,rowKey:v});return ae===void 0||ae==="error"});l.setMessageRows(p,Ct);});let Y=(o,p)=>{if(!Xe)return null;let v=rowMessageModel(Xe,o,p,it,t);return jsxs("div",{className:"kanuni-datagrid-row-message","data-testid":"dg-row-message",children:[jsxs("svg",{className:"kanuni-datagrid-row-message-icon",viewBox:"0 0 16 16",width:"14",height:"14","aria-hidden":"true",children:[jsx("path",{d:"M8 1.5 15 14H1z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsx("path",{d:"M8 6v3.5M8 11.6v.4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsx("span",{className:"kanuni-datagrid-row-message-text",title:v.text,children:v.text}),v.retry&&jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-retry",onClick:v.retry,children:t.rowStatusRetry}),v.remove&&jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-delete",onClick:v.remove,children:t.rowStatusDelete})]})},me=resolveToolbar(_),pe=Ke.renderCellContent,ke=Ke.getCellClassName,Ye=Ke.onCellDoubleClick,Ve=va(l,e.printLayout),ze=Ve.active?{...xt,rows:{...xt.rows,start:0,end:nt.length,offsetY:0,totalHeight:0}}:xt,so=useMemo(()=>Me.some(o=>o.autoHeight===true),[Me]),Li=F&&l.canListDistinctValues();F&&!Li&&ee.debugMode&&console.warn("[datagrid] headerFilter needs a column's distinct values. This grid is remote and its DataSource does not implement `loadDistinctValues` \u2014 implement it, or use `filterRow`.");let Ot=useRef(null);yn(()=>{l.setEnterpriseEdition(Ue);},[l,Ue]),useEffect(()=>{be?.(l);},[l,be]),yn(()=>{let o=Zs();o!==null&&o<DEFAULT_MAX_SCROLL_OFFSET&&l.setMaxScrollOffset(o);let p=Sf();p!==null&&l.setMaxCanvasHeight(p);},[l]),yn(()=>{let o=Ot.current;if(!o)return;let p=()=>{l.setViewportSize(o.clientWidth,o.clientHeight),Jt.current&&It(showsCards(cardViewWidth(o),Jt.current)),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let ae=o.querySelector(".kanuni-datagrid-rows"),le=o.querySelector(".kanuni-datagrid-canvas");if(ae&&le){let se=ae.getBoundingClientRect(),_e=le.getBoundingClientRect();l.setChromeOffsets(se.top-_e.top,_e.bottom-se.bottom);}calibrateMaxScrollOffset(o,l);};if(p(),typeof ResizeObserver>"u")return;let v=new ResizeObserver(p);v.observe(o);let z=o.querySelector(".kanuni-datagrid-canvas");return z&&v.observe(z),()=>v.disconnect()},[l]),yn(()=>{if(!C)return;let o=Ot.current?.querySelector(".kanuni-datagrid-canvas"),p=o?.querySelector(".kanuni-datagrid-header");if(!o||!p)return;let v=null,z=()=>{let le=p.offsetHeight,se=le>0?`${le}px`:null;se!==v&&(v=se,se?o.style.setProperty("--dg-header-actual",se):o.style.removeProperty("--dg-header-actual"));};z();let ae=typeof ResizeObserver>"u"?null:new ResizeObserver(z);return ae?.observe(p),()=>{ae?.disconnect(),o.style.removeProperty("--dg-header-actual");}},[l,C]),yn(()=>{if(!so)return;let o=Ot.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let p=l.getVirtualWindow(),v=l.getRows(),z=new Map(l.getMeasuredRowHeights()),ae=false;for(let le=p.rows.start;le<p.rows.end;le++){let se=v[le];if(!se||se.kind!=="data")continue;let _e=o.querySelector(`[data-row-key="${CSS.escape(String(se.key))}"]`);if(!_e)continue;let Be=_e.getBoundingClientRect().height;Be>0&&z.get(se.key)!==Be&&(z.set(se.key,Be),ae=true);}ae&&l.setMeasuredRowHeights(z);}),useEffect(()=>{if(so)return l.events.on("columnStateChanged",()=>{l.clearMeasuredRowHeights();})},[l,so]),useEffect(()=>l.events.on("scrollRequested",o=>{let p=Ot.current;if(!p)return;o.scrollTop!==void 0&&(p.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(p.scrollLeft=Qs(o.scrollLeft,p)),l.setScroll(p.scrollTop,Gi(p.scrollLeft));let v=o.scrollTop;v===void 0||Math.abs(p.scrollTop-v)<=1||setTimeout(()=>{let z=Ot.current;!z||Math.abs(z.scrollTop-v)<=1||(z.scrollTop=v,l.setScroll(z.scrollTop,Gi(z.scrollLeft)));},0);}),[l]);let Ii=Ea(l,e.alignedGrids,Ot),nd=useCallback(o=>{let p=o.currentTarget;l.setScroll(p.scrollTop,Gi(p.scrollLeft)),Ii.syncScroll(p.scrollLeft);},[l,Ii]),od=useCallback((o,p)=>l.toggleSort(o,p),[l]);hi(l,D);let Fn=Ci(l,te);useEffect(()=>{A!=null&&l.getFocusedRowKey()!==A&&l.focusRow(A);},[l,A]),useEffect(()=>{if(Z)return l.events.on("focusedRowChanged",o=>Z({rowKey:o.rowKey,row:o.row}))},[l,Z]);let[vr,rd]=useState(null);useEffect(()=>l.events.on("overlayChanged",o=>{rd(o.manual?o.overlay:null);}),[l]);let ad=useCallback(o=>{let p=l.getDataRowNode(o);if(p)return p;if(o==="")return;let v=Number(o);return Number.isNaN(v)?void 0:l.getDataRowNode(v)},[l]),Tt=Ue?e.notes:void 0;!Ue&&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 So=!!Tt?.onChange&&Tt.menu!==false,Go=useCallback((o,p,v)=>Tt?Tt.get({rowKey:o,columnId:p,row:v})??null:null,[Tt]),Fi=ki({rootRef:Je,columnModel:l.getColumnModel(),getRowNode:ad,getNote:Tt?Go:void 0,config:Re,controller:l,gridId:ee.gridId}),[Ki,id]=useState(0);useEffect(()=>{let o=new Set,p=[l.events.on("cellsFlashed",({rowKeys:v,columnIds:z,duration:ae})=>{let le=Je.current;if(!le)return;let se=v.length?v.map(je=>`[data-row-key="${CSS.escape(String(je))}"]`).join(","):".kanuni-datagrid-row",_e=z.length?z.map(je=>`[data-column-id="${CSS.escape(je)}"]`).join(","):"[data-column-id]",Be=[];le.querySelectorAll(se).forEach(je=>{je.querySelectorAll(_e).forEach(mt=>Be.push(mt));});for(let je of Be)je.classList.remove("kanuni-datagrid-cell--flash");le.offsetWidth;for(let je of Be)je.classList.add("kanuni-datagrid-cell--flash");let rt=setTimeout(()=>{for(let je of Be)je.classList.remove("kanuni-datagrid-cell--flash");o.delete(rt);},ae);o.add(rt);}),l.events.on("cellsRefreshed",({revision:v})=>id(v))];return ()=>{p.forEach(v=>v()),o.forEach(clearTimeout);}},[l]);let ld=useCallback((o,p)=>l.moveColumn(o,p),[l]),sd=useCallback((o,p,v)=>l.setColumnWidth(o,p,v??true),[l]),xr=useCallback(o=>{if(!Je.current)return;let p=br(Je.current,o);p!==null&&l.setColumnWidth(o,p);},[l]),Er=useCallback(()=>{let o=Je.current;if(o)for(let p of l.getColumnStates()){if(!p.visible||p.flex)continue;let v=br(o,p.id);v!==null&&l.setColumnWidth(p.id,v);}},[l]),Dr=useRef(null),[No]=useState(()=>new RowMotion),Oi=e.animateRows===true;useEffect(()=>{l.setAnimateRows(Oi);},[l,Oi]),useEffect(()=>{let o=()=>{l.getAnimateRows()&&No.capture(Dr.current);},p=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(v=>l.events.on(v,o));return ()=>{p.forEach(v=>v()),No.dispose();}},[l,No]),yn(()=>{l.getAnimateRows()&&No.play(Dr.current);}),useEffect(()=>{if(q!=="fitGrid")return;let o=()=>l.sizeColumnsToFit();return o(),l.events.on("gridSizeChanged",o)},[l,q]);let Sr=useRef(null);yn(()=>{if(q!=="fitCells"){Sr.current=null;return}Sr.current!==l&&Je.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(Sr.current=l,Er());});let[Gr,Hi]=useState({}),[Nr,Ai]=useState({}),Kn=useRef(Nr);Kn.current=Nr;let Bi=useRef(Gr);Bi.current=Gr;let _i=e.filterDebounce??(l.isRemote()?200:0),Mr=useRef(false),Mo=useMemo(()=>datePeriodLabels(t),[t]),Pr=useRef(Mo);Pr.current=Mo;let dd=useMemo(()=>periodSuggestionList(Mo),[Mo]),On=useCallback((o,p)=>{let v=l.getColumnModel(),z=v.getDataType(o),ae=findCustomFilterOperator(v.getDef(o),Kn.current[o]??"");Mr.current=true;try{l.setColumnFilter(o,ae?parseCustomFilterInput(o,p,ae):parseFilterInput(o,p,z,Pr.current),FILTER_PART_ROW);}finally{Mr.current=false;}},[l]),Ht=useMemo(()=>createDebouncedCommit(_i),[_i]);useEffect(()=>()=>Ht.cancelAll(),[Ht]);let ud=useCallback((o,p)=>{Hi(v=>({...v,[o]:p})),Ht.schedule(o,()=>On(o,p));},[On,Ht]),cd=useCallback((o,p)=>{Kn.current={...Kn.current,[o]:p},Ai(Kn.current),Ht.cancel(o),On(o,Bi.current[o]??"");},[On,Ht]),md=useCallback(o=>{if(l.getColumnModel().getDef(o)?.renderFilter)return jsx(ei,{controller:l,columnId:o,surface:"row"})},[l]),pd=useCallback((o,p)=>{Ht.cancel(o),On(o,p);},[On,Ht]);useEffect(()=>l.events.on("filterChanged",()=>{if(Mr.current)return;let o=l.getColumnModel();Ai(p=>{let v=null;for(let z of o.getOrder()){let ae=o.getDef(z);if(!ae?.filterOperators?.length||Ht.isPending(z))continue;let le=l.getColumnFilter(z,FILTER_PART_ROW),se=p[z]??"",_e=se;le?_e=customFilterInputFromNode(le,ae)?.operatorId??"":findCustomFilterOperator(ae,se)?.operandType==="none"&&(_e=""),_e!==se&&(v??={...p},v[z]=_e);}return v&&(Kn.current=v),v??p}),Hi(p=>Wa(p,{isPending:v=>Ht.isPending(v),textFor:v=>{let z=l.getColumnFilter(v,FILTER_PART_ROW);if(!z)return "";let ae=customFilterInputFromNode(z,o.getDef(v));return ae?ae.text:!isFilterGroup(z)&&!isBuiltInFilterOperator(z.operator)?null:filterInputFromNode(v,z,o.getDataType(v),Pr.current)}},o.getOrder()));}),[l,Ht]);let[tt,St]=useState(null),bn=useRef(null);useEffect(()=>{!tt&&bn.current&&(bn.current.dispose(),bn.current=null);},[tt]);let Hn=useRef(0),[An,Lr]=useState(null),Ir=useRef(null),zt=useCallback(o=>{let p=document.activeElement instanceof HTMLElement?document.activeElement:null;if(p?.closest(".kanuni-datagrid-portal"))return;let v=p&&Je.current&&p!==Je.current&&p.contains(Je.current)?null:p;Ir.current={el:v,columnId:v?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??o??null};},[]),fd=useCallback((o,p)=>{zt(o);let v=p.getBoundingClientRect(),z=l.getColumnModel().getDef(o),ae={left:v.left,top:v.bottom+2},le=z?.headerName??o;if(z?.renderFilter){++Hn.current,St(null),Lr({columnId:o,label:le,anchor:ae});return}Lr(null);let se=l.getColumnFilter(o,FILTER_PART_SET)??l.getColumnFilter(o,FILTER_PART_DEFAULT);if(!l.isRemote()){let rt=++Hn.current;St({columnId:o,label:le,entries:[],selected:null,anchor:ae,loading:true}),l.getDistinctValueSetAsync(o).then(({entries:je,truncated:mt})=>{Hn.current===rt&&St(_o=>_o&&_o.columnId===o?{..._o,entries:je,truncated:mt,capped:mt,selected:selectedLabelsFromFilter(se,je,{text:l.getColumnModel().getDataType(o)==="string"}),loading:false}:_o);});return}let _e=++Hn.current,Be=l.openRemoteDistinct(o,rn);if(Be){bn.current?.dispose(),bn.current=Be,St({columnId:o,label:le,entries:[],selected:null,anchor:ae,loading:true,pager:Be}),Be.start().then(rt=>{if(Hn.current!==_e){Be.dispose();return}if(rt.kind==="paged"){St(mt=>mt&&mt.columnId===o?{...mt,loading:false}:mt);return}Be.dispose(),bn.current===Be&&(bn.current=null);let je=l.sortDistinctEntries(rt.values);St(mt=>mt&&mt.columnId===o?{...mt,pager:void 0,entries:je,selected:selectedLabelsFromFilter(se,je,{text:l.getColumnModel().getDataType(o)==="string"}),loading:false}:mt);});return}St({columnId:o,label:le,entries:[],selected:null,anchor:ae,loading:true}),l.getDistinctValuesAsync(o).then(rt=>{Hn.current===_e&&St(je=>je&&je.columnId===o?{...je,entries:rt,selected:selectedLabelsFromFilter(se,rt,{text:l.getColumnModel().getDataType(o)==="string"}),loading:false}:je);});},[l,zt]),gd=useCallback(o=>{tt&&(l.setColumnFilter(tt.columnId,o,FILTER_PART_SET),St(null));},[l,tt]),wd=Object.keys(l.getColumnStates().reduce((o,p)=>(l.getColumnFilter(p.id)&&(o[p.id]=true),o),{})),Bn=l.getSelectionMode(),ut=Bn!=="none"&&(ee.selection?.checkboxColumn??false),$i=(ee.selection?.rowClick??(ut?"toggle":"replace"))==="toggle",yd=useCallback((o,p)=>{l.handleRowClick(o.key,{ctrlKey:p.ctrlKey||$i&&!p.shiftKey,metaKey:p.metaKey,shiftKey:p.shiftKey});},[l,$i]),bd=useCallback((o,p)=>l.focusCell(o.key,p),[l]),hd=useCallback(o=>l.toggleRow(o.key),[l]),[_n,Fr]=useState(null),Rd=useCallback(()=>Fr(null),[]),[uo,Kr]=useState(null),Wi=useCallback((o,p)=>{let z=(Je.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(p)}"]`)??Je.current)?.getBoundingClientRect();return {left:z?.left??0,top:(z?.bottom??0)+2}},[]),Cd=useCallback(o=>{let p=uo;Kr(null),!(!p||!Tt?.onChange)&&Tt.onChange({rowKey:p.rowKey,columnId:p.columnId,row:p.row,text:o});},[uo,Tt]),Vi=useCallback((o,p)=>{if(!Tt?.onChange||Tt.menu===false)return [];let v=o.columnId;if(!v)return [];let z=l.getRowKey(o.row),ae=Go(z,v,o.row),le=()=>Kr({rowKey:z,columnId:v,row:o.row,text:ae??"",anchor:Wi(z,v)}),se=[];return p&&se.push({separator:true,id:"__note-sep"}),se.push({id:"__note-edit",label:ae?t.editNote:t.addNote,onSelect:le}),ae&&se.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>Tt.onChange?.({rowKey:z,columnId:v,row:o.row,text:null})}),se},[Tt,l,Go,Wi,t]),[Po,Lo]=useState(null),Or=useRef({x:0,y:0}),Ui=useCallback(o=>pi(l,t,qe,o,p=>{Lo({message:p,...Or.current}),console.error("[datagrid] export failed:",p);}),[l,t,qe]),Io=useCallback((o,p,v,z,ae)=>{if(v.kind!=="data")return;zt();let le={row:v.data,node:v,rowIndex:z,columnId:ae,selectedKeys:l.getSelectedKeys()},se=(typeof ue=="function"?ue(le):ue)??[],_e=Ke.editRowMenuItem(v.key),Be=_e?[...se,...se.length>0?[{id:"dg-sep-edit",separator:true}]:[],_e]:se,rt=Vi(le,Be.length>0),je=fi(l,t,v.key,Be.length+rt.length>0),mt=[...Be,...rt,...je,...Ui(Be.length+rt.length+je.length>0)];mt.length!==0&&(Or.current={x:o,y:p},Lo(null),Fr({x:o,y:p,items:mt,context:le}));},[ue,l,t,Vi,Ui,zt,Ke.editRowMenuItem]),zi=useCallback((o,p,v)=>{let z=fi(l,t,o,false);if(z.length===0)return;v.preventDefault(),zt();let ae={row:p,node:{kind:"data",key:o,sourceIndex:-1,data:p},rowIndex:-1,columnId:v.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:l.getSelectedKeys()};Or.current={x:v.clientX,y:v.clientY},Lo(null),Fr({x:v.clientX,y:v.clientY,items:z,context:ae});},[l,t,zt]),Yi=useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),$n=useCallback((o,p,v,z,ae)=>{let le=z??-1;o&&l.notifyRow(o,v,le);let se=Yi(ae);se!==null&&l.notifyCell(p,v,le,se);},[l,Yi]),kd=useCallback((o,p,v)=>{Oe?.(o),$n("rowClicked","cellClicked",o,p,v);},[Oe,$n]),Td=useCallback((o,p,v)=>{Te?.(o),$n("rowDoubleClicked","cellDoubleClicked",o,p,v);},[Te,$n]),vd=useCallback((o,p,v)=>{if($n(null,"cellContextMenu",o,p,v),o.kind!=="data"||!ue&&!So&&qe===false&&!l.isRowPinningEnabled()&&Ke.editRowMenuItem(o.key)===null)return;v.preventDefault(),l.isRowSelected(o.key)||l.handleRowClick(o.key,{});let z=v.target.closest("[data-column-id]")?.dataset.columnId??null;Io(v.clientX,v.clientY,o,p,z);},[ue,So,qe,l,Io,$n,Ke.editRowMenuItem]),[xd,Ed]=useState(null),[Dd,Sd]=useState(null),[Hr,Gd]=useState(()=>ee.grouping?.groupSummaries??false),[hn,Ar]=useState(null),[qi,Br]=useState(null),_r=_n!==null||hn!==null||tt!==null||An!==null,Xi=useRef(false);useEffect(()=>{if(Xi.current&&!_r){let o=Ir.current;Ir.current=null;let p=o?.columnId?Je.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,v=o?.el?.isConnected?o.el:p,z=document.activeElement,ae=!z||z===document.body||!!Je.current&&z!==Je.current&&z.contains(Je.current);v&&ae&&(v.focus({preventScroll:true}),document.activeElement!==v&&p&&p.focus({preventScroll:true}));}Xi.current=_r;},[_r]);let Nd=useCallback(()=>{l.getSelectedCount()>0?l.clearSelection():l.selectAll();},[l]),$r=ut?l.getSelectableCount():ft,Wr=l.getSelectedCount(),Md=$r>0&&Wr>=$r?"all":Wr>0?"some":"none",ji=useRef(Ne);ji.current=Ne;let Pd=useCallback(o=>{let p=ji.current;p&&Dt(o,true)&&p(o.nativeEvent,Ke.keyContext())==="handled"&&Qr(o);},[Ke.keyContext]),Ld=useCallback(o=>{if(Zr(o)||!Dt(o))return;let p=o.target;if(p.closest?.(Yt)||p.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let v=p.tagName;if(v==="INPUT"||v==="TEXTAREA"||v==="SELECT"||p.isContentEditable||Ke.handleKeyDown(o))return;if((ue||So||qe!==false||l.isRowPinningEnabled())&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let le=l.getFocus(),se=le?nt.findIndex(Be=>Be.key===le.rowKey):-1,_e=se>=0?nt[se]:void 0;if(_e){let rt=Ot.current?.querySelector(`[data-row-key="${CSS.escape(String(_e.key))}"]`)?.getBoundingClientRect();Io(rt?rt.left+16:0,rt?rt.bottom:0,_e,se,le?.columnId??null),o.preventDefault();}return}let z=resolveGridCommand({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!z)return;if(z.type==="copy"){oo(l);return}if(z.type==="activate"){let le=l.getFocus(),se=le?nt.find(_e=>_e.key===le.rowKey):void 0;se&&Te?.(se),z.preventDefault&&o.preventDefault();return}l.executeCommand(z),z.preventDefault&&o.preventDefault();let ae=l.getFocusIndices();if(ae&&Ot.current){let se=l.getColumnLayout().center.findIndex(Be=>Be.state.id===l.getFocus()?.columnId),_e=l.ensureVisible(ae.rowIndex,se===-1?void 0:se);if(_e){let Be=Ot.current;_e.scrollTop!==void 0&&(Be.scrollTop=_e.scrollTop),_e.scrollLeft!==void 0&&(Be.scrollLeft=Qs(_e.scrollLeft,Be)),l.setScroll(Be.scrollTop,Be.scrollLeft);}}},[l,nt,Te,ue,So,qe,Io,Ke.handleKeyDown]),Rn=useMemo(()=>bandDepth([...We.left,...We.center,...We.right]),[We]),Wn=eo,Vr=(h?2:1)+Rn,Ji=l.getPinnedRows("top"),Qi=l.getPinnedRows("bottom"),Ur=[...T??[],...Ji.map(o=>o.row)],zr=[...b??[],...Qi.map(o=>o.row)],Id=[...(T??[]).map(()=>null),...Ji.map(o=>o.key)],Fd=[...(b??[]).map(()=>null),...Qi.map(o=>o.key)],Fo=Ur.length,Kd=zr.length,Ko=Vr+Fo,Oo=xd??ee.grouping?.panel??P,Zi=l.getGroupLevels(),Od=useCallback(o=>l.groupBy(o.slice(0,ce)),[l,ce]),Hd=useCallback(o=>l.toggleGroup(o),[l]),el=useCallback(o=>l.toggleGroupSelection(o),[l]),Ad=l.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),Et=l.hasMasterDetail()&&!!et,ct=e.rowNumbers??false,Gt=!!Xe?.icons&&!ot,Bd=ct&&l.isPaginated()?l.getPage()*l.getPageSize():0;useEffect(()=>{l.setLeadWidth(Ia(ut,Et,ct,Gt));},[l,ut,Et,ct,Gt]);let _d=useCallback(o=>l.toggleDetail(o),[l]),$d=useCallback(o=>l.toggleTreeRow(o),[l]),tl=l.getSummaryDefs(),Wd=l.getSummaries(),Vn=Dd??de??tl.length>0,co=Vn&&I==="top",Yr=h?2:1,nl=Lt.grouping?.groupSummaries&&Hr?ee.summaries:void 0,ol=l.getGroupDisplay(),rl=useCallback(()=>{Gd(o=>(l.setGroupSummaries(!o),!o));},[l]),Vd=useCallback((o,p)=>{if(!fe)return;p.preventDefault();let v=l.getColumnModel().getDef(o),z=l.getColumnSummary(o),ae={columnId:o,headerName:v?.headerName??v?.field??o},le=[{id:"none",label:t.noTotal,disabled:z===null,onSelect:()=>l.setColumnSummary(o,null)},{id:"sep",separator:true},...allowedSummaryTypes(v?.dataType).map(se=>({id:se,label:summaryTypeLabels(t)[se],disabled:z?.type===se,onSelect:()=>l.setColumnSummary(o,se)}))];zt(),Ar({x:p.clientX,y:p.clientY,items:le,context:ae});},[l,fe,zt]),Ud=useCallback((o,p)=>{if(U===false)return;p.preventDefault();let v=l.getColumnModel().getDef(o),z={columnId:o,headerName:v?.headerName??v?.field??o},ae=vi(z,{controller:l,groupPanelVisible:Oo,footerVisible:Vn,groupFootersAvailable:Ue&&l.getGroupLevels().length>0,groupFootersVisible:Hr,onToggleGroupPanel:()=>Ed(!Oo),onToggleFooter:()=>Sd(!Vn),onToggleGroupFooters:rl,onOpenFieldChooser:()=>Br({left:p.clientX,top:p.clientY}),onBestFit:xr,onBestFitAll:Er,maxGroupLevels:ce,labels:Rr(t)}),le=typeof U=="function"?U(z,ae):ae;!le||le.length===0||(zt(),Ar({x:p.clientX,y:p.clientY,items:le,context:z}));},[U,l,Oo,Vn,Ue,Hr,rl,xr,Er,ce,t,zt]),Un=l.getFocus(),zd=Un?`${e.gridId}-cell-${String(Un.rowKey)}-${Un.columnId}`:void 0,qr=l.getSelectedCount(),Yd=useMemo(()=>{let o=[fillText(t.announceRows,{n:ft})];if(Rt.length>0){let p=Rt.map(v=>{let z=l.getColumnModel().getDef(v.columnId),ae=String(z?.headerName??z?.field??v.columnId),le=v.direction==="desc"?t.announceDescending:t.announceAscending;return `${ae} ${le}`}).join(", ");o.push(fillText(t.announceSortedBy,{columns:p}));}return qr>0&&o.push(fillText(t.announceSelected,{n:qr})),o.join(", ")},[l,ft,Rt,qr,t]),{centerColumns:ln,centerIndices:Ho,stickyInsets:zn,leadingSpacer:sn,trailingSpacer:dn,rowStart:qd,rowEnd:al}=is(We,ze),Ao=l.getColumnModel(),Cn=qd,Xd=o=>{if(so)return;let p=l.getRowHeightAt(o);return p===Ct?void 0:p},jd=Array.from(nt.slice(Cn,al)),Jd=useMemo(()=>!ct||l.getGroupLevels().length===0&&!l.hasMasterDetail()&&!l.hasTreePathRows()?null:ls(nt),[ct,l,nt]),Qd=l.hasCellSpans(),il=useRef({start:0,end:0});il.current={start:Cn,end:al-1};let ll=useRef(ze.columns);ll.current=ze.columns;let Zd=useCallback(o=>l.planRowColSpans(o,ll.current),[l]),eu=hasColSpans(We),tu=useCallback((o,p)=>{let v=l.getCellSpans(p);if(v.length===0)return null;let{start:z,end:ae}=il.current,le=spanRoleAt(v,o,z,ae);if(!le)return null;if(le.role==="covered")return {kind:"covered"};let se=l.getRowOffset(le.drawStart);return {kind:"draw",height:l.getRowOffset(le.drawEnd)+l.getRowHeightAt(le.drawEnd)-se,offset:0}},[l]),sl=l.getFindNeedle()||(ve?normalizeSearch(l.getSearchText()):""),dl=l.getFindState(),Bo=dl.count>0?`${l.getFindNeedle()}\0${dl.activeIndex}`:"",ul=useCallback((o,p)=>l.getFindMatchKind(o,p),[l]),nu={pathOf:o=>bandPath(l.getColumnModel().getDef(o)),collapsible:o=>l.isBandCollapsible(o),collapsed:o=>l.isBandCollapsed(o),onToggle:o=>l.toggleBand(o),labels:{expand:t.expandColumnGroup,collapse:t.collapseColumnGroup}},cl={layout:We,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,defs:tl,values:Wd,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,onPickSummary:fe?Vd:void 0,emptyHint:fe?"\xB7":""};return jsxs("div",{className:`kanuni-datagrid-root${i?" kanuni-datagrid-dark":""}${Ve.active?" kanuni-datagrid-print":""}${ot?" kanuni-datagrid-cards":""}${themeClassName(a,ge,u)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${Ct}px`,"--dg-grip-inset":`${(ct?Jn:0)+(Gt?Qn:0)}px`,...r},dir:isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":a,"data-palette":u,"data-auto-height":so?"":void 0,"data-auto-header-height":C?"":void 0,"data-row-session":Ke.rowSessionAttr,onKeyDownCapture:Ne?Pd:void 0,ref:Je,children:[Ke.bar&&jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:Ke.bar}),me.show&&jsx(ii,{controller:l,dark:i,search:me.search!==null,searchOptions:me.search??void 0,exportMenu:me.export,columnChooser:me.columns??e.toolbarColumnChooser??true,exportExcel:Ue&&X,exportPdf:Ue&&j,itemsBefore:g,itemsAfter:y,onOpenColumnChooser:o=>Br(p=>p?null:o)}),Oo&&jsx(ni,{columns:Ad,levels:Zi,onSetLevels:Od,maxLevels:ce,onExpandAll:()=>l.expandAllGroups(),onCollapseAll:()=>l.collapseAllGroups()}),ot&&jsx(Ks,{controller:l,sort:Rt,text:t,columns:w?l.getColumnModel().getOrder().filter(o=>{let p=l.getColumnModel();return p.getState(o)?.visible!==false&&p.getDef(o)?.sortable!==false}).map(o=>({id:o,label:l.getColumnModel().getDef(o)?.headerName??o})):[]}),jsx("div",{className:"kanuni-datagrid-scroller",ref:Ot,onScroll:nd,onKeyDown:Ld,tabIndex:0,role:"grid","aria-rowcount":ft+Vr+Fo+Kd,"aria-colcount":We.left.length+We.center.length+We.right.length+(ut?1:0)+(Et?1:0)+(ct?1:0),"aria-multiselectable":Bn==="multiple"||void 0,"aria-activedescendant":zd,"aria-label":e.ariaLabel??e.gridId,children:jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(We.totalWidth||0)+Ia(ut,Et,ct,Gt)||"100%"},role:"rowgroup",children:[jsx(Aa,{layout:We,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,depth:Rn,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,rowHeight:Wn,bandFold:nu}),jsx(_a,{bandOffset:Rn*Wn,stickyInsets:zn,layout:We,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,sort:Rt,sortable:w,onSort:od,groupLevels:Zi,headerFilter:Li,filteredColumns:wd,onOpenFilter:fd,filterIconMode:E,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,selectAllState:Md,selectAllDisabled:$r===0&&Wr===0,onToggleSelectAll:Nd,draggable:P,reorderable:k,onReorder:ld,resizable:S,onResize:sd,onAutoFit:xr,onHeaderContextMenu:U===false?void 0:Ud,onHeaderClick:Le,getHeaderClassName:He,renderHeaderLabel:Ge}),h&&jsx(Va,{bandOffset:Rn*Wn,stickyInsets:zn,layout:We,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,values:Gr,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,onChange:ud,onCommit:pd,periodSuggestions:dd,periodListId:`${e.gridId}-filter-periods`,operators:Nr,onOperatorChange:cd,renderCustom:md}),co&&jsx(mr,{...cl,position:"top",bandOffset:Rn*Wn,headerRowsBetween:Yr}),Ur.length>0&&jsx(pr,{gridId:e.gridId,side:"top",rows:Ur,rowClassFor:he?(o,p,v)=>ye(o,p,v??o.key):void 0,rowKeys:Id,onUserRowContextMenu:zi,layout:We,columnModel:Ao,centerColumns:ln,centerIndices:Ho,stickyInsets:zn,leadingSpacer:sn,trailingSpacer:dn,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,rowHeight:Ct,bandOffset:Rn*Wn,headerRowsBetween:Yr+(co?1:0),ariaRowBase:Vr}),l.hasStickyGroupHeaders()&&jsx(Ts,{controller:l,width:We.totalWidth,bandOffset:Rn*Wn,headerRowsBetween:Yr+(co?1:0),belowPinned:Fo>0?Fo*Ct+1:0,renderRow:(o,p,v)=>jsx(Zn,{gridId:e.gridId,node:o,index:p,layout:We,columnModel:Ao,centerColumns:ln,centerIndices:Ho,stickyInsets:zn,leadingSpacer:sn,trailingSpacer:dn,striped:false,selected:false,groupSelection:ut&&Bn==="multiple"?l.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:el,groupDisplay:ol,focusedColumnId:null,checkboxColumn:ut,statusColumn:Gt,rowNumberColumn:ct,rowNumber:null,headerRowCount:Ko,onToggleGroup:z=>{l.toggleGroup(z),l.scrollToRow(z);},revision:Ki,searchNeedle:sl,lookupLabels:B,findStamp:Bo,findKind:Bo?ul:void 0,summaryDefs:nl,detailColumn:Et,height:v,renderCellContent:pe,getCellClassName:ke})}),jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:ze.rows.totalHeight},onDragOver:Fn.bodyHandlers?.onDragOver,onDrop:Fn.bodyHandlers?.onDrop,onDragLeave:Fn.bodyHandlers?.onDragLeave,children:[jsx("div",{ref:Dr,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${ze.rows.offsetY}px)`},children:jd.map((o,p)=>o?jsx(Zn,{gridId:e.gridId,node:o,index:Cn+p,layout:We,columnModel:Ao,centerColumns:ln,centerIndices:Ho,stickyInsets:zn,leadingSpacer:sn,trailingSpacer:dn,striped:m,selected:l.isRowSelected(o.key),ariaSelectable:Bn!=="none",selectable:ut&&o.kind==="data"?l.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&ut&&Bn==="multiple"?l.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:el,groupDisplay:ol,focusedColumnId:Un?.rowKey===o.key?Un.columnId:null,rowFocused:re&&Un?.rowKey===o.key,rowDrag:Fn.handlers,dropSide:Fn.dropAt?.key===o.key?Fn.dropAt.side:null,...we(o),rowClass:ye(o,Cn+p),renderRow:ot?$:G,checkboxColumn:ut,statusColumn:Gt,rowNumberColumn:ct,getSpan:Qd?tu:void 0,resolveColSpans:eu?Zd:void 0,getNote:Tt?Go:void 0,rowNumber:ct?ss(Cn+p,Jd,Bd):null,headerRowCount:Ko,onRowClick:kd,onRowMouseDown:Bn==="none"?void 0:yd,onRowDoubleClick:Td,onToggleSelect:hd,onCellMouseDown:bd,onRowContextMenu:vd,onToggleGroup:Hd,onToggleTreeRow:$d,revision:Ki,searchNeedle:sl,lookupLabels:B,findStamp:Bo,findKind:Bo?ul:void 0,summaryDefs:nl,detailColumn:Et,detailExpanded:Et&&l.isDetailExpanded(o.key),onToggleDetail:_d,renderDetail:et,renderEditForm:Q??Ke.renderEditForm,renderRowMessage:o.kind==="message"?Y:void 0,height:Xd(Cn+p),renderCellContent:pe,getCellClassName:ke,onCellPointerDown:V,onCellPointerEnter:Ee,onCellDoubleClick:Ye},String(o.key)):(()=>{let v=Cn+p,z=l.isRowLoadFailed(v);return jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${z?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":v+1+Ko,"aria-busy":z?void 0:"true",children:jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:z?jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-load-failed-text",children:t.rowsLoadFailed}),jsx("button",{type:"button",className:"kanuni-datagrid-retry-button","data-retry-load":"",onClick:()=>l.retryFailedLoads(),children:t.retryLoad})]}):jsx("span",{className:"kanuni-datagrid-loading-bar"})})},`__loading-${v}`)})())}),oe?.()]}),zr.length>0&&jsx(pr,{gridId:e.gridId,side:"bottom",rows:zr,rowClassFor:he?(o,p,v)=>ye(o,p,v??o.key):void 0,rowKeys:Fd,onUserRowContextMenu:zi,layout:We,columnModel:Ao,centerColumns:ln,centerIndices:Ho,stickyInsets:zn,leadingSpacer:sn,trailingSpacer:dn,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,rowHeight:Ct,headerRowsBetween:Vn&&!co?1:0,ariaRowBase:Ko+ft}),Vn&&!co&&jsx(mr,{...cl,position:"bottom"})]})}),(vr==="noRows"||vr===null&&ft===0)&&jsx("div",{className:"kanuni-datagrid-empty",children:f??t.noData}),Ke.active&&jsx(Ca,{open:Ke.saveError!==null,title:t.editCannotSave,message:Ke.saveError?Ke.saveError.columnId?`${l.getColumnModel().getDef(Ke.saveError.columnId)?.headerName??Ke.saveError.columnId}: ${Ke.saveError.message}`:Ke.saveError.message:"",confirmLabel:t.ok,dark:i,onConfirm:Ke.clearSaveError,onCancel:Ke.clearSaveError}),Ke.popup&&jsx(vt,{dark:i,children:Ke.popup}),W&&jsx(di,{controller:l,alwaysVisible:W==="always",onOpenBuilder:M,describeOptions:R}),K!==false&&jsx(bi,{controller:l,delay:typeof K=="number"?K:void 0,forced:vr==="loading"}),l.isPaginated()&&jsx(si,{page:l.getPage(),pageCount:l.getPageCount(),pageSize:l.getPageSize(),pageSizes:ee.pagination?.pageSizes,pageButtons:ee.pagination?.pageButtons,maxPageButtons:ee.pagination?.maxPageButtons,totalRows:ft,onPage:o=>l.setPage(o),onNext:()=>l.nextPage(),onPrevious:()=>l.previousPage(),onPageSize:o=>l.setPageSize(o)}),L&&jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:Yd}),uo&&jsx(wi,{anchor:uo.anchor,value:uo.text,dark:i,onCommit:Cd,onCancel:()=>Kr(null)}),_n&&jsx(yr,{x:_n.x,y:_n.y,items:_n.items,context:_n.context,dark:i,onClose:Rd}),Po&&jsx(vt,{dark:i,kind:"toast",children:jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:Po.x,top:Po.y},onClick:()=>Lo(null),children:Po.message})}),hn&&jsx(yr,{x:hn.x,y:hn.y,items:hn.items,context:hn.context,dark:i,label:`${hn.context.headerName} column`,onClose:()=>Ar(null)}),Fi&&jsx(Ti,{state:Fi,dark:i}),qi&&jsx(li,{controller:l,columns:l.getColumnStates(),anchor:qi,dark:i,onClose:()=>Br(null)}),An&&jsx(hs,{controller:l,columnId:An.columnId,headerLabel:An.label,anchor:An.anchor,dark:i,onClose:()=>Lr(null)},An.columnId),tt&&jsx(Ja,{gridId:e.gridId,columnId:tt.columnId,headerLabel:tt.label,entries:tt.entries,initialSelected:tt.selected,anchor:tt.anchor,loading:tt.loading,truncated:tt.truncated,pager:tt.pager,onSearch:tt.capped&&!l.isRemote()?o=>{let{entries:p,truncated:v}=l.searchDistinctValues(tt.columnId,o);St(z=>z&&z.columnId===tt.columnId?{...z,entries:p,truncated:v}:z);}:void 0,dark:i,onApply:gd,onClose:()=>St(null),onCustom:M?()=>{let o=tt.columnId;St(null),M({columnId:o});}:void 0},tt.columnId)]})}function Lf({defs:e,values:t,columnModel:n,rowCount:r,rowCountLabel:i}){let a=Se(),u=summaryTypeLabels(a);return e.length===0&&r===void 0?null:jsxs("div",{className:"kanuni-datagrid-summary-bar",role:"status","aria-label":a.summaryAria,children:[r!==void 0&&jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsx("strong",{children:r.toLocaleString()})," ",i??a.summaryRows]}),e.map(m=>{let f=t[summaryKey(m.columnId,m.type)],w=n.getDef(m.columnId),C=formatSummaryValue(m,f,w);return jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxs("span",{className:"kanuni-datagrid-summary-label",children:[summaryLabel(m,u)," ",w?.headerName??m.columnId,":"]}),jsx("strong",{children:C})]},summaryKey(m.columnId,m.type))})]})}var If=memo(Lf);function Ff({icon:e,label:t,shortcut:n,disabledReason:r,showLabel:i=false,onClick:a,testId:u}){let m=r!==void 0,f=n?`${t} (${n})`:t;return jsxs("button",{type:"button",className:`kanuni-datagrid-app-button${i?"":" kanuni-datagrid-toolbar-icon-button"}`,"aria-label":i?void 0:t,"aria-keyshortcuts":n,"aria-disabled":m||void 0,"aria-description":m?r:void 0,title:m?`${f} \u2014 ${r}`:f,"data-testid":u,onClick:w=>{if(m){w.preventDefault();return}a?.();},children:[e,i&&jsx("span",{children:t})]})}function _f(e,t){return Pi(e,t,t?.source,(n,r)=>n.computeChartData(r))}function $f(e,t){return Pi(e,t,t?.source,(n,r)=>n.computeChartXYData(r))}function Wf(e,t){return Pi(e,t,t?.source,(n,r)=>n.computeChartBoxData(r))}function Pi(e,t,n,r){let[i,a]=useState(null);return useEffect(()=>{if(!e||!t){a(null);return}let u=n??"view",m=chartNeedsOrder(t),f=false,w=0,C=false,h=false,F=null,E=()=>{let K=++w;r(e,t).then(L=>{!f&&K===w&&a(L);},()=>{});},k=(K=false)=>{h||=K,!C&&(C=true,queueMicrotask(()=>{if(C=false,f)return;let L=e.chartBasis(u,m);!h&&L===F||(h=false,F=L,E());}));};F=e.chartBasis(u,m),E();let S=[e.events.on("contentReady",()=>k()),e.events.on("rowsChanged",()=>k()),e.events.on("dataUpdated",()=>k()),...u==="selection"?[e.events.on("selectionChanged",()=>k(true))]:[]];return ()=>{f=true,w++,S.forEach(K=>K());}},[e,t]),i}export{eo as BAND_ROW_HEIGHT,ac as DEFAULT_EDIT_FORM_LABELS,Us as DEFAULT_HEADER_MENU_LABELS,Gf as DataGrid,Yt as EDITOR_OWNED_SELECTOR,yl as GRID_PORTAL_SELECTOR,ha as GridCellEditor,li as GridColumnChooser,yr as GridContextMenu,Dn as GridDateEditor,Ca as GridDialog,ca as GridEditForm,di as GridFilterPanel,Va as GridFilterRow,mr as GridFooterRow,ni as GridGroupPanel,_a as GridHeader,Aa as GridHeaderBands,Ja as GridHeaderFilterPopup,bi as GridLoadingOverlay,En as GridLookupEditor,wi as GridNoteEditor,si as GridPager,pr as GridPinnedRows,Pn as GridPopupPanel,vt as GridPortal,Zn as GridRow,ma as GridRowEditor,If as GridSummaryBar,aa as GridSurfaceProvider,Jr as GridTextProvider,ii as GridToolbar,Ff as GridToolbarButton,Ti as GridTooltip,mn as LOOKUP_PENDING,Zo as LookupLabels,Ta as PRINT_MAX_ROWS,hr as ROW_DRAG_MIME,Gs as SHORTCUT_COPY,Ep as SHORTCUT_CUT,Dp as SHORTCUT_PASTE,oi as ToolbarIcon,pi as buildCellMenuItems,vi as buildHeaderMenu,oo as copyToClipboard,Jl as editFormColumnIds,ua as editFormLabels,vn as editorOwnsKey,Yo as editorSeedText,Dt as eventFromOwnDom,Wo as focusStaysWithGrid,Zr as gridIgnoresKey,Rr as headerMenuLabels,po as isAltGraphChar,Tn as keyClaimed,wo as lookupEditorSettings,ho as lookupLabelsFor,yo as lookupPickValues,Qr as markKeyHandledByApp,Uu as matchOptions,br as measureBestFitWidth,Nt as numberTextFormat,Wa as reconcileFilterInputs,To as runGridExport,Ea as useAlignedGrids,Nn as useAnchoredPopup,ki as useCellTooltip,jr as useDataGrid,ya as useEditModes,Wf as useGridChartBoxData,_f as useGridChartData,$f as useGridChartXYData,ta as useGridEditing,Zt as useGridPortalTarget,Bt as useGridSurfaceClass,Se as useGridText,va as usePrintLayout,Ci as useRowDrag,hi as useStateStoring,Sp as writeClipboardText};
|