@kanunilabs/datagrid-react 1.8.12 → 1.8.13

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.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,numberCellText,foldMatchText,RangeSelectionEngine,rangesFromSaved,rangesToSaved,EditingEngine,isRowKey,createEditingApi,createDebouncedCommit,isRowEditMode,cssEscape,edgeEditableColumn,nextEditableColumn,numberSeparators,computeFillTarget,computeFillValues,cellDisplayText,parseClipboardTable,computePasteCells,coercePastedValue,RANGE_KEY_DIRECTIONS,extendRangeByKey,keyboardFill,themeClassName,portalTarget,foldText,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,isPartialNumberText,readNumberText,stepNumberText,DataGridController,formatNumberDisplay,numberBoundsError,editableNumberText,lookupSelectedValues,multipleLookupText,parseLocaleNumber,distinctDisplayText,resolveRowStatus,rowStatusDescription,rowMessageModel,isFilterGroup,isBuiltInFilterOperator,filterInputFromNode,bandPath,lookupMultipleValue,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 Su=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],Dl=new WeakMap;function da(e){let t=Dl.get(e);if(!t){let n={version:0,listeners:new Set},o=()=>{n.version++,n.listeners.forEach(l=>l());};for(let l of Su)e.events.on(l,o);Dl.set(e,n),t=n;}return t}function ua(e){let t=e.sorting?.postSort,n=useRef(t);useEffect(()=>{n.current=t;},[t]);let[o]=useState(()=>((g,k)=>n.current?.(g,k))),l=()=>{let g=new DataGridController(t?{...e,sorting:{...e.sorting,postSort:o}}:e);return da(g),g},[a,u]=useState(l);useEffect(()=>{if(a.isDisposed()){u(l());return}return ()=>a.dispose()},[a]);let p=useCallback(g=>{let{listeners:k}=da(a);return k.add(g),()=>{k.delete(g);}},[a]),f=useCallback(()=>da(a).version,[a]);useSyncExternalStore(p,f,f);let{dataSource:w,columns:y}=e,h=useRef(true);useEffect(()=>{if(h.current){h.current=false;return}Array.isArray(w)&&a.setData(w);},[a,w]);let L=useRef(true);useEffect(()=>{if(L.current){L.current=false;return}a.setColumns(y);},[a,y]);let S=e.pagination?e.pagination.enabled!==false:false;useEffect(()=>{a.setPaginationEnabled(S);},[a,S]);let G=e.rowHeight,v=useRef(true);useEffect(()=>{if(v.current){v.current=false;return}G!==void 0&&a.setRowHeight(G);},[a,G]);let F=e.selection?.mode??"none";useEffect(()=>{a.setSelectionMode(F);},[a,F]);let N=e.onRowLeaving;useEffect(()=>{a.setRowLeaving(N);},[a,N]);let x=e.searchFold;useEffect(()=>{a.setSearchFold(x);},[a,x]);let P=e.rowPinning;useEffect(()=>{a.setRowPinning(P);},[a,P]);let A=e.selection?.isRowSelectable,j=useRef(true);useEffect(()=>{if(j.current){j.current=false;return}a.setRowSelectable(A??null);},[a,A]);let Y=t!==void 0,V=useRef(true);useEffect(()=>{if(V.current){V.current=false;return}a.setPostSort(Y?o:null);},[a,Y,o]);let M=e.grouping?.groupBy??null,$=JSON.stringify(M==null?[]:typeof M=="string"?[M]:M),C=useRef(true);return useEffect(()=>{if(C.current){C.current=false;return}a.groupBy(JSON.parse($));},[a,$]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var Gl=createContext(getGridDictionary("en"));function ca({locale:e,messages:t,children:n}){let o=useMemo(()=>getGridDictionary(e,t),[e,t]);return jsx(Gl.Provider,{value:o,children:n})}function Ne(){return useContext(Gl)}var jo=new WeakSet;function wo(e){return "nativeEvent"in e?e.nativeEvent:e}function pa(e){jo.add(wo(e));}function bo(e){let t=wo(e);return t.key.length===1&&typeof t.getModifierState=="function"&&t.getModifierState("AltGraph")}function fa(e){let t=wo(e);return t.defaultPrevented||jo.has(t)?true:t.altKey&&!bo(t)}function on(e){let t=wo(e);return t.defaultPrevented||jo.has(t)}var Lu=new Set(["a","c","v","x","z","y","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","Backspace","Delete"]);function rn(e){let t=wo(e);return jo.has(t)||/^F([1-9]|1[0-2])$/.test(t.key)?false:bo(t)?true:t.altKey?false:t.ctrlKey||t.metaKey?Lu.has(t.key.length===1?t.key.toLowerCase():t.key):true}var Bt="[data-kanuni-editor]",Ml=".kanuni-datagrid-portal, [data-kanuni-portal]";function Kt(e,t=false){let n=e.currentTarget,o=e.target;return typeof Node>"u"||!(n instanceof Node)||!(o instanceof Node)||n.contains(o)?true:t?!!(o instanceof Element?o:o.parentElement)?.closest(Ml):false}function Jo(e,t){return t?!!t.closest(`${e}, .kanuni-datagrid-detached, [data-kanuni-portal], ${Bt}`):false}function _t(e){let t=e?.numberFormat;if(!(!t?.locale||e?.lookup||e?.renderEditor||e?.allowFormulas))return t}function Qo(e,t){return typeof e=="number"||e===null||e===void 0?editableNumberText(e,t.locale):e}function Pl(e,t){if(typeof e!="string")return e;let n=readNumberText(e,t);return n===void 0?Number.NaN:n}function Ll(e,t,n){let o=e.getColumnModel().getNumberFormat(t);if(o)return [{type:"custom",validate:({value:l})=>{if(typeof l!="number")return true;let a=n();if(Number.isNaN(l)){let f=formatNumberDisplay(o.decimals===0?1234:1234.5,o);return a.validationNumberLocale.replace("{example}",f)}let u=numberBoundsError(l,o);if(!u)return true;let p=formatNumberDisplay(u.limit,{...o,decimals:void 0});return u.bound==="min"?a.validationMin.replace("{min}",p):a.validationMax.replace("{max}",p)}}]}var er=new WeakMap,tr=new WeakMap,Qu=1e5,Zu=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function ec(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:o=>{let l=t?.getColumnModel().getDef(o);return l?.lookup||l?.renderEditor||l?.allowFormulas===true?false:n?.(o)??true}}}function ga(e){let t=e.controller?.isEnterpriseEdition()??false;return tc(t?e:ec(e))}function tc({controller:e,mode:t="batch",rules:n,onSave:o,crud:l,allowAdding:a,allowUpdating:u,allowDeleting:p,onInitNewRow:f,onRowInserted:w,onRowUpdated:y,onRowRemoved:h,editOnKeyPress:L,confirmDelete:S,confirmDeleteMessage:G,insertKey:v,appendOnArrowDown:F,newRowPosition:N,focusCellOnTab:x,focusCellOnCycle:P,keepEditingOnTab:A,enabled:j=true,savedDuration:Y,range:V=true,history:M=true,canEditColumn:$,onReady:C,commitOn:g="cell",rowMessages:k=false,editKeys:R,appendOnTab:X,deleteKey:re,fillKeys:H,rangePaste:D}){let J=Ne(),[de,Fe]=useState(0),Le=useCallback(()=>Fe(s=>s+1),[]),le=useMemo(()=>new RangeSelectionEngine,[]),Ee=useMemo(()=>({start(s,m){le.start(s,m),Le();},add(s,m){le.add(s,m),Le();},extend(s,m){le.extend(s,m)&&Le();},finish(){le.finish(),Le(),e?.notifyViewStateChanged();},clear(){le.clear()&&(Le(),e?.notifyViewStateChanged());},contains:(s,m)=>le.contains(s,m),isAnchor:(s,m)=>le.isAnchor(s,m),getRange:()=>le.getRange(),getBounds:()=>le.getBounds(),toTsv:s=>le.toTsv(s),selectColumn(s,m,T){return le.selectColumn(s,m,T)?(Le(),e?.notifyViewStateChanged(),true):false},fullColumns:s=>le.fullColumns(s)}),[le,Le,e]),K=useRef(null);useEffect(()=>{if(!(!e||!V))return e.registerViewStatePart("ranges",{session:true,get:()=>rangesToSaved(le.getRanges(),e.getVisualColumnIds()),apply:s=>{le.setRanges(rangesFromSaved(s,e.getVisualColumnIds())),Le();}})},[e,V,le,Le]);let[se,ie]=useState(null),ee=useRef({onSave:o,crud:l,allowAdding:a,allowUpdating:u,allowDeleting:p,onInitNewRow:f,onRowInserted:w,onRowUpdated:y,onRowRemoved:h,editOnKeyPress:L,confirmDelete:S,confirmDeleteMessage:G,insertKey:v,appendOnArrowDown:F,newRowPosition:N,focusCellOnTab:x,focusCellOnCycle:P,keepEditingOnTab:A,canEditColumn:$,onReady:C,historyEnabled:M,rowMessages:k,editKeys:R,appendOnTab:X,deleteKey:re,fillKeys:H,rangePaste:D,text:J});ee.current={onSave:o,crud:l,allowAdding:a,allowUpdating:u,allowDeleting:p,onInitNewRow:f,onRowInserted:w,onRowUpdated:y,onRowRemoved:h,editOnKeyPress:L,confirmDelete:S,confirmDeleteMessage:G,insertKey:v,appendOnArrowDown:F,newRowPosition:N,focusCellOnTab:x,focusCellOnCycle:P,keepEditingOnTab:A,canEditColumn:$,onReady:C,historyEnabled:M,rowMessages:k,editKeys:R,appendOnTab:X,deleteKey:re,fillKeys:H,rangePaste:D,text:J};let Se=useRef(null),c=useMemo(()=>{if(!e||!j)return null;let s=m=>e.getRowByKey(m);return new EditingEngine({mode:t,commitOn:g,rules:n,messages:J,onChange:Le,onAutoSaveFailed:m=>Se.current?.(m),onCellValueChanged:m=>e.notifyCellValueChanged(m),onEditingStarted:m=>e.notifyEditingStarted(m),onEditingStopped:m=>e.notifyEditingStopped(m),onRowEditingStarted:m=>e.notifyRowEditingStarted(m),onRowEditingStopped:m=>e.notifyRowEditingStopped(m),onHistoryStarted:({kind:m,label:T})=>e.notifyHistoryStarted(m,T),onHistoryEnded:({kind:m,...T})=>e.notifyHistoryEnded(m,T),onChangesChanged:m=>e.notifyChangesChanged(m),newRowKey:m=>{let T=e.getRowKeyField(),W=T?m[T]:void 0;return isRowKey(W)&&W!==""?W:void 0},readValue:(m,T)=>{let W=s(m);return W?e.getColumnModel().getStoredValue(W,T):void 0},formatForEdit:(m,T,W)=>{let oe=_t(e.getColumnModel().getDef(T));return oe?Qo(W,oe):e.formatCellForEdit(T,W)},parseFromEdit:(m,T,W)=>{let oe=e.getColumnModel().getDef(T),_=_t(oe);return _&&!oe?.valueParser?Pl(W,_):e.parseCellFromEdit(T,W,m)},columnRules:m=>Ll(e,m,()=>ee.current.text),readRow:s,editableColumns:m=>{let T=e.getColumnLayout(),W=s(m);return [...T.left,...T.center,...T.right].map(oe=>oe.state.id).filter(oe=>{if(e.getColumnModel().getDef(oe)?.editable===false||ee.current.canEditColumn&&!ee.current.canEditColumn(oe))return false;let _=ee.current.allowUpdating;return _===void 0?true:typeof _=="function"?_(W,oe):_})},isColumnEditable:m=>e.getColumnModel().getDef(m)?.editable!==false&&(ee.current.canEditColumn?.(m)??true),applyValue:(m,T,W)=>e.writeCellValue(m,T,W),storedValue:(m,T,W)=>e.valueAfterWrite(m,T,W),insertRow:(m,T,W,oe)=>{let _=e.getRowKeyField(),q={...T};_&&!isRowKey(q[_])&&(q[_]=m),e.applyTransaction({add:[q],addPosition:W,addBeforeKey:oe});},dropRow:m=>e.applyTransaction({remove:[m]}),replaceRow:(m,T)=>{let W=e.getRowKey(T);return W===m?(e.applyTransaction({update:[T]}),W):(e.applyTransaction({remove:[m],add:[T]}),W)},allowAdding:()=>ee.current.allowAdding??false,allowUpdating:(m,T)=>{let W=ee.current.allowUpdating;return W===void 0?true:typeof W=="function"?W(m,T):W},allowDeleting:m=>{let T=ee.current.allowDeleting;return T===void 0?false:typeof T=="function"?T(m):T},onInitNewRow:m=>ee.current.onInitNewRow?.(m),get newRowPosition(){return ee.current.newRowPosition},onRowInserted:(m,T)=>ee.current.onRowInserted?.(m,T),onRowUpdated:(m,T,W)=>ee.current.onRowUpdated?.(m,T,W),onRowRemoved:(m,T)=>ee.current.onRowRemoved?.(m,T),crud:{get insert(){let m=ee.current.crud?.insert;return m&&(T=>m(T))},get update(){let m=ee.current.crud?.update;return m&&((T,W,oe)=>m(T,W,oe))},get remove(){let m=ee.current.crud?.remove;return m&&((T,W)=>m(T,W))}},onSave:m=>ee.current.onSave?.(m)})},[e,j]);useEffect(()=>{c?.setMessages(J);},[c,J]),useEffect(()=>{c?.setMode(t);},[c,t]),useEffect(()=>{c?.setCommitOn(g);},[c,g]),useEffect(()=>{Y!==void 0&&c?.setSavedDuration(Y);},[c,Y]);let De=useRef(null),Ae=useRef(null),Me=useMemo(()=>createEditingApi({engine:()=>De.current,history:()=>ee.current.historyEnabled!==false,addRow:(s,m)=>Ae.current?.(s,m)??null}),[]),it=useRef(false);useEffect(()=>{if(!(!e||!c))return De.current=c,e.setEditingApi(Me),it.current||(it.current=true,ee.current.onReady?.(Me)),()=>{De.current=null,e.editing===Me&&e.setEditingApi(null);}},[e,c,Me]),useEffect(()=>(c?.resume(),()=>c?.dispose()),[c]),useEffect(()=>{if(!e||!c)return;let s=false,m=e.events.on("rowsChanged",W=>{s=W.removed===0;}),T=e.events.on("dataUpdated",()=>{let W=s;s=false,!W&&c.retainKeys(new Set(e.getDataRows().map(oe=>oe.key)));});return ()=>{m(),T();}},[e,c]),useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>Ee.clear())},[e,Ee]),useEffect(()=>{if(!(!e||!c))return e.setPendingValueReader({effectiveValue:(s,m,T)=>c.changes.effectiveValue(s,m,T),effectiveRow:(s,m)=>c.changes.applyPendingTo(s,m),hasPending:()=>c.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,c]),useEffect(()=>{if(!(!e||!c||!M))return e.setHistoryDelegate({undo:()=>c.undo(),redo:()=>c.redo(),canUndo:()=>c.canUndo(),canRedo:()=>c.canRedo(),depth:()=>c.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,c,M]);let Ue=useMemo(()=>createDebouncedCommit(150),[]);useEffect(()=>()=>Ue.cancelAll(),[Ue]);let ue=useRef(de);useEffect(()=>{!e||!c||de===ue.current||(ue.current=de,Ue.schedule("footer",()=>e.refreshSummaries()));},[e,c,de,Ue]);let be=useCallback(s=>{let m=e?.getRows()[s];return m&&m.kind==="data"?m.key:null},[e]),me=useCallback(s=>e?.getColumnIdAt(s)??null,[e]),Be=useCallback((s,m)=>{e?.scrollToCell(s,m),c?.beginEdit(s,m);},[c,e]),Pe=useCallback((s={},m,T={})=>{let W=c?.addRow(s,m,T.position)??null;if(W===null||!e)return W;if(isRowEditMode(t))return e.revealRow(W),W;let oe=e.getRowKeyField(),_=e.getColumnModel().runtime().find(q=>q.state.visible&&q.def.editable!==false&&(oe===null||(q.def.field??q.state.id)!==oe));return e.revealRow(W),_&&(e.focusCell(W,_.state.id)&&T.open!==false?c?.beginEdit(W,_.state.id):ge()),W},[c,e]);Ae.current=Pe;let ae=useCallback(s=>{if(!c)return false;let m=ee.current.confirmDelete;if(m===false)return c.removeRow(s);let T=e?.getRowByKey(s);if(typeof m!="function")return Ce({rowKey:s,message:ee.current.confirmDeleteMessage??J.editDeleteConfirm}),false;let W=m(s,T);return typeof W=="boolean"?W?c.removeRow(s):false:(W.then(oe=>{oe&&c.removeRow(s);}),false)},[c,e]),Te=useCallback((s,m)=>{if(!c||!e)return;if(c.isRemoved(s)){c.restoreRow(s);return}if(!c.canDelete(s))return;let T=ee.current.confirmDelete;if(typeof T!="function")return;let W=()=>{let q=e.getRows(),ke=q.findIndex(Re=>Re.key===s);if(ke<0)return null;for(let Re=ke+1;Re<q.length;Re++)if(q[Re]?.kind==="data")return q[Re].key;for(let Re=ke-1;Re>=0;Re--)if(q[Re]?.kind==="data")return q[Re].key;return null},oe=()=>{let q=c.getMode()!=="batch"||c.changes.isInserted(s),ke=q?W():null;c.removeRow(s)&&q&&(ke!==null?e.focusCell(ke,m):e.clearFocus(),ge());},_=T(s,e.getRowByKey(s));if(typeof _=="boolean"){_&&oe();return}_.then(q=>{q&&oe();});},[c,e]),ge=useCallback(()=>{e&&document.querySelector(`[data-grid-id="${cssEscape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),I=useCallback((s,m={})=>{if(!c||!e)return false;let T=c.getSession(),W=T?{rowKey:T.rowKey,columnId:T.columnId}:e.getFocus();if(!W)return false;let oe=T!==null;if(!c.commitEdit())return false;let _=()=>(oe&&ge(),false),q=Ze=>e.getColumnModel().getDef(Ze)?.editable!==false&&(ee.current.canEditColumn?.(Ze)??true),ke=e.getColumnModel().runtime().filter(Ze=>Ze.state.visible).map(Ze=>Ze.state.id);if(edgeEditableColumn(ke,q,1)===null)return false;let Re=e.getRows(),ve=Re.findIndex(Ze=>Ze.key===W.rowKey);if(ve<0)return false;let ze=nextEditableColumn(ke,q,W.columnId,s);if(ze===null){if(m.cycle===false)return _();let Ze=s;do ve+=Ze;while(ve>=0&&ve<Re.length&&Re[ve]?.kind!=="data");if(ve>=Re.length&&s===1&&ee.current.appendOnTab===true&&c.canAdd())return Pe({},void 0,{position:"last",open:m.open===true})!==null;if(ve<0||ve>=Re.length)return _();ze=edgeEditableColumn(ke,q,s);}let Ye=Re[ve];return !Ye||Ye.kind!=="data"||!e.focusCell(Ye.key,ze)?_():(e.scrollToCell(Ye.key,ze),m.open===true?c.beginEdit(Ye.key,ze):(ge(),true))},[c,e,Pe]),B=useCallback((s,m,T)=>!c||!e||c.isEditingRow()||!c.canEditRow(s)||(e.scrollToCell(s,m),!c.beginRowEdit(s))?false:(T!==void 0&&c.getMode()==="row"&&(er.set(c,m),c.setRowEditValue(m,T)),true),[c,e]),te=useCallback(s=>{if(!c||!e||c.getSession())return false;let m=e.getFocus();if(!m)return false;let T=e.getColumnModel().getDef(m.columnId);if(T?.editable===false)return false;let W=e.getColumnModel().getEditorDataType(m.columnId);if(W==="boolean")return false;let oe=s,_;T?.lookup?.multiple&&(oe=void 0);let q=_t(T);if(q){let{decimal:Re}=numberSeparators(q.locale);if(!(/^\d$/.test(s)||s===Re||s==="-"&&q.allowNegative!==false))return false}else if(W==="number")if(/^\d$/.test(s))oe=Number(s);else if(s==="-"||s===",")oe=void 0,_=s;else return false;else if(W==="date"){if(!/^\d$/.test(s))return false;oe=void 0,_=s;}if(isRowEditMode(c.getMode()))return B(m.rowKey,m.columnId,oe);if(e.scrollToCell(m.rowKey,m.columnId),!c.beginEdit(m.rowKey,m.columnId,oe))return false;let ke=c.getSession();return _!==void 0&&ke&&tr.set(ke,_),true},[c,e,B]),[pe,ye]=useState(null),[fe,Ce]=useState(null),Oe=useCallback(s=>{let m=fe;Ce(null),s&&m&&c&&c.removeRow(m.rowKey);},[fe,c]),Je=useCallback(s=>{if(c?.getMode()==="cell"&&c.getCommitOn()==="row"){if(ee.current.rowMessages)return;ye({message:s.error??J.editSaveFailed,rowKey:s.rowKey,columnId:s.columnId});return}ye({message:s.error??J.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,J,c]);Se.current=Je;let Z=useRef(false);useEffect(()=>{if(!e||!c)return;let s=()=>c.getMode()==="cell"&&c.getCommitOn()==="row",m=e.events.on("focusedRowChanged",q=>{s()&&c.commitRows(q.rowKey);});if(typeof document>"u")return m;let T=`[data-grid-id="${cssEscape(e.gridId)}"]`,W=q=>!Jo(T,q),oe=null,_=q=>{if(!s()||Z.current)return;let ke=q.target instanceof Element?q.target:null;if(!ke||!ke.closest(T))return;let Re=q.relatedTarget instanceof Element?q.relatedTarget:null;Re&&!W(Re)||!ke.isConnected&&!Re||(oe!==null&&clearTimeout(oe),oe=setTimeout(()=>{if(oe=null,c.getSession()||Z.current)return;let ve=document.activeElement;ve&&ve!==document.body&&!W(ve)||c.commitRows(null);},0));};return document.addEventListener("focusout",_,true),()=>{m(),document.removeEventListener("focusout",_,true),oe!==null&&clearTimeout(oe);}},[e,c]);let ct=useCallback((s,m)=>{if(!c||!e||c.getMode()!=="cell"||c.getCommitOn()!=="row"||!c.isEmptyNewRow(s))return false;let T=e.getRows(),W=T.findIndex(q=>q.key===s),oe=null;for(let q=W+1;W>=0&&q<T.length&&oe===null;q++)T[q]?.kind==="data"&&(oe=T[q].key);for(let q=W-1;W>=0&&q>=0&&oe===null;q--)T[q]?.kind==="data"&&(oe=T[q].key);c.discardEmptyNewRow(s);let _=m??e.getFocus()?.columnId??null;return oe!==null&&_!==null?e.focusCell(oe,_):e.clearFocus(),true},[c,e]),Dt=useRef(null),d=useCallback(()=>{if(!c)return;let s=c.getSession();c.cancelEdit(),s&&ct(s.rowKey,s.columnId),ge();},[c,ct,ge]),tt=useCallback(s=>{!c||!c.commitEdit()||s!=="blur"&&(s==="down"&&ee.current.editKeys?.enter!==true&&e?.moveFocus("down"),ge());},[c,e,ge]),St=useCallback(s=>{if(!c||!e)return false;if(s==="next"||s==="previous"){if(ee.current.focusCellOnTab===false)return c.commitEdit()?(ge(),true):false;let m=c.getSession();return I(s==="next"?1:-1,{open:ee.current.keepEditingOnTab===true,cycle:ee.current.focusCellOnCycle!==false}),m===null||c.getSession()!==m}return c.commitEdit()?s==="blur"?(c.getMode()==="cell"&&c.getCommitOn()==="row"&&typeof document<"u"&&!Jo(`[data-grid-id="${cssEscape(e.gridId)}"]`,document.activeElement)&&c.commitRows(null),true):((s==="down"||s==="enter"&&ee.current.editKeys?.enter!==true)&&e.moveFocus("down"),ge(),true):false},[c,e,ge,I]),We=useCallback((s,m)=>{Z.current=s,!(s||typeof document>"u")&&setTimeout(()=>{setTimeout(()=>{let T=document.activeElement;if(T&&T!==document.body&&T.isConnected)return;let W=c?.getSession()?m?.():null;W?.isConnected?W.focus({preventScroll:true}):ge();},0);},0);},[c,ge]);useEffect(()=>{c?.getSession()||(Z.current=false);},[c,de]);let Gt=useCallback(()=>Z.current,[]),pt=useCallback(()=>{let s=c?.getSession()??null,m=c?.getRowSession()??null,T=e?.getFocus()??null,W=s?{rowKey:s.rowKey,columnId:s.columnId}:m?{rowKey:m.rowKey,columnId:T?.columnId??""}:T?{rowKey:T.rowKey,columnId:T.columnId}:null;return {editing:s!==null||m!==null,cell:W,isNewRow:!!c&&W!==null&&c.changes.isInserted(W.rowKey),commit:()=>c?c.getRowSession()?false:c.getSession()?c.commitEdit()?(ge(),true):false:true:true,cancel:()=>{c&&(c.getRowSession()?Dt.current?.():c.getSession()&&d());}}},[c,e,ge,d]),nt=useCallback(async()=>{if(!c)return;ye(null);let s=await c.saveChanges();s.saved||s.superseded||Je(s);},[c,Je]),Qe=useCallback(()=>ye(null),[]),Mt=useCallback(()=>{ye(null),c?.cancelChanges();},[c]);useEffect(()=>{(c?.getSession()||c?.isEditingRow())&&ye(null);},[de,c]);let Nt=useMemo(()=>{if(!e||!le.getRange())return null;let s=le.cellCount();if(s>Qu)return {cells:s,truncated:true,numeric:null};let m=e.getColumnModel(),T=e.getVisualColumnIds(),W=e.getRows(),oe=le.getStats((_,q)=>{let ke=W[_],Re=T[q];if(!ke||ke.kind!=="data"||!Re)return;let ve=c?c.effectiveValue(ke.key,Re):m.getCellValue(ke.data,Re);return typeof ve=="string"&&ve.trim()!==""&&!Number.isNaN(Number(ve))?Number(ve):ve});return {cells:s,truncated:false,numeric:oe}},[e,le,c,de]),qe=useCallback((s,m)=>!!c&&!isChromeColumn(m)&&c.canUpdate(s,m),[c]),Tt=useCallback((s,m)=>{let T=Ee.getRange();K.current=T??{startRow:s,startColumn:m,endRow:s,endColumn:m},ie(null);},[Ee]),Ot=useCallback((s,m)=>{let T=K.current;if(!T)return;let W=computeFillTarget(T,s,m);ie(W?{startRow:W.bounds.minRow,startColumn:W.bounds.minColumn,endRow:W.bounds.maxRow,endColumn:W.bounds.maxColumn}:null);},[]),lt=useCallback((s,m)=>{if(!c||!e)return 0;let W=computeFillValues(s,m,(oe,_)=>{let q=be(oe),ke=me(_);return q!==null&&ke?c.effectiveValue(q,ke):void 0}).map(oe=>{let _=be(oe.row),q=me(oe.column);if(_===null||!q||!qe(_,q))return null;let ke=oe.from?e.shiftCellFormula(q,oe.value,oe.row-oe.from.row,oe.column-oe.from.column):oe.value;return {rowKey:_,columnId:q,value:ke}}).filter(oe=>oe!==null);return e.notifyClipboardGesture("fill",W.length,()=>W.length===0?false:(c.applyEdits(W,fillText(J.editFillUndo,{count:W.length}),"fill"),true)),W.length},[c,e,be,me,qe,J]),jt=useCallback(()=>{let s=K.current,m=se;if(K.current=null,ie(null),!s||!m||!c||!e)return;let T=computeFillTarget(s,m.endRow,m.endColumn);T&&lt(s,T);},[se,c,e,lt]),rt=useCallback((s,m)=>{if(!e)return "";let T=e.getRows()[s],W=e.getColumnIdAt(m);if(!T||T.kind!=="data"||!W)return "";let oe=e.getColumnModel(),_=c?c.effectiveValue(T.key,W):oe.getCellValue(T.data,W),q=cellDisplayText(oe.getDef(W),_,T.data);return e.clipboardCellText(T,W,_,q).replace(/[\t\r\n]+/g," ")},[e,c]),ot=useCallback((s="copy")=>{if(!e||!Ee.getRange())return false;let m=Ee.toTsv(rt);return e.notifyClipboardGesture("copy",m?m.split(`
2
- `).length:0,()=>e.writeClipboard(m,s)),true},[e,Ee,rt]),Pt=useCallback(s=>{if(!e||!c)return false;let m=Ee.getRange()!==null,T=s??e.getFocus();if(!m&&!T)return false;if(!ot("cut")){let q=T?e.getVisualColumnIds().indexOf(T.columnId):-1,ke=T?e.getRows().findIndex(ve=>ve.key===T.rowKey):-1;if(ke<0||q<0)return false;let Re=rt(ke,q);e.notifyClipboardGesture("copy",Re?1:0,()=>e.writeClipboard(Re,"cut"));}let W=[];if(m)le.forEachCell((q,ke)=>W.push([q,ke]));else {let q=e.getRows().findIndex(Re=>Re.key===T.rowKey),ke=e.getVisualColumnIds().indexOf(T.columnId);if(q<0||ke<0)return false;W.push([q,ke]);}let oe=e.getRows(),_=[];for(let[q,ke]of W){let Re=oe[q];if(!Re||Re.kind!=="data")continue;let ve=e.getColumnIdAt(ke);!ve||isChromeColumn(ve)||c.canUpdate(Re.key,ve)&&_.push({rowKey:Re.key,columnId:ve,value:null});}return e.notifyClipboardGesture("cut",_.length,()=>_.length===0?false:(c.applyEdits(_,fillText(J.editCutUndo,{count:_.length}),"cut"),true)),true},[e,c,Ee,le,ot,rt,J]),Ve=useCallback((s,m)=>{if(!c||!e||!s)return;let T=ee.current.rangePaste===false,W=e.processPastedTable(T?[[s.replace(/\r?\n$/,"")]]:parseClipboardTable(s));if(!W)return;let oe=T?null:Ee.getBounds(),_,q;if(oe)_=oe.minRow,q=oe.minColumn;else {let ze=m??e.getFocus();if(!ze||(_=e.getRows().findIndex(Ye=>Ye.key===ze.rowKey),q=e.getVisualColumnIds().indexOf(ze.columnId),_<0||q<0))return}let ke=computePasteCells(W,_,q,{target:oe,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),Re=e.getColumnModel(),ve=ke.map(ze=>{let Ye=be(ze.row),Ze=me(ze.column);return Ye===null||!Ze||!qe(Ye,Ze)?null:{rowKey:Ye,columnId:Ze,value:e.pastedCellValue(Ye,Ze,ze.text,coercePastedValue(ze.text,Re.getEditorDataType(Ze)))}}).filter(ze=>ze!==null);e.notifyClipboardGesture("paste",ve.length,()=>ve.length===0?false:(c.applyEdits(ve,fillText(J.editPasteUndo,{count:ve.length}),"paste"),true));},[c,e,Ee,be,me,qe,J]),Xe=useCallback(async s=>{let m="";try{m=await navigator.clipboard.readText();}catch{return}Ve(m,s);},[Ve]),Ke=useCallback(()=>{if(!e||typeof document>"u")return false;let s=document.querySelector(`[data-grid-id="${cssEscape(e.gridId)}"]`);if(!s)return false;let m=document.createElement("textarea");m.className="kanuni-datagrid-paste-catcher",m.setAttribute("aria-hidden","true"),m.tabIndex=-1,Object.assign(m.style,{position:"fixed",left:"-10000px",top:"0",width:"1px",height:"1px",opacity:"0"}),s.appendChild(m);let T=false,W=_=>{T||(T=true,m.removeEventListener("paste",oe),m.remove(),ge(),Ve(_));},oe=_=>{_.preventDefault(),W(_.clipboardData?.getData("text/plain")??"");};return m.addEventListener("paste",oe),m.focus({preventScroll:true}),setTimeout(()=>W(m.value),300),true},[e,ge,Ve]),[st,i]=useState(null),O=useCallback((s,m)=>c?(i(null),c.beginRowEdit(s,m)):false,[c]),Q=useCallback(async()=>{if(!c||!c.getRowSession())return false;let m=e?.getVisualColumnIds()??[],T=await c.saveRowEdit(m);return i(T.saved?null:T.error??null),T.saved&&ge(),T.saved},[c,e,ge]),z=useCallback(()=>{c&&(i(null),c.cancelRowEdit(),ge());},[c,ge]);Dt.current=z,useEffect(()=>{if(!(!e||!c))return e.setEditingDelegate({startEditingCell:(s,m)=>(e.scrollToCell(s,m),c.beginEdit(s,m)),stopEditing:async s=>{if(c.isEditingRow())return s?(z(),true):Q();if(!c.getSession())return false;if(s)return c.cancelEdit(),ge(),true;let m=c.commitEdit();return m&&ge(),m},getEditingCells:()=>{let s=c.getRowSession();if(s)return e.getVisualColumnIds().filter(T=>!isChromeColumn(T)&&c.canUpdate(s.rowKey,T)).map(T=>({rowKey:s.rowKey,columnId:T}));let m=c.getSession();return m?[{rowKey:m.rowKey,columnId:m.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,c,Q,z,ge]);let ne=useCallback(s=>{if(!c||!e)return false;let m=bo(s),T=(s.ctrlKey||s.metaKey)&&!m;if(M&&T&&(s.key==="z"||s.key==="Z"))return s.preventDefault(),s.shiftKey?c.redo():c.undo(),true;if(M&&T&&(s.key==="y"||s.key==="Y"))return s.preventDefault(),c.redo(),true;if(V&&T&&(s.key==="v"||s.key==="V"))return typeof window<"u"&&window.isSecureContext===false&&Ke()||(s.preventDefault(),Xe()),true;if(V&&T&&(s.key==="x"||s.key==="X"))return s.preventDefault(),Pt(),true;if(T&&(s.key==="c"||s.key==="C"))return ot()?(s.stopPropagation(),true):false;if(c.isEditingRow()){if(s.key==="Enter")return s.preventDefault(),Q(),true;if(s.key==="Escape")return s.preventDefault(),z(),true}if(s.key==="Escape"&&c.getSession())return s.preventDefault(),d(),true;if(s.key==="Escape"&&!T&&!c.getSession()){let _=e.getFocus();if(_&&ct(_.rowKey,_.columnId))return s.preventDefault(),true}if(s.key==="Enter"&&ee.current.editKeys?.enter===true&&!T&&!c.getSession()&&!c.isEditingRow()){let _=e.getFocus();if(_&&!isChromeColumn(_.columnId)&&c.canUpdate(_.rowKey,_.columnId)){let q;if(isRowEditMode(c.getMode())?q=B(_.rowKey,_.columnId):(e.scrollToCell(_.rowKey,_.columnId),q=c.beginEdit(_.rowKey,_.columnId)),q)return s.preventDefault(),s.stopPropagation(),true}}if(s.key==="Tab"&&ee.current.focusCellOnTab!==false&&!c.getSession()&&e.getFocus()&&(I(s.shiftKey?-1:1,{open:ee.current.keepEditingOnTab===true,cycle:ee.current.focusCellOnCycle!==false})||s.shiftKey&&ee.current.appendOnTab===true))return s.preventDefault(),true;if(V&&s.shiftKey&&!s.altKey&&!c.getSession()&&RANGE_KEY_DIRECTIONS[s.key]){let _=e.getFocus(),q=e.getVisualColumnIds(),ke=q.flatMap((ze,Ye)=>isChromeColumn(ze)?[]:[Ye]),Re=_?e.getRowIndex(_.rowKey):-1,ve=_?q.indexOf(_.columnId):-1;if(Re>=0&&ve>=0&&ke.length>0){s.preventDefault(),s.stopPropagation();let ze=e.getRows(),Ye=extendRangeByKey(Ee.getRange(),{row:Re,column:ve},RANGE_KEY_DIRECTIONS[s.key],T,{rows:ze.length,firstColumn:ke[0],lastColumn:ke[ke.length-1]});Ee.getRange()||Ee.start(Ye.startRow,Ye.startColumn),Ee.extend(Ye.endRow,Ye.endColumn),e.notifyViewStateChanged();let Ze=ze[Ye.endRow]?.key;return Ze!==void 0&&e.scrollToCell(Ze,q[Ye.endColumn]),true}}if(V&&ee.current.fillKeys!==false&&T&&!s.shiftKey&&!s.altKey&&!c.getSession()&&(s.key==="d"||s.key==="D"||s.key==="r"||s.key==="R")){let _=e.getFocus(),q=e.getVisualColumnIds(),ke=q.findIndex(Ze=>!isChromeColumn(Ze)),Re=_?e.getRowIndex(_.rowKey):-1,ve=_?q.indexOf(_.columnId):-1,ze=Ee.getRange()??(Re>=0&&ve>=0?{startRow:Re,startColumn:ve,endRow:Re,endColumn:ve}:null),Ye=ze?keyboardFill(ze,s.key.toLowerCase()==="d"?"down":"right",Math.max(0,ke)):null;if(Ye)return s.preventDefault(),s.stopPropagation(),lt(Ye.source,Ye.target),true}!T&&!s.shiftKey&&!c.getSession()&&Zu.has(s.key)&&Ee.clear();let W=ee.current.insertKey;if(s.key==="Insert"&&(W===true||W==="above"||W==="below")&&!T&&!c.getSession()){let _=e.getFocus();if(_){if(s.preventDefault(),c.canAdd())if(W==="below"){let q=e.getRows(),ke=q.findIndex(ve=>ve.key===_.rowKey),Re;for(let ve=ke+1;ke>=0&&ve<q.length&&Re===void 0;ve++)q[ve]?.kind==="data"&&(Re=q[ve].key);Re!==void 0?Pe({},Re):Pe({},void 0,{position:"last"});}else Pe({},_.rowKey);return true}}if(s.key==="Delete"&&T&&!s.shiftKey&&ee.current.deleteKey===true&&!c.getSession()){let _=e.getFocus();if(_)return s.preventDefault(),Te(_.rowKey,_.columnId),true}if(s.key==="ArrowDown"&&ee.current.appendOnArrowDown===true&&!T&&!s.shiftKey&&!c.getSession()){let _=e.getFocus(),q=e.getRows(),ke=q.length>0?q[q.length-1]:void 0;if(_&&ke&&ke.key===_.rowKey&&c.canAdd())return s.preventDefault(),s.stopPropagation(),Pe({}),true}if(s.key==="F2"&&ee.current.editKeys?.f2!==false&&!T&&!s.shiftKey){let _=e.getFocus();if(_)return s.preventDefault(),isRowEditMode(c.getMode())?(B(_.rowKey,_.columnId),true):(e.scrollToCell(_.rowKey,_.columnId),c.beginEdit(_.rowKey,_.columnId),true)}if(s.key===" "&&ee.current.editKeys?.space===true&&!T&&!s.altKey&&!s.shiftKey&&!c.getSession()){let _=e.getFocus();if(_&&e.getColumnModel().getDef(_.columnId)?.lookup){if(isRowEditMode(c.getMode()))return B(_.rowKey,_.columnId)&&s.preventDefault(),true;if(e.scrollToCell(_.rowKey,_.columnId),c.beginEdit(_.rowKey,_.columnId))return s.preventDefault(),true}}return (ee.current.editKeys?.typing??ee.current.editOnKeyPress)!==false&&!T&&(!s.altKey||m)&&s.key.length===1&&s.key!==" "&&!c.getSession()&&te(s.key)?(s.preventDefault(),true):false},[c,e,V,M,Xe,Pt,ot,te,B,I,Pe,Q,z,lt,d,ct,Te,Ke]);return {engine:c,range:Ee,version:de,api:Me,beginEdit:Be,beginRowEdit:O,saveRowEdit:Q,cancelRowEdit:z,rowSaveError:st,addRow:Pe,commitCellEditor:tt,commitCustomEditor:St,suspendBlurCommit:We,blurCommitSuspended:Gt,keyContext:pt,doubleClickEdits:R?.doubleClick!==false,editAdjacentCell:I,editFocusedCellWith:te,cancelCellEdit:d,focusScroller:ge,deleteRow:ae,saveChanges:nt,cancelChanges:Mt,selectionStats:Nt,handleKeyDown:ne,cut:Pt,copySelection:ot,paste:Xe,saveError:pe,clearSaveError:Qe,pendingDelete:fe,resolveDelete:Oe,fillPreview:se,startFillDrag:Tt,moveFillDrag:Ot,endFillDrag:jt,isDraggingFill:K.current!==null}}var $l=createContext(""),Wl=createContext(()=>document.body),dc=typeof window<"u"?useLayoutEffect:useEffect;function ya({theme:e,density:t,palette:n,portalContainer:o,children:l}){let a=useMemo(()=>themeClassName(e,t,n),[e,t,n]),u=useRef(o);dc(()=>{u.current=o;},[o]);let p=useMemo(()=>()=>portalTarget(u.current),[]);return jsx($l.Provider,{value:a,children:jsx(Wl.Provider,{value:p,children:l})})}function zt(){return useContext(Wl)}function Ft(){return useContext($l)}var Ra=8,Ul=new Map,fc=120,mc=26,zl=44;function gc(){return typeof window<"u"&&!!window.matchMedia?.("(pointer: coarse)").matches}var Yl=4;function Co(e,t,n,o,l="startsWith",a="case"){let u=foldMatchText(t.trim(),a);if(u==="")return null;let p=[],f=n==="contains",w=l==="contains";for(let y=0;y<e.length;y++){let h=e[y];if(f?h.includes(u):h.startsWith(u))p.push(y);else if(o){let L=o[y];(w?L.includes(u):L.startsWith(u))&&p.push(y);}}return p}function wc(e,t,n){let o=e.map(a=>foldText(a.label)),l=Co(o,t,n);return l===null?e:l.map(a=>e[a])}function ko(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",matchFold:e.matchFold??"case",openOnEdit:e.openOnEdit??false,restrictInput:e.restrictInput??false,typeAhead:e.typeAhead??false,listResizable:e.listResizable??false,listColumns:e.listColumns,dropButton:e.dropButton??false}:{}}function To(e,t,n){if(!e||!e.linkedColumns&&!e.map)return null;let o={[t]:n.value},l=e.linkedColumns;return l&&(o[l.code]=n.value,o[l.name]=n.label,l.id&&(o[l.id]=n.id)),e.map&&Object.assign(o,e.map(n)),o}function Mn({options:e,value:t,matchMode:n="startsWith",codeMatchMode:o="startsWith",matchFold:l="case",linked:a=false,allowCustom:u=false,openOnEdit:p=false,seeded:f=false,restrictInput:w=false,typeAhead:y=false,listResizable:h=false,listColumns:L,dropButton:S=false,autoCompleteSingle:G=true,onNoMatch:v="keep-open",onPick:F,invalid:N,disabled:x=false,autoFocus:P=true,testId:A,columnId:j,ariaLabel:Y,onChange:V,onCommit:M,commitOnPick:$=true,onCancel:C,onTab:g,onBlurCommit:k,onPickerOpen:R,suspendBlurCommit:X}){let re=Ne(),H=Ft(),D=zt(),J=useRef(null),de=useRef(null),Fe=p&&P,Le=w&&!u,[le,Ee]=useState(()=>{if(!(Fe&&f))return null;let i=t==null?"":String(t);if(Le&&i.trim()!==""){let O=e.map(z=>foldMatchText(z.label,l)),Q=a?e.map(z=>foldMatchText(z.value==null?"":String(z.value),l)):null;if(Co(O,i,n,Q,o,l)?.length===0)return ""}return i}),[K,se]=useState(Fe),[ie,ee]=useState(()=>Fe&&!(G&&!u)&&!f?e.findIndex(i=>Object.is(i.value,t)):0),[Se,c]=useState(0),[De,Ae]=useState(null),Me=j??A??"",[it,Ue]=useState(()=>h?Ul.get(Me)??null:null),[ue,be]=useState(false),[me]=useState(()=>gc()?zl:mc),Be=L&&L.length>0?me:0,Pe=L?.map(i=>i.width!==void 0?`${i.width}px`:"minmax(0, 1fr)").join(" "),ae=G&&!u,Te=y&&!u,[ge,I]=useState(null),B=ge!==null&&ge.for===(le??"")?ge:null,te=useMemo(()=>e.map(i=>foldMatchText(i.label,l)),[e,l]),pe=useMemo(()=>a?e.map(i=>foldMatchText(i.value==null?"":String(i.value),l)):null,[e,a,l]),ye=useMemo(()=>{if(a)return t==null?"":String(t);let i=e.find(O=>O.value===t);return i?i.label:t==null||t===""?"":String(t)},[e,t,a]),fe=useMemo(()=>le===null?null:Co(te,le,n,pe,o,l),[te,pe,le,n,o,l]),Ce=fe===null?e.length:fe.length,Oe=i=>e[fe===null?i:fe[i]],Je=B?.label??le??ye,Z=i=>{let O=foldMatchText(i.trim(),l);if(O==="")return -1;if(pe){let Q=pe.indexOf(O);if(Q>=0)return Q}return te.indexOf(O)},ct=i=>{let O=Co(te,i,n,pe,o,l);if(!O||O.length===0)return {at:-1,prefix:false};let Q=foldMatchText(i,l),z=Z(i);if(z>=0&&O.includes(z))return {at:z,prefix:te[z].startsWith(Q)};let ne=O.find(s=>te[s].startsWith(Q));return ne!==void 0?{at:ne,prefix:true}:{at:O[0],prefix:false}},Dt=i=>{if(!Te||i.trim()==="")return I(null);let{at:O,prefix:Q}=ct(i),z=O>=0?e[O].label:"";I(Q&&z.length>i.length?{for:i,label:z}:null);};useLayoutEffect(()=>{let i=J.current;B&&i&&document.activeElement===i&&i.setSelectionRange(B.for.length,B.label.length);},[B]),useEffect(()=>{if(le===null){ee(O=>O<Ce?O:ae?0:-1);return}if(Te&&le.trim()!==""){let{at:O}=ct(le);ee(O<0||fe===null?-1:fe.indexOf(O));return}if(ae){ee(0);return}let i=Z(le);ee(i<0||fe===null?i:fe.indexOf(i));},[fe,Ce]),useLayoutEffect(()=>{if(P)if(J.current?.focus({preventScroll:true}),Fe&&f){let i=J.current?.value.length??0;J.current?.setSelectionRange(i,i),le&&Dt(le);}else J.current?.select();},[]);let d=()=>{let i=J.current;if(!i)return;let O=i.getBoundingClientRect(),Q=L?L.reduce((s,m)=>s+(m.width??120),0)+2:0,z=it?.width??Math.max(O.width,a?280:0,Q),ne=placeAnchoredLayer({anchor:{left:O.left,top:O.top,bottom:O.bottom},width:z,height:it?.height??Math.min(Math.max(Ce,1),Ra)*me+Be,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});Ae({left:ne.left,top:ne.top,width:z,flipped:ne.flipped});};useLayoutEffect(()=>{K&&d();},[K,Ce,it]),useEffect(()=>{if(!K)return;let i=()=>d();return window.addEventListener("scroll",i,true),window.addEventListener("resize",i),()=>{window.removeEventListener("scroll",i,true),window.removeEventListener("resize",i);}},[K]),useLayoutEffect(()=>{let i=de.current;if(!i||!K||Ce===0||ie<0)return;let O=Be+ie*me,Q=O+me,z=i.scrollTop;O-Be<z?z=O-Be:Q>z+i.clientHeight&&(z=Q-i.clientHeight),z!==i.scrollTop&&(i.scrollTop=z,c(z));},[ie,K,Ce]);let tt=it?.height??Math.min(Math.max(Ce,1),Ra)*me+Be,St=i=>{if(!De)return;i.preventDefault(),i.stopPropagation();let O=i.currentTarget;O.setPointerCapture?.(i.pointerId);let Q={x:i.clientX,y:i.clientY,width:De.width,height:tt},z=De.flipped,ne=m=>{let T=(m.clientY-Q.y)*(z?-1:1),W={width:Math.round(Math.min(window.innerWidth-16,Math.max(fc,Q.width+m.clientX-Q.x))),height:Math.round(Math.min(window.innerHeight-16,Math.max(me*3,Q.height+T)))};Ul.set(Me,W),Ue(W);},s=()=>{O.removeEventListener("pointermove",ne),O.removeEventListener("pointerup",s),O.removeEventListener("pointercancel",s);};O.addEventListener("pointermove",ne),O.addEventListener("pointerup",s),O.addEventListener("pointercancel",s);},We=Math.max(0,Math.floor(Se/me)-Yl),Gt=Math.min(Ce,Math.ceil((Se+tt)/me)+Yl),pt=i=>{if(F){if(!F(i))return}else V(i.value);Ee(null),se(false),be(false),$&&M();},nt=useRef(false),Qe=()=>{if(!R||nt.current)return;nt.current=true,se(false);let i=()=>J.current;X?.(true,i);let O=le??"",Q=z=>{nt.current=false,X?.(false,i);let ne=J.current;ne?.isConnected&&(z?pt(z):ne.focus({preventScroll:true}));};Promise.resolve().then(()=>R(O)).then(z=>Q(z??null),z=>{console.error("[KanuniLabs DataGrid] lookup.onPickerOpen failed; the cell keeps its value.",z),Q(null);});},Mt=()=>{K||(se(true),c(0),de.current&&(de.current.scrollTop=0),!ae&&le===null&&ee(e.findIndex(i=>Object.is(i.value,t))));},Nt=()=>{Mt(),be(true);},qe=()=>{if(le===null)return true;let i=le.trim();if(i==="")return u&&V(""),true;if(u){let z=Z(i);return V(z>=0?e[z].value:i),true}if(Te){if(Ce===0)return false;let z=Oe(ie>=0&&ie<Ce?ie:0);return F?F(z):(V(z.value),true)}if(!G)return false;let O=foldMatchText(i,l),Q=te.indexOf(O);return Q>=0?(V(e[Q].value),true):Ce===1?(V(Oe(0).value),true):false},Tt=useRef(false),Ot=useRef(""),[lt,jt]=useState(false),rt=useRef(null);useEffect(()=>()=>{rt.current&&clearTimeout(rt.current);},[]);let ot=()=>{jt(true),rt.current&&clearTimeout(rt.current),rt.current=setTimeout(()=>jt(false),260);},Pt=i=>i.trim()===""?true:Co(te,i,n,pe,o,l)?.length!==0,Ve=useRef(()=>{});Ve.current=i=>{if(!Le||Tt.current||i.isComposing||i.inputType.startsWith("delete")||i.inputType.startsWith("history"))return;let O=J.current;if(!O)return;let Q=i.data??i.dataTransfer?.getData("text/plain")??"",z=O.selectionStart??O.value.length,ne=O.selectionEnd??z,s=O.value.slice(0,z)+Q.replace(/[\r\n]+/g," ")+O.value.slice(ne);Pt(s)||(i.preventDefault(),ot());},useEffect(()=>{let i=J.current;if(!i)return;let O=Q=>Ve.current(Q);return i.addEventListener("beforeinput",O),()=>i.removeEventListener("beforeinput",O)},[]);let Xe=i=>{if(!(i.nativeEvent.isComposing||i.keyCode===229)&&!on(i)){if(R&&i.key==="Enter"&&(i.ctrlKey||i.metaKey)&&!i.altKey){i.preventDefault(),i.stopPropagation(),Qe();return}if(B&&(i.key==="ArrowLeft"||i.key==="ArrowRight"||i.key==="Home"||i.key==="End")&&Ee(B.label),i.key==="F4"||i.altKey&&(i.key==="ArrowDown"||i.key==="ArrowUp")){i.preventDefault(),i.stopPropagation(),i.key==="ArrowUp"||i.key==="F4"&&K?se(false):Mt();return}if(i.key==="ArrowDown"||i.key==="ArrowUp"){if(i.preventDefault(),i.stopPropagation(),!K){Mt();return}if(Ce===0)return;ee(O=>O<0?i.key==="ArrowDown"?0:Ce-1:((i.key==="ArrowDown"?O+1:O-1)+Ce)%Ce);return}if(i.key==="PageDown"||i.key==="PageUp"){if(!K||Ce===0)return;i.preventDefault(),i.stopPropagation();let O=Ra*(i.key==="PageDown"?1:-1);ee(Q=>Math.min(Ce-1,Math.max(0,Q+O)));return}if(i.key==="Home"||i.key==="End"){if(!K||Ce===0)return;i.preventDefault(),i.stopPropagation(),ee(i.key==="Home"?0:Ce-1);return}if(i.key==="Enter"){if(i.preventDefault(),i.stopPropagation(),K&&ie>=0&&ie<Ce){pt(Oe(ie));return}qe()?(Ee(null),M()):Nt();return}if(i.key==="Escape"){if(i.preventDefault(),i.stopPropagation(),K){se(false);return}Ee(null),C();return}if(i.key==="Tab"){if(!qe()){if(v!=="revert"){i.preventDefault(),i.stopPropagation(),Nt();return}Ee(null);}se(false),g&&(i.preventDefault(),i.stopPropagation(),g(i.shiftKey));return}rn(i)&&i.stopPropagation();}},Ke=[];for(let i=We;i<Gt;i++){let O=Oe(i);Ke.push(jsx("div",{role:"option","aria-selected":i===ie,"aria-posinset":i+1,"aria-setsize":Ce,className:`kanuni-datagrid-lookup-item${i===ie?" kanuni-datagrid-lookup-item--active":""}${Pe?" kanuni-datagrid-lookup-item--table":""}`,style:{position:"absolute",top:i*me,height:me,left:0,right:0,gridTemplateColumns:Pe},onMouseEnter:()=>ee(i),onClick:()=>pt(O),children:L&&L.length>0?L.map(Q=>{let z=O[Q.key];return jsx("span",{className:`kanuni-datagrid-lookup-col${Q.align==="end"?" kanuni-datagrid-lookup-col--end":""}`,children:z==null?"":String(z)},Q.key)}):a?jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-lookup-code",children:O.value==null?"":String(O.value)}),jsx("span",{className:"kanuni-datagrid-lookup-name",children:O.label})]}):O.label},String(O.value)));}let st=K&&De?createPortal(jsxs(Fragment,{children:[jsx("div",{ref:de,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${me===zl?" kanuni-datagrid-lookup-popup--touch":""}${H}`,"data-kanuni-portal":"popup",role:"listbox","aria-label":Y,"data-testid":A?`${A}-list`:void 0,style:{left:De.left,top:De.top,width:De.width,height:tt},onScroll:i=>c(i.currentTarget.scrollTop),onMouseDown:i=>i.preventDefault(),children:Ce===0?jsx("div",{className:"kanuni-datagrid-lookup-empty",children:re.editNoMatch}):jsxs(Fragment,{children:[Pe&&jsx("div",{className:"kanuni-datagrid-lookup-head",role:"presentation",style:{height:me,gridTemplateColumns:Pe},children:L.map(i=>jsx("span",{className:`kanuni-datagrid-lookup-col${i.align==="end"?" kanuni-datagrid-lookup-col--end":""}`,children:i.header},i.key))}),jsx("div",{style:{position:"relative",height:Ce*me},children:Ke})]})}),h&&jsx("span",{className:`kanuni-datagrid-detached kanuni-datagrid-lookup-grip${De.flipped?" kanuni-datagrid-lookup-grip--top":""}${H}`,"data-kanuni-portal":"popup","data-testid":A?`${A}-grip`:void 0,"aria-hidden":"true",style:{left:De.left+De.width-14,top:De.flipped?De.top:De.top+tt-14},onMouseDown:i=>i.preventDefault(),onPointerDown:St})]}),D()):null;return jsxs(Fragment,{children:[jsx("input",{ref:J,type:"text",role:"combobox","aria-expanded":K,"aria-autocomplete":"list","aria-label":Y,"data-testid":A,"data-column-id":j,disabled:x,className:`kanuni-datagrid-editor${N?" kanuni-datagrid-editor--invalid":""}${lt?" kanuni-datagrid-editor--refused":""}${R||S?" kanuni-datagrid-editor--with-picker":""}`,value:Je,onCompositionStart:()=>{Tt.current=true,Ot.current=Je;},onCompositionEnd:i=>{if(Tt.current=false,Dt(i.currentTarget.value),!Le)return;let O=i.currentTarget.value;Pt(O)||(Ee(Ot.current),ot());},onChange:i=>{let O=i.nativeEvent;if(Le&&!Tt.current&&!O.isComposing&&!(O.inputType??"").startsWith("delete")&&!Pt(i.target.value)){ot();return}Ee(i.target.value),!Tt.current&&!O.isComposing&&!(O.inputType??"").startsWith("delete")?Dt(i.target.value):I(null),be(false),c(0),de.current&&(de.current.scrollTop=0),se(true);},onFocus:Mt,onClick:Mt,onKeyDown:Xe,onBlur:i=>{if(nt.current)return;le!==null&&!qe()&&Ee(null),se(false),be(false);let O=i.relatedTarget;O instanceof Element&&O.closest(`${Bt}, .kanuni-datagrid-detached`)||k?.();}}),S&&jsx("button",{type:"button",className:"kanuni-datagrid-lookup-drop","data-testid":A?`${A}-drop`:void 0,"aria-label":Y,"aria-expanded":K,tabIndex:-1,disabled:x,onMouseDown:i=>i.preventDefault(),onClick:()=>{K?se(false):Mt(),J.current?.focus({preventScroll:true});},children:"\u25BE"}),R&&jsx("button",{type:"button",className:"kanuni-datagrid-lookup-picker","data-testid":"dg-lookup-picker","aria-label":re.editLookupPicker,title:`${re.editLookupPicker} (Ctrl+Enter)`,tabIndex:-1,disabled:x,onMouseDown:i=>i.preventDefault(),onClick:Qe,children:"\u2026"}),jsx("span",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite",children:!u&&(ue||le!==null&&le.trim()!==""&&Ce===0)?re.editNoMatch:""}),st]})}function kc(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=ns(e);return [...t.slice(n),...t.slice(0,n)]}function ns(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function Tc(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 vc(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Nn({value:e,format:t=DEFAULT_DATE_FORMAT,invalid:n,disabled:o,autoFocus:l=true,testId:a,columnId:u,ariaLabel:p,onChange:f,onCommit:w,onCancel:y,onTab:h,onBlurCommit:L,seedDigits:S}){let G=Ne(),v=Ft(),F=zt(),N=useMemo(()=>Tc(G),[G]),x=useMemo(()=>kc(G),[G]),P=useRef(null),[A,j]=useState(()=>S!==void 0?dateDigits(S,t):null),[Y,V]=useState(false),[M,$]=useState(null),C=useMemo(()=>toDate(e),[e]),g=A===null?formatDateValue(e,t):maskDate(A,t),k=A===null?null:parseDateValue(g,t),R=A!==null&&A.length===dateDigitCount(t)&&k===null,[X,re]=useState(()=>C??new Date);useEffect(()=>{Y&&re(k??C??new Date);},[Y]),useLayoutEffect(()=>{if(l)if(P.current?.focus({preventScroll:true}),S!==void 0){let K=P.current?.value.length??0;P.current?.setSelectionRange(K,K);}else P.current?.select();},[]);let H=useRef(null),D=useCallback(()=>{let K=P.current;if(!K)return;let se=K.getBoundingClientRect(),ie=placeAnchoredLayer({anchor:{left:se.left,top:se.top,bottom:se.bottom},width:H.current?.offsetWidth??0,height:H.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});$({left:ie.left,top:ie.top});},[]),J=useCallback(K=>{H.current=K,K&&D();},[D]);useLayoutEffect(()=>{Y&&D();},[Y,D]),useEffect(()=>{if(!Y)return;let K=()=>D();return window.addEventListener("scroll",K,true),window.addEventListener("resize",K),()=>{window.removeEventListener("scroll",K,true),window.removeEventListener("resize",K);}},[Y,D]);let de=useCallback(K=>{if(K===null){f(null);return}f(e instanceof Date?K:toIsoDate(K));},[f,e]),Fe=K=>{j(null),V(false),de(K),P.current?.focus({preventScroll:true});},Le=useCallback(()=>{if(A!==null){if(A.length===0){de(null),j(null);return}k&&de(k),j(null);}},[A,k,de]),le=K=>{if(!on(K)){if(K.key==="Escape"){if(K.preventDefault(),K.stopPropagation(),Y){V(false);return}j(null),y();return}if(Y){let se=K.key==="ArrowLeft"?-1:K.key==="ArrowRight"?1:K.key==="ArrowUp"?-7:K.key==="ArrowDown"?7:0;if(se!==0){K.preventDefault(),K.stopPropagation();let ie=k??C??new Date,ee=new Date(ie.getFullYear(),ie.getMonth(),ie.getDate()+se);j(dateDigits(formatDateValue(ee,t),t)),re(ee);return}if(K.key==="Enter"){K.preventDefault(),K.stopPropagation(),V(false),k&&Fe(k);return}}if(K.key==="Enter"){K.preventDefault(),K.stopPropagation(),Le(),w();return}if(K.key==="Tab"){Le(),V(false),h&&(K.preventDefault(),K.stopPropagation(),h(K.shiftKey));return}if(K.key.length===1&&!K.ctrlKey&&!K.metaKey&&!/\d/.test(K.key)){K.preventDefault();return}rn(K)&&K.stopPropagation();}},Ee=Y&&M?createPortal(jsxs("div",{ref:J,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${v}`,"data-kanuni-portal":"popup",style:{left:M.left,top:M.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":p?`${p} ${G.dateCalendar}`:G.dateCalendar,onMouseDown:K=>K.preventDefault(),children:[jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsx("button",{type:"button","aria-label":G.datePreviousMonth,"data-testid":"dg-date-prev",onClick:()=>re(new Date(X.getFullYear(),X.getMonth()-1,1)),children:"\u2039"}),jsxs("span",{"data-testid":"dg-date-title",children:[N[X.getMonth()]," ",X.getFullYear()]}),jsx("button",{type:"button","aria-label":G.dateNextMonth,"data-testid":"dg-date-next",onClick:()=>re(new Date(X.getFullYear(),X.getMonth()+1,1)),children:"\u203A"})]}),jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[x.map(K=>jsx("span",{className:"kanuni-datagrid-date-weekday",role:"columnheader",children:K},K)),(()=>{let se=(new Date(X.getFullYear(),X.getMonth(),1).getDay()-ns(G)+7)%7,ie=daysInMonth(X.getFullYear(),X.getMonth()+1),ee=[];for(let Se=0;Se<42;Se++){let c=Se-se+1,De=new Date(X.getFullYear(),X.getMonth(),c),Ae=c<1||c>ie,Me=vc(De,k??C);ee.push(jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${Ae?" kanuni-datagrid-date-day--outside":""}${Me?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":Me,"data-testid":"dg-date-day","data-date":toIsoDate(De),onClick:()=>Fe(De),children:De.getDate()},Se));}return ee})()]})]}),F()):null;return jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsx("input",{ref:P,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":p,"aria-invalid":R||n?true:void 0,"data-testid":a,"data-column-id":u,disabled:o,className:`kanuni-datagrid-editor${R||n?" kanuni-datagrid-editor--invalid":""}`,value:g,onChange:K=>{let se=dateDigits(K.target.value,t);j(se);let ie=se.length===dateDigitCount(t)?parseDateValue(maskDate(se,t),t):null;ie&&de(ie);},onKeyDown:le,onBlur:K=>{if(Y)return;Le();let se=K.relatedTarget;se instanceof Element&&se.closest(`${Bt}, .kanuni-datagrid-detached`)||L?.();}}),jsx("button",{type:"button",className:"kanuni-datagrid-date-button","aria-label":p?`${p} \u2014 ${G.dateOpenCalendar}`:G.dateOpenCalendar,"aria-expanded":Y,"data-testid":"dg-date-open",disabled:o,tabIndex:-1,onMouseDown:K=>K.preventDefault(),onClick:()=>{V(K=>!K),P.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"})})}),Ee]})}function Ta(e){return {save:e.save,cancel:e.cancel,editTitle:e.formEditTitle,addTitle:e.formAddTitle,saving:e.editSaving,shortcut:e.formShortcut}}var Mc=Ta(getGridDictionary("en"));function Nc(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 as(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 Pc(e,t){if(t==="number"){if(e==="")return null;let n=Number(e);return Number.isNaN(n)?e:n}return e}function va({rowKey:e,fields:t,getValue:n,errors:o,lookups:l,customEditors:a=false,row:u,saving:p,saveError:f,isNew:w,dark:y=false,popup:h=false,inline:L=false,onNaturalHeight:S,labels:G,onChange:v,setRowValues:F,onSave:N,onCancel:x}){let P=Ne(),A=Ft(),j=useMemo(()=>({...Ta(P),...G}),[P,G]),Y=useRef(null),V=Object.keys(o)[0]??null,M=useCallback(R=>{if(Y.current=R,!R)return;let X=R.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");if(X?.focus(),X instanceof HTMLInputElement&&X.type==="text"&&X.select(),S){let re=R.querySelector(".kanuni-datagrid-edit-form-fields");re&&S(R.clientHeight-re.clientHeight+re.scrollHeight);}},[S]);useEffect(()=>{if(!V||!Y.current)return;Y.current.querySelector(`[data-field-id="${cssEscape(V)}"] input, [data-field-id="${cssEscape(V)}"] select`)?.focus();},[V]);let $=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),C=j.shortcut.replace("{key}",$?"\u2318":"Ctrl"),g=useCallback(R=>{if(R.key==="Escape"){R.preventDefault(),R.stopPropagation(),x();return}if(R.key==="Enter"&&(R.ctrlKey||R.metaKey)){R.preventDefault(),R.stopPropagation(),N();return}if(R.key==="Enter"&&!(R.target instanceof HTMLButtonElement)){R.preventDefault();return}if(R.key!=="Tab"||!h||!Y.current)return;let X=Array.from(Y.current.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(X.length===0)return;let re=X[0],H=X[X.length-1];!R.shiftKey&&document.activeElement===H?(R.preventDefault(),re.focus()):R.shiftKey&&document.activeElement===re&&(R.preventDefault(),H.focus());},[x,N,h]),k=jsxs("div",{ref:M,className:`kanuni-datagrid-edit-form${L?" 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?j.addTitle:j.editTitle,onKeyDown:g,children:[jsx("div",{className:"kanuni-datagrid-edit-form-header",children:jsx("strong",{children:w?j.addTitle:j.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(R=>{let X=n(R.columnId),re=o[R.columnId],H=l?.[R.columnId],D=p||!R.editable,J=`dg-field-${String(e)}-${R.columnId}`;return jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":R.columnId,"data-invalid":re?"":void 0,htmlFor:J,children:[jsx("span",{className:"kanuni-datagrid-edit-form-label",children:R.label}),a&&R.def?.renderEditor?R.def.renderEditor({value:X,rawValue:R.def.field?u[R.def.field]:void 0,row:u,columnId:R.columnId,rowKey:e,error:re??null,invalid:!!re,errorId:re?`${J}-error`:void 0,ariaLabel:R.label,setValue:de=>v(R.columnId,de),commit:()=>(N(),true),cancel:x,suspendBlurCommit:()=>{},commitOnBlur:()=>{},api:{setRowValues:de=>F?.(de)??false}}):H!==void 0?jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsx(Mn,{options:H??[],value:X,...ko(R.def?.lookup),onPick:R.def?.lookup?.linkedColumns||R.def?.lookup?.map?de=>F?.(To(R.def.lookup,R.columnId,de))??false:void 0,invalid:!!re,testId:J,ariaLabel:R.label,onChange:de=>v(R.columnId,de),onCommit:()=>{},onCancel:x})}):R.def?.lookup?jsx("input",{id:J,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:lookupLabel(R.def,X)??as(X,R.dataType)}):R.dataType==="date"?jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsx(Nn,{value:X,format:R.def?.dateFormat,invalid:!!re,disabled:D,autoFocus:false,testId:J,columnId:R.columnId,ariaLabel:R.label,onChange:de=>v(R.columnId,de),onCommit:()=>{},onCancel:x})}):_t(R.def)?jsx("input",{id:J,className:"kanuni-datagrid-edit-form-input",type:"text",inputMode:_t(R.def).decimals===0?"numeric":"decimal",disabled:D,"aria-invalid":re?true:void 0,value:X==null?"":String(X),onChange:de=>v(R.columnId,de.target.value)}):R.dataType==="boolean"?jsx("input",{id:J,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:D,checked:X===true,onChange:de=>v(R.columnId,de.target.checked)}):jsx("input",{id:J,className:"kanuni-datagrid-edit-form-input",type:Nc(R.dataType,X),disabled:D,"aria-invalid":re?true:void 0,value:as(X,R.dataType),onChange:de=>v(R.columnId,Pc(de.target.value,R.dataType))}),re&&jsx("span",{id:`${J}-error`,className:"kanuni-datagrid-edit-form-message",role:"alert",children:re})]},R.columnId)})}),jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:C}),jsx("button",{type:"button",onClick:x,disabled:p,"data-testid":"dg-form-cancel",children:j.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-edit-form-save",onClick:N,disabled:p,"data-testid":"dg-form-save",children:p?j.saving:j.save})]})]});return h?jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-edit-popup${y?" kanuni-datagrid-dark":""}${A}`,children:[jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:x}),k]}):k}function Ea({controller:e,engine:t,columnId:n,message:o,saving:l,lookupOptions:a,onSave:u,onCancel:p}){let f=e.getColumnModel(),w=f.getDef(n);if(a!==void 0){let G=w?.lookup,v=t.getRowSession()?.rowKey;return jsx(Mn,{options:a??[],value:t.rowEditValue(n),...ko(G),onPick:G?.linkedColumns||G?.map?F=>v!==void 0&&t.setRowValues(v,To(G,n,F)):void 0,invalid:!!o,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:F=>t.setRowEditValue(n,F),commitOnPick:false,onCommit:u,onCancel:p})}let y=f.getDataType(n);if(y==="date")return jsx(Nn,{value:t.rowEditValue(n),format:w?.dateFormat,invalid:!!o,disabled:l,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:G=>t.setRowEditValue(n,G),onCommit:u,onCancel:p});let h=_t(w),L=y==="number"&&!h,S=G=>{G.key==="Enter"?(G.preventDefault(),G.stopPropagation(),u()):G.key==="Escape"&&(G.preventDefault(),G.stopPropagation(),p());};return y==="boolean"?jsx("input",{className:"kanuni-datagrid-editor","data-testid":"dg-row-editor","data-column-id":n,"aria-label":w?.headerName??n,title:o??void 0,disabled:l,type:"checkbox",checked:t.rowEditValue(n)===true,onChange:G=>t.setRowEditValue(n,G.target.checked),onKeyDown:S}):jsx("input",{className:`kanuni-datagrid-editor${o?" kanuni-datagrid-editor--invalid":""}`,"data-testid":"dg-row-editor","data-column-id":n,"aria-label":w?.headerName??n,title:o??void 0,disabled:l,type:L?"number":"text",inputMode:h?h.decimals===0?"numeric":"decimal":void 0,value:String(t.rowEditValue(n)??""),onChange:G=>{let v=G.target.value;t.setRowEditValue(n,L?v===""?null:Number(v):v);},onKeyDown:S})}var bn=Symbol("lookupPending");function xa(e){return e instanceof Date?`d${e.getTime()}`:`${typeof e}:${String(e)}`}var cr=class{constructor(t){this.controller=t;}controller;lists=new WeakMap;shown=new Map;repaintQueued=false;effectiveRow=null;key(t,n,o){let l=xa(o);for(let a of t.dependsOn??[])l+=`${xa(this.controller.getColumnModel().getStoredValue(n,a))}`;return l}repaint(){this.repaintQueued||(this.repaintQueued=true,queueMicrotask(()=>{this.repaintQueued=false,this.controller.isDisposed()||this.controller.refreshCells();}));}items(t,n,o,l=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,o),p=a.get(u);if(p&&!l)return p.items??p.promise;let f={items:null,labels:null,promise:null},w=h=>{f.items=Array.isArray(h)?h:[],f.labels=null,f.promise=null;},y;try{y=t.items(n);}catch{y=[];}return a.set(u,f),Array.isArray(y)?(w(y),f.items):(f.promise=Promise.resolve(y).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,o,l,a){let u=t?.lookup;if(!u||typeof u.items!="function"||u.linkedColumns||o==null||o==="")return null;let p=this.effectiveRow?.(a)??l,f=this.items(u,p,a),w=`${xa(a)}${n}`;if(!Array.isArray(f)){let L=this.shown.get(w);return L&&Object.is(L.value,o)?L.label:bn}let y=this.lists.get(u).get(this.key(u,p,a));if(!y.labels){y.labels=new Map;for(let L of f)y.labels.set(L.value,L.label);}let h=y.labels.get(o);return h===void 0?(this.shown.delete(w),null):(this.shown.set(w,{value:o,label:h}),h)}},is=new WeakMap;function Eo(e){let t=is.get(e);return t||(t=new cr(e),is.set(e,t)),t}function ls(e,t){if(!e)return [];let n=e.getColumnLayout();return [...n.left,...n.center,...n.right].map(o=>o.state.id).filter(o=>!isChromeColumn(o)&&(t?.(o)??true))}function Ma({controller:e,editing:t,mode:n,active:o,rootRef:l,rowHeight:a,formLabels:u,formHeight:p,dark:f,rowLookups:w,customEditors:y=false,isFormColumn:h,batchBar:L=true,cardPopup:S=false}){let G=Ne(),{engine:v,version:F,beginRowEdit:N,saveRowEdit:x,cancelRowEdit:P,rowSaveError:A,saveChanges:j,cancelChanges:Y}=t,V=o&&isRowEditMode(n),M=v?.getRowSession()??null,$=V||M?.standalone||S?M:null,C=!!$&&(n==="popup"||!!$.standalone||S&&!V),g=useRef(h);g.current=h;let k=useMemo(()=>{if(!e||!$)return [];let ue=e.getColumnModel();return ls(e,g.current).map(be=>{let me=ue.getDef(be);return {columnId:be,label:me?.headerName??me?.field??be,dataType:ue.getEditorDataType(be),def:me,editable:v?.canUpdate($.rowKey,be)??true}})},[e,v,$]),R=n==="row"&&!C?$?.rowKey??null:null;useEffect(()=>{if(R===null)return;let ue=l.current;if(!ue)return;let be=ue.querySelectorAll('[data-testid="dg-row-editor"]');if(be.length===0)return;let me=e?.getFocus(),Pe=(me&&String(me.rowKey)===String(R)?ue.querySelector(`[data-testid="dg-row-editor"][data-column-id="${cssEscape(me.columnId)}"]`):null)??be[0],ae=v?er.get(v):void 0;v&&er.delete(v),Pe.focus({preventScroll:true}),Pe instanceof HTMLInputElement&&(ae!==void 0&&Pe.getAttribute("data-column-id")===ae?Pe.setSelectionRange(Pe.value.length,Pe.value.length):Pe.select());},[R]);let X=useCallback(ue=>V&&!C&&$?.rowKey===ue,[V,C,$]),re=useCallback((ue,be)=>{let me=e?.getColumnModel().getDef(ue.columnId);if(me?.renderCell&&ue.node.kind==="data")return me.renderCell({value:be,row:ue.node.data,node:ue.node,column:me});let Be=me?lookupLabel(me,be):null;if(Be!==null)return Be;if(e&&me?.lookup&&!me.valueFormatter&&ue.node.kind==="data"){let ae=Eo(e).label(me,ue.columnId,be,ue.node.data,ue.node.key);if(ae===bn)return jsx("span",{className:"kanuni-datagrid-lookup-pending","aria-busy":"true"});if(ae!==null)return ae}if(me?.valueFormatter&&ue.node.kind==="data")return me.valueFormatter(be,ue.node.data);if(me?.dateFormat&&me.dataType==="date")return formatDateValue(be,me.dateFormat);let Pe=numberCellText(me,be);return Pe!==null?Pe:be==null?"":String(be)},[e]),H=useCallback(ue=>{if(!(n!=="row"||!v||!e||ue.node.kind!=="data"||!X(ue.node.key)))return v.canUpdate(ue.node.key,ue.columnId)?jsx(Ea,{controller:e,engine:v,columnId:ue.columnId,message:$?.errors[ue.columnId]??null,saving:$?.saving??false,lookupOptions:w?.[ue.columnId],onSave:()=>{x();},onCancel:P}):re(ue,v.rowEditValue(ue.columnId))},[n,v,e,F,X,$,w,re,x,P]),D=useCallback(ue=>{if(!v||ue.node.kind!=="data")return;let be=v.changes.get(ue.node.key,ue.columnId);return be?re(ue,be.newValue):void 0},[v,F,re]),[J,de]=useState(null),Fe=J??p??DEFAULT_EDIT_FORM_HEIGHT,Le=useCallback(ue=>{ue>0&&de(be=>be!==null&&Math.abs(be-ue)<a?be:ue);},[a]);useEffect(()=>{$||de(null);},[$]);let le=(ue,be)=>$?jsx(va,{rowKey:ue,fields:k,getValue:me=>v?.rowEditValue(me),errors:$.errors,lookups:w,customEditors:y,row:v?.effectiveRow($.rowKey),saving:$.saving,saveError:A,isNew:$.isNew,dark:f,popup:C,inline:be,onNaturalHeight:be?Le:void 0,labels:u,onChange:(me,Be)=>v?.setRowEditValue(me,Be),setRowValues:me=>v?.setRowValues(ue,me)??false,onSave:()=>{x();},onCancel:P}):null,Ee=$&&C?le($.rowKey,false):null,K=useRef(le);K.current=le;let se=useCallback(ue=>K.current(ue,true),[]),ie=n==="form"&&!C?$?.rowKey??null:null,ee=$?.isNew??false,Se=useRef(null);useEffect(()=>{if(e){if(ie===null){if(Se.current!==e)return;Se.current=null,e.setEditFormRow(null);return}Se.current=e,e.setEditFormRow(ie,{height:Fe,atTop:ee});}},[e,ie,ee,Fe]),useEffect(()=>()=>{let ue=Se.current;Se.current=null,ue?.setEditFormRow(null);},[]);let c=V&&n==="row"&&!!$&&!C,De=L&&o&&n==="batch"&&(v?.hasChanges()??false),Ae=c||De?jsxs(Fragment,{children:[c&&jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-filter-active","data-testid":"dg-row-editing",children:$?.isNew?G.formAddTitle:fillText(G.editEditingRow,{row:String($?.rowKey)})}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-row",disabled:$?.saving,onClick:()=>{x();},children:$?.saving?G.editSaving:G.editSaveRow}),jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:P,children:G.cancel}),A&&jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:A})]}),De&&jsxs(Fragment,{children:[jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:v?.isSaving(),onClick:()=>{j();},children:fillText(G.editSaveCount,{n:v?.getChanges().length??0})}),jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:Y,children:G.cancel})]})]}):null,Me=useCallback(ue=>!V||!v||v.isEditingRow()?null:{id:"dg-edit-row",label:G.editRowMenu,onSelect:()=>N(ue)},[V,v,N,G,F]),it=useCallback(ue=>V?(N(ue),true):false,[V,N]),Ue=useCallback(ue=>{if(!v)return false;let be=v.getRowSession();return be?be.rowKey===ue:N(ue,{standalone:true})},[v,N]);return {rowModeActive:V,rowSession:$,isRowEditing:X,defaultContent:re,renderRowCell:H,renderPending:D,renderEditForm:n==="form"?se:void 0,popup:Ee,bar:Ae,rowSessionAttr:C?"popup":$&&n==="form"?"form":void 0,editRowMenuItem:Me,openRow:it,openCardEditor:Ue}}var xo=28,qc=10;function ps({options:e,lookup:t,value:n,ariaLabel:o,testId:l,invalid:a,autoFocus:u=true,onChange:p,onCommit:f,onCancel:w,onTab:y,onBlurCommit:h}){let L=zt(),S=Ft(),G=useRef(null),v=useRef(null),[F,N]=useState(0),[x,P]=useState(null),A=useMemo(()=>lookupSelectedValues(t,n),[t,n]),j=C=>A.some(g=>Object.is(g,C.value)),Y=Math.min(Math.max(e.length,1),qc)*xo;useLayoutEffect(()=>{let C=G.current;if(!C)return;u&&C.focus({preventScroll:true});let g=()=>{let k=C.getBoundingClientRect(),R=Math.max(k.width,200),X=placeAnchoredLayer({anchor:{left:k.left,top:k.top,bottom:k.bottom},width:R,height:Y,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});P({left:X.left,top:X.top,width:R});};return g(),window.addEventListener("scroll",g,true),window.addEventListener("resize",g),()=>{window.removeEventListener("scroll",g,true),window.removeEventListener("resize",g);}},[]),useLayoutEffect(()=>{let C=v.current;if(!C)return;let g=F*xo;g<C.scrollTop?C.scrollTop=g:g+xo>C.scrollTop+C.clientHeight&&(C.scrollTop=g+xo-C.clientHeight);},[F,x]);let V=C=>{if(C.disabled)return;let g=j(C)?A.filter(k=>!Object.is(k,C.value)):[...A,C.value];p(lookupMultipleValue(t,g));},M=C=>{if(on(C))return;let g=e.length,k=()=>{C.preventDefault(),C.stopPropagation();};switch(C.key){case "ArrowDown":k(),N(R=>Math.min(g-1,R+1));return;case "ArrowUp":k(),N(R=>Math.max(0,R-1));return;case "Home":k(),N(0);return;case "End":k(),N(g-1);return;case " ":k(),e[F]&&V(e[F]);return;case "Enter":k(),f();return;case "Escape":k(),w();return;case "Tab":y&&(k(),y(C.shiftKey));return;default:if(!rn(C))return;C.stopPropagation();}},$=x&&createPortal(jsx("div",{ref:v,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup kanuni-datagrid-multi-popup${S}`,"data-kanuni-portal":"popup",role:"listbox","aria-multiselectable":"true","aria-label":o,"data-testid":l?`${l}-list`:void 0,style:{left:x.left,top:x.top,width:x.width,maxHeight:Y},onMouseDown:C=>C.preventDefault(),children:e.map((C,g)=>{let k=j(C),R=typeof C.disabled=="string"?C.disabled:void 0;return jsxs("div",{role:"option","aria-selected":k,"aria-disabled":C.disabled?true:void 0,"aria-description":R,title:R,className:`kanuni-datagrid-lookup-item kanuni-datagrid-multi-item${g===F?" kanuni-datagrid-lookup-item--active":""}${C.disabled?" kanuni-datagrid-multi-item--disabled":""}`,style:{height:xo},onMouseEnter:()=>N(g),onClick:()=>V(C),children:[jsx("input",{type:"checkbox",tabIndex:-1,readOnly:true,checked:k,disabled:!!C.disabled,"aria-hidden":"true"}),jsx("span",{className:"kanuni-datagrid-multi-label",children:C.label}),R&&jsx("span",{className:"kanuni-datagrid-multi-reason",children:R})]},String(C.value))})}),L());return jsxs(Fragment,{children:[jsx("input",{ref:G,type:"text",readOnly:true,role:"combobox","aria-expanded":"true","aria-haspopup":"listbox","aria-label":o,"aria-invalid":a||void 0,"data-testid":l,className:`kanuni-datagrid-editor${a?" kanuni-datagrid-editor--invalid":""}`,value:multipleLookupText(t,n),onKeyDown:M,onBlur:C=>{let g=C.relatedTarget;g instanceof Element&&g.closest(`${Bt}, .kanuni-datagrid-detached`)||h?.();}}),$]})}function tp(e,t="en-US"){let n=parseLocaleNumber(e,t);return n.ok?n.value:void 0}function np(e){return e instanceof Element&&!!e.closest(`${Bt}, .kanuni-datagrid-detached`)}function ms(e,t){return e==null?"":t==="date"&&e instanceof Date?e.toISOString().slice(0,10):String(e)}function Na({value:e,dataType:t,error:n,seeded:o=false,seedText:l,options:a,allowCustom:u=false,matchMode:p,lookupSettings:f,onPick:w,multipleLookup:y,onPickerOpen:h,suspendBlurCommit:L,ariaLabel:S,dateFormat:G,numberFormat:v,numberLocale:F,onChange:N,onCommit:x,onTab:P,onCancel:A}){let j=useRef(null),Y=useRef(false),[V,M]=useState(t==="number"&&l!==void 0?l:null),$=useRef(e),C=(D,J)=>!v||v.restrictInput!==true||isPartialNumberText(D,v)||(J||/\d/.test(D))&&readNumberText(D,v)!==void 0,g=useRef(false),k=useRef(""),R=useRef(()=>{});R.current=D=>{if(v?.restrictInput!==true||g.current||D.isComposing||D.inputType.startsWith("delete")||D.inputType.startsWith("history"))return;let J=j.current;if(!(J instanceof HTMLInputElement))return;let de=D.data??D.dataTransfer?.getData("text/plain")??"",Fe=J.selectionStart??J.value.length,Le=J.selectionEnd??Fe,le=D.inputType==="insertFromPaste"||D.inputType==="insertFromDrop",Ee=J.value.slice(0,Fe)+(le?de.trim():de)+J.value.slice(Le);C(Ee,le)||D.preventDefault();},useEffect(()=>{let D=j.current;if(!D||v?.restrictInput!==true)return;let J=de=>R.current(de);return D.addEventListener("beforeinput",J),()=>D.removeEventListener("beforeinput",J)},[]),useEffect(()=>{let D=j.current;if(D&&(D.focus({preventScroll:true}),!(!(D instanceof HTMLInputElement)||D.type==="checkbox")))if(o||l!==void 0){if(D.type==="text"||D.type==="search"){let J=D.value.length;D.setSelectionRange(J,J);}}else D.select();},[]);let re={ref:j,onKeyDown:D=>{if(!(D.nativeEvent.isComposing||D.keyCode===229)&&!on(D)){if(v?.step!==void 0&&(D.key==="ArrowUp"||D.key==="ArrowDown")&&!D.altKey&&!D.shiftKey){D.preventDefault(),D.stopPropagation();let J=D.target.value??"",de=stepNumberText(J,v,D.key==="ArrowUp"?1:-1,D.ctrlKey||D.metaKey?10:1);de!==void 0&&N(de);return}D.key==="Enter"?(D.preventDefault(),D.stopPropagation(),x(D.shiftKey?"none":"down")):D.key==="Tab"?(D.preventDefault(),D.stopPropagation(),Y.current=true,P(D.shiftKey?-1:1)):D.key==="Escape"?(D.preventDefault(),D.stopPropagation(),A()):rn(D)&&D.stopPropagation();}},onBlur:D=>{Y.current||np(D.relatedTarget)||x("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"},H;return a===null?H=jsx("input",{...re,type:"text",value:"\u2026",readOnly:true,disabled:true}):a&&y?H=jsx(ps,{options:a,lookup:y,value:e,ariaLabel:S,testId:re["data-testid"],invalid:!!n,onChange:N,onCommit:()=>x("none"),onCancel:A,onTab:D=>{Y.current=true,P(D?-1:1);},onBlurCommit:()=>{Y.current||x("blur");}}):a?H=jsx(Mn,{options:a,value:e,matchMode:p,allowCustom:u,seeded:o,...f,onPick:w,onPickerOpen:h,suspendBlurCommit:L,invalid:!!n,testId:re["data-testid"],ariaLabel:S,onChange:N,onCommit:()=>x("none"),onBlurCommit:()=>{Y.current||x("blur");},onCancel:A,onTab:D=>{Y.current=true,P(D?-1:1);}}):v?H=jsx("input",{...re,type:"text",inputMode:v.decimals===0?"numeric":"decimal",autoComplete:"off",value:String(Qo(e,v)??""),onCompositionStart:D=>{g.current=true,k.current=D.currentTarget.value;},onCompositionEnd:D=>{g.current=false,C(D.currentTarget.value,true)||N(k.current);},onChange:D=>{let J=D.nativeEvent;!g.current&&!J.isComposing&&!(J.inputType??"").startsWith("delete")&&!C(D.target.value,true)||N(D.target.value);}}):t==="boolean"?H=jsx("input",{...re,type:"checkbox",checked:e===true,onChange:D=>N(D.target.checked)}):t==="number"&&V!==null?H=jsx("input",{...re,type:"text",inputMode:"decimal",value:V,onChange:D=>{let J=D.target.value;M(J);let de=tp(J,F);N(de===void 0?$.current:de);}}):t==="number"?H=jsx("input",{...re,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:ms(e,t),onChange:D=>N(D.target.value===""?null:Number(D.target.value))}):t==="date"?H=jsx(Nn,{value:e,format:G,invalid:!!n,testId:re["data-testid"],ariaLabel:S,seedDigits:l,onChange:N,onCommit:()=>x("none"),onBlurCommit:()=>{Y.current||x("blur");},onCancel:A,onTab:D=>{Y.current=true,P(D?-1:1);}}):H=jsx("input",{...re,type:"text",value:ms(e,t),onChange:D=>N(D.target.value)}),jsxs(Fragment,{children:[H,n&&jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function gs(e,t,n,o,l,a){let u=!n&&t!==void 0&&t.enabled!==false,p=u&&!l,f=t?.mode??"cell",w=useCallback(H=>{let D=e?.getColumnModel().getDef(H);return !D?.lookup&&!D?.renderEditor&&D?.allowFormulas!==true},[e]),y=ga({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:L,handleKeyDown:S,editAdjacentCell:G,focusScroller:v,saveError:F,clearSaveError:N,commitCellEditor:x,keyContext:P,doubleClickEdits:A}=y,j=Ma({controller:e,editing:y,mode:f,active:p,rootRef:a.rootRef,rowHeight:a.rowHeight,formLabels:t?.formLabels,formHeight:t?.formHeight,dark:a.dark,cardPopup:a.cardPopup}),{renderRowCell:Y,renderPending:V,openRow:M}=j,{renderCellContent:$,getCellClassName:C,onCellDoubleClick:g}=o,k=useCallback(H=>{if(!u||!h||H.node.kind!=="data")return $?.(H);let D=Y(H);if(D!==void 0)return D;if(!h.isEditing(H.node.key,H.columnId))return V(H)??$?.(H);let J=h.getSession(),de=e.getColumnModel(),Fe=de.getDef(H.columnId);return jsx(Na,{value:J.value,dataType:de.getEditorDataType(H.columnId),ariaLabel:Fe?.headerName??H.columnId,dateFormat:Fe?.dateFormat,numberFormat:_t(Fe),numberLocale:de.getNumberLocale(),error:J.validation.message,seeded:J.seeded,seedText:tr.get(J),onChange:Le=>h.setEditValue(Le),onCommit:x,onTab:Le=>{if(t?.focusCellOnTab===false){h.commitEdit();return}G(Le,{open:false,cycle:t?.focusCellOnCycle!==false}),v();},onCancel:()=>{h.cancelEdit(),v();}})},[u,h,e,L,$,Y,V,G,v,x,t?.focusCellOnTab,t?.focusCellOnCycle]),R=useCallback(H=>{let D=C?.(H);if(!u||!h||H.node.kind!=="data")return D;let J=D?[D]:[];return h.isEditing(H.node.key,H.columnId)&&J.push("kanuni-datagrid-cell--editing"),h.changes.isDirty(H.node.key,H.columnId)&&J.push("kanuni-datagrid-cell--dirty"),J.length>0?J.join(" "):void 0},[u,h,L,C]),X=useCallback(H=>{g?.(H),!(!u||!h||H.node.kind!=="data"||!A)&&(e?.isRowLeaveBlocked(H.node.key)||M(H.node.key)||h.beginEdit(H.node.key,H.columnId));},[u,h,e,g,M,A]),re=useCallback(H=>p?S(H):false,[p,S]);return {active:u,renderCellContent:p?k:$,getCellClassName:p?R:C,onCellDoubleClick:p?X:g,handleKeyDown:re,keyContext:P,saveError:u?F:null,clearSaveError:N,renderEditForm:p?j.renderEditForm:void 0,bar:p?j.bar:null,popup:u?j.popup:null,rowSessionAttr:u?j.rowSessionAttr:void 0,editRowMenuItem:j.editRowMenuItem,rowStatusSource:u?h:null,openCardEditor:u?j.openCardEditor:void 0}}function La({open:e,title:t,message:n,cancelLabel:o,confirmLabel:l,danger:a,dark:u,onConfirm:p,onCancel:f}){let w=useRef(null),y=useRef(null),h=useId(),L=useId(),S=Ft(),G=zt();return useEffect(()=>{if(!e)return;let v=document.activeElement;w.current?.focus();let F=y.current;return ()=>{let N=document.activeElement;F&&(F.contains(N)||N===document.body||N===null)&&v?.isConnected&&v.focus({preventScroll:true});}},[e]),useEffect(()=>{if(!e)return;let v=F=>{if(F.key==="Escape"){F.stopPropagation(),f();return}if(F.key==="Tab"&&y.current){let N=Array.from(y.current.querySelectorAll("button:not([disabled])"));if(N.length===0)return;let x=N.indexOf(document.activeElement),P=F.shiftKey?x<=0?N.length-1:x-1:x===N.length-1?0:x+1;F.preventDefault(),F.stopPropagation(),N[P].focus();}};return document.addEventListener("keydown",v,true),()=>document.removeEventListener("keydown",v,true)},[e,f]),!e||typeof document>"u"?null:createPortal(jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${u?" kanuni-datagrid-dark":""}${S}`,"data-kanuni-portal":"popup",role:"presentation",children:[jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:f}),jsxs("div",{ref:y,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":h,"aria-describedby":L,"data-testid":"dg-dialog",children:[jsx("div",{className:"kanuni-datagrid-dialog-title",id:h,children:t}),jsx("div",{className:"kanuni-datagrid-dialog-message",id:L,children:n}),jsxs("div",{className:"kanuni-datagrid-dialog-actions",children:[o!==void 0&&jsx("button",{type:"button","data-testid":"dg-dialog-cancel",onClick:f,children:o}),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})]})]})]}),G())}var lp=["kanuni-datagrid-band-row","kanuni-datagrid-header","kanuni-datagrid-filter-row"],ys="kanuni-datagrid-print-table";function sp(e){let t=e.cloneNode(true);return t.removeAttribute("id"),t.querySelectorAll("[id]").forEach(n=>n.removeAttribute("id")),t}function dp(e){return lp.some(t=>e.classList.contains(t))}function Rs(e){let t=e?.querySelector(".kanuni-datagrid-canvas");if(!e||!t||t.hasAttribute("data-print-clone"))return;let n=document.createElement("table");n.className=ys,n.setAttribute("aria-hidden","true");let o=n.createTHead(),l=null,a=(p,f)=>{f.insertRow().insertCell().appendChild(sp(p));},u=true;for(let p of Array.from(t.children)){if(u&&dp(p)){a(p,o);continue}if(u=false,l??=n.createTBody(),p.classList.contains("kanuni-datagrid-rows")){let f=p.querySelector(".kanuni-datagrid-viewport")??p;for(let w of Array.from(f.children))a(w,l);}else a(p,l);}t.setAttribute("data-print-clone",""),t.after(n);}function Ia(e){e&&(e.querySelectorAll(`.${ys}`).forEach(t=>t.remove()),e.querySelectorAll("[data-print-clone]").forEach(t=>t.removeAttribute("data-print-clone")));}var fr=0,Fa=5e3;function pp(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Fa,repeatHeader:t.repeatHeader??true,onLimit:t.onLimit}}function fp(e,t){return e<=t}function Oa(e,t,n){let o=pp(t),l=o!==null,a=o?.always??false,u=o?.maxRows??Fa,p=o?.repeatHeader??true,f=o?.onLimit,w=useRef(f);useEffect(()=>{w.current=f;},[f]);let[y,h]=useState(false),L=useCallback(()=>h(true),[]),S=useCallback(()=>h(false),[]);useEffect(()=>{if(!l||typeof window>"u"||typeof window.addEventListener!="function")return;let v=()=>{if(!a){let N=e.getRows().length;if(!fp(N,u)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${N} rows exceeds maxRows (${u}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`),w.current?.({rows:N,maxRows:u});return}flushSync(()=>h(true));}p&&Rs(n?.current??null);},F=()=>{Ia(n?.current??null),a||flushSync(()=>h(false));};return window.addEventListener("beforeprint",v),window.addEventListener("afterprint",F),()=>{window.removeEventListener("beforeprint",v),window.removeEventListener("afterprint",F),Ia(n?.current??null);}},[l,a,u,p,e,n]);let G=a||y;return useEffect(()=>{if(!G||typeof document>"u")return;let v=document.documentElement;return fr++,v.classList.add("kanuni-datagrid-printing"),()=>{fr--,fr<=0&&(fr=0,v.classList.remove("kanuni-datagrid-printing"));}},[G]),{active:G,begin:L,end:S}}var mr=new Map,Ha=new Set;function Ts(e,t){let n=mr.get(e);return n?[...n].filter(o=>o!==t):[]}function Aa(e,t,n){let o=useRef(null);return useEffect(()=>{if(!t)return;let a={controller:e,scroller:()=>n.current};o.current=a;let u=mr.get(t)??new Set;u.add(a),mr.set(t,u);let p=e.events.on("columnStateChanged",()=>{if(Ha.has(t))return;let f=Ts(t,a);if(f.length===0)return;let w=e.getColumnStates();Ha.add(t);try{for(let y of f)y.controller.applyColumnStates(w);}finally{Ha.delete(t);}});return ()=>{p(),u.delete(a),u.size===0&&mr.delete(t),o.current=null;}},[e,t,n]),{syncScroll:useCallback(a=>{let u=o.current;if(!t||!u)return;let p=Ts(t,u);if(p.length!==0)for(let f of p){let w=f.scroller();w&&w.scrollLeft!==a&&(w.scrollLeft=a);}},[t])}}function gr(e,t,n){return e==="left"?t:e==="center"?n.left+t:n.left+n.center+t}function vs(e,t){let{start:n,end:o}=t.columns,l=e.centerOffsets,a=l[n]??0,u=(l[o]??0)-a,p=Math.max(0,e.centerWidth-a-u),f=a,w=e.center.slice(n,o),y=Array.from({length:w.length},(S,G)=>n+G),h=e.stickyIndices.filter(S=>S<n);if(h.length>0){let S=h.map(G=>e.center[G]);f-=S.reduce((G,v)=>G+v.state.width,0),w=[...S,...w],y=[...h,...y];}let L=new Map;for(let S of e.stickyIndices){let G=e.centerStickyOffsets[S];G!==null&&L.set(e.center[S].state.id,G);}return {centerColumns:w,centerIndices:y,leadingSpacer:Math.max(0,f),trailingSpacer:p,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:L}}function Es(e){let t=[];for(let n=0;n<e.length;n++){let o=e[n];o&&o.kind!=="data"&&t.push(n);}return t.length>0?t:null}function xs(e,t,n=0){if(!t)return n+e+1;let o=0,l=t.length;for(;o<l;){let a=o+l>>1;t[a]<e?o=a+1:l=a;}return n+e-o+1}var $a=null,wr=null,Sp=400,Gp=24;function Ss(e,t,n){return `${e}\0${String(t)}\0${n}`}function Mp(e,t,n,o,l){let a=Ss(e,t,n),u=Date.now(),p=$a;return p&&p.cell===a&&u-p.time<=Sp&&Math.hypot(o-p.x,l-p.y)<=Gp?($a=null,wr={cell:a,time:u},true):($a={cell:a,time:u,x:o,y:l},false)}function Np(e,t,n){return !!wr&&wr.cell===Ss(e,t,n)&&Date.now()-wr.time<800}var br=36,hr=28,to=60,no=24,Pp=[["statusColumn",no],["rowNumberColumn",to],["detailColumn",hr],["checkboxColumn",br]];function Ya(e,t,n=false,o=false){return en({checkboxColumn:e,detailColumn:t,rowNumberColumn:n,statusColumn:o}).total}function en(e){let t=new Map,n=new Map,o=0,l=0;for(let[a,u]of Pp)e[a]&&(t.set(a,o),a!=="statusColumn"&&n.set(a,++l),o+=u);return {total:o,count:l,inset:a=>t.get(a)??0,colIndex:a=>n.get(a)??1}}function Wa(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function Va(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 Ua(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,n){if(t===""||e==="")return e;let o=foldMatchText(e,n),l=o.indexOf(t);if(l===-1)return e;let a=[],u=0,p=0;for(;l!==-1;)l>u&&a.push(e.slice(u,l)),a.push(jsx("mark",{className:"kanuni-datagrid-highlight",children:e.slice(l,l+t.length)},p++)),u=l+t.length,l=o.indexOf(t,u);return u<e.length&&a.push(e.slice(u)),jsx("span",{className:"kanuni-datagrid-cell-text",children:a})}function Lp(e,t,n,o="",l,a,u="case"){if(e.renderCell)return e.renderCell({value:t,row:n.data,node:n,column:e});let p=lookupLabel(e,t);if(p!==null)return eo(p,o,u);if(l&&a!==void 0&&!e.valueFormatter){let w=l.label(e,a,t,n.data,n.key);if(w===bn)return jsx("span",{className:"kanuni-datagrid-lookup-pending","aria-busy":"true"});if(w!==null)return eo(w,o,u)}if(e.valueFormatter){let w=e.valueFormatter(t,n.data);return typeof w=="string"?eo(w,o,u):w}if(e.dateFormat&&e.dataType==="date")return eo(formatDateValue(t,e.dateFormat),o,u);let f=numberCellText(e,t);return f!==null?eo(f,o,u):t==null?"":eo(String(t),o,u)}function Ip({gridId:e,node:t,index:n,layout:o,columnModel:l,centerColumns:a,centerIndices:u,stickyInsets:p,leadingSpacer:f,trailingSpacer:w,striped:y,selected:h,ariaSelectable:L=true,selectable:S=true,groupSelection:G,onToggleGroupSelect:v,groupDisplay:F="fullWidth",focusedColumnId:N,rowFocused:x=false,renderRow:P,checkboxColumn:A,statusColumn:j=false,rowNumberColumn:Y=false,rowNumber:V=null,getNote:M,getSpan:$,resolveColSpans:C,findKind:g,headerRowCount:k,onRowClick:R,onRowMouseDown:X,onRowDoubleClick:re,onToggleSelect:H,onCellMouseDown:D,onRowContextMenu:J,searchNeedle:de="",searchFold:Fe="case",lookupLabels:Le,onToggleGroup:le,summaryDefs:Ee,detailColumn:K=false,detailExpanded:se=false,onToggleDetail:ie,onToggleTreeRow:ee,renderDetail:Se,renderEditForm:c,renderRowMessage:De,renderCellContent:Ae,getCellClassName:Me,onCellPointerDown:it,onCellPointerEnter:Ue,onCellDoubleClick:ue,rowDrag:be,dropSide:me=null,rowStatus:Be,rowStatusText:Pe,rowStatusTint:ae=false,rowStatusStrike:Te=false,rowClass:ge,height:I}){let B=Ne();if(isDetailRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+k,"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:Se?.(t.data)})});if(isEditFormRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+k,"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:c?.(t.parentKey,t.data)})});if(isMessageRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-message-row",role:"row","aria-rowindex":n+1+k,"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:De?.(t.parentKey,t.data)})});if(isFillerRow(t))return null;if(isGroupRow(t)&&F==="fullWidth"){let i=l.getDef(t.columnId),O=i?.headerName??t.columnId,Q=lookupLabel(i,t.value)??t.display??(t.label===""?B.filterBlank:t.label),z=t.aggregates??null;return jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${N?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+k,"aria-expanded":t.expanded,"aria-level":t.level+1,"data-row-key":String(t.key),"data-group-key":String(t.key),"data-group-level":t.level,onClick:()=>le?.(String(t.key)),children: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:[G&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:G==="all",ref:ne=>{ne&&(ne.indeterminate=G==="some");},"aria-label":fillText(B.selectGroupAria,{count:String(t.count),group:Q}),onChange:()=>v?.(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:[O,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:Q}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),z&&Ee?.map(ne=>jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[summaryLabel(ne)," ",l.getDef(ne.columnId)?.headerName??ne.columnId,":"]})," ",formatSummaryValue(ne,z[summaryKey(ne.columnId,ne.type)],l.getDef(ne.columnId))]},summaryKey(ne.columnId,ne.type)))]})})}let te=[],pe=en({statusColumn:j,rowNumberColumn:Y,detailColumn:K,checkboxColumn:A}),ye=pe.count,fe=(i,O)=>({node:t,columnId:i,rowIndex:n,columnIndex:O,value:Z?void 0:l.getCellValue(t.data,i)}),Ce=(i,O)=>{let Q=()=>fe(i,O);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${i}`,"aria-colindex":ye+O+1,"data-column-id":i,onMouseDown:z=>{Kt(z)&&(D?.(t,i),it?.(Q(),z));},onMouseEnter:Ue?z=>{Kt(z)&&Ue(Q(),z);}:void 0,onDoubleClick:ue?z=>{Kt(z)&&(Np(e,t.key,i)||ue(Q()));}:void 0,onPointerUp:ue?z=>{z.pointerType!=="touch"||!Kt(z)||Mp(e,t.key,i,z.clientX,z.clientY)&&ue(Q());}:void 0}},Oe=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,Je=t.kind==="treePath",Z=isGroupRow(t)?t:null,ct=Je||Z!==null,Dt=Z?F==="column"?GROUP_COLUMN_ID:(o.left[0]??o.center[0]??o.right[0])?.state.id??null:null,d=()=>{let i=Z,O=l.getDef(i.columnId),Q=lookupLabel(O,i.value)??i.display??(i.label===""?B.filterBlank:i.label);return jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:i.level*16},children:[jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:i.expanded?"\u25BE":"\u25B8"}),F!=="column"&&jsxs("span",{className:"kanuni-datagrid-group-caption",children:[O?.headerName??i.columnId,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:Q}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",i.count,")"]})]})},tt=(i,O)=>{let Q=Z.aggregates?Ee?.find(z=>z.columnId===O):void 0;return Q?jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:formatSummaryValue(Q,Z.aggregates[summaryKey(O,Q.type)],i)}):null},St=Oe?(o.left[0]??o.center[0]??o.right[0])?.state.id??null:null,We=(i,O,Q)=>{if(Z){if(O===Dt)return d();if(Ae){let ne=Ae(fe(O,Q));if(ne!==void 0)return ne}return tt(i,O)}if(Ae&&!Je){let ne=Ae(fe(O,Q));if(ne!==void 0)return ne}let z=Je?O===St?jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:Lp(i,l.getCellValue(t.data,O),t,de,Le,O,Fe);return Oe&&O===St?jsxs("span",{className:Oe.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:Oe.depth*16},children:[Oe.hasChildren?jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":Oe.expanded,"aria-label":Oe.expanded?B.collapseTreeRow:B.expandTreeRow,onClick:ne=>{ne.stopPropagation(),ee?.(t.key);},children:Oe.expanded?"\u25BE":"\u25B8"}):jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),z]}):z},Gt=(i,O)=>{if(!Me||Z)return "";let Q=Me(fe(i,O));return Q?` ${Q}`:""},pt=i=>!M||t.kind!=="data"?"":M(t.key,i,t.data)?" kanuni-datagrid-cell--noted":"",nt=i=>$&&t.kind==="data"?$(n,i):null,Qe=(i,O)=>{let Q=i.autoHeight?" kanuni-datagrid-cell--wrap":"";return !i.cellClassName||ct?Q:Q+Mt(i,O)},Mt=(i,O)=>{let Q=i.cellClassName;if(!Q)return "";if(typeof Q=="string")return ` ${Q}`;let z=t.data,ne=Q({value:l.getCellValue(z,O),row:z,node:t,column:i});return ne?` ${ne}`:""};if(j&&te.push(jsx("div",{role:"presentation","aria-hidden":"true",className:"kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell",style:{width:no,insetInlineStart:pe.inset("statusColumn")},children:jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),Y){let i=t.kind==="data"&&V!==null;te.push(jsx("div",{role:"gridcell","aria-colindex":pe.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:to,insetInlineStart:pe.inset("rowNumberColumn")},children:i?V:""},"__rownum"));}K&&te.push(jsx("div",{role:"gridcell","aria-colindex":pe.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:hr,insetInlineStart:pe.inset("detailColumn")},children:ct?null:jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":se,"aria-label":se?B.collapseDetails:B.expandDetails,onMouseDown:i=>i.stopPropagation(),onClick:i=>{i.stopPropagation(),ie?.(t.key);},children:se?"\u25BE":"\u25B8"})},"__detail")),A&&te.push(jsx("div",{role:"gridcell","aria-colindex":pe.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:br,insetInlineStart:pe.inset("checkboxColumn")},onMouseDown:i=>i.stopPropagation(),onClick:i=>{i.target.tagName!=="INPUT"&&(i.stopPropagation(),H?.(t));},children:Z?G&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:G==="all",ref:i=>{i&&(i.indeterminate=G==="some");},"aria-label":fillText(B.selectGroupAria,{count:String(Z.count),group:Z.display??Z.label}),onChange:()=>v?.(String(Z.key)),onClick:i=>i.stopPropagation(),onMouseDown:i=>i.stopPropagation()}):Je?null:jsx("input",{type:"checkbox",checked:h,disabled:!S,tabIndex:-1,"aria-label":fillText(B.selectRowAria,{row:String(t.key)}),onChange:()=>H?.(t),onClick:i=>i.stopPropagation(),onMouseDown:i=>i.stopPropagation()})},"__select"));let Nt=pe.total,qe=i=>N===i?" kanuni-datagrid-cell--focused":"",Tt=i=>{let O=g&&t.kind==="data"?g(t.key,i):null;return O==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":O==="match"?" kanuni-datagrid-cell--find-match":""},Ot={left:o.left.length,center:o.center.length},lt=t.kind==="data"&&C?C(t):null,jt=i=>lt?.widths.get(i.state.id)??i.state.width,rt=i=>{let O=lt?.spans.get(i);return O?{"aria-colspan":O}:null};o.left.forEach((i,O)=>{let Q=i.def,z=O===o.left.length-1,ne=i.state.id;if(lt?.covered.has(ne))return;let s=gr("left",O,Ot);te.push(jsx("div",{...Ce(ne,s),className:`${Ua(Q.align,Q.dataType)} kanuni-datagrid-cell--pinned${z?" kanuni-datagrid-pin-edge-left":""}${qe(ne)}${Tt(ne)}${Qe(Q,ne)}${Gt(ne,s)}${pt(ne)}${Wa(nt(ne))}`,...rt(ne),style:{width:jt(i),insetInlineStart:o.leftOffsets[O]+Nt},children:Va(nt(ne),N===ne,()=>We(Q,ne,s))},ne));});let ot=lt?.lead??null,Pt=f-(lt?.leadingDelta??0),Ve=w-(lt?.trailingDelta??0);Pt>0&&te.push(jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Pt}},"__lead"));let Xe=(i,O)=>{let Q=i.def,z=i.state.id,ne=gr("center",O,Ot),s=p?.get(z),m=s===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",T=ot&&ot.column.state.id===z?ot.width:jt(i);return jsx("div",{...Ce(z,ne),...rt(z),className:`${Ua(Q.align,Q.dataType)}${m}${qe(z)}${Tt(z)}${Qe(Q,z)}${Gt(z,ne)}${pt(z)}${Wa(nt(z))}`,style:s===void 0?{width:T}:{width:T,insetInlineStart:s+Nt},children:Va(nt(z),N===z,()=>We(Q,z,ne))},z)},Ke=ot?o.center.indexOf(ot.column):-1,st=ot===null;return a.forEach((i,O)=>{let Q=u?.[O]??O;!st&&Q>Ke&&(te.push(Xe(ot.column,Ke)),st=true),!lt?.covered.has(i.state.id)&&te.push(Xe(i,Q));}),st||te.push(Xe(ot.column,Ke)),Ve>0&&te.push(jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Ve}},"__trail")),o.right.forEach((i,O)=>{let Q=i.def,z=O===0,ne=i.state.id;if(lt?.covered.has(ne))return;let s=gr("right",O,Ot);te.push(jsx("div",{...Ce(ne,s),className:`${Ua(Q.align,Q.dataType)} kanuni-datagrid-cell--pinned${z?" kanuni-datagrid-pin-edge-right":""}${qe(ne)}${Tt(ne)}${Qe(Q,ne)}${Gt(ne,s)}${pt(ne)}${Wa(nt(ne))}`,...rt(ne),style:{width:jt(i),insetInlineEnd:o.rightOffsets[O]},children:Va(nt(ne),N===ne,()=>We(Q,ne,s))},ne));}),jsxs("div",{className:`kanuni-datagrid-row${y&&n%2===1?" kanuni-datagrid-row--odd":""}${h?" kanuni-datagrid-row--selected":""}${x?" kanuni-datagrid-row--focused":""}${Je?" kanuni-datagrid-row--tree-path":""}${Z?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${Z.level}`:""}${me?` kanuni-datagrid-row--drop-${me}`:""}${Be?` ${rowStatusClassName(Be,ae,Te)}`:""}${ge?` ${ge}`:""}`,role:"row","aria-rowindex":n+1+k,"aria-selected":Z||!L?void 0:h,"aria-expanded":Z?Z.expanded:void 0,"aria-level":Z?Z.level+1:void 0,"data-row-key":String(t.key),"data-row-status":Be,"aria-description":Be?Pe:void 0,"aria-busy":Be==="saving"?true:void 0,"aria-invalid":Be==="error"?true:void 0,"data-group-key":Z?String(Z.key):void 0,"data-group-level":Z?Z.level:void 0,style:I===void 0?void 0:{height:I},draggable:be?.draggable&&!Z?true:void 0,onDragStart:be&&!Z?i=>be.onDragStart(t,i):void 0,onDragEnd:be&&!Z?()=>be.onDragEnd():void 0,onDragOver:be&&!Z?i=>be.onDragOver(t,i):void 0,onDrop:be&&!Z?i=>be.onDrop(t,i):void 0,onMouseDown:X&&!Z?i=>Kt(i)&&X(t,i):void 0,onClick:Z?()=>le?.(String(Z.key)):R?i=>Kt(i)&&R(t,n,i):void 0,onDoubleClick:re?i=>Kt(i)&&re(t,n,i):void 0,onContextMenu:J?i=>Kt(i)&&J(t,n,i):void 0,children:[be&&!Z&&jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:B.dragToReorder,onMouseEnter:()=>be.setDraggable(true),onMouseLeave:()=>be.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"})]})})}),P&&t.kind==="data"?P({row:t.data,node:t,rowIndex:n,selected:h,focused:x}):te]})}var oo=memo(Ip);var ro=26;function qa(e,t){return computeHeaderBands(e,t)}function Xa(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function ja(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 o=t.pathOf(e.columnIds[0]).slice(0,e.level+1);if(o.length!==e.level+1||!t.collapsible(o))return n;let l=t.collapsed(o);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(o);},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 Op({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:o,depth:l,checkboxColumn:a=false,detailColumn:u=false,statusColumn:p=false,rowNumberColumn:f=false,rowHeight:w=ro,bandFold:y}){if(l<=0)return null;let h=en({statusColumn:p,rowNumberColumn:f,detailColumn:u,checkboxColumn:a}).total,L=qa(e.left,l),S=qa(t,l),G=qa(e.right,l),v=(F,N,x)=>{let P=x;for(let A=0;A<N;A++)P+=F[A].width;return P};return jsx(Fragment,{children:Array.from({length:l},(F,N)=>jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":N+1,style:{width:e.totalWidth+h,height:w,top:N*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"}),(L[N]??[]).map((x,P)=>jsx("div",{className:Xa(x,` kanuni-datagrid-band-cell--pinned${P===(L[N]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:x.spacer?"presentation":"columnheader","aria-colspan":x.spacer?void 0:x.columnIds.length,style:{width:x.width,insetInlineStart:v(L[N]??[],P,h)},title:x.spacer?void 0:x.label,children:ja(x,y)},x.columnIds[0])),n>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(S[N]??[]).map(x=>jsx("div",{className:Xa(x),role:x.spacer?"presentation":"columnheader","aria-colspan":x.spacer?void 0:x.columnIds.length,style:{width:x.width},title:x.spacer?void 0:x.label,children:ja(x,y)},x.columnIds[0])),o>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:o}}),(G[N]??[]).map((x,P)=>{let A=G[N]??[],j=0;for(let Y=P+1;Y<A.length;Y++)j+=A[Y].width;return jsx("div",{className:Xa(x,` kanuni-datagrid-band-cell--pinned${P===0?" kanuni-datagrid-pin-edge-right":""}`),role:x.spacer?"presentation":"columnheader","aria-colspan":x.spacer?void 0:x.columnIds.length,style:{width:x.width,insetInlineEnd:j},title:x.spacer?void 0:x.label,children:ja(x,y)},x.columnIds[0])})]},N))})}var Qa=memo(Op);var $p=()=>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 Wp(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function Vp({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:o,leadingSpacer:l,trailingSpacer:a,sort:u,sortable:p,onSort:f,headerFilter:w=false,filteredColumns:y,onOpenFilter:h,filterIconMode:L="hover",checkboxColumn:S=false,detailColumn:G=false,statusColumn:v=false,rowNumberColumn:F=false,rowNumberHeader:N="#",selectAllState:x="none",selectAllDisabled:P=false,onToggleSelectAll:A,draggable:j=false,reorderable:Y=false,onReorder:V,resizable:M=false,onResize:$,onAutoFit:C,onHeaderContextMenu:g,groupLevels:k,onHeaderClick:R,getHeaderClassName:X,renderHeaderLabel:re}){let H=Ne(),D=en({statusColumn:v,rowNumberColumn:F,detailColumn:G,checkboxColumn:S}),J=new Map(u.map((ae,Te)=>[ae.columnId,{direction:ae.direction,order:Te}])),de=new Set(y??[]),Fe=[...n.left.map(ae=>ae.state.id),...o.map(ae=>ae.state.id),...n.right.map(ae=>ae.state.id)],[Le,le]=useState(null),Ee=useId(),K=Le&&Fe.includes(Le)?Le:Fe[0],se=ae=>{le(ae),document.querySelector(`[data-column-id="${ae}"].kanuni-datagrid-header-cell`)?.focus();},ie=ae=>{let Te=Fe.indexOf(K),ge=Math.min(Fe.length-1,Math.max(0,Te+ae));ge!==Te&&se(Fe[ge]);},ee=useRef(null),Se=useRef(false),[c,De]=useState(null),Ae=Fe,Me=ae=>[...n.left,...n.center,...n.right].find(Te=>Te.state.id===ae)?.state.pinned??null,it=(ae,Te)=>(Se.current?ae>Te.left+Te.width/2:ae<Te.left+Te.width/2)?"before":"after",Ue=(ae,Te)=>{let ge=ee.current;if(!Y||!ge||ge===ae||Me(ge)!==Me(ae))return;Te.preventDefault(),Te.dataTransfer.dropEffect="move";let I=it(Te.clientX,Te.currentTarget.getBoundingClientRect());De(B=>B?.id===ae&&B.side===I?B:{id:ae,side:I});},ue=(ae,Te)=>{let ge=ee.current;if(De(null),!Y||!ge||ge===ae||Me(ge)!==Me(ae))return;if(Te.preventDefault(),Te.stopPropagation(),it(Te.clientX,Te.currentTarget.getBoundingClientRect())==="before")V?.(ge,ae);else {let B=Ae[Ae.indexOf(ae)+1];V?.(ge,B===ge?Ae[Ae.indexOf(ae)+2]:B);}ee.current=null;},[be,me]=useState(null),Be=(ae,Te)=>{if(!M)return;Te.preventDefault(),Te.stopPropagation();let ge=Te.currentTarget,I=Te.clientX,B=ae.state.width,te=Se.current?-1:1,pe=ae.state.id;me(pe),ge.setPointerCapture(Te.pointerId);let ye=B,fe=false,Ce=Je=>{fe=true,ye=B+(Je.clientX-I)*te,$?.(pe,ye,false);},Oe=()=>{ge.releasePointerCapture?.(Te.pointerId),ge.removeEventListener("pointermove",Ce),ge.removeEventListener("pointerup",Oe),ge.removeEventListener("pointercancel",Oe),fe&&$?.(pe,ye,true),me(null);};ge.addEventListener("pointermove",Ce),ge.addEventListener("pointerup",Oe),ge.addEventListener("pointercancel",Oe);},Pe=(ae,Te,ge)=>{let I=ae.def,B=ae.state.id,te=p&&I.sortable!==false,pe=w&&I.filterable!==false,ye=B===GROUP_COLUMN_ID,fe=J.get(ye?k?.[0]??B:B),Ce=j&&I.groupable!==false||Y&&I.reorderable!==false,Oe=c?.id===B?c.side:null,Je=X?.(B);return jsxs("div",{className:`kanuni-datagrid-header-cell${Te}${Je?` ${Je}`:""}${te?" kanuni-datagrid-header-cell--sortable":""}${Oe?` kanuni-datagrid-header-cell--drop-${Oe}`:""}${be===B?" kanuni-datagrid-header-cell--resizing":""}${I.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:ge,role:"columnheader","aria-labelledby":`${Ee}-${encodeURIComponent(B)}`,"aria-sort":fe?fe.direction==="asc"?"ascending":"descending":"none","data-column-id":B,tabIndex:B===K?0:-1,onFocus:()=>le(B),draggable:Ce&&be===null,onDragStart:Z=>{Z.dataTransfer.setData("text/x-kanuni-column",B),Z.dataTransfer.effectAllowed="move",ee.current=B,Se.current=getComputedStyle(Z.currentTarget).direction==="rtl";},onDragEnd:()=>{ee.current=null,De(null);},onDragOver:Y?Z=>Ue(B,Z):void 0,onDragLeave:Y?()=>De(Z=>Z?.id===B?null:Z):void 0,onDrop:Y?Z=>ue(B,Z):void 0,onContextMenu:g&&!isChromeColumn(B)?Z=>g(B,Z):void 0,onClick:te||R?Z=>{R?.(B,Z)||te&&f(B,Z.shiftKey);}:void 0,onKeyDown:Z=>{Z.key==="ArrowRight"?(Z.preventDefault(),ie(1)):Z.key==="ArrowLeft"?(Z.preventDefault(),ie(-1)):Z.key==="Home"?(Z.preventDefault(),se(Fe[0])):Z.key==="End"?(Z.preventDefault(),se(Fe[Fe.length-1])):pe&&Z.altKey&&Z.key==="ArrowDown"?(Z.preventDefault(),h?.(B,Z.currentTarget)):te&&(Z.key==="Enter"||Z.key===" ")&&(Z.preventDefault(),f(B,Z.shiftKey));},children:[jsx("span",{className:"kanuni-datagrid-header-label",id:`${Ee}-${encodeURIComponent(B)}`,children:re?.(B)??Wp(I,B)}),fe&&jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:fe.direction==="asc"?"\u25B2":"\u25BC"}),fe&&u.length>1&&!ye&&jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:fe.order+1}),w&&I.filterable!==false&&jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${de.has(B)?" kanuni-datagrid-filter-button--active":""}${L==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":fillText(H.filterColumnAria,{column:I.headerName??B}),"aria-haspopup":"dialog","data-filter-button":B,tabIndex:-1,onClick:Z=>{Z.stopPropagation(),h?.(B,Z.currentTarget);},children:jsx($p,{})}),M&&I.resizable!==false&&jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":B,role:"presentation",onPointerDown:Z=>Be(ae,Z),onDoubleClick:Z=>{Z.stopPropagation(),C?.(B);},onClick:Z=>Z.stopPropagation()})]},B)};return jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/ro)+1,style:{width:n.totalWidth+D.total,top:e||void 0},children:[v&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell",role:"presentation","aria-hidden":"true",style:{width:no,insetInlineStart:D.inset("statusColumn")}}),F&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":D.colIndex("rowNumberColumn"),"aria-label":H.rowNumberAria,style:{width:to,insetInlineStart:D.inset("rowNumberColumn")},children:N??""}),G&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":D.colIndex("detailColumn"),"aria-label":H.detailsAria,style:{width:hr,insetInlineStart:D.inset("detailColumn")}}),S&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":D.colIndex("checkboxColumn"),style:{width:br,insetInlineStart:D.inset("checkboxColumn")},children:jsx("input",{type:"checkbox",checked:x==="all",ref:ae=>{ae&&(ae.indeterminate=x==="some");},"aria-label":H.selectAllRows,disabled:P,onChange:()=>A?.()})}),n.left.map((ae,Te)=>Pe(ae,` kanuni-datagrid-header-cell--pinned${Te===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:ae.state.width,insetInlineStart:n.leftOffsets[Te]+D.total})),l>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),o.map(ae=>{let Te=t?.get(ae.state.id);return Te===void 0?Pe(ae,"",{width:ae.state.width}):Pe(ae," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:ae.state.width,insetInlineStart:Te+D.total})}),a>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((ae,Te)=>Pe(ae,` kanuni-datagrid-header-cell--pinned${Te===0?" kanuni-datagrid-pin-edge-right":""}`,{width:ae.state.width,insetInlineEnd:n.rightOffsets[Te]}))]})}var ei=memo(Vp);function ni(e,t,n=[]){let o=null,l=new Set,a=u=>{if(l.has(u)||(l.add(u),t.isPending(u)))return;let p=t.textFor(u);if(p===null)return;let f=e[u]??"";f!==p&&(f===""&&p===""||(o??={...e},o[u]=p));};for(let u of Object.keys(e))a(u);for(let u of n)a(u);return o??e}function Yp({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:o,leadingSpacer:l,trailingSpacer:a,values:u,checkboxColumn:p=false,detailColumn:f=false,statusColumn:w=false,rowNumberColumn:y=false,placeholder:h,onChange:L,onCommit:S,periodSuggestions:G,periodListId:v,operators:F,onOperatorChange:N,renderCustom:x}){let P=Ne(),A=en({statusColumn:w,rowNumberColumn:y,detailColumn:f,checkboxColumn:p}),j=h??P.filterPlaceholder,Y=(V,M,$)=>{let C=V.state.id,g=V.def.filterable!==false,k=g?x?.(C):void 0,R=g&&k===void 0?customFilterOperators(V.def):[],X=R.some(H=>H.id===F?.[C])?F[C]:"",re=R.find(H=>H.id===X)?.operandType==="none";return jsxs("div",{className:`kanuni-datagrid-filter-cell${M}`,role:"gridcell",style:$,"data-column-id":C,children:[g&&k!==void 0&&k,g&&k===void 0&&R.length>0&&jsxs("select",{className:"kanuni-datagrid-filter-operator",value:X,"aria-label":fillText(P.filterOperatorAria,{column:V.def.headerName??C}),"data-filter-operator-for":C,onChange:H=>N?.(C,H.target.value),children:[jsx("option",{value:"",children:P.filterOperatorDefault}),R.map(H=>jsx("option",{value:H.id,children:H.label},H.id))]}),g&&k===void 0&&jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:u[C]??"",placeholder:j,"aria-label":fillText(P.filterColumnAria,{column:V.def.headerName??C}),"data-filter-for":C,disabled:re||void 0,list:V.def.dataType==="date"&&v&&X===""?v:void 0,onChange:H=>L(C,H.target.value),onKeyDown:H=>{H.key==="Enter"&&S?.(C,H.target.value);},onBlur:H=>S?.(C,H.target.value)})]},C)};return jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+A.total,"--dg-band-offset":`${e}px`},children:[v&&G&&G.length>0&&jsx("datalist",{id:v,children:G.map(V=>jsx("option",{value:V},V))}),A.total>0&&jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",role:"gridcell",style:{width:A.total,insetInlineStart:0}}),n.left.map((V,M)=>Y(V,` kanuni-datagrid-filter-cell--pinned${M===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:V.state.width,insetInlineStart:n.leftOffsets[M]+A.total})),l>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:l}}),o.map(V=>{let M=t?.get(V.state.id);return M===void 0?Y(V,"",{width:V.state.width}):Y(V," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:V.state.width,insetInlineStart:M+A.total})}),a>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((V,M)=>Y(V,` kanuni-datagrid-filter-cell--pinned${M===0?" kanuni-datagrid-pin-edge-right":""}`,{width:V.state.width,insetInlineEnd:n.rightOffsets[M]}))]})}var oi=memo(Yp);function xt({children:e,dark:t=false,kind:n="popup"}){let[o,l]=useState(null),a=Ft(),u=zt();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",u().appendChild(p),l(p),()=>{p.remove();}},[t,a,u,n]),o?createPortal(e,o):null}function In({anchor:e,onClose:t,margin:n=8,autoFocus:o=false}){let l=useRef(null),[a,u]=useState(e),p=useCallback(f=>{if(l.current=f,!f)return;let w=f.getBoundingClientRect(),y=e.top+w.height+n>window.innerHeight,h=e.top-w.height-n*2,L=y&&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(L,window.innerHeight-w.height-n))}),o&&f.focus();},[e.left,e.top,n,o]);return useEffect(()=>{let f=h=>{let L=l.current;L&&!L.contains(h.target)&&t();},w=h=>{h.key==="Escape"&&t();},y=h=>{let L=l.current,S=h.target;L&&S instanceof Node&&L.contains(S)||t();};return document.addEventListener("mousedown",f),document.addEventListener("keydown",w),window.addEventListener("scroll",y,true),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("keydown",w),window.removeEventListener("scroll",y,true);}},[t]),{position:a,ref:p,elementRef:l}}var un=25,Mo=new Map,Ps=200,lf=200,Ls=8;function sf(e){let t=Ne();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 df=memo(function({itemKey:t,label:n,display:o,index:l,active:a,checked:u,onToggle:p,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":l,onFocus:()=>f(l),onClick:()=>p(t),children:[jsx("input",{type:"checkbox",readOnly:true,checked:u,tabIndex:-1}),jsx("span",{children:o})]})});function uf(e,t){return e.nonBlank?t.nonBlank:Is({value:e.blank?null:e.value,label:e.label},t)}function Is(e,t){return distinctDisplayText(e,{filterBlank:t.blank,filterEmptyText:t.emptyText,filterSpace:t.space,filterSpaces:t.spaces})}var di={value:void 0,label:""},Cr=e=>e.value===null||e.value===void 0;function cf({index:e,row:t,active:n,checked:o,text:l,onToggle:a,onFocus:u}){return t?jsxs("div",{role:"option","aria-selected":o,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:o,tabIndex:-1}),jsx("span",{children:uf(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 ui({gridId:e,columnId:t,headerLabel:n,entries:o,initialSelected:l,anchor:a,loading:u=false,dark:p,onApply:f,onClose:w,onCustom:y,truncated:h=false,onSearch:L,pager:S,labels:G}){let v=sf(G),[,F]=useReducer(I=>I+1,0);useEffect(()=>S?S.subscribe(F):void 0,[S]);let[N,x]=useState(""),[P,A]=useState(0),[j,Y]=useState(()=>new Set(l??o.map(distinctEntryKey))),[V,M]=useState(false),$=useRef(null),C=useRef(null),[g,k]=useState(0),[R,X]=useState(240),re=`${e??""}:${t}`,H=Mo.get(re),D=useRef(H?.scrollTop??null),[J,de]=useState(H&&H.width&&H.height?{width:H.width,height:H.height}:null),Fe=useCallback(I=>{$.current=I,I?.focus();},[]),Le=useRef(null),le=useMemo(()=>{let I=foldText(N.trim());if(!I||h)return o;let B=Le.current;(!B||B.entries!==o)&&(B={entries:o,lowered:o.map(pe=>foldText(pe.label)),needle:"",result:[]},Le.current=B);let te=B.needle!==""&&I.includes(B.needle)?B.result.filter(pe=>foldText(pe.label).includes(I)):o.filter((pe,ye)=>B.lowered[ye].includes(I));return B.needle=I,B.result=te,te},[o,N,h]);useEffect(()=>{if(!L)return;let I=setTimeout(()=>L(N),150);return ()=>clearTimeout(I)},[N,L]),useEffect(()=>{if(!S)return;let I=setTimeout(()=>{if(S.getSearch()===N.trim())return;S.setSearch(N);let B=C.current;B&&(B.scrollTop=0),k(0),A(0);},150);return ()=>clearTimeout(I)},[S,N]),useEffect(()=>{V||!l||Y(new Set(l));},[l,V]),useEffect(()=>{V||l||Y(new Set(o.map(distinctEntryKey)));},[o,V,l]);let Ee=useCallback(I=>{C.current=I,I&&X(I.clientHeight||240);},[]);useEffect(()=>{let I=C.current;!I||D.current===null||u||I.scrollHeight<=I.clientHeight||(I.scrollTop=D.current,D.current=null,k(I.scrollTop));});let K=useMemo(()=>{if(N.trim()!=="")return le;let I=le.findIndex(Cr);return I<0?le:[...le.slice(0,I+1),di,...le.slice(I+1)]},[le,N]),se=useMemo(()=>{let I=K.length,B=Math.max(0,Math.floor(g/un)-Ls),te=Math.ceil(R/un)+Ls*2,pe=Math.min(B,Math.max(0,I-1)),ye=Math.min(I,pe+te);return {start:pe,end:ye,count:I,rows:K.slice(pe,ye)}},[K,g,R]);useEffect(()=>{let I=C.current;S&&I&&X(I.clientHeight||240);},[S,u,S?.isLoading(),S?.getRowCount()]);let ie=S?S.getWindow(g,Math.max(R,150)):null,ee=ie?.start??0,Se=ie?.end??0;useEffect(()=>{S&&S.ensure(ee,Se);},[S,ee,Se,g]);let c=S?S.getRowCount():K.length,De=S?!!ie&&P>=ie.start&&P<ie.end&&!!S.getRow(P):P>=se.start&&P<se.end,Ae=u||(S?S.isLoading():false),Me=In({anchor:a,onClose:w}),[it,Ue]=useState(null),ue=(it??Me.position.left)+(J?.width??260)+48<window.innerWidth?"right":"left",be=I=>{I.preventDefault(),I.stopPropagation();let B=Me.elementRef.current;if(!B)return;let te=B.getBoundingClientRect(),pe=ue,ye={x:I.clientX,y:I.clientY,w:te.width,h:te.height,left:te.left},fe=null,Ce=Je=>{let Z=Je.clientX-ye.x,ct=Je.clientY-ye.y,Dt=window.innerHeight-te.top-12,d=Math.min(Dt,Math.max(lf,ye.h+ct));if(pe==="right"){let tt=window.innerWidth-ye.left-12;fe={width:Math.min(tt,Math.max(Ps,ye.w+Z)),height:d},de(fe);}else {let tt=ye.left+ye.w,St=tt-12,We=Math.min(St,Math.max(Ps,ye.w-Z));fe={width:We,height:d},de(fe),Ue(tt-We);}C.current&&X(C.current.clientHeight);},Oe=()=>{if(window.removeEventListener("pointermove",Ce),window.removeEventListener("pointerup",Oe),fe){let Je=Mo.get(re);Mo.set(re,{scrollTop:Je?.scrollTop??C.current?.scrollTop??0,width:Math.round(fe.width),height:Math.round(fe.height)});}};window.addEventListener("pointermove",Ce),window.addEventListener("pointerup",Oe);},me=useCallback(I=>{M(true),Y(B=>{let te=new Set(B);if(I===NONBLANK_KEY){let pe=distinctNonBlankTicked(o,B);for(let ye of o)Cr(ye)&&!pe?te.delete(BLANK_KEY):te.add(distinctEntryKey(ye));return te}return te.has(I)?te.delete(I):te.add(I),te});},[o]),Be=useCallback(I=>A(I),[]),Pe=()=>{if(Ae)return;if(S){f(S.buildFilter(t));return}if(j.size===o.length){f(null);return}let I=o.filter(ye=>j.has(distinctEntryKey(ye))),B=I.some(Cr),te=I.filter(ye=>!Cr(ye)),pe;distinctNonBlankTicked(o,j)?pe={columnId:t,operator:"isnotnull"}:te.length===0?pe={columnId:t,operator:"isnull"}:B?pe={logic:"or",nodes:[{columnId:t,operator:"in",value:te.map(ye=>ye.value)},{columnId:t,operator:"isnull"}]}:pe={columnId:t,operator:"in",value:te.map(ye=>ye.value)},f(pe);},ae=I=>{let B=Math.max(0,Math.min(c-1,I));if(A(B),S){let fe=C.current;fe&&(I<=0||I>=c-1)&&(fe.scrollTop=I<=0?0:fe.scrollHeight),requestAnimationFrame(()=>{let Ce=Me.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${B}"]`);Ce?.focus(),Ce?.scrollIntoView?.({block:"nearest"});});return}let te=C.current;if(te){let fe=B*un,Ce=te.clientHeight||240,Oe=te.scrollTop;fe<Oe?Oe=fe:fe+un>Oe+Ce&&(Oe=fe+un-Ce),Oe!==te.scrollTop&&(te.scrollTop=Oe),k(Oe);}let pe=()=>Me.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${B}"]`),ye=pe();ye?(ye.focus(),ye.scrollIntoView?.({block:"nearest"})):requestAnimationFrame(()=>pe()?.focus());},Te=I=>I.key.length===1&&!I.ctrlKey&&!I.metaKey&&!I.altKey,ge=I=>{let B=I.target===$.current;if(!((I.key==="Enter"||I.key===" ")&&I.target instanceof HTMLButtonElement)){if(I.key==="Tab"){let te=Me.elementRef.current,pe=te?Array.from(te.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')):[],ye=pe[0],fe=pe[pe.length-1],Ce=document.activeElement;ye&&fe&&(!I.shiftKey&&(Ce===fe||Ce===te)?(I.preventDefault(),ye.focus()):I.shiftKey&&(Ce===ye||Ce===te)&&(I.preventDefault(),fe.focus()));return}if(I.key==="Backspace"&&!B){I.preventDefault(),$.current?.focus(),x(te=>te.slice(0,-1)),A(0);return}if(I.key==="ArrowDown"){I.preventDefault(),ae(B?0:P+1);return}if(I.key==="ArrowUp"){I.preventDefault(),ae(B?S?0:K.length-1:P-1);return}if(!B&&(I.key==="Home"||I.key==="End")){I.preventDefault(),ae(I.key==="Home"?0:c-1);return}if(I.key===" "&&!B){if(I.preventDefault(),S){let pe=S.getRow(P);pe&&S.toggle(pe);return}let te=K[P];te&&me(te===di?NONBLANK_KEY:distinctEntryKey(te));return}if(I.key==="Enter"){I.preventDefault(),Pe();return}!B&&Te(I)&&I.key!==" "&&(I.preventDefault(),$.current?.focus(),x(te=>te+I.key),A(0));}};return jsx(xt,{dark:p,children:jsxs("div",{ref:Me.ref,className:"kanuni-datagrid-filter-popup",style:{left:it??Me.position.left,top:Me.position.top,...J?{width:J.width,height:J.height,maxHeight:"none"}:null},role:"dialog","aria-label":v.popupAria.replace("{column}",n),tabIndex:-1,onKeyDown:ge,children:[jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${ue}`,"data-testid":"dg-filter-resize",onPointerDown:be}),jsx("input",{ref:Fe,className:"kanuni-datagrid-filter-search",type:"search",placeholder:v.search,value:N,onChange:I=>{x(I.target.value),A(0);},"data-testid":"dg-filter-search"}),!S&&h&&jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:v.truncated}),y&&jsx("button",{type:"button",className:"kanuni-datagrid-filter-custom","data-testid":"dg-filter-custom",onClick:y,children:v.custom}),jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsx("button",{type:"button",onClick:()=>{if(S)return S.selectAll();M(true),N.trim()===""?Y(new Set(o.map(distinctEntryKey))):Y(I=>{let B=new Set(I);for(let te of le)B.add(distinctEntryKey(te));return B});},children:v.selectAll}),jsx("button",{type:"button",onClick:()=>{if(S)return S.clear();M(true),N.trim()===""?Y(new Set):Y(I=>{let B=new Set(I);for(let te of le)B.delete(distinctEntryKey(te));return B});},children:v.clear})]}),jsxs("div",{ref:Ee,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true",tabIndex:De||c===0?-1:0,"aria-busy":Ae||void 0,"aria-setsize":c,onScroll:I=>{let B=I.target.scrollTop;k(B),D.current=null;let te=Mo.get(re);Mo.set(re,{...te,scrollTop:B});},children:[Ae&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:v.loading}),!Ae&&c===0&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:v.noMatch}),S&&ie&&c>0&&jsx("div",{style:{height:ie.totalHeight,position:"relative"},children:jsx("div",{style:{transform:`translateY(${ie.offsetY}px)`},children:Array.from({length:ie.end-ie.start},(I,B)=>{let te=ie.start+B,pe=S.getRow(te);return jsx(cf,{index:te,row:pe,active:te===P,checked:pe?S.isChecked(pe):false,text:v,onToggle:ye=>S.toggle(ye),onFocus:Be},te)})})}),!S&&se.count>0&&jsx("div",{style:{height:K.length*un,position:"relative"},children:jsx("div",{style:{transform:`translateY(${se.start*un}px)`},children:se.rows.map((I,B)=>{let te=se.start+B,pe=I===di,ye=pe?NONBLANK_KEY:distinctEntryKey(I);return jsx(df,{itemKey:ye,label:I.label,display:pe?v.nonBlank:Is(I,v),index:te,active:te===P,checked:pe?distinctNonBlankTicked(o,j):j.has(ye),onToggle:me,onFocus:Be},ye)})})})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",onClick:w,children:v.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:Pe,disabled:Ae,"data-testid":"dg-filter-apply",children:v.apply})]})]})})}function ci(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 fi({controller:e,columnId:t,surface:n,close:o}){let[l,a]=useState(()=>ci(e,t,n));useEffect(()=>(a(ci(e,t,n)),e.events.on("filterChanged",()=>{a(ci(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]),p=useCallback(()=>{},[]),f=e.getColumnModel().getDef(t);return f?.renderFilter?jsx(Fragment,{children:f.renderFilter({columnId:t,column:f,surface:n,value:l,setValue:u,close:o??p})}):null}var wf='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function Os({controller:e,columnId:t,headerLabel:n,anchor:o,dark:l,onClose:a}){let u=Ne(),p=In({anchor:o,onClose:a}),f=useRef(false),w=p.ref,y=useCallback(h=>{w(h),!(!h||f.current)&&(f.current=true,(h.querySelector(wf)??h).focus({preventScroll:true}));},[w]);return jsx(xt,{dark:l,children:jsx("div",{ref:y,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":u.filterPopupAria.replace("{column}",n),"data-column-id":t,children:jsx(fi,{controller:e,columnId:t,surface:"popup",close:a})})})}var mi="text/x-kanuni-column";function Rf({columns:e,levels:t,onSetLevels:n,maxLevels:o=1,onExpandAll:l,onCollapseAll:a,emptyText:u}){let p=Ne(),f=u??p.groupPanelHint,[w,y]=useState(false),h=useRef(null),[L,S]=useState(null),G=M=>e.find(C=>C.state.id===M)?.def.headerName??M,v=M=>{if(!M||t.includes(M))return;let $=t.length>=o?t.slice(0,o-1):[...t];n([...$,M]);},F=M=>n(t.filter($=>$!==M)),N=(M,$)=>{let C=t.filter(k=>k!==M),g=Math.max(0,Math.min(C.length,$));n([...C.slice(0,g),M,...C.slice(g)]);},x=(M,$,C)=>{if(M===$)return;let k=t.filter(R=>R!==M).indexOf($);k<0||N(M,C==="before"?k:k+1);},P=(M,$)=>{let C=M+$;C<0||C>=t.length||x(t[M],t[C],$<0?"before":"after");},A=(M,$)=>M<$.top+$.height/2?"before":"after",j=(M,$)=>{$.preventDefault(),$.stopPropagation();let C=A($.clientY,$.currentTarget.getBoundingClientRect());S(null),y(false);let g=h.current;if(h.current=null,g){x(g,t[M],C);return}let k=$.dataTransfer.getData(mi);if(!k||t.includes(k))return;if(t.length>=o){v(k);return}let R=C==="before"?M:M+1;n([...t.slice(0,R),k,...t.slice(R)]);},Y=(M,$,C)=>{let g=C.ctrlKey||C.metaKey;g&&(C.key==="ArrowUp"||C.key==="ArrowLeft")?(C.preventDefault(),P(M,-1)):g&&(C.key==="ArrowDown"||C.key==="ArrowRight")?(C.preventDefault(),P(M,1)):(C.key==="Delete"||C.key==="Backspace")&&(C.preventDefault(),F($));},V=e.filter(M=>!t.includes(M.state.id));return jsxs("div",{className:`kanuni-datagrid-group-panel${w?" kanuni-datagrid-group-panel--over":""}`,onDragOver:M=>{M.preventDefault(),y(true);},onDragLeave:()=>y(false),onDrop:M=>{if(M.preventDefault(),y(false),S(null),h.current){h.current=null;return}v(M.dataTransfer.getData(mi));},children:[t.length>0?jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((M,$)=>jsx("div",{className:`kanuni-datagrid-group-level${L?.index===$?` kanuni-datagrid-group-level--drop-${L.side}`:""}`,style:{"--dg-group-level":$},"data-group-level":$,onDragOver:C=>{C.preventDefault(),C.stopPropagation();let g=A(C.clientY,C.currentTarget.getBoundingClientRect());S(k=>k?.index===$&&k.side===g?k:{index:$,side:g});},onDragLeave:()=>S(C=>C?.index===$?null:C),onDrop:C=>j($,C),children:jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:o>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${fillText(p.groupLevelAria,{n:$+1})}: ${G(M)}`,onDragStart:C=>{h.current=M,C.dataTransfer.effectAllowed="move",C.dataTransfer.setData(mi,M);},onDragEnd:()=>{h.current=null,S(null);},onKeyDown:C=>Y($,M,C),children:[o>1&&jsx("span",{className:"kanuni-datagrid-group-chip-level",children:$+1}),G(M),jsx("button",{type:"button","aria-label":fillText(p.groupRemoveAria,{column:G(M)}),onClick:()=>F(M),children:"\xD7"})]})},M))}):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: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:o>1?p.groupAddLevel:p.groupByColumn}),o>1?jsxs("select",{value:"",disabled:V.length===0,onChange:M=>v(M.target.value),children:[jsx("option",{value:"",children:p.groupAddLevelButton}),V.map(M=>jsx("option",{value:M.state.id,children:M.def.headerName??M.state.id},M.state.id))]}):jsxs("select",{value:t[0]??"",onChange:M=>n(M.target.value?[M.target.value]:[]),children:[jsx("option",{value:"",children:p.groupNoGrouping}),e.map(M=>jsx("option",{value:M.state.id,children:M.def.headerName??M.state.id},M.state.id))]})]})]})]})}var gi=memo(Rf);function Ef({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:o,defs:l,values:a,checkboxColumn:u=false,detailColumn:p=false,statusColumn:f=false,rowNumberColumn:w=false,onPickSummary:y,emptyHint:h="",position:L="bottom",bandOffset:S=0,headerRowsBetween:G=0}){let v=Ne(),F=summaryTypeLabels(v),N=new Map(l.map(A=>[A.columnId,A])),x=en({statusColumn:f,rowNumberColumn:w,detailColumn:p,checkboxColumn:u}).total,P=(A,j,Y)=>{let V=A.state.id,M=N.get(V),$=M?a[summaryKey(M.columnId,M.type)]:void 0,C=A.def.dataType==="number"||A.def.dataType==="bigint",g=isChromeColumn(V)?void 0:y;return jsx("div",{className:`kanuni-datagrid-footer-cell${j}${C?" kanuni-datagrid-footer-cell--number":""}${M?" kanuni-datagrid-footer-cell--active":""}`,style:Y,role:"gridcell","data-column-id":V,"data-summary-type":M?.type??"",title:M?`${summaryLabel(M,F)} \u2014 ${A.def.headerName??V}`:void 0,onContextMenu:g?k=>g(V,k):void 0,onClick:g?k=>g(V,k):void 0,children:M?jsx("span",{className:"kanuni-datagrid-footer-value",children:formatSummaryValue(M,$,A.def)}):g?jsx("span",{className:"kanuni-datagrid-footer-hint",children:h}):null},V)};return jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${L}`,role:"row","aria-label":v.columnTotalsAria,style:{width:e.totalWidth+x,"--dg-band-offset":`${S}px`,"--dg-pinned-gap":String(G)},children:[x>0&&jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:x,insetInlineStart:0}}),e.left.map((A,j)=>P(A,` kanuni-datagrid-footer-cell--pinned${j===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:A.state.width,insetInlineStart:e.leftOffsets[j]+x})),n>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(A=>P(A,"",{width:A.state.width})),o>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:o}}),e.right.map((A,j)=>P(A,` kanuni-datagrid-footer-cell--pinned${j===0?" kanuni-datagrid-pin-edge-right":""}`,{width:A.state.width,insetInlineEnd:e.rightOffsets[j]}))]})}var vr=memo(Ef);function Sf(e,t){return `__dg_pinned_${e}_${t}`}function Gf({gridId:e,side:t,rows:n,rowKeys:o,onUserRowContextMenu:l,layout:a,columnModel:u,centerColumns:p,centerIndices:f,stickyInsets:w,leadingSpacer:y,trailingSpacer:h,checkboxColumn:L=false,detailColumn:S=false,statusColumn:G=false,rowNumberColumn:v=false,rowHeight:F,bandOffset:N=0,headerRowsBetween:x,ariaRowBase:P,rowClassFor:A}){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":`${N}px`,"--dg-pinned-gap":String(x)},children:n.map((j,Y)=>{let V=o?.[Y]??null,M={kind:"data",key:Sf(t,Y),sourceIndex:-1,data:j};return jsx(oo,{gridId:e,node:M,index:Y,layout:a,columnModel:u,centerColumns:p,centerIndices:f,stickyInsets:w,leadingSpacer:y,trailingSpacer:h,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:L,detailColumn:S,statusColumn:G,rowNumberColumn:v,rowNumber:null,headerRowCount:P,height:F,rowClass:A?.(M,Y,V),onRowContextMenu:V!==null&&l?($,C,g)=>l(V,j,g):void 0},M.key)})})}var Er=memo(Gf);function _s({controller:e,renderRow:t,width:n,bandOffset:o,headerRowsBetween:l,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(y=>y())},[e]);let p=useRef(null);useLayoutEffect(()=>{p.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:p,className:"kanuni-datagrid-sticky-groups","aria-hidden":"true",style:{width:n||"100%","--dg-band-offset":`${o}px`,"--dg-pinned-gap":String(l),"--dg-sticky-below":`${a}px`},children:f.map((w,y)=>jsx("div",{className:`kanuni-datagrid-sticky-group${y===f.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:w.offset,height:w.height,zIndex:f.length-y},children:t(w.node,w.index,w.height)},String(w.node.key)))})}function wi({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 No(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 Fn({anchor:e,onClose:t,children:n,dark:o,className:l="",label:a,role:u="dialog"}){let p=In({anchor:e,onClose:t});return jsx(xt,{dark:o,children:jsx("div",{ref:p.ref,className:`kanuni-datagrid-filter-popup ${l}`.trim(),style:{left:p.position.left,top:p.position.top},role:u,"aria-label":a,children:n})})}function _f(e){let t=Ne();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 $f=()=>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 Wf({controller:e,search:t=true,exportCsv:n=true,exportExcel:o=false,exportPdf:l=false,columnChooser:a=true,dark:u,onOpenColumnChooser:p,itemsBefore:f,itemsAfter:w,searchDebounce:y=200,searchOptions:h,exportMenu:L=true,labels:S}){let G=_f(S),[v,F]=useState(()=>e.getSearchText()),N=useRef(false),[x,P]=useState(null),[A,j]=useState(null),[Y,V]=useState(null),M=useId(),$=h?.debounce??y,C=h?.validate?.(v)??null,g=H=>{N.current=false;let D=H.trim();e.getSearchText()!==D&&e.setSearchText(D);},k=()=>{C===null&&g(v);};useEffect(()=>{if(C!==null||!N.current)return;let H=setTimeout(()=>g(v),$);return ()=>clearTimeout(H)},[e,v,$,C]),useEffect(()=>{let H=D=>{N.current||F(J=>J.trim()===D?J:D);};return H(e.getSearchText()),e.events.on("filterChanged",({searchText:D})=>H(D))},[e]);let[R,X]=useState(()=>e.getSelectedCount());useEffect(()=>(X(e.getSelectedCount()),e.events.on("selectionChanged",()=>X(e.getSelectedCount()))),[e]);let re=async H=>{P(H),V(null);let D=await No(e,H);D.error?V(D.error):j(null),P(null);};return jsxs("div",{className:"kanuni-datagrid-toolbar",children:[f,t&&jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:h?.placeholder??G.search,value:v,maxLength:h?.maxLength,"aria-label":h?.ariaLabel??G.search,"aria-invalid":C!==null||void 0,"aria-describedby":C!==null?M:void 0,"data-testid":"dg-toolbar-search",onChange:H=>{N.current=true,F(H.target.value);},onBlur:()=>{h?.applyOnBlur!==false&&k();},onKeyDown:H=>{H.key==="Enter"&&h?.applyOnBlur!==false&&k();}}),t&&C!==null&&jsx("span",{id:M,className:"kanuni-datagrid-toolbar-search-error",role:"alert","data-testid":"dg-toolbar-search-error",children:C}),jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:H=>{let D=H.currentTarget.getBoundingClientRect();p?.({left:D.left,top:D.bottom+2});},children:[jsx(wi,{name:"columns"}),jsx("span",{children:G.columns})]}),L&&(n&&e.canExportAll()||o||l)&&jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":G.exportMenu,title:G.exportMenu,disabled:x!==null,"data-testid":"dg-export-menu",onClick:H=>{let D=H.currentTarget.getBoundingClientRect();j(A?null:{left:D.right-190,top:D.bottom+2});},children:x?jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsx($f,{})}),A&&jsxs(Fn,{anchor:A,onClose:()=>j(null),dark:u,role:"menu",label:G.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:x!==null,"data-testid":"dg-export-csv",onClick:()=>re("csv"),children:x==="csv"?G.exporting:G.csv}),o&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:x!==null,"data-testid":"dg-export-excel",onClick:()=>re("excel"),children:x==="excel"?G.exporting:G.excel}),o&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:x!==null||R===0,"data-testid":"dg-export-excel-selected",onClick:()=>re("excel-selected"),children:x==="excel-selected"?G.exporting:G.excelSelected}),l&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:x!==null,"data-testid":"dg-export-pdf",onClick:()=>re("pdf"),children:x==="pdf"?G.exporting:G.pdf})]}),w,Y&&jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:Y})]})}var yi=memo(Wf);var Yf=8;function qf(e){let t=Ne();return useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function Ri({controller:e,columns:t,anchor:n,onClose:o,dark:l,labels:a}){let u=qf(a),[p,f]=useState(""),w=e.getColumnModel(),y=F=>w.getDef(F.id)?.headerName??F.id,h=t.filter(F=>!isChromeColumn(F.id)),L=h.filter(F=>!w.getDef(F.id)?.hideInChooser),S=h.filter(F=>F.visible).length,G=p.trim().toLocaleLowerCase(),v=G?L.filter(F=>y(F).toLocaleLowerCase().includes(G)):L;return jsxs(Fn,{anchor:n,onClose:o,dark:l,label:u.title,className:"kanuni-datagrid-column-chooser",children:[jsx("div",{className:"kanuni-datagrid-chooser-title",children:u.title}),L.length>Yf&&jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:u.search,"aria-label":u.search,value:p,onChange:F=>f(F.target.value)}),jsxs("div",{className:"kanuni-datagrid-filter-list",children:[v.length===0&&jsx("div",{className:"kanuni-datagrid-chooser-empty",children:u.empty}),v.map(F=>{let N=F.visible&&S===1;return jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsx("input",{type:"checkbox",checked:F.visible,disabled:N,"data-column-toggle":F.id,onChange:()=>e.setColumnVisible(F.id,!F.visible)}),jsx("span",{children:y(F)})]},F.id)})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",disabled:S===L.length,onClick:()=>L.forEach(F=>!F.visible&&e.setColumnVisible(F.id,true)),children:u.showAll}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:o,children:u.ok})]})]})}function Zf(e){let t=Ne();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 em({page:e,pageCount:t,pageSize:n,pageSizes:o=[25,50,100,250],totalRows:l,onPage:a,onNext:u,onPrevious:p,onPageSize:f,pageButtons:w=false,maxPageButtons:y,labels:h}){let L=Zf(h),S=e<=0,G=e>=t-1,v=l===0?0:e*n+1,F=Math.min(l,(e+1)*n),N=useRef(null),x=useRef(null);return useEffect(()=>{let P=x.current,A=N.current;if(!A||!(P instanceof HTMLButtonElement)||!P.disabled)return;let j=document.activeElement;if(j&&j!==document.body&&j!==P)return;let Y=A.querySelector('[aria-current="page"]')??A.querySelector("button:not(:disabled)");Y?.focus(),x.current=Y;},[e,t]),jsxs("div",{ref:N,className:"kanuni-datagrid-pager",role:"navigation","aria-label":L.navigation,onFocus:P=>{x.current=P.target;},onBlur:P=>{let A=P.relatedTarget;A&&!N.current?.contains(A)&&(x.current=null);},children:[jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsx("span",{children:L.rowsPerPage}),jsx("select",{value:n,"data-testid":"dg-page-size",onChange:P=>f(Number(P.target.value)),children:o.map(P=>jsx("option",{value:P,children:P},P))})]}),jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[v.toLocaleString(),"\u2013",F.toLocaleString()," ",L.of," ",l.toLocaleString()]}),jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsx("button",{type:"button","aria-label":L.first,disabled:S,onClick:()=>a(0),children:"\xAB"}),jsx("button",{type:"button","aria-label":L.previous,disabled:S,"data-testid":"dg-page-prev",onClick:p,children:"\u2039"}),w?pageButtonItems(e,t,y).map(P=>typeof P=="number"?jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":fillText(L.pageButton,{n:String(P+1)}),"aria-current":P===e?"page":void 0,onClick:()=>a(P),children:P+1},P):jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},P)):jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[L.page," ",e+1," ",L.of," ",t]}),jsx("button",{type:"button","aria-label":L.next,disabled:G,"data-testid":"dg-page-next",onClick:u,children:"\u203A"}),jsx("button",{type:"button","aria-label":L.last,disabled:G,onClick:()=>a(t-1),children:"\xBB"})]})]})}var Ci=memo(em);function lm(e){let t=Ne();return useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function sm({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:o,labels:l}){let a=lm(l),u=Ne(),[,p]=useState(0);useEffect(()=>e.events.on("filterChanged",()=>p(h=>h+1)),[e]);let f=e.getEffectiveFilter(),w=e.isFilterEnabled(),y=describeFilter(f,e.getColumnModel(),{...o,labels:{...filterLabels(u),...o?.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:y??void 0,"data-testid":"dg-filter-panel-text",children:y??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 ki=memo(sm);var Sr=e=>!e.separator&&!e.disabled;function Gr({x:e,y:t,items:n,context:o,onClose:l,dark:a=false,label:u}){let p=Ne(),f=useRef(null),[w,y]=useState({left:e,top:t}),[h,L]=useState(()=>n.findIndex(Sr)),[S,G]=useState(null),[v,F]=useState(null),N=useRef(null),[x,P]=useState(null);useEffect(()=>F(null),[S]);let A=useCallback((g,k)=>{if(G(g),g===null||!k)return;let R=k.getBoundingClientRect();P({left:R.left,right:R.right,top:R.top});},[]),j=g=>f.current?.querySelector(`[data-item-index="${g}"]`)??null,Y=useCallback(g=>{if(N.current=g,!g||!x)return;let k=8,R=g.getBoundingClientRect(),X=Math.max(k,Math.min(x.top-4,window.innerHeight-R.height-k)),H=x.right+R.width+k<=window.innerWidth?x.right:Math.max(k,x.left-R.width);F({left:H,top:X});},[x]),V=useCallback(g=>{if(f.current=g,!g)return;let k=g.getBoundingClientRect(),R=8;y({left:Math.max(R,Math.min(e,window.innerWidth-k.width-R)),top:Math.max(R,Math.min(t,window.innerHeight-k.height-R))}),g.focus();},[e,t]);useEffect(()=>{let g=R=>{let X=R.target;N.current?.contains(X)||f.current&&!f.current.contains(X)&&l();},k=()=>l();return document.addEventListener("mousedown",g),window.addEventListener("scroll",k,true),()=>{document.removeEventListener("mousedown",g),window.removeEventListener("scroll",k,true);}},[l]);let M=(g,k)=>{let R=n.length;for(let X=1;X<=R;X++){let re=(g+k*X+R*R)%R;if(Sr(n[re]))return re}return g},$=g=>{let k=n[g];if(!(!k||!Sr(k))){if(k.items?.length){A(g,j(g));return}k.onSelect?.(o),l();}},C=g=>{switch(g.key){case "ArrowDown":L(k=>M(k,1));break;case "ArrowUp":L(k=>M(k,-1));break;case "Home":L(n.findIndex(Sr));break;case "End":L(M(0,-1));break;case "ArrowRight":if(n[h]?.items?.length)A(h,j(h));else return;break;case "ArrowLeft":if(S!==null)A(null);else return;break;case "Enter":case " ":$(h);break;case "Escape":l();break;case "Tab":l();return;default:return}g.preventDefault(),g.stopPropagation();};return jsxs(xt,{dark:a,children:[jsx("div",{ref:V,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":u??p.rowActions,tabIndex:-1,style:{left:w.left,top:w.top},onKeyDown:C,children:n.map((g,k)=>g.separator?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},g.id??`sep-${k}`):jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${k===h?" kanuni-datagrid-menu-item--active":""}`,disabled:g.disabled,"data-item-index":k,"aria-haspopup":g.items?.length?"menu":void 0,"aria-expanded":g.items?.length?S===k:void 0,onMouseEnter:R=>{L(k),A(g.items?.length?k:null,R.currentTarget);},onClick:()=>$(k),children:[g.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:g.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:g.label}),g.shortcut&&jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:g.shortcut}),g.items?.length?jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},g.id??k))}),S!==null&&n[S]?.items?.length?jsx("div",{ref:Y,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:v?{left:v.left,top:v.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[S].items.map((g,k)=>g.separator?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},g.id??`sub-sep-${k}`):jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:g.disabled,onClick:()=>{g.onSelect?.(o),l();},children:[g.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:g.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:g.label})]},g.id??k))}):null]})}var um=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),Ei=um?"\u2318":"Ctrl+",Ys=`${Ei}C`,cm=`${Ei}X`,pm=`${Ei}V`;function lo(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
3
- `).length:0,()=>e.writeClipboard(n,"copy"));}function fm(e){navigator.clipboard?.writeText(e).catch(()=>{});}function mm(e){let t=e.getColumnModel();return e.getVisualColumnIds().some(n=>{let o=t.getDef(n)?.band;return typeof o=="string"?o!=="":Array.isArray(o)&&o.length>0})}function gm(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var wm={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function xi(e,t,n,o,l){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:Ys,onSelect:()=>lo(e)}),a.copyWithHeaders!==false&&u.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>lo(e,{includeHeaders:true})}),a.copyWithGroupHeaders!==false&&mm(e)&&u.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>lo(e,{includeGroupHeaders:true})});let p=gm(a.export).filter(f=>f!=="csv"||e.canExportAll());if(p.length>0){let f=e.getSelectedCount()===0;u.push({id:"__dg-export",label:t.menuExport,items:p.map(w=>({id:`__dg-export-${w}`,label:t[wm[w]],disabled:w==="excel-selected"&&f,onSelect:()=>{No(e,w).then(y=>{y.error&&l?.(y.error);});}}))});}return u.length>0&&o&&u.unshift({id:"__dg-sep-builtin",separator:true}),u}function Di(e,t,n,o){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)}),o?[{id:"__dg-sep-pin",separator:true},...a]:a}function Gi({anchor:e,value:t,dark:n,onCommit:o,onCancel:l}){let a=Ne(),[u,p]=useState(t),f=useRef(null);useEffect(()=>{let y=f.current;y&&(y.focus(),y.select());},[]);let w=()=>{let y=u.trim();o(y===""?null:y);};return jsxs(Fn,{anchor:e,onClose:l,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:y=>p(y.target.value),onKeyDown:y=>{y.key==="Enter"&&(y.ctrlKey||y.metaKey)&&(y.preventDefault(),w()),y.key==="Escape"&&(y.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 Cm(e){let t=Ne();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 km=new Set(["filtering","sorting","computing","encoding","exporting"]);function Ni({controller:e,delay:t=300,labels:n,cancellable:o=true,forced:l=false}){let[a,u]=useState(()=>e.getBusy()),[p,f]=useState(false);useEffect(()=>(u(e.getBusy()),e.events.on("busyChanged",G=>u(G))),[e]);let w=a.busy&&a.background!==true;useEffect(()=>{if(!w){f(false);return}let G=setTimeout(()=>f(true),t);return ()=>clearTimeout(G)},[w,t]);let y=Cm(n);if(!l&&(!p||!w))return null;let h=a.phase?y[a.phase]:y.busy,L=a.progress===null?null:Math.max(0,Math.min(100,a.progress)),S=o&&a.phase!==null&&km.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}),L!==null&&jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(L),"aria-valuemin":0,"aria-valuemax":100,children:[jsx("div",{className:"kanuni-datagrid-loading-track",children:jsx("div",{className:"kanuni-datagrid-loading-fill",style:{width:`${L}%`}})}),jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(L),"%"]})]}),S&&jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:y.cancel})]})})}var Qs=10;function Zs({fields:e,content:t,statusIcon:n=false,onPress:o}){let l=useRef(null),a=f=>f.closest(".kanuni-datagrid-scroller"),[u,...p]=e;return jsx("div",{role:"gridcell",className:`kanuni-datagrid-card${t!==void 0?" kanuni-datagrid-card--custom":""}${o?" kanuni-datagrid-card--pressable":""}`,"data-testid":"dg-card",onPointerDown:o?f=>{l.current={x:f.clientX,y:f.clientY,scrollTop:a(f.currentTarget)?.scrollTop??0,moved:false};}:void 0,onPointerMove:o?f=>{let w=l.current;w&&Math.hypot(f.clientX-w.x,f.clientY-w.y)>Qs&&(w.moved=true);}:void 0,onClick:o?f=>{let w=l.current;if(l.current=null,w){let y=(a(f.currentTarget)?.scrollTop??0)!==w.scrollTop,h=Math.hypot(f.clientX-w.x,f.clientY-w.y)>Qs;if(w.moved||y||h)return}o(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})]}),p.length>0&&jsx("dl",{className:"kanuni-datagrid-card-fields",children:p.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 ed({controller:e,sort:t,columns:n,text:o}){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:o.cardSortBy}),jsxs("select",{className:"kanuni-datagrid-cardbar-select",value:l?.columnId??"",onChange:u=>e.setSort(u.target.value?[{columnId:u.target.value,direction:l?.direction??"asc"}]:[]),children:[jsx("option",{value:"",children:o.none}),n.map(u=>jsx("option",{value:u.id,children:u.label},u.id))]})]}),l&&jsx("button",{type:"button",className:"kanuni-datagrid-cardbar-dir","aria-label":a?o.sortAsc:o.sortDesc,title:a?o.sortAsc:o.sortDesc,onClick:()=>e.setSort([{columnId:l.columnId,direction:a?"asc":"desc"}]),children:jsx("span",{"aria-hidden":"true",children:a?"\u2193":"\u2191"})})]})}var nd=44,od=20,rd=48,ad=640,td=null;function id(){return typeof document>"u"?null:(td??=document.createElement("canvas"),td.getContext("2d"))}function Mr(e){let t=getComputedStyle(e);return `${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function Dm(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function Sm(e){let t=e.map(o=>[o.style.width,o.style.minWidth,o.style.maxWidth]);for(let o of e)o.style.width="max-content",o.style.minWidth="0",o.style.maxWidth="none";let n=0;for(let o of e){let l=Math.ceil(o.getBoundingClientRect().width);l>n&&(n=l);}return e.forEach((o,l)=>{[o.style.width,o.style.minWidth,o.style.maxWidth]=t[l];}),n}function Nr(e,t){let n=id();if(!n)return null;let o=cssEscape(t),l=e.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${o}"]`),a=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${o}"]`);if(!l&&a.length===0)return null;let u=0;if(l){let p=l.querySelector(".kanuni-datagrid-header-label")??l;n.font=Mr(p),u=n.measureText(p.textContent??"").width+nd;}if(a.length>0){n.font=Mr(a[0]);let p=[];for(let f=0;f<a.length;f++){if(Dm(a[f])){p.push(a[f]);continue}let w=a[f].textContent??"";if(w==="")continue;let y=n.measureText(w).width+od;y>u&&(u=y);}p.length>0&&(u=Math.max(u,Sm(p)));}return u===0?null:Math.round(Math.min(ad,Math.max(rd,u)))}function Gm(e,t,n){let o=id();if(!o)return null;let l=e.querySelector(".kanuni-datagrid-header-label"),a=e.querySelector(".kanuni-datagrid-cell[data-column-id]"),u=0;l&&(o.font=Mr(l)),u=o.measureText(t).width+nd,a&&(o.font=Mr(a));for(let p of n){if(p==="")continue;let f=o.measureText(p).width+od;f>u&&(u=f);}return Math.round(Math.min(ad,Math.max(rd,u)))}function ld(e,t){let n=new Map,o=[];for(let f of t.getColumnStates()){if(!f.visible||f.flex)continue;let w=Nr(e,f.id);w!==null?n.set(f.id,w):o.push(f.id);}if(o.length===0)return n;let{start:l,end:a}=t.getVirtualWindow().rows,u=[];t.forEachDisplayedNode((f,w)=>{w>=l&&w<a&&f.kind==="data"&&u.push(f.data);});let p=t.getColumnModel();for(let f of o){let w=p.getDef(f),y=u.map(L=>cellDisplayText(w,p.getCellValue(L,f),L)),h=Gm(e,w?.headerName??f,y);h!==null&&n.set(f,h);}return n}function Pi(e,t){let n=useRef(t);n.current=t;let o=!!t?.enabled,l=t?.storageKey,a=t?.type;useEffect(()=>{if(o)return attachStateStoring(e,{...n.current,enabled:true})},[e,o,l,a]);}var Pr="application/x-kanuni-row";function Ii(e,t){let n=!!t?.enabled,o=t?.group??null,l=t?.allowReordering??true,a=t?.allowDropInsert??o!==null,[u,p]=useState(false),[f,w]=useState(null),y=useRef(null),h=useRef(false),L=useRef(null),S=useRef(null),G=useRef(t);G.current=t;let v=useCallback(g=>e.getRowByKey(g),[e]),F=(g,k)=>{let R=k.getBoundingClientRect();return g.clientY<R.top+R.height/2?"before":"after"},N=useCallback((g,k)=>{if(!isDataRow(g))return;S.current=g.key,L.current=g.key,h.current=false,y.current=null;let R={gridId:e.gridId,group:o,rowKey:g.key,row:g.data};k.dataTransfer.setData(Pr,JSON.stringify(R)),k.dataTransfer.setData("text/plain",String(g.key)),k.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:g.key}),k.stopPropagation();},[e,o]),x=useCallback(()=>{let g=L.current;g!==null&&e.notifyRowDragEnd({rowKey:g,dropped:h.current,overKey:y.current?.key??null,position:y.current?.side??null}),h.current=false,y.current=null,L.current=null,S.current=null,w(null),p(false);},[e]),P=useCallback(g=>g.dataTransfer.types.includes(Pr)?S.current!==null?l:a&&o!==null:false,[l,a,o]),A=useCallback((g,k)=>{if(!isDataRow(g)||!P(k))return;if(k.preventDefault(),k.dataTransfer.dropEffect="move",S.current===g.key){y.current=null,w(null);return}let R=F(k,k.currentTarget),X=y.current?.key!==g.key||y.current.side!==R;y.current={key:g.key,side:R},w(re=>re?.key===g.key&&re.side===R?re:{key:g.key,side:R}),X&&S.current!==null&&e.notifyRowDrag("move",{rowKey:S.current,overKey:g.key,position:R});},[P,e]),j=useCallback((g,k,R)=>{let X=null;try{let H=g.dataTransfer.getData(Pr);X=H?JSON.parse(H):null;}catch{X=null;}if(!X)return;if(X.gridId===e.gridId){if(!l)return;let H=G.current?.onReorder;if(H){H({dragKey:X.rowKey,targetKey:k,position:R,row:v(X.rowKey)});return}e.moveRow(X.rowKey,k,R);return}!a||o===null||X.group!==o||G.current?.onAdd?.({row:X.row,rowKey:X.rowKey,otherGridId:X.gridId,targetKey:k,position:R});},[e,l,a,o,v]),Y=useCallback((g,k)=>{if(w(null),!isDataRow(g)||!P(k))return;k.preventDefault(),k.stopPropagation();let R=F(k,k.currentTarget);h.current=true,y.current={key:g.key,side:R},j(k,g.key,R),S.current=null;},[P,j]),V=useCallback(g=>{P(g)&&(g.preventDefault(),g.dataTransfer.dropEffect="move");},[P]),M=useCallback(g=>{w(null),P(g)&&(g.preventDefault(),h.current=true,y.current=null,j(g,null,"after"),S.current=null);},[P,j]),$=useCallback(g=>{let k=g.relatedTarget;k&&g.currentTarget.contains(k)||S.current!==null&&(y.current=null,w(null),e.notifyRowDrag("leave",{rowKey:S.current}));},[e]);return {handlers:n?{draggable:u,setDraggable:p,onDragStart:N,onDragEnd:x,onDragOver:A,onDrop:Y}:void 0,dropAt:n?f:null,bodyHandlers:n?{onDragOver:V,onDrop:M,onDragLeave:$}:void 0}}var Fm=400;function dd(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function ud(e){return (e.textContent??"").trim()}function Om(e){let{def:t,node:n,value:o,clipped:l,note:a}=e;if(a)return a;if(t&&n){if(typeof t.tooltip=="function"){let u=t.tooltip({value:o,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 l&&l.length>0?l:null}function Ki({rootRef:e,columnModel:t,getRowNode:n,getNote:o,config:l,controller:a,gridId:u}){let p=l?.enabled!==false,f=l?.delay??Fm,w=l?.showOnTruncation!==false,y=l?.trigger??"hover",h=y!=="focus",L=y!=="hover"&&!!a&&!!u,S=l?.interactive===true,[G,v]=useState(null),F=useRef({columnModel:t,getRowNode:n,getNote:o,showOnTruncation:w,delay:f});return F.current={columnModel:t,getRowNode:n,getNote:o,showOnTruncation:w,delay:f},useEffect(()=>{if(!p){v(null);return}let N=e.current;if(!N)return;let x=null,P=null,A=null,j=null,Y=u?`${u}-tooltip`:void 0,V=()=>{j?.removeAttribute("aria-describedby"),j=null;},M=()=>{x!==null&&(clearTimeout(x),x=null),P!==null&&(clearTimeout(P),P=null),A=null,V(),v(null);},$=()=>{P!==null&&(clearTimeout(P),P=null);},C=()=>{P=null,V(),v(null);},g=()=>{$(),x!==null&&(clearTimeout(x),x=null);},k=()=>{if(!S){M();return}P!==null&&clearTimeout(P),P=setTimeout(C,150);},R=(K,se)=>{let{columnModel:ie,getRowNode:ee,getNote:Se}=F.current,c=ie.getDef(se);if(!c?.renderTooltip)return;let De=K.closest("[data-row-key]")?.dataset.rowKey,Ae=De===void 0?void 0:ee(De);if(!Ae||Se&&Se(Ae.key,se,Ae.data))return;let Me=c.renderTooltip({value:ie.getCellValue(Ae.data,se),row:Ae.data,node:Ae,column:c});return Me==null||Me===false?null:{content:Me}},X=(K,se,ie,ee)=>{let Se=ie?void 0:R(K,se);if(Se===null)return;let c=Se?"":ie?H(se,K):re(K,se);if(!Se&&!c)return;let De=K.getBoundingClientRect();$(),V(),ee&&Y&&(K.setAttribute("aria-describedby",Y),j=K),v({text:c??"",...Se?{content:Se.content}:{},anchor:{top:De.top,left:De.left,width:De.width,height:De.height},...S?{interactive:true,hold:g,release:M}:{},...Y?{id:Y}:{}});},re=(K,se)=>{let{columnModel:ie,getRowNode:ee,getNote:Se,showOnTruncation:c}=F.current,De=ie.getDef(se),Ae=K.closest("[data-row-key]")?.dataset.rowKey,Me=Ae===void 0?void 0:ee(Ae);return Om({def:De,node:Me,value:Me?ie.getCellValue(Me.data,se):void 0,clipped:c&&dd(K)?ud(K):null,note:Me&&Se?Se(Me.key,se,Me.data):null})},H=(K,se)=>{let ie=F.current.columnModel.getDef(K);if(ie?.headerTooltip)return ie.headerTooltip;if(!F.current.showOnTruncation)return null;let ee=se.querySelector(".kanuni-datagrid-header-label")??se;if(!dd(ee))return null;let Se=ud(ee);return Se.length>0?Se:null},D=K=>{if(!h)return;let ie=K.target?.closest("[data-column-id]")??null;if(ie===A){$();return}if(S&&P!==null?(x!==null&&(clearTimeout(x),x=null),A=null):M(),!ie||!N.contains(ie))return;let ee=ie.dataset.columnId;if(!ee)return;let Se=ie.classList.contains("kanuni-datagrid-header-cell");!Se&&!ie.closest("[data-row-key]")||(A=ie,x=setTimeout(()=>{x=null,!(A!==ie||!ie.isConnected)&&X(ie,ee,Se,false);},F.current.delay));},J=K=>{if(!h)return;let se=K.relatedTarget;A&&se&&A.contains(se)||k();},de=-1/0,Fe=()=>{de=Date.now();},Le=()=>{M();let K=a?.getFocus();!K||!u||(x=setTimeout(()=>{if(x=null,!N.contains(document.activeElement)&&Date.now()-de>1500)return;let se=document.getElementById(`${u}-cell-${String(K.rowKey)}-${K.columnId}`);!se||!N.contains(se)||(A=se,X(se,K.columnId,false,true));},F.current.delay));},le=L?a.events.on("focusChanged",Le):null,Ee=K=>{(!L||K.key==="Escape")&&M();};return N.addEventListener("mouseover",D),N.addEventListener("mouseout",J),N.addEventListener("mousedown",M),N.addEventListener("pointerdown",Fe),N.addEventListener("keydown",Ee),N.addEventListener("scroll",M,true),window.addEventListener("blur",M),()=>{M(),le?.(),N.removeEventListener("mouseover",D),N.removeEventListener("mouseout",J),N.removeEventListener("mousedown",M),N.removeEventListener("pointerdown",Fe),N.removeEventListener("keydown",Ee),N.removeEventListener("scroll",M,true),window.removeEventListener("blur",M);}},[p,e,h,L,S,a,u]),p?G:null}var pd=6,co=8;function Fi({state:e,dark:t}){let[n,o]=useState(null),[l,a]=useState(null),{text:u,anchor:p,content:f,interactive:w,hold:y,release:h,id:L}=e;return useLayoutEffect(()=>{if(!n)return;let{width:S,height:G}=n.getBoundingClientRect(),v=document.documentElement.clientWidth,F=document.documentElement.clientHeight,N=p.top+p.height+pd,x=p.top-G-pd,A=N+G+co<=F||x<co?N:x,j=Math.min(Math.max(co,p.left),Math.max(co,v-S-co));a({top:Math.min(A,F-G-co),left:j});},[n,u,f,p]),jsx(xt,{dark:t,kind:"tooltip",children:jsx("div",{ref:o,id:L,className:w?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:w?y:void 0,onMouseLeave:w?h:void 0,style:l?{top:l.top,left:l.left}:{top:0,left:0,visibility:"hidden"},children:f??u})})}function Lr(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 md=Lr(getGridDictionary("en"));function Oi(e,t){let n={...md,...t.labels},{controller:o,maxGroupLevels:l}=t,a=e.columnId,u=o.getColumnModel().getDef(a),p=o.getSort(),f=p.find(P=>P.columnId===a),w=o.getGroupLevels(),y=w.includes(a),h=u?.sortable!==false,L=o.getColumnStates().find(P=>P.id===a)?.pinned??null,S=u?.groupable!==false,G=o.canGroup(),v=[{id:"sort-asc",label:n.sortAsc,disabled:!h||f?.direction==="asc",onSelect:()=>o.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!h||f?.direction==="desc",onSelect:()=>o.setSort([{columnId:a,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!f,onSelect:()=>o.setSort(p.filter(P=>P.columnId!==a))},{id:"sep-1",separator:true}];G&&v.push({id:"group",label:y?n.ungroup:n.groupBy,disabled:!S,onSelect:()=>{y?o.groupBy(w.filter(P=>P!==a)):o.groupBy([...w,a].slice(-l));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&v.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),v.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:o.getColumnStates().filter(P=>P.visible).length<=1,onSelect:()=>o.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 F=o.getColumnStates().filter(P=>P.visible&&P.pinned===L).map(P=>P.id),N=F.indexOf(a),x=u?.reorderable!==false&&N>=0;return v.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!x||N<=0,onSelect:()=>o.moveColumn(a,F[N-1])},{id:"move-right",label:n.moveRight,disabled:!x||N<0||N>=F.length-1,onSelect:()=>o.moveColumn(a,F[N+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:L==="left",onSelect:()=>o.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:L==="right",onSelect:()=>o.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:L==="sticky",onSelect:()=>o.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:L===null,onSelect:()=>o.setColumnPinned(a,null)}),v}var kn=typeof window<"u"?useLayoutEffect:useEffect,Rd=1e8,Ir=null;function kd(){if(Ir!==null)return Ir;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=`${Rd}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=Rd;let n=e.scrollTop;return Vi=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(Ir=n),Ir}var Vi=null;function mg(){return Vi===null&&kd(),Vi}function $i(e){return Math.abs(e)}function Cd(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(p=>p.spanRows?{...p,spanRows:void 0}:p)};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?Wi(e):e;let{groupBy:n,groupSummaries:o}=e.grouping,l=n==null?[]:typeof n=="string"?[n]:n;if(l.length<=1&&!o)return e.masterDetail?Wi(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?Wi(a):a}function Wi(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 gg(e){return jsx(ca,{locale:e.locale,messages:e.messages,children:jsx(ya,{theme:e.theme,density:e.density,palette:e.palette,portalContainer:e.portalContainer,children:jsx(wg,{...e})})})}function wg(e){let t=Ne(),{className:n,style:o,dark:l=false,theme:a,palette:u,striped:p=true,emptyText:f,sortable:w=true,autoHeaderHeight:y=false,filterRow:h=false,headerFilter:L=false,filterIconMode:S="hover",columnReorder:G=true,columnResize:v=true,loadingOverlay:F=true,announcements:N=true,groupPanel:x=false,showRowCount:P=false,toolbar:A=false,toolbarExcel:j=false,toolbarPdf:Y=false,filterPanel:V=false,filterPanelLabels:M,onOpenFilterBuilder:$,toolbarItemsBefore:C,toolbarItemsAfter:g,renderRow:k,stateStoring:R,headerMenu:X=true,focusedRow:re=false,focusedRowKey:H,onFocusedRowChanged:D,footer:J,footerMenu:de=true,pinFooterToBottom:Fe=false,onRowClick:Le,onRowActivate:le,onReady:Ee,onKeyDown:K,renderCellContent:se,getCellClassName:ie,renderOverlay:ee,onCellPointerDown:Se,onCellPointerEnter:c,onCellDoubleClick:De,onHeaderClick:Ae,getHeaderClassName:Me,renderHeaderLabel:it,enterpriseEdition:Ue=false,renderDetail:ue,renderEditForm:be,density:me,rowMenu:Be,cellMenu:Pe,autoColumns:ae,rowDrag:Te,tooltip:ge,pinnedTopRows:I,pinnedBottomRows:B,footerPosition:te="bottom",autoSizeStrategy:pe="none",highlightSearch:ye=true,...fe}=e,Ce=useMemo(()=>{let r=fe.columns;if(r&&r.length>0)return r;let b=fe.dataSource;if(!Array.isArray(b)||b.length===0)return r??[];let E=typeof ae=="object"?ae:void 0;return ae===false?r??[]:inferColumns(b,E)},[fe.columns,fe.dataSource,ae]),Oe={...fe,columns:Ce},Je=isPackagedTheme(a)?THEME_ROW_HEIGHT[a][me??"normal"]:me?DENSITY_ROW_HEIGHT[me]:DEFAULT_ROW_HEIGHT,Z=Oe.rowHeight===void 0?{...Oe,rowHeight:Je}:Oe,ct=Ue?Number.POSITIVE_INFINITY:1,Dt=Kr(Z,Ue),{controller:d,rows:tt,window:St,layout:We,sort:Gt,rowHeight:pt,visibleCount:nt}=ua(Dt),Qe=e.cardView,Mt=Qe?Qe===true?"on":`${Qe.breakpoint??""}|${Qe.height??""}|${(Qe.columns??[]).join("|")}`:"",Nt=useMemo(()=>resolveCardView(Qe),[Mt]),[qe,Tt]=useState(false),Ot=useRef(Nt);kn(()=>{Ot.current=Nt;let r=Vt.current;Tt(r?showsCards(cardViewWidth(r),Nt):false);},[Nt]);let lt=qe?cardColumnIds(d.getColumnModel(),Nt):null,jt=lt?JSON.stringify(lt):"",rt=useMemo(()=>lt,[jt]);useEffect(()=>{let r=Qe&&Qe!==true?Qe.height:void 0;d.setDataRowHeight(rt?typeof r=="number"&&r>0?Math.max(44,r):cardHeight(rt.length):null);},[d,rt,Mt]);let ot=e.onCardViewChange,Pt=useRef(false);useEffect(()=>{qe!==Pt.current&&(Pt.current=qe,ot?.(qe));},[qe,ot]);let Ve=useRef(null),Xe=normalizeRowStatus(e.rowStatus),Ke=gs(d,e.editing,Ue,{renderCellContent:se,getCellClassName:ie,onCellDoubleClick:De},qe,{rootRef:Ve,rowHeight:pt,dark:l,savedDuration:Xe?.savedDuration??0,cardPopup:qe&&!!Qe&&Qe!==true&&Qe.edit==="popup"}),st=Ke.rowStatusSource??e.rowStatusSource??null,i=Eo(d);i.effectiveRow=st?.effectiveRow?r=>st.effectiveRow(r):null;let O=r=>{if(!Xe||r.kind!=="data")return {};let b=resolveRowStatus(Xe,r.data,r.key,st);return b?{rowStatus:b.status,rowStatusText:rowStatusDescription(b,t),rowStatusTint:Xe.tint,rowStatusStrike:Xe.strike}:{}},Q=e.rowClassName,z=(r,b,E=r.key)=>{if(!Q||r.kind!=="data")return;let U=r,ce=st?.effectiveRow?.(E)??U.data,we=Xe?resolveRowStatus(Xe,ce,E,st)?.status??null:st?.getRowStatus(E)??null,he=Q({row:ce,node:U,rowKey:E,status:we,index:b});return typeof he=="string"&&he.trim()!==""?he.trim():void 0},ne=Qe&&Qe!==true?Qe:null,s=e.openCardEditor??Ke.openCardEditor,m=qe,T=(r,b)=>{let E=rt?.[0];E!==void 0&&!d.focusCell(r.key,E)||(ne?.onCardPress?.(r.key,r,b),!b.defaultPrevented&&ne?.edit==="popup"&&s?.(r.key));},W=r=>{let b=d.getColumnModel(),E=st?.effectiveRow?.(r.key)??r.data,U=cardFields(b,rt??[],E).map(ce=>{let we=b.getDef(ce.columnId);if(!we?.lookup||we.valueFormatter)return ce;let he=i.label(we,ce.columnId,b.getCellValue(E,ce.columnId),r.data,r.key);return he===bn?{...ce,text:"",pending:true}:he===null?ce:{...ce,text:he}});return {row:E,fields:U}},oe=!!Xe?.icons,_=ne?.renderCard,q=r=>{let b=r.node,{row:E,fields:U}=W(b),ce;if(_){let we=Xe?resolveRowStatus(Xe,E,b.key,st)?.status??null:st?.getRowStatus(b.key)??null;ce=_({row:E,node:b,fields:U,selected:r.selected,status:we})??null;}return jsx(Zs,{fields:U,content:ce,statusIcon:oe,onPress:m?we=>T(b,we):void 0})};useEffect(()=>{if(qe||!Xe?.messages){d.setMessageRows([],pt);return}let r=Xe.get,b=rowMessageKeys(Xe,st).filter(E=>{if(!r)return true;let U=d.getDataRowNode(E)?.data;if(U===void 0)return true;let ce=r({row:U,rowKey:E});return ce===void 0||ce==="error"});d.setMessageRows(b,pt);});let ke=(r,b)=>{if(!Xe)return null;let E=rowMessageModel(Xe,r,b,st,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:E.text,children:E.text}),E.retry&&jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-retry",onClick:E.retry,children:t.rowStatusRetry}),E.remove&&jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-delete",onClick:E.remove,children:t.rowStatusDelete})]})},Re=resolveToolbar(A),ve=Ke.renderCellContent,ze=Ke.getCellClassName,Ye=Ke.onCellDoubleClick,Ze=Oa(d,e.printLayout,Ve),fo=Ze.active?{...St,rows:{...St.rows,start:0,end:tt.length,offsetY:0,totalHeight:0}}:St,mo=useMemo(()=>Ce.some(r=>r.autoHeight===true),[Ce]),zi=L&&d.canListDistinctValues();L&&!zi&&fe.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 Vt=useRef(null);kn(()=>{d.setEnterpriseEdition(Ue);},[d,Ue]),useEffect(()=>{Ee?.(d);},[d,Ee]),kn(()=>{let r=kd();r!==null&&r<DEFAULT_MAX_SCROLL_OFFSET&&d.setMaxScrollOffset(r);let b=mg();b!==null&&d.setMaxCanvasHeight(b);},[d]),kn(()=>{let r=Vt.current;if(!r)return;let b=()=>{d.setViewportSize(r.clientWidth,r.clientHeight),Ot.current&&Tt(showsCards(cardViewWidth(r),Ot.current)),r.style.setProperty("--dg-viewport-width",`${r.clientWidth}px`);let ce=r.querySelector(".kanuni-datagrid-rows"),we=r.querySelector(".kanuni-datagrid-canvas");if(ce&&we){let he=ce.getBoundingClientRect(),$e=we.getBoundingClientRect();d.setChromeOffsets(he.top-$e.top,$e.bottom-he.bottom);}calibrateMaxScrollOffset(r,d);};if(b(),typeof ResizeObserver>"u")return;let E=new ResizeObserver(b);E.observe(r);let U=r.querySelector(".kanuni-datagrid-canvas");return U&&E.observe(U),()=>E.disconnect()},[d]),kn(()=>{if(!y)return;let r=Vt.current?.querySelector(".kanuni-datagrid-canvas"),b=r?.querySelector(".kanuni-datagrid-header");if(!r||!b)return;let E=null,U=()=>{let we=b.offsetHeight,he=we>0?`${we}px`:null;he!==E&&(E=he,he?r.style.setProperty("--dg-header-actual",he):r.style.removeProperty("--dg-header-actual"));};U();let ce=typeof ResizeObserver>"u"?null:new ResizeObserver(U);return ce?.observe(b),()=>{ce?.disconnect(),r.style.removeProperty("--dg-header-actual");}},[d,y]),kn(()=>{if(!mo)return;let r=Vt.current?.querySelector(".kanuni-datagrid-viewport");if(!r)return;let b=d.getVirtualWindow(),E=d.getRows(),U=new Map(d.getMeasuredRowHeights()),ce=false;for(let we=b.rows.start;we<b.rows.end;we++){let he=E[we];if(!he||he.kind!=="data")continue;let $e=r.querySelector(`[data-row-key="${cssEscape(String(he.key))}"]`);if(!$e)continue;let _e=$e.getBoundingClientRect().height;_e>0&&U.get(he.key)!==_e&&(U.set(he.key,_e),ce=true);}ce&&d.setMeasuredRowHeights(U);}),useEffect(()=>{if(mo)return d.events.on("columnStateChanged",()=>{d.clearMeasuredRowHeights();})},[d,mo]),useEffect(()=>d.events.on("scrollRequested",r=>{let b=Vt.current;if(!b)return;r.scrollTop!==void 0&&(b.scrollTop=r.scrollTop),r.scrollLeft!==void 0&&(b.scrollLeft=Cd(r.scrollLeft,b)),d.setScroll(b.scrollTop,$i(b.scrollLeft));let E=r.scrollTop;E===void 0||Math.abs(b.scrollTop-E)<=1||setTimeout(()=>{let U=Vt.current;!U||Math.abs(U.scrollTop-E)<=1||(U.scrollTop=E,d.setScroll(U.scrollTop,$i(U.scrollLeft)));},0);}),[d]);let Yi=Aa(d,e.alignedGrids,Vt),Ed=useCallback(r=>{let b=r.currentTarget;d.setScroll(b.scrollTop,$i(b.scrollLeft)),Yi.syncScroll(b.scrollLeft);},[d,Yi]),xd=useCallback((r,b)=>d.toggleSort(r,b),[d]);Pi(d,R);let An=Ii(d,Te);useEffect(()=>{H!=null&&d.getFocusedRowKey()!==H&&d.focusRow(H);},[d,H]),useEffect(()=>{if(D)return d.events.on("focusedRowChanged",r=>D({rowKey:r.rowKey,row:r.row}))},[d,D]);let[Or,Dd]=useState(null);useEffect(()=>d.events.on("overlayChanged",r=>{Dd(r.manual?r.overlay:null);}),[d]);let Sd=useCallback(r=>{let b=d.getDataRowNode(r);if(b)return b;if(r==="")return;let E=Number(r);return Number.isNaN(E)?void 0:d.getDataRowNode(E)},[d]),vt=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 Fo=!!vt?.onChange&&vt.menu!==false,Oo=useCallback((r,b,E)=>vt?vt.get({rowKey:r,columnId:b,row:E})??null:null,[vt]),qi=Ki({rootRef:Ve,columnModel:d.getColumnModel(),getRowNode:Sd,getNote:vt?Oo:void 0,config:ge,controller:d,gridId:fe.gridId}),[Xi,Gd]=useState(0);useEffect(()=>{let r=new Set,b=[d.events.on("cellsFlashed",({rowKeys:E,columnIds:U,duration:ce})=>{let we=Ve.current;if(!we)return;let he=E.length?E.map(je=>`[data-row-key="${cssEscape(String(je))}"]`).join(","):".kanuni-datagrid-row",$e=U.length?U.map(je=>`[data-column-id="${cssEscape(je)}"]`).join(","):"[data-column-id]",_e=[];we.querySelectorAll(he).forEach(je=>{je.querySelectorAll($e).forEach(ht=>_e.push(ht));});for(let je of _e)je.classList.remove("kanuni-datagrid-cell--flash");we.offsetWidth;for(let je of _e)je.classList.add("kanuni-datagrid-cell--flash");let dt=setTimeout(()=>{for(let je of _e)je.classList.remove("kanuni-datagrid-cell--flash");r.delete(dt);},ce);r.add(dt);}),d.events.on("cellsRefreshed",({revision:E})=>Gd(E))];return ()=>{b.forEach(E=>E()),r.forEach(clearTimeout);}},[d]);let Md=useCallback((r,b)=>d.moveColumn(r,b),[d]),Nd=useCallback((r,b,E)=>d.setColumnWidth(r,b,E??true),[d]),Hr=useCallback(r=>{if(!Ve.current)return;let b=Nr(Ve.current,r);b!==null&&d.setColumnWidth(r,b);},[d]),Ar=useCallback(()=>{let r=Ve.current;if(r)for(let[b,E]of ld(r,d))d.setColumnWidth(b,E);},[d]),Br=useRef(null),[Ho]=useState(()=>new RowMotion),ji=e.animateRows===true;useEffect(()=>{d.setAnimateRows(ji);},[d,ji]),useEffect(()=>{let r=()=>{d.getAnimateRows()&&Ho.capture(Br.current);},b=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(E=>d.events.on(E,r));return ()=>{b.forEach(E=>E()),Ho.dispose();}},[d,Ho]),kn(()=>{d.getAnimateRows()&&Ho.play(Br.current);}),useEffect(()=>{if(pe!=="fitGrid")return;let r=()=>d.sizeColumnsToFit();return r(),d.events.on("gridSizeChanged",r)},[d,pe]);let _r=useRef(null);kn(()=>{if(pe!=="fitCells"){_r.current=null;return}_r.current!==d&&Ve.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(_r.current=d,Ar());});let[$r,Ji]=useState({}),[Wr,Qi]=useState({}),Bn=useRef(Wr);Bn.current=Wr;let Zi=useRef($r);Zi.current=$r;let el=e.filterDebounce??(d.isRemote()?200:0),Vr=useRef(false),Ao=useMemo(()=>datePeriodLabels(t),[t]),Ur=useRef(Ao);Ur.current=Ao;let Pd=useMemo(()=>periodSuggestionList(Ao),[Ao]),_n=useCallback((r,b)=>{let E=d.getColumnModel(),U=E.getDataType(r),ce=findCustomFilterOperator(E.getDef(r),Bn.current[r]??"");Vr.current=true;try{d.setColumnFilter(r,ce?parseCustomFilterInput(r,b,ce):parseFilterInput(r,b,U,Ur.current),FILTER_PART_ROW);}finally{Vr.current=false;}},[d]),Ut=useMemo(()=>createDebouncedCommit(el),[el]);useEffect(()=>()=>Ut.cancelAll(),[Ut]);let Ld=useCallback((r,b)=>{Ji(E=>({...E,[r]:b})),Ut.schedule(r,()=>_n(r,b));},[_n,Ut]),Id=useCallback((r,b)=>{Bn.current={...Bn.current,[r]:b},Qi(Bn.current),Ut.cancel(r),_n(r,Zi.current[r]??"");},[_n,Ut]),Kd=useCallback(r=>{if(d.getColumnModel().getDef(r)?.renderFilter)return jsx(fi,{controller:d,columnId:r,surface:"row"})},[d]),Fd=useCallback((r,b)=>{Ut.cancel(r),_n(r,b);},[_n,Ut]);useEffect(()=>d.events.on("filterChanged",()=>{if(Vr.current)return;let r=d.getColumnModel();Qi(b=>{let E=null;for(let U of r.getOrder()){let ce=r.getDef(U);if(!ce?.filterOperators?.length||Ut.isPending(U))continue;let we=d.getColumnFilter(U,FILTER_PART_ROW),he=b[U]??"",$e=he;we?$e=customFilterInputFromNode(we,ce)?.operatorId??"":findCustomFilterOperator(ce,he)?.operandType==="none"&&($e=""),$e!==he&&(E??={...b},E[U]=$e);}return E&&(Bn.current=E),E??b}),Ji(b=>ni(b,{isPending:E=>Ut.isPending(E),textFor:E=>{let U=d.getColumnFilter(E,FILTER_PART_ROW);if(!U)return "";let ce=customFilterInputFromNode(U,r.getDef(E));return ce?ce.text:!isFilterGroup(U)&&!isBuiltInFilterOperator(U.operator)?null:filterInputFromNode(E,U,r.getDataType(E),Ur.current)}},r.getOrder()));}),[d,Ut]);let[at,Ht]=useState(null),Tn=useRef(null);useEffect(()=>{!at&&Tn.current&&(Tn.current.dispose(),Tn.current=null);},[at]);let $n=useRef(0),[Wn,zr]=useState(null),Yr=useRef(null),Jt=useCallback(r=>{let b=document.activeElement instanceof HTMLElement?document.activeElement:null;if(b?.closest(".kanuni-datagrid-portal"))return;let E=b&&Ve.current&&b!==Ve.current&&b.contains(Ve.current)?null:b;Yr.current={el:E,columnId:E?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??r??null};},[]),Od=useCallback((r,b)=>{Jt(r);let E=b.getBoundingClientRect(),U=d.getColumnModel().getDef(r),ce={left:E.left,top:E.bottom+2},we=U?.headerName??r;if(U?.renderFilter){++$n.current,Ht(null),zr({columnId:r,label:we,anchor:ce});return}zr(null);let he=d.getColumnFilter(r,FILTER_PART_SET)??d.getColumnFilter(r,FILTER_PART_DEFAULT);if(!d.isRemote()){let dt=++$n.current;Ht({columnId:r,label:we,entries:[],selected:null,anchor:ce,loading:true}),d.getDistinctValueSetAsync(r).then(({entries:je,truncated:ht})=>{$n.current===dt&&Ht(Xo=>Xo&&Xo.columnId===r?{...Xo,entries:je,truncated:ht,capped:ht,selected:selectedLabelsFromFilter(he,je,{text:d.getColumnModel().getDataType(r)==="string"}),loading:false}:Xo);});return}let $e=++$n.current,_e=d.openRemoteDistinct(r,un);if(_e){Tn.current?.dispose(),Tn.current=_e,Ht({columnId:r,label:we,entries:[],selected:null,anchor:ce,loading:true,pager:_e}),_e.start().then(dt=>{if($n.current!==$e){_e.dispose();return}if(dt.kind==="paged"){Ht(ht=>ht&&ht.columnId===r?{...ht,loading:false}:ht);return}_e.dispose(),Tn.current===_e&&(Tn.current=null);let je=d.sortDistinctEntries(dt.values);Ht(ht=>ht&&ht.columnId===r?{...ht,pager:void 0,entries:je,selected:selectedLabelsFromFilter(he,je,{text:d.getColumnModel().getDataType(r)==="string"}),loading:false}:ht);});return}Ht({columnId:r,label:we,entries:[],selected:null,anchor:ce,loading:true}),d.getDistinctValuesAsync(r).then(dt=>{$n.current===$e&&Ht(je=>je&&je.columnId===r?{...je,entries:dt,selected:selectedLabelsFromFilter(he,dt,{text:d.getColumnModel().getDataType(r)==="string"}),loading:false}:je);});},[d,Jt]),Hd=useCallback(r=>{at&&(d.setColumnFilter(at.columnId,r,FILTER_PART_SET),Ht(null));},[d,at]),Ad=Object.keys(d.getColumnStates().reduce((r,b)=>(d.getColumnFilter(b.id)&&(r[b.id]=true),r),{})),Vn=d.getSelectionMode(),wt=Vn!=="none"&&(fe.selection?.checkboxColumn??false),tl=(fe.selection?.rowClick??(wt?"toggle":"replace"))==="toggle",Bd=useCallback((r,b)=>{if(d.isRowLeavePending())return;let E=d.getFocus();d.hasRowLeaving()&&E&&E.rowKey!==r.key&&(b.target.closest?.("[data-column-id]")||!d.focusCell(r.key,E.columnId))||d.handleRowClick(r.key,{ctrlKey:b.ctrlKey||tl&&!b.shiftKey,metaKey:b.metaKey,shiftKey:b.shiftKey});},[d,tl]),_d=useCallback((r,b)=>d.focusCell(r.key,b),[d]),$d=useCallback(r=>d.toggleRow(r.key),[d]),[Un,qr]=useState(null),Wd=useCallback(()=>qr(null),[]),[go,Xr]=useState(null),nl=useCallback((r,b)=>{let U=(Ve.current?.querySelector(`[data-row-key="${cssEscape(String(r))}"] [data-column-id="${cssEscape(b)}"]`)??Ve.current)?.getBoundingClientRect();return {left:U?.left??0,top:(U?.bottom??0)+2}},[]),Vd=useCallback(r=>{let b=go;Xr(null),!(!b||!vt?.onChange)&&vt.onChange({rowKey:b.rowKey,columnId:b.columnId,row:b.row,text:r});},[go,vt]),ol=useCallback((r,b)=>{if(!vt?.onChange||vt.menu===false)return [];let E=r.columnId;if(!E)return [];let U=d.getRowKey(r.row),ce=Oo(U,E,r.row),we=()=>Xr({rowKey:U,columnId:E,row:r.row,text:ce??"",anchor:nl(U,E)}),he=[];return b&&he.push({separator:true,id:"__note-sep"}),he.push({id:"__note-edit",label:ce?t.editNote:t.addNote,onSelect:we}),ce&&he.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>vt.onChange?.({rowKey:U,columnId:E,row:r.row,text:null})}),he},[vt,d,Oo,nl,t]),[Bo,_o]=useState(null),jr=useRef({x:0,y:0}),rl=useCallback(r=>xi(d,t,Pe,r,b=>{_o({message:b,...jr.current}),console.error("[datagrid] export failed:",b);}),[d,t,Pe]),$o=useCallback((r,b,E,U,ce)=>{if(E.kind!=="data")return;Jt();let we={row:E.data,node:E,rowIndex:U,columnId:ce,selectedKeys:d.getSelectedKeys()},he=(typeof Be=="function"?Be(we):Be)??[],$e=Ke.editRowMenuItem(E.key),_e=$e?[...he,...he.length>0?[{id:"dg-sep-edit",separator:true}]:[],$e]:he,dt=ol(we,_e.length>0),je=Di(d,t,E.key,_e.length+dt.length>0),ht=[..._e,...dt,...je,...rl(_e.length+dt.length+je.length>0)];ht.length!==0&&(jr.current={x:r,y:b},_o(null),qr({x:r,y:b,items:ht,context:we}));},[Be,d,t,ol,rl,Jt,Ke.editRowMenuItem]),al=useCallback((r,b,E)=>{let U=Di(d,t,r,false);if(U.length===0)return;E.preventDefault(),Jt();let ce={row:b,node:{kind:"data",key:r,sourceIndex:-1,data:b},rowIndex:-1,columnId:E.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:d.getSelectedKeys()};jr.current={x:E.clientX,y:E.clientY},_o(null),qr({x:E.clientX,y:E.clientY,items:U,context:ce});},[d,t,Jt]),il=useCallback(r=>r?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),zn=useCallback((r,b,E,U,ce)=>{let we=U??-1;r&&d.notifyRow(r,E,we);let he=il(ce);he!==null&&d.notifyCell(b,E,we,he);},[d,il]),Ud=useCallback((r,b,E)=>{Le?.(r),zn("rowClicked","cellClicked",r,b,E);},[Le,zn]),zd=useCallback((r,b,E)=>{le?.(r),zn("rowDoubleClicked","cellDoubleClicked",r,b,E);},[le,zn]),Yd=useCallback((r,b,E)=>{if(zn(null,"cellContextMenu",r,b,E),r.kind!=="data"||!Be&&!Fo&&Pe===false&&!d.isRowPinningEnabled()&&Ke.editRowMenuItem(r.key)===null||(E.preventDefault(),d.isRowLeaveBlocked(r.key)))return;d.isRowSelected(r.key)||d.handleRowClick(r.key,{});let U=E.target.closest("[data-column-id]")?.dataset.columnId??null;$o(E.clientX,E.clientY,r,b,U);},[Be,Fo,Pe,d,$o,zn,Ke.editRowMenuItem]),[qd,Xd]=useState(null),[jd,Jd]=useState(null),[Jr,Qd]=useState(()=>fe.grouping?.groupSummaries??false),[vn,Qr]=useState(null),[ll,Zr]=useState(null),ea=Un!==null||vn!==null||at!==null||Wn!==null,sl=useRef(false);useEffect(()=>{if(sl.current&&!ea){let r=Yr.current;Yr.current=null;let b=r?.columnId?Ve.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${cssEscape(r.columnId)}"]`):null,E=r?.el?.isConnected?r.el:b,U=document.activeElement,ce=!U||U===document.body||!!Ve.current&&U!==Ve.current&&U.contains(Ve.current);E&&ce&&(E.focus({preventScroll:true}),document.activeElement!==E&&b&&b.focus({preventScroll:true}));}sl.current=ea;},[ea]);let Zd=useCallback(()=>{d.getSelectedCount()>0?d.clearSelection():d.selectAll();},[d]),ta=wt?d.getSelectableCount():nt,na=d.getSelectedCount(),eu=ta>0&&na>=ta?"all":na>0?"some":"none",dl=useRef(K);dl.current=K;let tu=useCallback(r=>{let b=dl.current;b&&Kt(r,true)&&b(r.nativeEvent,Ke.keyContext())==="handled"&&pa(r);},[Ke.keyContext]),nu=useCallback(r=>{if(fa(r)||!Kt(r))return;let b=r.target;if(b.closest?.(Bt)||b.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let E=b.tagName;if(E==="INPUT"||E==="TEXTAREA"||E==="SELECT"||b.isContentEditable||Ke.handleKeyDown(r))return;if((Be||Fo||Pe!==false||d.isRowPinningEnabled())&&(r.key==="ContextMenu"||r.key==="F10"&&r.shiftKey)){let we=d.getFocus(),he=we?tt.findIndex(_e=>_e.key===we.rowKey):-1,$e=he>=0?tt[he]:void 0;if($e){let dt=Vt.current?.querySelector(`[data-row-key="${cssEscape(String($e.key))}"]`)?.getBoundingClientRect();$o(dt?dt.left+16:0,dt?dt.bottom:0,$e,he,we?.columnId??null),r.preventDefault();}return}let U=resolveGridCommand({key:r.key,ctrlKey:r.ctrlKey,metaKey:r.metaKey,shiftKey:r.shiftKey,altKey:r.altKey});if(!U)return;if(U.type==="copy"){lo(d);return}if(U.type==="activate"){let we=d.getFocus(),he=we?tt.find($e=>$e.key===we.rowKey):void 0;he&&le?.(he),U.preventDefault&&r.preventDefault();return}d.executeCommand(U),U.preventDefault&&r.preventDefault();let ce=d.getFocusIndices();if(ce&&Vt.current){let he=d.getColumnLayout().center.findIndex(_e=>_e.state.id===d.getFocus()?.columnId),$e=d.ensureVisible(ce.rowIndex,he===-1?void 0:he);if($e){let _e=Vt.current;$e.scrollTop!==void 0&&(_e.scrollTop=$e.scrollTop),$e.scrollLeft!==void 0&&(_e.scrollLeft=Cd($e.scrollLeft,_e)),d.setScroll(_e.scrollTop,_e.scrollLeft);}}},[d,tt,le,Be,Fo,Pe,$o,Ke.handleKeyDown]),En=useMemo(()=>bandDepth([...We.left,...We.center,...We.right]),[We]),Yn=ro,oa=(h?2:1)+En,ul=d.getPinnedRows("top"),cl=d.getPinnedRows("bottom"),ra=[...I??[],...ul.map(r=>r.row)],aa=[...B??[],...cl.map(r=>r.row)],ou=[...(I??[]).map(()=>null),...ul.map(r=>r.key)],ru=[...(B??[]).map(()=>null),...cl.map(r=>r.key)],Wo=ra.length,au=aa.length,Vo=oa+Wo,Uo=qd??fe.grouping?.panel??x,pl=d.getGroupLevels(),iu=useCallback(r=>d.groupBy(r.slice(0,ct)),[d,ct]),lu=useCallback(r=>d.toggleGroup(r),[d]),fl=useCallback(r=>d.toggleGroupSelection(r),[d]),su=d.getColumnModel().runtime().filter(r=>r.state.visible&&r.def.groupable!==false),Lt=d.hasMasterDetail()&&!!ue,bt=e.rowNumbers??false,At=!!Xe?.icons&&!qe,du=bt&&d.isPaginated()?d.getPage()*d.getPageSize():0;useEffect(()=>{d.setLeadWidth(Ya(wt,Lt,bt,At));},[d,wt,Lt,bt,At]);let uu=useCallback(r=>d.toggleDetail(r),[d]),cu=useCallback(r=>d.toggleTreeRow(r),[d]),ml=d.getSummaryDefs(),pu=d.getSummaries(),xn=jd??J??ml.length>0,qn=xn&&te==="top",ia=h?2:1,gl=Dt.grouping?.groupSummaries&&Jr?fe.summaries:void 0,wl=d.getGroupDisplay(),bl=useCallback(()=>{Qd(r=>(d.setGroupSummaries(!r),!r));},[d]),fu=useCallback((r,b)=>{if(!de)return;b.preventDefault();let E=d.getColumnModel().getDef(r),U=d.getColumnSummary(r),ce={columnId:r,headerName:E?.headerName??E?.field??r},we=[{id:"none",label:t.noTotal,disabled:U===null,onSelect:()=>d.setColumnSummary(r,null)},{id:"sep",separator:true},...allowedSummaryTypes(E?.dataType).map(he=>({id:he,label:summaryTypeLabels(t)[he],disabled:U?.type===he,onSelect:()=>d.setColumnSummary(r,he)}))];Jt(),Qr({x:b.clientX,y:b.clientY,items:we,context:ce});},[d,de,Jt]),mu=useCallback((r,b)=>{if(X===false)return;b.preventDefault();let E=d.getColumnModel().getDef(r),U={columnId:r,headerName:E?.headerName??E?.field??r},ce=Oi(U,{controller:d,groupPanelVisible:Uo,footerVisible:xn,groupFootersAvailable:Ue&&d.getGroupLevels().length>0,groupFootersVisible:Jr,onToggleGroupPanel:()=>Xd(!Uo),onToggleFooter:()=>Jd(!xn),onToggleGroupFooters:bl,onOpenFieldChooser:()=>Zr({left:b.clientX,top:b.clientY}),onBestFit:Hr,onBestFitAll:Ar,maxGroupLevels:ct,labels:Lr(t)}),we=typeof X=="function"?X(U,ce):ce;!we||we.length===0||(Jt(),Qr({x:b.clientX,y:b.clientY,items:we,context:U}));},[X,d,Uo,xn,Ue,Jr,bl,Hr,Ar,ct,t,Jt]),Xn=d.getFocus(),gu=Xn?`${e.gridId}-cell-${String(Xn.rowKey)}-${Xn.columnId}`:void 0,la=d.getSelectedCount(),wu=useMemo(()=>{let r=[fillText(t.announceRows,{n:nt})];if(Gt.length>0){let b=Gt.map(E=>{let U=d.getColumnModel().getDef(E.columnId),ce=String(U?.headerName??U?.field??E.columnId),we=E.direction==="desc"?t.announceDescending:t.announceAscending;return `${ce} ${we}`}).join(", ");r.push(fillText(t.announceSortedBy,{columns:b}));}return la>0&&r.push(fillText(t.announceSelected,{n:la})),r.join(", ")},[d,nt,Gt,la,t]),{centerColumns:pn,centerIndices:zo,stickyInsets:jn,leadingSpacer:fn,trailingSpacer:mn,rowStart:bu,rowEnd:hl}=vs(We,fo),Yo=d.getColumnModel(),Dn=bu,hu=r=>{if(mo)return;let b=d.getRowHeightAt(r);return b===pt?void 0:b},yu=Array.from(tt.slice(Dn,hl)),Ru=useMemo(()=>!bt||d.getGroupLevels().length===0&&!d.hasMasterDetail()&&!d.hasTreePathRows()?null:Es(tt),[bt,d,tt]),Cu=d.hasCellSpans(),yl=useRef({start:0,end:0});yl.current={start:Dn,end:hl-1};let Rl=useRef(fo.columns);Rl.current=fo.columns;let ku=useCallback(r=>d.planRowColSpans(r,Rl.current),[d]),Tu=hasColSpans(We),vu=useCallback((r,b)=>{let E=d.getCellSpans(b);if(E.length===0)return null;let{start:U,end:ce}=yl.current,we=spanRoleAt(E,r,U,ce);if(!we)return null;if(we.role==="covered")return {kind:"covered"};let he=d.getRowOffset(we.drawStart);return {kind:"draw",height:d.getRowOffset(we.drawEnd)+d.getRowHeightAt(we.drawEnd)-he,offset:0}},[d]),sa=d.getSearchFold(),Cl=d.getFindNeedle()||(ye?normalizeSearch(d.getSearchText(),sa):""),kl=d.getFindState(),qo=kl.count>0?`${d.getFindNeedle()}\0${kl.activeIndex}`:"",Tl=useCallback((r,b)=>d.getFindMatchKind(r,b),[d]),Eu={pathOf:r=>bandPath(d.getColumnModel().getDef(r)),collapsible:r=>d.isBandCollapsible(r),collapsed:r=>d.isBandCollapsed(r),onToggle:r=>d.toggleBand(r),labels:{expand:t.expandColumnGroup,collapse:t.collapseColumnGroup}},vl={layout:We,centerColumns:pn,leadingSpacer:fn,trailingSpacer:mn,defs:ml,values:pu,checkboxColumn:wt,detailColumn:Lt,statusColumn:At,rowNumberColumn:bt,onPickSummary:de?fu:void 0,emptyHint:de?"\xB7":""};return jsxs("div",{className:`kanuni-datagrid-root${l?" kanuni-datagrid-dark":""}${Ze.active?" kanuni-datagrid-print":""}${qe?" kanuni-datagrid-cards":""}${Fe&&xn&&!qn?" kanuni-datagrid--footer-pinned":""}${themeClassName(a,me,u)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${pt}px`,"--dg-grip-inset":`${(bt?to:0)+(At?no:0)}px`,...o},dir:isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":a,"data-palette":u,"data-auto-height":mo?"":void 0,"data-auto-header-height":y?"":void 0,"data-row-session":Ke.rowSessionAttr,onKeyDownCapture:K?tu:void 0,ref:Ve,children:[Ke.bar&&jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:Ke.bar}),Re.show&&jsx(yi,{controller:d,dark:l,search:Re.search!==null,searchOptions:Re.search??void 0,exportMenu:Re.export,columnChooser:Re.columns??e.toolbarColumnChooser??true,exportExcel:Ue&&j,exportPdf:Ue&&Y,itemsBefore:C,itemsAfter:g,onOpenColumnChooser:r=>Zr(b=>b?null:r)}),Uo&&jsx(gi,{columns:su,levels:pl,onSetLevels:iu,maxLevels:ct,onExpandAll:()=>d.expandAllGroups(),onCollapseAll:()=>d.collapseAllGroups()}),qe&&jsx(ed,{controller:d,sort:Gt,text:t,columns:w?d.getColumnModel().getOrder().filter(r=>{let b=d.getColumnModel();return b.getState(r)?.visible!==false&&b.getDef(r)?.sortable!==false}).map(r=>({id:r,label:d.getColumnModel().getDef(r)?.headerName??r})):[]}),jsx("div",{className:"kanuni-datagrid-scroller",ref:Vt,onScroll:Ed,onKeyDown:nu,tabIndex:0,role:"grid","aria-rowcount":nt+oa+Wo+au,"aria-colcount":We.left.length+We.center.length+We.right.length+(wt?1:0)+(Lt?1:0)+(bt?1:0),"aria-multiselectable":Vn==="multiple"||void 0,"aria-activedescendant":gu,"aria-label":e.ariaLabel??e.gridId,children:jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(We.totalWidth||0)+Ya(wt,Lt,bt,At)||"100%"},role:"rowgroup",children:[jsx(Qa,{layout:We,centerColumns:pn,leadingSpacer:fn,trailingSpacer:mn,depth:En,checkboxColumn:wt,detailColumn:Lt,statusColumn:At,rowNumberColumn:bt,rowHeight:Yn,bandFold:Eu}),jsx(ei,{bandOffset:En*Yn,stickyInsets:jn,layout:We,centerColumns:pn,leadingSpacer:fn,trailingSpacer:mn,sort:Gt,sortable:w,onSort:xd,groupLevels:pl,headerFilter:zi,filteredColumns:Ad,onOpenFilter:Od,filterIconMode:S,checkboxColumn:wt,detailColumn:Lt,statusColumn:At,rowNumberColumn:bt,selectAllState:eu,selectAllDisabled:ta===0&&na===0,onToggleSelectAll:Zd,draggable:x,reorderable:G,onReorder:Md,resizable:v,onResize:Nd,onAutoFit:Hr,onHeaderContextMenu:X===false?void 0:mu,onHeaderClick:Ae,getHeaderClassName:Me,renderHeaderLabel:it}),h&&jsx(oi,{bandOffset:En*Yn,stickyInsets:jn,layout:We,centerColumns:pn,leadingSpacer:fn,trailingSpacer:mn,values:$r,checkboxColumn:wt,detailColumn:Lt,statusColumn:At,rowNumberColumn:bt,onChange:Ld,onCommit:Fd,periodSuggestions:Pd,periodListId:`${e.gridId}-filter-periods`,operators:Wr,onOperatorChange:Id,renderCustom:Kd}),qn&&jsx(vr,{...vl,position:"top",bandOffset:En*Yn,headerRowsBetween:ia}),ra.length>0&&jsx(Er,{gridId:e.gridId,side:"top",rows:ra,rowClassFor:Q?(r,b,E)=>z(r,b,E??r.key):void 0,rowKeys:ou,onUserRowContextMenu:al,layout:We,columnModel:Yo,centerColumns:pn,centerIndices:zo,stickyInsets:jn,leadingSpacer:fn,trailingSpacer:mn,checkboxColumn:wt,detailColumn:Lt,statusColumn:At,rowNumberColumn:bt,rowHeight:pt,bandOffset:En*Yn,headerRowsBetween:ia+(qn?1:0),ariaRowBase:oa}),d.hasStickyGroupHeaders()&&jsx(_s,{controller:d,width:We.totalWidth,bandOffset:En*Yn,headerRowsBetween:ia+(qn?1:0),belowPinned:Wo>0?Wo*pt+1:0,renderRow:(r,b,E)=>jsx(oo,{gridId:e.gridId,node:r,index:b,layout:We,columnModel:Yo,centerColumns:pn,centerIndices:zo,stickyInsets:jn,leadingSpacer:fn,trailingSpacer:mn,striped:false,selected:false,groupSelection:wt&&Vn==="multiple"?d.getGroupSelectionState(String(r.key)):void 0,onToggleGroupSelect:fl,groupDisplay:wl,focusedColumnId:null,checkboxColumn:wt,statusColumn:At,rowNumberColumn:bt,rowNumber:null,headerRowCount:Vo,onToggleGroup:U=>{d.toggleGroup(U),d.scrollToRow(U);},revision:Xi,searchNeedle:Cl,searchFold:sa,lookupLabels:i,findStamp:qo,findKind:qo?Tl:void 0,summaryDefs:gl,detailColumn:Lt,height:E,renderCellContent:ve,getCellClassName:ze})}),jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:fo.rows.totalHeight},onDragOver:An.bodyHandlers?.onDragOver,onDrop:An.bodyHandlers?.onDrop,onDragLeave:An.bodyHandlers?.onDragLeave,children:[jsx("div",{ref:Br,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${fo.rows.offsetY}px)`},children:yu.map((r,b)=>r?jsx(oo,{gridId:e.gridId,node:r,index:Dn+b,layout:We,columnModel:Yo,centerColumns:pn,centerIndices:zo,stickyInsets:jn,leadingSpacer:fn,trailingSpacer:mn,striped:p,selected:d.isRowSelected(r.key),ariaSelectable:Vn!=="none",selectable:wt&&r.kind==="data"?d.isRowSelectable(r.key):true,groupSelection:r.kind==="group"&&wt&&Vn==="multiple"?d.getGroupSelectionState(String(r.key)):void 0,onToggleGroupSelect:fl,groupDisplay:wl,focusedColumnId:Xn?.rowKey===r.key?Xn.columnId:null,rowFocused:re&&Xn?.rowKey===r.key,rowDrag:An.handlers,dropSide:An.dropAt?.key===r.key?An.dropAt.side:null,...O(r),rowClass:z(r,Dn+b),renderRow:qe?q:k,checkboxColumn:wt,statusColumn:At,rowNumberColumn:bt,getSpan:Cu?vu:void 0,resolveColSpans:Tu?ku:void 0,getNote:vt?Oo:void 0,rowNumber:bt?xs(Dn+b,Ru,du):null,headerRowCount:Vo,onRowClick:Ud,onRowMouseDown:Vn==="none"?void 0:Bd,onRowDoubleClick:zd,onToggleSelect:$d,onCellMouseDown:_d,onRowContextMenu:Yd,onToggleGroup:lu,onToggleTreeRow:cu,revision:Xi,searchNeedle:Cl,searchFold:sa,lookupLabels:i,findStamp:qo,findKind:qo?Tl:void 0,summaryDefs:gl,detailColumn:Lt,detailExpanded:Lt&&d.isDetailExpanded(r.key),onToggleDetail:uu,renderDetail:ue,renderEditForm:be??Ke.renderEditForm,renderRowMessage:r.kind==="message"?ke:void 0,height:hu(Dn+b),renderCellContent:ve,getCellClassName:ze,onCellPointerDown:Se,onCellPointerEnter:c,onCellDoubleClick:Ye},String(r.key)):(()=>{let E=Dn+b,U=d.isRowLoadFailed(E);return jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${U?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":E+1+Vo,"aria-busy":U?void 0:"true",children:jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:U?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:()=>d.retryFailedLoads(),children:t.retryLoad})]}):jsx("span",{className:"kanuni-datagrid-loading-bar"})})},`__loading-${E}`)})())}),ee?.()]}),aa.length>0&&jsx(Er,{gridId:e.gridId,side:"bottom",rows:aa,rowClassFor:Q?(r,b,E)=>z(r,b,E??r.key):void 0,rowKeys:ru,onUserRowContextMenu:al,layout:We,columnModel:Yo,centerColumns:pn,centerIndices:zo,stickyInsets:jn,leadingSpacer:fn,trailingSpacer:mn,checkboxColumn:wt,detailColumn:Lt,statusColumn:At,rowNumberColumn:bt,rowHeight:pt,headerRowsBetween:xn&&!qn?1:0,ariaRowBase:Vo+nt}),xn&&!qn&&jsx(vr,{...vl,position:"bottom"})]})}),(Or==="noRows"||Or===null&&nt===0)&&jsx("div",{className:"kanuni-datagrid-empty",children:f??t.noData}),Ke.active&&jsx(La,{open:Ke.saveError!==null,title:t.editCannotSave,message:Ke.saveError?Ke.saveError.columnId?`${d.getColumnModel().getDef(Ke.saveError.columnId)?.headerName??Ke.saveError.columnId}: ${Ke.saveError.message}`:Ke.saveError.message:"",confirmLabel:t.ok,dark:l,onConfirm:Ke.clearSaveError,onCancel:Ke.clearSaveError}),Ke.popup&&jsx(xt,{dark:l,children:Ke.popup}),V&&jsx(ki,{controller:d,alwaysVisible:V==="always",onOpenBuilder:$,describeOptions:M}),F!==false&&jsx(Ni,{controller:d,delay:typeof F=="number"?F:void 0,forced:Or==="loading"}),d.isPaginated()&&jsx(Ci,{page:d.getPage(),pageCount:d.getPageCount(),pageSize:d.getPageSize(),pageSizes:fe.pagination?.pageSizes,pageButtons:fe.pagination?.pageButtons,maxPageButtons:fe.pagination?.maxPageButtons,totalRows:nt,onPage:r=>d.setPage(r),onNext:()=>d.nextPage(),onPrevious:()=>d.previousPage(),onPageSize:r=>d.setPageSize(r)}),N&&jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:wu}),go&&jsx(Gi,{anchor:go.anchor,value:go.text,dark:l,onCommit:Vd,onCancel:()=>Xr(null)}),Un&&jsx(Gr,{x:Un.x,y:Un.y,items:Un.items,context:Un.context,dark:l,onClose:Wd}),Bo&&jsx(xt,{dark:l,kind:"toast",children:jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:Bo.x,top:Bo.y},onClick:()=>_o(null),children:Bo.message})}),vn&&jsx(Gr,{x:vn.x,y:vn.y,items:vn.items,context:vn.context,dark:l,label:`${vn.context.headerName} column`,onClose:()=>Qr(null)}),qi&&jsx(Fi,{state:qi,dark:l}),ll&&jsx(Ri,{controller:d,columns:d.getColumnStates(),anchor:ll,dark:l,onClose:()=>Zr(null)}),Wn&&jsx(Os,{controller:d,columnId:Wn.columnId,headerLabel:Wn.label,anchor:Wn.anchor,dark:l,onClose:()=>zr(null)},Wn.columnId),at&&jsx(ui,{gridId:e.gridId,columnId:at.columnId,headerLabel:at.label,entries:at.entries,initialSelected:at.selected,anchor:at.anchor,loading:at.loading,truncated:at.truncated,pager:at.pager,onSearch:at.capped&&!d.isRemote()?r=>{let{entries:b,truncated:E}=d.searchDistinctValues(at.columnId,r);Ht(U=>U&&U.columnId===at.columnId?{...U,entries:b,truncated:E}:U);}:void 0,dark:l,onApply:Hd,onClose:()=>Ht(null),onCustom:$?()=>{let r=at.columnId;Ht(null),$({columnId:r});}:void 0},at.columnId)]})}function yg({defs:e,values:t,columnModel:n,rowCount:o,rowCountLabel:l}){let a=Ne(),u=summaryTypeLabels(a);return e.length===0&&o===void 0?null:jsxs("div",{className:"kanuni-datagrid-summary-bar",role:"status","aria-label":a.summaryAria,children:[o!==void 0&&jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsx("strong",{children:o.toLocaleString()})," ",l??a.summaryRows]}),e.map(p=>{let f=t[summaryKey(p.columnId,p.type)],w=n.getDef(p.columnId),y=formatSummaryValue(p,f,w);return jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxs("span",{className:"kanuni-datagrid-summary-label",children:[summaryLabel(p,u)," ",w?.headerName??p.columnId,":"]}),jsx("strong",{children:y})]},summaryKey(p.columnId,p.type))})]})}var Rg=memo(yg);function Cg({icon:e,label:t,shortcut:n,disabledReason:o,showLabel:l=false,onClick:a,testId:u}){let p=o!==void 0,f=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?o:void 0,title:p?`${f} \u2014 ${o}`:f,"data-testid":u,onClick:w=>{if(p){w.preventDefault();return}a?.();},children:[e,l&&jsx("span",{children:t})]})}function Dg(e,t){return Ui(e,t,t?.source,(n,o)=>n.computeChartData(o))}function Sg(e,t){return Ui(e,t,t?.source,(n,o)=>n.computeChartXYData(o))}function Gg(e,t){return Ui(e,t,t?.source,(n,o)=>n.computeChartBoxData(o))}function Ui(e,t,n,o){let[l,a]=useState(null);return useEffect(()=>{if(!e||!t){a(null);return}let u=n??"view",p=chartNeedsOrder(t),f=false,w=0,y=false,h=false,L=null,S=()=>{let F=++w;o(e,t).then(N=>{!f&&F===w&&a(N);},()=>{});},G=(F=false)=>{h||=F,!y&&(y=true,queueMicrotask(()=>{if(y=false,f)return;let N=e.chartBasis(u,p);!h&&N===L||(h=false,L=N,S());}));};L=e.chartBasis(u,p),S();let v=[e.events.on("contentReady",()=>G()),e.events.on("rowsChanged",()=>G()),e.events.on("dataUpdated",()=>G()),...u==="selection"?[e.events.on("selectionChanged",()=>G(true))]:[]];return ()=>{f=true,w++,v.forEach(F=>F());}},[e,t]),l}export{ro as BAND_ROW_HEIGHT,Mc as DEFAULT_EDIT_FORM_LABELS,md as DEFAULT_HEADER_MENU_LABELS,gg as DataGrid,Bt as EDITOR_OWNED_SELECTOR,Ml as GRID_PORTAL_SELECTOR,Na as GridCellEditor,Ri as GridColumnChooser,Gr as GridContextMenu,Nn as GridDateEditor,La as GridDialog,va as GridEditForm,ki as GridFilterPanel,oi as GridFilterRow,vr as GridFooterRow,gi as GridGroupPanel,ei as GridHeader,Qa as GridHeaderBands,ui as GridHeaderFilterPopup,Ni as GridLoadingOverlay,Mn as GridLookupEditor,Gi as GridNoteEditor,Ci as GridPager,Er as GridPinnedRows,Fn as GridPopupPanel,xt as GridPortal,oo as GridRow,Ea as GridRowEditor,Rg as GridSummaryBar,ya as GridSurfaceProvider,ca as GridTextProvider,yi as GridToolbar,Cg as GridToolbarButton,Fi as GridTooltip,bn as LOOKUP_PENDING,cr as LookupLabels,Fa as PRINT_MAX_ROWS,Pr as ROW_DRAG_MIME,Ys as SHORTCUT_COPY,cm as SHORTCUT_CUT,pm as SHORTCUT_PASTE,wi as ToolbarIcon,xi as buildCellMenuItems,Oi as buildHeaderMenu,lo as copyToClipboard,ls as editFormColumnIds,Ta as editFormLabels,rn as editorOwnsKey,tr as editorSeedText,Kt as eventFromOwnDom,Jo as focusStaysWithGrid,fa as gridIgnoresKey,Lr as headerMenuLabels,bo as isAltGraphChar,on as keyClaimed,ko as lookupEditorSettings,Eo as lookupLabelsFor,To as lookupPickValues,pa as markKeyHandledByApp,wc as matchOptions,Nr as measureBestFitWidth,_t as numberTextFormat,ni as reconcileFilterInputs,No as runGridExport,Aa as useAlignedGrids,In as useAnchoredPopup,Ki as useCellTooltip,ua as useDataGrid,Ma as useEditModes,Gg as useGridChartBoxData,Dg as useGridChartData,Sg as useGridChartXYData,ga as useGridEditing,zt as useGridPortalTarget,Ft as useGridSurfaceClass,Ne as useGridText,Oa as usePrintLayout,Ii as useRowDrag,Pi as useStateStoring,fm 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,foldMatchText,RangeSelectionEngine,rangesFromSaved,rangesToSaved,EditingEngine,isRowKey,createEditingApi,createDebouncedCommit,isRowEditMode,cssEscape,edgeEditableColumn,nextEditableColumn,numberSeparators,computeFillTarget,computeFillValues,cellDisplayText,parseClipboardTable,computePasteCells,coercePastedValue,RANGE_KEY_DIRECTIONS,extendRangeByKey,keyboardFill,themeClassName,portalTarget,foldText,lookupMatchMode,dateDigits,DEFAULT_DATE_FORMAT,toDate,maskDate,parseDateValue,dateDigitCount,placeAnchoredLayer,toIsoDate,daysInMonth,multipleLookupText,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,isPartialNumberText,readNumberText,stepNumberText,DataGridController,formatNumberDisplay,numberBoundsError,editableNumberText,lookupSelectedValues,parseLocaleNumber,distinctDisplayText,resolveRowStatus,rowStatusDescription,rowMessageModel,isFilterGroup,isBuiltInFilterOperator,filterInputFromNode,bandPath,toggleMultipleValue,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 Nu=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],Al=new WeakMap;function ka(e){let t=Al.get(e);if(!t){let n={version:0,listeners:new Set},o=()=>{n.version++,n.listeners.forEach(i=>i());};for(let i of Nu)e.events.on(i,o);Al.set(e,n),t=n;}return t}function Ta(e){let t=e.sorting?.postSort,n=useRef(t);useEffect(()=>{n.current=t;},[t]);let[o]=useState(()=>((m,E)=>n.current?.(m,E))),i=()=>{let m=new DataGridController(t?{...e,sorting:{...e.sorting,postSort:o}}:e);return ka(m),m},[a,d]=useState(i);useEffect(()=>{if(a.isDisposed()){d(i());return}return ()=>a.dispose()},[a]);let p=useCallback(m=>{let{listeners:E}=ka(a);return E.add(m),()=>{E.delete(m);}},[a]),f=useCallback(()=>ka(a).version,[a]);useSyncExternalStore(p,f,f);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 P=useRef(true);useEffect(()=>{if(P.current){P.current=false;return}a.setColumns(k);},[a,k]);let C=e.pagination?e.pagination.enabled!==false:false;useEffect(()=>{a.setPaginationEnabled(C);},[a,C]);let S=e.rowHeight,v=useRef(true);useEffect(()=>{if(v.current){v.current=false;return}S!==void 0&&a.setRowHeight(S);},[a,S]);let L=e.selection?.mode??"none";useEffect(()=>{a.setSelectionMode(L);},[a,L]);let N=e.onRowLeaving;useEffect(()=>{a.setRowLeaving(N);},[a,N]);let D=e.searchFold;useEffect(()=>{a.setSearchFold(D);},[a,D]);let G=e.rowPinning;useEffect(()=>{a.setRowPinning(G);},[a,G]);let $=e.selection?.isRowSelectable,q=useRef(true);useEffect(()=>{if(q.current){q.current=false;return}a.setRowSelectable($??null);},[a,$]);let te=t!==void 0,H=useRef(true);useEffect(()=>{if(H.current){H.current=false;return}a.setPostSort(te?o:null);},[a,te,o]);let x=e.grouping?.groupBy??null,O=JSON.stringify(x==null?[]:typeof x=="string"?[x]:x),A=useRef(true);return useEffect(()=>{if(A.current){A.current=false;return}a.groupBy(JSON.parse(O));},[a,O]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var _l=createContext(getGridDictionary("en"));function va({locale:e,messages:t,children:n}){let o=useMemo(()=>getGridDictionary(e,t),[e,t]);return jsx(_l.Provider,{value:o,children:n})}function Fe(){return useContext(_l)}var pr=new WeakSet;function Lo(e){return "nativeEvent"in e?e.nativeEvent:e}function Ea(e){pr.add(Lo(e));}function Po(e){let t=Lo(e);return t.key.length===1&&typeof t.getModifierState=="function"&&t.getModifierState("AltGraph")}function xa(e){let t=Lo(e);return t.defaultPrevented||pr.has(t)?true:t.altKey&&!Po(t)}function ln(e){let t=Lo(e);return t.defaultPrevented||pr.has(t)}var Fu=new Set(["a","c","v","x","z","y","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","Backspace","Delete"]);function gn(e){let t=Lo(e);return pr.has(t)||/^F([1-9]|1[0-2])$/.test(t.key)?false:Po(t)?true:t.altKey?false:t.ctrlKey||t.metaKey?Fu.has(t.key.length===1?t.key.toLowerCase():t.key):true}var Ut="[data-kanuni-editor]",$l=".kanuni-datagrid-portal, [data-kanuni-portal]";function _t(e,t=false){let n=e.currentTarget,o=e.target;return typeof Node>"u"||!(n instanceof Node)||!(o instanceof Node)||n.contains(o)?true:t?!!(o instanceof Element?o:o.parentElement)?.closest($l):false}function fr(e,t){return t?!!t.closest(`${e}, .kanuni-datagrid-detached, [data-kanuni-portal], ${Ut}`):false}function zt(e){let t=e?.numberFormat;if(!(!t?.locale||e?.lookup||e?.renderEditor||e?.allowFormulas))return t}function mr(e,t){return typeof e=="number"||e===null||e===void 0?editableNumberText(e,t.locale):e}function Vl(e,t){if(typeof e!="string")return e;let n=readNumberText(e,t);return n===void 0?Number.NaN:n}function Ul(e,t,n){let o=e.getColumnModel().getNumberFormat(t);if(o)return [{type:"custom",validate:({value:i})=>{if(typeof i!="number")return true;let a=n();if(Number.isNaN(i)){let f=formatNumberDisplay(o.decimals===0?1234:1234.5,o);return a.validationNumberLocale.replace("{example}",f)}let d=numberBoundsError(i,o);if(!d)return true;let p=formatNumberDisplay(d.limit,{...o,decimals:void 0});return d.bound==="min"?a.validationMin.replace("{min}",p):a.validationMax.replace("{max}",p)}}]}var wr=new WeakMap,hr=new WeakMap,tc=1e5,nc=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function oc(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:o=>{let i=t?.getColumnModel().getDef(o);return i?.lookup||i?.renderEditor||i?.allowFormulas===true?false:n?.(o)??true}}}function Sa(e){let t=e.controller?.isEnterpriseEdition()??false;return rc(t?e:oc(e))}function rc({controller:e,mode:t="batch",rules:n,onSave:o,crud:i,allowAdding:a,allowUpdating:d,allowDeleting:p,onInitNewRow:f,onRowInserted:w,onRowUpdated:k,onRowRemoved:y,editOnKeyPress:P,confirmDelete:C,confirmDeleteMessage:S,insertKey:v,appendOnArrowDown:L,newRowPosition:N,focusCellOnTab:D,focusCellOnCycle:G,keepEditingOnTab:$,enabled:q=true,savedDuration:te,range:H=true,history:x=true,canEditColumn:O,onReady:A,commitOn:m="cell",rowMessages:E=false,editKeys:b,appendOnTab:X,deleteKey:ne,fillKeys:K,rangePaste:oe}){let M=Fe(),[re,Ne]=useState(0),Oe=useCallback(()=>Ne(s=>s+1),[]),ue=useMemo(()=>new RangeSelectionEngine,[]),He=useMemo(()=>({start(s,g){ue.start(s,g),Oe();},add(s,g){ue.add(s,g),Oe();},extend(s,g){ue.extend(s,g)&&Oe();},finish(){ue.finish(),Oe(),e?.notifyViewStateChanged();},clear(){ue.clear()&&(Oe(),e?.notifyViewStateChanged());},contains:(s,g)=>ue.contains(s,g),isAnchor:(s,g)=>ue.isAnchor(s,g),getRange:()=>ue.getRange(),getBounds:()=>ue.getBounds(),toTsv:s=>ue.toTsv(s),selectColumn(s,g,R){return ue.selectColumn(s,g,R)?(Oe(),e?.notifyViewStateChanged(),true):false},fullColumns:s=>ue.fullColumns(s)}),[ue,Oe,e]),ye=useRef(null);useEffect(()=>{if(!(!e||!H))return e.registerViewStatePart("ranges",{session:true,get:()=>rangesToSaved(ue.getRanges(),e.getVisualColumnIds()),apply:s=>{ue.setRanges(rangesFromSaved(s,e.getVisualColumnIds())),Oe();}})},[e,H,ue,Oe]);let[Ge,V]=useState(null),Q=useRef({onSave:o,crud:i,allowAdding:a,allowUpdating:d,allowDeleting:p,onInitNewRow:f,onRowInserted:w,onRowUpdated:k,onRowRemoved:y,editOnKeyPress:P,confirmDelete:C,confirmDeleteMessage:S,insertKey:v,appendOnArrowDown:L,newRowPosition:N,focusCellOnTab:D,focusCellOnCycle:G,keepEditingOnTab:$,canEditColumn:O,onReady:A,historyEnabled:x,rowMessages:E,editKeys:b,appendOnTab:X,deleteKey:ne,fillKeys:K,rangePaste:oe,text:M});Q.current={onSave:o,crud:i,allowAdding:a,allowUpdating:d,allowDeleting:p,onInitNewRow:f,onRowInserted:w,onRowUpdated:k,onRowRemoved:y,editOnKeyPress:P,confirmDelete:C,confirmDeleteMessage:S,insertKey:v,appendOnArrowDown:L,newRowPosition:N,focusCellOnTab:D,focusCellOnCycle:G,keepEditingOnTab:$,canEditColumn:O,onReady:A,historyEnabled:x,rowMessages:E,editKeys:b,appendOnTab:X,deleteKey:ne,fillKeys:K,rangePaste:oe,text:M};let ke=useRef(null),u=useMemo(()=>{if(!e||!q)return null;let s=g=>e.getRowByKey(g);return new EditingEngine({mode:t,commitOn:m,rules:n,messages:M,onChange:Oe,onAutoSaveFailed:g=>ke.current?.(g),onCellValueChanged:g=>e.notifyCellValueChanged(g),onEditingStarted:g=>e.notifyEditingStarted(g),onEditingStopped:g=>e.notifyEditingStopped(g),onRowEditingStarted:g=>e.notifyRowEditingStarted(g),onRowEditingStopped:g=>e.notifyRowEditingStopped(g),onHistoryStarted:({kind:g,label:R})=>e.notifyHistoryStarted(g,R),onHistoryEnded:({kind:g,...R})=>e.notifyHistoryEnded(g,R),onChangesChanged:g=>e.notifyChangesChanged(g),newRowKey:g=>{let R=e.getRowKeyField(),_=R?g[R]:void 0;return isRowKey(_)&&_!==""?_:void 0},readValue:(g,R)=>{let _=s(g);return _?e.getColumnModel().getStoredValue(_,R):void 0},formatForEdit:(g,R,_)=>{let ee=zt(e.getColumnModel().getDef(R));return ee?mr(_,ee):e.formatCellForEdit(R,_)},parseFromEdit:(g,R,_)=>{let ee=e.getColumnModel().getDef(R),F=zt(ee);return F&&!ee?.valueParser?Vl(_,F):e.parseCellFromEdit(R,_,g)},columnRules:g=>Ul(e,g,()=>Q.current.text),readRow:s,editableColumns:g=>{let R=e.getColumnLayout(),_=s(g);return [...R.left,...R.center,...R.right].map(ee=>ee.state.id).filter(ee=>{if(e.getColumnModel().getDef(ee)?.editable===false||Q.current.canEditColumn&&!Q.current.canEditColumn(ee))return false;let F=Q.current.allowUpdating;return F===void 0?true:typeof F=="function"?F(_,ee):F})},isColumnEditable:g=>e.getColumnModel().getDef(g)?.editable!==false&&(Q.current.canEditColumn?.(g)??true),applyValue:(g,R,_)=>e.writeCellValue(g,R,_),storedValue:(g,R,_)=>e.valueAfterWrite(g,R,_),insertRow:(g,R,_,ee)=>{let F=e.getRowKeyField(),z={...R};F&&!isRowKey(z[F])&&(z[F]=g),e.applyTransaction({add:[z],addPosition:_,addBeforeKey:ee});},dropRow:g=>e.applyTransaction({remove:[g]}),replaceRow:(g,R)=>{let _=e.getRowKey(R);return _===g?(e.applyTransaction({update:[R]}),_):(e.applyTransaction({remove:[g],add:[R]}),_)},allowAdding:()=>Q.current.allowAdding??false,allowUpdating:(g,R)=>{let _=Q.current.allowUpdating;return _===void 0?true:typeof _=="function"?_(g,R):_},allowDeleting:g=>{let R=Q.current.allowDeleting;return R===void 0?false:typeof R=="function"?R(g):R},onInitNewRow:g=>Q.current.onInitNewRow?.(g),get newRowPosition(){return Q.current.newRowPosition},onRowInserted:(g,R)=>Q.current.onRowInserted?.(g,R),onRowUpdated:(g,R,_)=>Q.current.onRowUpdated?.(g,R,_),onRowRemoved:(g,R)=>Q.current.onRowRemoved?.(g,R),crud:{get insert(){let g=Q.current.crud?.insert;return g&&(R=>g(R))},get update(){let g=Q.current.crud?.update;return g&&((R,_,ee)=>g(R,_,ee))},get remove(){let g=Q.current.crud?.remove;return g&&((R,_)=>g(R,_))}},onSave:g=>Q.current.onSave?.(g)})},[e,q]);useEffect(()=>{u?.setMessages(M);},[u,M]),useEffect(()=>{u?.setMode(t);},[u,t]),useEffect(()=>{u?.setCommitOn(m);},[u,m]),useEffect(()=>{te!==void 0&&u?.setSavedDuration(te);},[u,te]);let Ue=useRef(null),Ae=useRef(null),Ie=useMemo(()=>createEditingApi({engine:()=>Ue.current,history:()=>Q.current.historyEnabled!==false,addRow:(s,g)=>Ae.current?.(s,g)??null}),[]),ht=useRef(false);useEffect(()=>{if(!(!e||!u))return Ue.current=u,e.setEditingApi(Ie),ht.current||(ht.current=true,Q.current.onReady?.(Ie)),()=>{Ue.current=null,e.editing===Ie&&e.setEditingApi(null);}},[e,u,Ie]),useEffect(()=>(u?.resume(),()=>u?.dispose()),[u]),useEffect(()=>{if(!e||!u)return;let s=false,g=e.events.on("rowsChanged",_=>{s=_.removed===0;}),R=e.events.on("dataUpdated",()=>{let _=s;s=false,!_&&u.retainKeys(new Set(e.getDataRows().map(ee=>ee.key)));});return ()=>{g(),R();}},[e,u]),useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>He.clear())},[e,He]),useEffect(()=>{if(!(!e||!u))return e.setPendingValueReader({effectiveValue:(s,g,R)=>u.changes.effectiveValue(s,g,R),effectiveRow:(s,g)=>u.changes.applyPendingTo(s,g),hasPending:()=>u.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,u]),useEffect(()=>{if(!(!e||!u||!x))return e.setHistoryDelegate({undo:()=>u.undo(),redo:()=>u.redo(),canUndo:()=>u.canUndo(),canRedo:()=>u.canRedo(),depth:()=>u.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,u,x]);let Be=useMemo(()=>createDebouncedCommit(150),[]);useEffect(()=>()=>Be.cancelAll(),[Be]);let ae=useRef(re);useEffect(()=>{!e||!u||re===ae.current||(ae.current=re,Be.schedule("footer",()=>e.refreshSummaries()));},[e,u,re,Be]);let pe=useCallback(s=>{let g=e?.getRows()[s];return g&&g.kind==="data"?g.key:null},[e]),ve=useCallback(s=>e?.getColumnIdAt(s)??null,[e]),Se=useCallback((s,g)=>{e?.scrollToCell(s,g),u?.beginEdit(s,g);},[u,e]),Me=useCallback((s={},g,R={})=>{let _=u?.addRow(s,g,R.position)??null;if(_===null||!e)return _;if(isRowEditMode(t))return e.revealRow(_),_;let ee=e.getRowKeyField(),F=e.getColumnModel().runtime().find(z=>z.state.visible&&z.def.editable!==false&&(ee===null||(z.def.field??z.state.id)!==ee));return e.revealRow(_),F&&(e.focusCell(_,F.state.id)&&R.open!==false?u?.beginEdit(_,F.state.id):we()),_},[u,e]);Ae.current=Me;let J=useCallback(s=>{if(!u)return false;let g=Q.current.confirmDelete;if(g===false)return u.removeRow(s);let R=e?.getRowByKey(s);if(typeof g!="function")return qe({rowKey:s,message:Q.current.confirmDeleteMessage??M.editDeleteConfirm}),false;let _=g(s,R);return typeof _=="boolean"?_?u.removeRow(s):false:(_.then(ee=>{ee&&u.removeRow(s);}),false)},[u,e]),be=useCallback((s,g)=>{if(!u||!e)return;if(u.isRemoved(s)){u.restoreRow(s);return}if(!u.canDelete(s))return;let R=Q.current.confirmDelete;if(typeof R!="function")return;let _=()=>{let z=e.getRows(),fe=z.findIndex(ge=>ge.key===s);if(fe<0)return null;for(let ge=fe+1;ge<z.length;ge++)if(z[ge]?.kind==="data")return z[ge].key;for(let ge=fe-1;ge>=0;ge--)if(z[ge]?.kind==="data")return z[ge].key;return null},ee=()=>{let z=u.getMode()!=="batch"||u.changes.isInserted(s),fe=z?_():null;u.removeRow(s)&&z&&(fe!==null?e.focusCell(fe,g):e.clearFocus(),we());},F=R(s,e.getRowByKey(s));if(typeof F=="boolean"){F&&ee();return}F.then(z=>{z&&ee();});},[u,e]),we=useCallback(()=>{e&&document.querySelector(`[data-grid-id="${cssEscape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),I=useCallback((s,g={})=>{if(!u||!e)return false;let R=u.getSession(),_=R?{rowKey:R.rowKey,columnId:R.columnId}:e.getFocus();if(!_)return false;let ee=R!==null;if(!u.commitEdit())return false;let F=()=>(ee&&we(),false),z=ot=>e.getColumnModel().getDef(ot)?.editable!==false&&(Q.current.canEditColumn?.(ot)??true),fe=e.getColumnModel().runtime().filter(ot=>ot.state.visible).map(ot=>ot.state.id);if(edgeEditableColumn(fe,z,1)===null)return false;let ge=e.getRows(),xe=ge.findIndex(ot=>ot.key===_.rowKey);if(xe<0)return false;let Xe=nextEditableColumn(fe,z,_.columnId,s);if(Xe===null){if(g.cycle===false)return F();let ot=s;do xe+=ot;while(xe>=0&&xe<ge.length&&ge[xe]?.kind!=="data");if(xe>=ge.length&&s===1&&Q.current.appendOnTab===true&&u.canAdd())return Me({},void 0,{position:"last",open:g.open===true})!==null;if(xe<0||xe>=ge.length)return F();Xe=edgeEditableColumn(fe,z,s);}let et=ge[xe];return !et||et.kind!=="data"||!e.focusCell(et.key,Xe)?F():(e.scrollToCell(et.key,Xe),g.open===true?u.beginEdit(et.key,Xe):(we(),true))},[u,e,Me]),W=useCallback((s,g,R)=>!u||!e||u.isEditingRow()||!u.canEditRow(s)||(e.scrollToCell(s,g),!u.beginRowEdit(s))?false:(R!==void 0&&u.getMode()==="row"&&(wr.set(u,g),u.setRowEditValue(g,R)),true),[u,e]),Y=useCallback(s=>{if(!u||!e||u.getSession())return false;let g=e.getFocus();if(!g)return false;let R=e.getColumnModel().getDef(g.columnId);if(R?.editable===false)return false;let _=e.getColumnModel().getEditorDataType(g.columnId);if(_==="boolean")return false;let ee=s,F;R?.lookup?.multiple&&(ee=void 0);let z=zt(R);if(z){let{decimal:ge}=numberSeparators(z.locale);if(!(/^\d$/.test(s)||s===ge||s==="-"&&z.allowNegative!==false))return false}else if(_==="number")if(/^\d$/.test(s))ee=Number(s);else if(s==="-"||s===",")ee=void 0,F=s;else return false;else if(_==="date"){if(!/^\d$/.test(s))return false;ee=void 0,F=s;}if(isRowEditMode(u.getMode()))return W(g.rowKey,g.columnId,ee);if(e.scrollToCell(g.rowKey,g.columnId),!u.beginEdit(g.rowKey,g.columnId,ee))return false;let fe=u.getSession();return F!==void 0&&fe&&hr.set(fe,F),true},[u,e,W]),[ie,se]=useState(null),[Re,qe]=useState(null),Le=useCallback(s=>{let g=Re;qe(null),s&&g&&u&&u.removeRow(g.rowKey);},[Re,u]),it=useCallback(s=>{if(u?.getMode()==="cell"&&u.getCommitOn()==="row"){if(Q.current.rowMessages)return;se({message:s.error??M.editSaveFailed,rowKey:s.rowKey,columnId:s.columnId});return}se({message:s.error??M.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,M,u]);ke.current=it;let Z=useRef(false);useEffect(()=>{if(!e||!u)return;let s=()=>u.getMode()==="cell"&&u.getCommitOn()==="row",g=e.events.on("focusedRowChanged",z=>{s()&&u.commitRows(z.rowKey);});if(typeof document>"u")return g;let R=`[data-grid-id="${cssEscape(e.gridId)}"]`,_=z=>!fr(R,z),ee=null,F=z=>{if(!s()||Z.current)return;let fe=z.target instanceof Element?z.target:null;if(!fe||!fe.closest(R))return;let ge=z.relatedTarget instanceof Element?z.relatedTarget:null;ge&&!_(ge)||!fe.isConnected&&!ge||(ee!==null&&clearTimeout(ee),ee=setTimeout(()=>{if(ee=null,u.getSession()||Z.current)return;let xe=document.activeElement;xe&&xe!==document.body&&!_(xe)||u.commitRows(null);},0));};return document.addEventListener("focusout",F,true),()=>{g(),document.removeEventListener("focusout",F,true),ee!==null&&clearTimeout(ee);}},[e,u]);let ct=useCallback((s,g)=>{if(!u||!e||u.getMode()!=="cell"||u.getCommitOn()!=="row"||!u.isEmptyNewRow(s))return false;let R=e.getRows(),_=R.findIndex(z=>z.key===s),ee=null;for(let z=_+1;_>=0&&z<R.length&&ee===null;z++)R[z]?.kind==="data"&&(ee=R[z].key);for(let z=_-1;_>=0&&z>=0&&ee===null;z--)R[z]?.kind==="data"&&(ee=R[z].key);u.discardEmptyNewRow(s);let F=g??e.getFocus()?.columnId??null;return ee!==null&&F!==null?e.focusCell(ee,F):e.clearFocus(),true},[u,e]),Xt=useRef(null),l=useCallback(()=>{if(!u)return;let s=u.getSession();u.cancelEdit(),s&&ct(s.rowKey,s.columnId),we();},[u,ct,we]),st=useCallback(s=>{!u||!u.commitEdit()||s!=="blur"&&(s==="down"&&Q.current.editKeys?.enter!==true&&e?.moveFocus("down"),we());},[u,e,we]),Ye=useCallback(s=>{if(!u||!e)return false;if(s==="next"||s==="previous"){if(Q.current.focusCellOnTab===false)return u.commitEdit()?(we(),true):false;let g=u.getSession();return I(s==="next"?1:-1,{open:Q.current.keepEditingOnTab===true,cycle:Q.current.focusCellOnCycle!==false}),g===null||u.getSession()!==g}return u.commitEdit()?s==="blur"?(u.getMode()==="cell"&&u.getCommitOn()==="row"&&typeof document<"u"&&!fr(`[data-grid-id="${cssEscape(e.gridId)}"]`,document.activeElement)&&u.commitRows(null),true):((s==="down"||s==="enter"&&Q.current.editKeys?.enter!==true)&&e.moveFocus("down"),we(),true):false},[u,e,we,I]),We=useCallback((s,g)=>{Z.current=s,!(s||typeof document>"u")&&setTimeout(()=>{setTimeout(()=>{let R=document.activeElement;if(R&&R!==document.body&&R.isConnected)return;let _=u?.getSession()?g?.():null;_?.isConnected?_.focus({preventScroll:true}):we();},0);},0);},[u,we]);useEffect(()=>{u?.getSession()||(Z.current=false);},[u,re]);let Dt=useCallback(()=>Z.current,[]),bt=useCallback(()=>{let s=u?.getSession()??null,g=u?.getRowSession()??null,R=e?.getFocus()??null,_=s?{rowKey:s.rowKey,columnId:s.columnId}:g?{rowKey:g.rowKey,columnId:R?.columnId??""}:R?{rowKey:R.rowKey,columnId:R.columnId}:null;return {editing:s!==null||g!==null,cell:_,isNewRow:!!u&&_!==null&&u.changes.isInserted(_.rowKey),commit:()=>u?u.getRowSession()?false:u.getSession()?u.commitEdit()?(we(),true):false:true:true,cancel:()=>{u&&(u.getRowSession()?Xt.current?.():u.getSession()&&l());}}},[u,e,we,l]),dt=useCallback(async()=>{if(!u)return;se(null);let s=await u.saveChanges();s.saved||s.superseded||it(s);},[u,it]),rt=useCallback(()=>se(null),[]),Ht=useCallback(()=>{se(null),u?.cancelChanges();},[u]);useEffect(()=>{(u?.getSession()||u?.isEditingRow())&&se(null);},[re,u]);let yt=useMemo(()=>{if(!e||!ue.getRange())return null;let s=ue.cellCount();if(s>tc)return {cells:s,truncated:true,numeric:null};let g=e.getColumnModel(),R=e.getVisualColumnIds(),_=e.getRows(),ee=ue.getStats((F,z)=>{let fe=_[F],ge=R[z];if(!fe||fe.kind!=="data"||!ge)return;let xe=u?u.effectiveValue(fe.key,ge):g.getCellValue(fe.data,ge);return typeof xe=="string"&&xe.trim()!==""&&!Number.isNaN(Number(xe))?Number(xe):xe});return {cells:s,truncated:false,numeric:ee}},[e,ue,u,re]),je=useCallback((s,g)=>!!u&&!isChromeColumn(g)&&u.canUpdate(s,g),[u]),St=useCallback((s,g)=>{let R=He.getRange();ye.current=R??{startRow:s,startColumn:g,endRow:s,endColumn:g},V(null);},[He]),Nt=useCallback((s,g)=>{let R=ye.current;if(!R)return;let _=computeFillTarget(R,s,g);V(_?{startRow:_.bounds.minRow,startColumn:_.bounds.minColumn,endRow:_.bounds.maxRow,endColumn:_.bounds.maxColumn}:null);},[]),ut=useCallback((s,g)=>{if(!u||!e)return 0;let _=computeFillValues(s,g,(ee,F)=>{let z=pe(ee),fe=ve(F);return z!==null&&fe?u.effectiveValue(z,fe):void 0}).map(ee=>{let F=pe(ee.row),z=ve(ee.column);if(F===null||!z||!je(F,z))return null;let fe=ee.from?e.shiftCellFormula(z,ee.value,ee.row-ee.from.row,ee.column-ee.from.column):ee.value;return {rowKey:F,columnId:z,value:fe}}).filter(ee=>ee!==null);return e.notifyClipboardGesture("fill",_.length,()=>_.length===0?false:(u.applyEdits(_,fillText(M.editFillUndo,{count:_.length}),"fill"),true)),_.length},[u,e,pe,ve,je,M]),rn=useCallback(()=>{let s=ye.current,g=Ge;if(ye.current=null,V(null),!s||!g||!u||!e)return;let R=computeFillTarget(s,g.endRow,g.endColumn);R&&ut(s,R);},[Ge,u,e,ut]),Gt=useCallback((s,g)=>{if(!e)return "";let R=e.getRows()[s],_=e.getColumnIdAt(g);if(!R||R.kind!=="data"||!_)return "";let ee=e.getColumnModel(),F=u?u.effectiveValue(R.key,_):ee.getCellValue(R.data,_),z=cellDisplayText(ee.getDef(_),F,R.data);return e.clipboardCellText(R,_,F,z).replace(/[\t\r\n]+/g," ")},[e,u]),tt=useCallback((s="copy")=>{if(!e||!He.getRange())return false;let g=He.toTsv(Gt);return e.notifyClipboardGesture("copy",g?g.split(`
2
+ `).length:0,()=>e.writeClipboard(g,s)),true},[e,He,Gt]),ze=useCallback(s=>{if(!e||!u)return false;let g=He.getRange()!==null,R=s??e.getFocus();if(!g&&!R)return false;if(!tt("cut")){let z=R?e.getVisualColumnIds().indexOf(R.columnId):-1,fe=R?e.getRows().findIndex(xe=>xe.key===R.rowKey):-1;if(fe<0||z<0)return false;let ge=Gt(fe,z);e.notifyClipboardGesture("copy",ge?1:0,()=>e.writeClipboard(ge,"cut"));}let _=[];if(g)ue.forEachCell((z,fe)=>_.push([z,fe]));else {let z=e.getRows().findIndex(ge=>ge.key===R.rowKey),fe=e.getVisualColumnIds().indexOf(R.columnId);if(z<0||fe<0)return false;_.push([z,fe]);}let ee=e.getRows(),F=[];for(let[z,fe]of _){let ge=ee[z];if(!ge||ge.kind!=="data")continue;let xe=e.getColumnIdAt(fe);!xe||isChromeColumn(xe)||u.canUpdate(ge.key,xe)&&F.push({rowKey:ge.key,columnId:xe,value:null});}return e.notifyClipboardGesture("cut",F.length,()=>F.length===0?false:(u.applyEdits(F,fillText(M.editCutUndo,{count:F.length}),"cut"),true)),true},[e,u,He,ue,tt,Gt,M]),Je=useCallback((s,g)=>{if(!u||!e||!s)return;let R=Q.current.rangePaste===false,_=e.processPastedTable(R?[[s.replace(/\r?\n$/,"")]]:parseClipboardTable(s));if(!_)return;let ee=R?null:He.getBounds(),F,z;if(ee)F=ee.minRow,z=ee.minColumn;else {let Xe=g??e.getFocus();if(!Xe||(F=e.getRows().findIndex(et=>et.key===Xe.rowKey),z=e.getVisualColumnIds().indexOf(Xe.columnId),F<0||z<0))return}let fe=computePasteCells(_,F,z,{target:ee,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),ge=e.getColumnModel(),xe=fe.map(Xe=>{let et=pe(Xe.row),ot=ve(Xe.column);return et===null||!ot||!je(et,ot)?null:{rowKey:et,columnId:ot,value:e.pastedCellValue(et,ot,Xe.text,coercePastedValue(Xe.text,ge.getEditorDataType(ot)))}}).filter(Xe=>Xe!==null);e.notifyClipboardGesture("paste",xe.length,()=>xe.length===0?false:(u.applyEdits(xe,fillText(M.editPasteUndo,{count:xe.length}),"paste"),true));},[u,e,He,pe,ve,je,M]),nt=useCallback(async s=>{let g="";try{g=await navigator.clipboard.readText();}catch{return}Je(g,s);},[Je]),$e=useCallback(()=>{if(!e||typeof document>"u")return false;let s=document.querySelector(`[data-grid-id="${cssEscape(e.gridId)}"]`);if(!s)return false;let g=document.createElement("textarea");g.className="kanuni-datagrid-paste-catcher",g.setAttribute("aria-hidden","true"),g.tabIndex=-1,Object.assign(g.style,{position:"fixed",left:"-10000px",top:"0",width:"1px",height:"1px",opacity:"0"}),s.appendChild(g);let R=false,_=F=>{R||(R=true,g.removeEventListener("paste",ee),g.remove(),we(),Je(F));},ee=F=>{F.preventDefault(),_(F.clipboardData?.getData("text/plain")??"");};return g.addEventListener("paste",ee),g.focus({preventScroll:true}),setTimeout(()=>_(g.value),300),true},[e,we,Je]),[pt,B]=useState(null),Ee=useCallback((s,g)=>u?(B(null),u.beginRowEdit(s,g)):false,[u]),me=useCallback(async()=>{if(!u||!u.getRowSession())return false;let g=e?.getVisualColumnIds()??[],R=await u.saveRowEdit(g);return B(R.saved?null:R.error??null),R.saved&&we(),R.saved},[u,e,we]),Te=useCallback(()=>{u&&(B(null),u.cancelRowEdit(),we());},[u,we]);Xt.current=Te,useEffect(()=>{if(!(!e||!u))return e.setEditingDelegate({finishCell:()=>u.getSession()?u.commitEdit():true,effectiveRow:s=>u.effectiveRow(s),startEditingCell:(s,g)=>(e.scrollToCell(s,g),u.beginEdit(s,g)),stopEditing:async s=>{if(u.isEditingRow())return s?(Te(),true):me();if(!u.getSession())return false;if(s)return u.cancelEdit(),we(),true;let g=u.commitEdit();return g&&we(),g},getEditingCells:()=>{let s=u.getRowSession();if(s)return e.getVisualColumnIds().filter(R=>!isChromeColumn(R)&&u.canUpdate(s.rowKey,R)).map(R=>({rowKey:s.rowKey,columnId:R}));let g=u.getSession();return g?[{rowKey:g.rowKey,columnId:g.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,u,me,Te,we]);let de=useCallback(s=>{if(!u||!e)return false;let g=Po(s),R=(s.ctrlKey||s.metaKey)&&!g;if(x&&R&&(s.key==="z"||s.key==="Z"))return s.preventDefault(),s.shiftKey?u.redo():u.undo(),true;if(x&&R&&(s.key==="y"||s.key==="Y"))return s.preventDefault(),u.redo(),true;if(H&&R&&(s.key==="v"||s.key==="V"))return typeof window<"u"&&window.isSecureContext===false&&$e()||(s.preventDefault(),nt()),true;if(H&&R&&(s.key==="x"||s.key==="X"))return s.preventDefault(),ze(),true;if(R&&(s.key==="c"||s.key==="C"))return tt()?(s.stopPropagation(),true):false;if(u.isEditingRow()){if(s.key==="Enter")return s.preventDefault(),me(),true;if(s.key==="Escape")return s.preventDefault(),Te(),true}if(s.key==="Escape"&&u.getSession())return s.preventDefault(),l(),true;if(s.key==="Escape"&&!R&&!u.getSession()){let F=e.getFocus();if(F&&ct(F.rowKey,F.columnId))return s.preventDefault(),true}if(s.key==="Enter"&&Q.current.editKeys?.enter===true&&!R&&!u.getSession()&&!u.isEditingRow()){let F=e.getFocus();if(F&&!isChromeColumn(F.columnId)&&u.canUpdate(F.rowKey,F.columnId)){let z;if(isRowEditMode(u.getMode())?z=W(F.rowKey,F.columnId):(e.scrollToCell(F.rowKey,F.columnId),z=u.beginEdit(F.rowKey,F.columnId)),z)return s.preventDefault(),s.stopPropagation(),true}}if(s.key==="Tab"&&Q.current.focusCellOnTab!==false&&!u.getSession()&&e.getFocus()&&(I(s.shiftKey?-1:1,{open:Q.current.keepEditingOnTab===true,cycle:Q.current.focusCellOnCycle!==false})||s.shiftKey&&Q.current.appendOnTab===true))return s.preventDefault(),true;if(H&&s.shiftKey&&!s.altKey&&!u.getSession()&&RANGE_KEY_DIRECTIONS[s.key]){let F=e.getFocus(),z=e.getVisualColumnIds(),fe=z.flatMap((Xe,et)=>isChromeColumn(Xe)?[]:[et]),ge=F?e.getRowIndex(F.rowKey):-1,xe=F?z.indexOf(F.columnId):-1;if(ge>=0&&xe>=0&&fe.length>0){s.preventDefault(),s.stopPropagation();let Xe=e.getRows(),et=extendRangeByKey(He.getRange(),{row:ge,column:xe},RANGE_KEY_DIRECTIONS[s.key],R,{rows:Xe.length,firstColumn:fe[0],lastColumn:fe[fe.length-1]});He.getRange()||He.start(et.startRow,et.startColumn),He.extend(et.endRow,et.endColumn),e.notifyViewStateChanged();let ot=Xe[et.endRow]?.key;return ot!==void 0&&e.scrollToCell(ot,z[et.endColumn]),true}}if(H&&Q.current.fillKeys!==false&&R&&!s.shiftKey&&!s.altKey&&!u.getSession()&&(s.key==="d"||s.key==="D"||s.key==="r"||s.key==="R")){let F=e.getFocus(),z=e.getVisualColumnIds(),fe=z.findIndex(ot=>!isChromeColumn(ot)),ge=F?e.getRowIndex(F.rowKey):-1,xe=F?z.indexOf(F.columnId):-1,Xe=He.getRange()??(ge>=0&&xe>=0?{startRow:ge,startColumn:xe,endRow:ge,endColumn:xe}:null),et=Xe?keyboardFill(Xe,s.key.toLowerCase()==="d"?"down":"right",Math.max(0,fe)):null;if(et)return s.preventDefault(),s.stopPropagation(),ut(et.source,et.target),true}!R&&!s.shiftKey&&!u.getSession()&&nc.has(s.key)&&He.clear();let _=Q.current.insertKey;if(s.key==="Insert"&&(_===true||_==="above"||_==="below")&&!R&&!u.getSession()){let F=e.getFocus();if(F){if(s.preventDefault(),u.canAdd())if(_==="below"){let z=e.getRows(),fe=z.findIndex(xe=>xe.key===F.rowKey),ge;for(let xe=fe+1;fe>=0&&xe<z.length&&ge===void 0;xe++)z[xe]?.kind==="data"&&(ge=z[xe].key);ge!==void 0?Me({},ge):Me({},void 0,{position:"last"});}else Me({},F.rowKey);return true}}if(s.key==="Delete"&&R&&!s.shiftKey&&Q.current.deleteKey===true&&!u.getSession()){let F=e.getFocus();if(F)return s.preventDefault(),be(F.rowKey,F.columnId),true}if(s.key==="ArrowDown"&&Q.current.appendOnArrowDown===true&&!R&&!s.shiftKey&&!u.getSession()){let F=e.getFocus(),z=e.getRows(),fe=z.length>0?z[z.length-1]:void 0;if(F&&fe&&fe.key===F.rowKey&&u.canAdd())return s.preventDefault(),s.stopPropagation(),Me({}),true}if(s.key==="F2"&&Q.current.editKeys?.f2!==false&&!R&&!s.shiftKey){let F=e.getFocus();if(F)return s.preventDefault(),isRowEditMode(u.getMode())?(W(F.rowKey,F.columnId),true):(e.scrollToCell(F.rowKey,F.columnId),u.beginEdit(F.rowKey,F.columnId),true)}if(s.key===" "&&Q.current.editKeys?.space===true&&!R&&!s.altKey&&!s.shiftKey&&!u.getSession()){let F=e.getFocus();if(F&&e.getColumnModel().getDef(F.columnId)?.lookup){if(isRowEditMode(u.getMode()))return W(F.rowKey,F.columnId)&&s.preventDefault(),true;if(e.scrollToCell(F.rowKey,F.columnId),u.beginEdit(F.rowKey,F.columnId))return s.preventDefault(),true}}return (Q.current.editKeys?.typing??Q.current.editOnKeyPress)!==false&&!R&&(!s.altKey||g)&&s.key.length===1&&s.key!==" "&&!u.getSession()&&Y(s.key)?(s.preventDefault(),true):false},[u,e,H,x,nt,ze,tt,Y,W,I,Me,me,Te,ut,l,ct,be,$e]);return {engine:u,range:He,version:re,api:Ie,beginEdit:Se,beginRowEdit:Ee,saveRowEdit:me,cancelRowEdit:Te,rowSaveError:pt,addRow:Me,commitCellEditor:st,commitCustomEditor:Ye,suspendBlurCommit:We,blurCommitSuspended:Dt,keyContext:bt,doubleClickEdits:b?.doubleClick!==false,editAdjacentCell:I,editFocusedCellWith:Y,cancelCellEdit:l,focusScroller:we,deleteRow:J,saveChanges:dt,cancelChanges:Ht,selectionStats:yt,handleKeyDown:de,cut:ze,copySelection:tt,paste:nt,saveError:ie,clearSaveError:rt,pendingDelete:Re,resolveDelete:Le,fillPreview:Ge,startFillDrag:St,moveFillDrag:Nt,endFillDrag:rn,isDraggingFill:ye.current!==null}}var es=createContext(""),ts=createContext(()=>document.body),pc=typeof window<"u"?useLayoutEffect:useEffect;function La({theme:e,density:t,palette:n,dark:o,portalContainer:i,children:a}){let d=useMemo(()=>`${themeClassName(e,t,n)}${o?" kanuni-datagrid-dark":""}`,[e,t,n,o]),p=useRef(i);pc(()=>{p.current=i;},[i]);let f=useMemo(()=>()=>portalTarget(p.current),[]);return jsx(es.Provider,{value:d,children:jsx(ts.Provider,{value:f,children:a})})}function Jt(){return useContext(ts)}function $t(){return useContext(es)}var Pa=8,os=new Map,hc=120,bc=26,rs=44;function yc(){return typeof window<"u"&&!!window.matchMedia?.("(pointer: coarse)").matches}var as=4;function go(e,t,n,o,i="startsWith",a="case"){let d=foldMatchText(t.trim(),a);if(d==="")return null;let p=[],f=n==="contains",w=i==="contains",k=n!=="none",y=o&&i!=="none";for(let P=0;P<e.length;P++){let C=e[P];if(k&&(f?C.includes(d):C.startsWith(d)))p.push(P);else if(y){let S=o[P];(w?S.includes(d):S.startsWith(d))&&p.push(P);}}return p}function Rc(e,t,n){let o=e.map(a=>foldText(a.label)),i=go(o,t,n);return i===null?e:i.map(a=>e[a])}function Oo(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",matchFold:e.matchFold??"case",openOnEdit:e.openOnEdit??false,restrictInput:e.restrictInput??false,typeAhead:e.typeAhead??false,listResizable:e.listResizable??false,listColumns:e.listColumns,dropButton:e.dropButton??false,display:e.display,hoverHighlights:e.hoverHighlights??true,openHighlight:e.openHighlight??"none"}:{}}function sn(e){return e.code!==void 0?e.code:e.value}function Ao(e,t,n){if(!e||!e.linkedColumns&&!e.map)return null;let o={[t]:n.value},i=e.linkedColumns;return i&&(o[i.code]=sn(n),o[i.name]=n.label,i.id&&(o[i.id]=n.id)),e.map&&Object.assign(o,e.map(n)),o}function Sn({options:e,value:t,matchMode:n="startsWith",codeMatchMode:o="startsWith",matchFold:i="case",linked:a=false,allowCustom:d=false,openOnEdit:p=false,seeded:f=false,restrictInput:w=false,typeAhead:k=false,listResizable:y=false,listColumns:P,dropButton:C=false,openOnFocus:S=false,display:v,hoverHighlights:L=true,openHighlight:N="none",clearable:D=false,loading:G=false,passKeys:$=false,pickerTabStop:q=false,buttonOrder:te="drop-first",pickerLabel:H,dropLabel:x,inputId:O,name:A,required:m,describedBy:E,autoCompleteSingle:b=true,onNoMatch:X="keep-open",onPick:ne,invalid:K,disabled:oe=false,autoFocus:M=true,testId:re,columnId:Ne,ariaLabel:Oe,onChange:ue,onCommit:He,commitOnPick:ye=true,onCancel:Ge,onTab:V,onBlurCommit:Q,onPickerOpen:ke,suspendBlurCommit:u,registerFlush:Ue}){let Ae=Fe(),Ie=$t(),ht=Jt(),Be=useRef(null),ae=useRef(null),pe=p&&M,ve=w&&!d,[Se,Me]=useState(()=>{if(!(pe&&f))return null;let c=t==null?"":String(t);if(ve&&c.trim()!==""){let j=e.map(De=>foldMatchText(De.label,i)),Ce=a?e.map(De=>foldMatchText(De.value==null?"":String(De.value),i)):null;if(go(j,c,n,Ce,o,i)?.length===0)return ""}return c}),[J,be]=useState(pe),[we,I]=useState(-1),W=`${useId()}-list`,[Y,ie]=useState(()=>{let c=e.findIndex(j=>Object.is(j.value,t)||a&&Object.is(sn(j),t));return pe&&!f&&N==="current"?c>=0?c:0:pe&&!(b&&!d)&&!f?c:0}),se=useRef(false),[Re,qe]=useState(0),[Le,it]=useState(null),Z=Ne??re??"",[ct,Xt]=useState(()=>y?os.get(Z)??null:null),[l,st]=useState(false),[Ye]=useState(()=>yc()?rs:bc),We=P&&P.length>0?Ye:0,Dt=P?.map(c=>c.width!==void 0?`${c.width}px`:"minmax(0, 1fr)").join(" "),bt=b&&!d,dt=k&&!d,[rt,Ht]=useState(null),yt=rt!==null&&rt.for===(Se??"")?rt:null,je=useMemo(()=>e.map(c=>foldMatchText(c.label,i)),[e,i]),St=useMemo(()=>a?e.map(c=>foldMatchText(sn(c)==null?"":String(sn(c)),i)):null,[e,a,i]),Nt=a?v??"code":"name",ut=c=>{let j=sn(c)==null?"":String(sn(c));return Nt==="code"?j:Nt==="both"?`${j} \u2014 ${c.label}`:c.label},rn=useMemo(()=>Nt==="name"?je:e.map(c=>foldMatchText(ut(c),i)),[e,je,Nt,i]),Gt=useMemo(()=>{let c=e.find(j=>Object.is(j.value,t))??(a?e.find(j=>Object.is(sn(j),t)):void 0);return c?ut(c):t==null||t===""?"":String(t)},[e,t,a,Nt]),tt=useMemo(()=>Se===null?null:go(je,Se,n,St,o,i),[je,St,Se,n,o,i]),ze=tt===null?e.length:tt.length,Je=c=>e[tt===null?c:tt[c]],nt=yt?.label??Se??Gt,$e=c=>{let j=foldMatchText(c.trim(),i);if(j==="")return -1;if(St){let Ce=St.indexOf(j);if(Ce>=0)return Ce}return je.indexOf(j)},pt=c=>{let j=go(je,c,n,St,o,i);if(!j||j.length===0)return {at:-1,prefix:false};let Ce=foldMatchText(c,i),De=$e(c);if(De>=0&&j.includes(De))return {at:De,prefix:rn[De].startsWith(Ce)};let mt=j.find(Ot=>rn[Ot].startsWith(Ce));return mt!==void 0?{at:mt,prefix:true}:{at:j[0],prefix:false}},B=c=>{if(!dt||c.trim()==="")return Ht(null);let{at:j,prefix:Ce}=pt(c),De=j>=0?ut(e[j]):"";Ht(Ce&&De.length>c.length?{for:c,label:De}:null);};useLayoutEffect(()=>{let c=Be.current;yt&&c&&document.activeElement===c&&c.setSelectionRange(yt.for.length,yt.label.length);},[yt]),useEffect(()=>{if(Se===null){ie(j=>j<ze?j:bt?0:-1);return}if(dt&&Se.trim()!==""){let{at:j}=pt(Se);ie(j<0||tt===null?-1:tt.indexOf(j));return}if(bt){ie(0);return}let c=$e(Se);ie(c<0||tt===null?c:tt.indexOf(c));},[tt,ze]),useLayoutEffect(()=>{if(M)if(Be.current?.focus({preventScroll:true}),pe&&f){let c=Be.current?.value.length??0;Be.current?.setSelectionRange(c,c),Se&&B(Se);}else Be.current?.select();},[]);let Ee=()=>{let c=Be.current;if(!c)return;let j=c.getBoundingClientRect(),Ce=P?P.reduce((Ot,Fn)=>Ot+(Fn.width??120),0)+2:0,De=ct?.width??Math.max(j.width,a?280:0,Ce),mt=placeAnchoredLayer({anchor:{left:j.left,top:j.top,bottom:j.bottom},width:De,height:ct?.height??Math.min(Math.max(ze,1),Pa)*Ye+We,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});it({left:mt.left,top:mt.top,width:De,flipped:mt.flipped});};useLayoutEffect(()=>{J&&Ee();},[J,ze,ct]),useEffect(()=>{if(!J)return;let c=()=>Ee();return window.addEventListener("scroll",c,true),window.addEventListener("resize",c),()=>{window.removeEventListener("scroll",c,true),window.removeEventListener("resize",c);}},[J]),useLayoutEffect(()=>{let c=ae.current;if(!c||!J||ze===0||Y<0)return;let j=We+Y*Ye,Ce=j+Ye,De=c.scrollTop;j-We<De?De=j-We:Ce>De+c.clientHeight&&(De=Ce-c.clientHeight),De!==c.scrollTop&&(c.scrollTop=De,qe(De));},[Y,J,ze]);let me=ct?.height??Math.min(Math.max(ze,1),Pa)*Ye+We,Te=c=>{if(!Le)return;c.preventDefault(),c.stopPropagation();let j=c.currentTarget;j.setPointerCapture?.(c.pointerId);let Ce={x:c.clientX,y:c.clientY,width:Le.width,height:me},De=Le.flipped,mt=Fn=>{let jr=(Fn.clientY-Ce.y)*(De?-1:1),Zo={width:Math.round(Math.min(window.innerWidth-16,Math.max(hc,Ce.width+Fn.clientX-Ce.x))),height:Math.round(Math.min(window.innerHeight-16,Math.max(Ye*3,Ce.height+jr)))};os.set(Z,Zo),Xt(Zo);},Ot=()=>{j.removeEventListener("pointermove",mt),j.removeEventListener("pointerup",Ot),j.removeEventListener("pointercancel",Ot);};j.addEventListener("pointermove",mt),j.addEventListener("pointerup",Ot),j.addEventListener("pointercancel",Ot);},de=Math.max(0,Math.floor(Re/Ye)-as),s=Math.min(ze,Math.ceil((Re+me)/Ye)+as),g=c=>{if(ne){if(!ne(c))return}else ue(c.value);fe.current=true,se.current=false,Me(null),be(false),st(false),ye&&He();},R=useRef(false),_=()=>{if(!ke||R.current)return;R.current=true,be(false);let c=()=>Be.current;u?.(true,c);let j=Se??"",Ce=De=>{R.current=false,u?.(false,c);let mt=Be.current;mt?.isConnected&&(De?g(De):(Me(null),Ht(null),se.current=false,mt.focus({preventScroll:true})));};Promise.resolve().then(()=>ke(j)).then(De=>Ce(De??null),De=>{console.error("[KanuniLabs DataGrid] lookup.onPickerOpen failed; the cell keeps its value.",De),Ce(null);});},ee=()=>{if(J)return;be(true),qe(0),ae.current&&(ae.current.scrollTop=0);let c=()=>e.findIndex(j=>Object.is(j.value,t)||a&&Object.is(sn(j),t));if(N==="current"&&Se===null){let j=c();ie(j>=0?j:0);return}!bt&&Se===null&&ie(c());},F=()=>{ee(),st(true);},z=()=>{if(se.current&&J&&Y>=0&&Y<ze){let De=Je(Y);return ne?ne(De):(ue(De.value),true)}if(Se===null)return true;let c=Se.trim();if(c==="")return d?ue(""):D&&ue(null),true;if(d){let De=$e(c);return ue(De>=0?e[De].value:c),true}if(dt){if(ze===0)return false;let De=Je(Y>=0&&Y<ze?Y:0);return ne?ne(De):(ue(De.value),true)}if(!b)return false;let j=foldMatchText(c,i),Ce=je.indexOf(j);return Ce>=0?(ue(e[Ce].value),true):ze===1?(ue(Je(0).value),true):false},fe=useRef(false),ge=useRef(()=>true),xe=()=>{let c=z();return c&&(fe.current=true),c};ge.current=()=>fe.current||xe(),useEffect(()=>{if(Ue)return Ue(()=>ge.current()),()=>Ue(null)},[]);let Xe=useRef(false),et=useRef(""),[ot,Go]=useState(false),pn=useRef(null);useEffect(()=>()=>{pn.current&&clearTimeout(pn.current);},[]);let Kn=()=>{Go(true),pn.current&&clearTimeout(pn.current),pn.current=setTimeout(()=>Go(false),260);},fn=c=>c.trim()===""||G?true:go(je,c,n,St,o,i)?.length!==0,vn=useRef(()=>{});vn.current=c=>{if(!ve||Xe.current||c.isComposing||c.inputType.startsWith("delete")||c.inputType.startsWith("history"))return;let j=Be.current;if(!j)return;let Ce=c.data??c.dataTransfer?.getData("text/plain")??"",De=j.selectionStart??j.value.length,mt=j.selectionEnd??De,Ot=j.value.slice(0,De)+Ce.replace(/[\r\n]+/g," ")+j.value.slice(mt);fn(Ot)||(c.preventDefault(),Kn());},useEffect(()=>{let c=Be.current;if(!c)return;let j=Ce=>vn.current(Ce);return c.addEventListener("beforeinput",j),()=>c.removeEventListener("beforeinput",j)},[]);let Jo=c=>{if(!(c.nativeEvent.isComposing||c.keyCode===229)){if(c.key==="Escape"&&J&&ln(c)){be(false),Me(null),Ht(null),se.current=false;return}if(!ln(c)){if(ke&&c.key==="Enter"&&(c.ctrlKey||c.metaKey)&&!c.altKey){c.preventDefault(),c.stopPropagation(),_();return}if(yt&&(c.key==="ArrowLeft"||c.key==="ArrowRight"||c.key==="Home"||c.key==="End")&&Me(yt.label),c.key==="F4"||c.altKey&&(c.key==="ArrowDown"||c.key==="ArrowUp")){c.preventDefault(),c.stopPropagation(),c.key==="ArrowUp"||c.key==="F4"&&J?be(false):ee();return}if(c.key==="ArrowDown"||c.key==="ArrowUp"){if(c.preventDefault(),c.stopPropagation(),!J){ee();return}if(ze===0)return;se.current=true,fe.current=false,ie(j=>j<0?c.key==="ArrowDown"?0:ze-1:((c.key==="ArrowDown"?j+1:j-1)+ze)%ze);return}if(c.key==="PageDown"||c.key==="PageUp"){if(!J||ze===0)return;c.preventDefault(),c.stopPropagation();let j=Pa*(c.key==="PageDown"?1:-1);se.current=true,fe.current=false,ie(Ce=>Math.min(ze-1,Math.max(0,Ce+j)));return}if(c.key==="Home"||c.key==="End"){if(!J||ze===0)return;c.preventDefault(),c.stopPropagation(),se.current=true,fe.current=false,ie(c.key==="Home"?0:ze-1);return}if(c.key==="Enter"&&G){c.preventDefault(),c.stopPropagation();return}if(c.key==="Enter"){if(c.preventDefault(),c.stopPropagation(),J&&Y>=0&&Y<ze){g(Je(Y));return}xe()?(Me(null),He()):F();return}if(c.key==="Escape"){if(c.preventDefault(),c.stopPropagation(),J){be(false),Me(null),Ht(null),se.current=false;return}Me(null),Ge();return}if(c.key==="Tab"){if(!xe()){if(X!=="revert"){c.preventDefault(),c.stopPropagation(),F();return}Me(null);}be(false),V&&(c.preventDefault(),c.stopPropagation(),V(c.shiftKey));return}!$&&gn(c)&&c.stopPropagation();}}},It=useRef(G);useEffect(()=>{if(It.current&&!G&&Se!==null){let c=Se;if(ve){let j=Ce=>Ce.trim()===""||go(je,Ce,n,St,o,i)?.length!==0;for(;c!==""&&!j(c);)c=c.slice(0,-1);}c!==Se&&Me(c===""?null:c),c!==""&&B(c);}It.current=G;},[G,e]);let Mo=[];for(let c=de;c<s;c++){let j=Je(c);Mo.push(jsx("div",{role:"option",id:`${W}-${c}`,"aria-selected":c===Y,"aria-posinset":c+1,"aria-setsize":ze,className:`kanuni-datagrid-lookup-item${c===Y?" kanuni-datagrid-lookup-item--active":""}${c===we&&c!==Y?" kanuni-datagrid-lookup-item--hover":""}${Dt?" kanuni-datagrid-lookup-item--table":""}`,title:j.label,style:{position:"absolute",top:c*Ye,height:Ye,left:0,right:0,gridTemplateColumns:Dt},onMouseEnter:()=>L?ie(c):I(c),onMouseLeave:()=>I(Ce=>Ce===c?-1:Ce),onClick:()=>g(j),children:P&&P.length>0?P.map(Ce=>{let De=j[Ce.key];return jsx("span",{className:`kanuni-datagrid-lookup-col${Ce.align==="end"?" kanuni-datagrid-lookup-col--end":""}`,title:De==null?void 0:String(De),children:De==null?"":String(De)},Ce.key)}):a?jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-lookup-code",children:sn(j)==null?"":String(sn(j))}),jsx("span",{className:"kanuni-datagrid-lookup-name",children:j.label})]}):j.label},String(j.value)));}let Xr=J&&Le?createPortal(jsxs(Fragment,{children:[jsx("div",{ref:ae,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${Ye===rs?" kanuni-datagrid-lookup-popup--touch":""}${Ie}`,"data-kanuni-portal":"popup",role:"listbox",id:W,"aria-label":Oe,"data-testid":re?`${re}-list`:void 0,style:{left:Le.left,top:Le.top,width:Le.width,height:me},onScroll:c=>qe(c.currentTarget.scrollTop),onMouseDown:c=>c.preventDefault(),children:ze===0?jsx("div",{className:"kanuni-datagrid-lookup-empty",children:G?Ae.editLookupLoading:Ae.editNoMatch}):jsxs(Fragment,{children:[Dt&&jsx("div",{className:"kanuni-datagrid-lookup-head",role:"presentation",style:{height:Ye,gridTemplateColumns:Dt},children:P.map(c=>jsx("span",{className:`kanuni-datagrid-lookup-col${c.align==="end"?" kanuni-datagrid-lookup-col--end":""}`,children:c.header},c.key))}),jsx("div",{style:{position:"relative",height:ze*Ye},children:Mo})]})}),y&&jsx("span",{className:`kanuni-datagrid-detached kanuni-datagrid-lookup-grip${Le.flipped?" kanuni-datagrid-lookup-grip--top":""}${Ie}`,"data-kanuni-portal":"popup","data-testid":re?`${re}-grip`:void 0,"aria-hidden":"true",style:{left:Le.left+Le.width-14,top:Le.flipped?Le.top:Le.top+me-14},onMouseDown:c=>c.preventDefault(),onPointerDown:Te})]}),ht()):null,Qo=C?jsx("button",{type:"button",className:"kanuni-datagrid-lookup-drop","data-testid":re?`${re}-drop`:void 0,"aria-label":x??Oe,"aria-expanded":J,tabIndex:-1,disabled:oe,onMouseDown:c=>c.preventDefault(),onClick:()=>{J?be(false):ee(),Be.current?.focus({preventScroll:true});},children:"\u25BE"}):null,mn=H??Ae.editLookupPicker,Jn=ke?jsx("button",{type:"button",className:"kanuni-datagrid-lookup-picker","data-testid":"dg-lookup-picker","aria-label":mn,title:`${mn} (Ctrl+Enter)`,tabIndex:q?0:-1,disabled:oe,onMouseDown:q?void 0:c=>c.preventDefault(),onClick:_,onKeyDown:c=>{q&&(c.key==="F4"||c.altKey&&c.key==="ArrowDown")&&(c.preventDefault(),_());},children:"\u2026"}):null;return jsxs(Fragment,{children:[jsx("input",{ref:Be,type:"text",role:"combobox",id:O,name:A,"aria-expanded":J,"aria-controls":J?W:void 0,"aria-activedescendant":J&&Y>=0&&Y<ze?`${W}-${Y}`:void 0,"aria-autocomplete":dt?"both":"list","aria-required":m||void 0,"aria-describedby":E,"aria-busy":G||void 0,"aria-keyshortcuts":`Alt+ArrowDown F4${ke?" Control+Enter":""}`,"aria-label":Oe,"data-testid":re,"data-column-id":Ne,disabled:oe,className:`kanuni-datagrid-editor${K?" kanuni-datagrid-editor--invalid":""}${ot?" kanuni-datagrid-editor--refused":""}${ke||C?" kanuni-datagrid-editor--with-picker":""}`,value:nt,onCompositionStart:()=>{Xe.current=true,et.current=nt;},onCompositionEnd:c=>{if(Xe.current=false,B(c.currentTarget.value),!ve)return;let j=c.currentTarget.value;fn(j)||(Me(et.current),Kn());},onChange:c=>{let j=c.nativeEvent;if(ve&&!Xe.current&&!j.isComposing&&!(j.inputType??"").startsWith("delete")&&!fn(c.target.value)){Kn();return}Me(c.target.value),se.current=false,fe.current=false,!Xe.current&&!j.isComposing&&!(j.inputType??"").startsWith("delete")?B(c.target.value):Ht(null),st(false),qe(0),ae.current&&(ae.current.scrollTop=0),be(true);},onFocus:S?ee:void 0,onClick:S?ee:void 0,onKeyDown:Jo,onBlur:c=>{if(R.current)return;(Se!==null||se.current)&&!xe()&&Me(null),be(false),st(false);let j=c.relatedTarget;j instanceof Element&&j.closest(`${Ut}, .kanuni-datagrid-detached`)||Q?.();}}),te==="picker-first"?jsxs(Fragment,{children:[Jn,Qo]}):jsxs(Fragment,{children:[Qo,Jn]}),jsx("span",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite",children:!d&&(l||Se!==null&&Se.trim()!==""&&ze===0)?Ae.editNoMatch:""}),Xr]})}function xc(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=ps(e);return [...t.slice(n),...t.slice(0,n)]}function ps(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function Dc(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 Sc(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Wn({value:e,format:t=DEFAULT_DATE_FORMAT,invalid:n,disabled:o,autoFocus:i=true,testId:a,columnId:d,ariaLabel:p,onChange:f,onCommit:w,onCancel:k,onTab:y,onBlurCommit:P,registerFlush:C,seedDigits:S}){let v=Fe(),L=$t(),N=Jt(),D=useMemo(()=>Dc(v),[v]),G=useMemo(()=>xc(v),[v]),$=useRef(null),[q,te]=useState(()=>S!==void 0?dateDigits(S,t):null),[H,x]=useState(false),[O,A]=useState(null),m=useMemo(()=>toDate(e),[e]),E=q===null?formatDateValue(e,t):maskDate(q,t),b=q===null?null:parseDateValue(E,t),X=q!==null&&q.length===dateDigitCount(t)&&b===null,[ne,K]=useState(()=>m??new Date);useEffect(()=>{H&&K(b??m??new Date);},[H]),useLayoutEffect(()=>{if(i)if($.current?.focus({preventScroll:true}),S!==void 0){let V=$.current?.value.length??0;$.current?.setSelectionRange(V,V);}else $.current?.select();},[]);let oe=useRef(null),M=useCallback(()=>{let V=$.current;if(!V)return;let Q=V.getBoundingClientRect(),ke=placeAnchoredLayer({anchor:{left:Q.left,top:Q.top,bottom:Q.bottom},width:oe.current?.offsetWidth??0,height:oe.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});A({left:ke.left,top:ke.top});},[]),re=useCallback(V=>{oe.current=V,V&&M();},[M]);useLayoutEffect(()=>{H&&M();},[H,M]),useEffect(()=>{if(!H)return;let V=()=>M();return window.addEventListener("scroll",V,true),window.addEventListener("resize",V),()=>{window.removeEventListener("scroll",V,true),window.removeEventListener("resize",V);}},[H,M]);let Ne=useCallback(V=>{if(V===null){f(null);return}f(e instanceof Date?V:toIsoDate(V));},[f,e]),Oe=V=>{te(null),x(false),Ne(V),$.current?.focus({preventScroll:true});},ue=useCallback(()=>{if(q!==null){if(q.length===0){Ne(null),te(null);return}b&&Ne(b),te(null);}},[q,b,Ne]),He=useRef(ue);He.current=ue,useEffect(()=>{if(C)return C(()=>(He.current(),true)),()=>C(null)},[]);let ye=V=>{if(!ln(V)){if(V.key==="Escape"){if(V.preventDefault(),V.stopPropagation(),H){x(false);return}te(null),k();return}if(H){let Q=V.key==="ArrowLeft"?-1:V.key==="ArrowRight"?1:V.key==="ArrowUp"?-7:V.key==="ArrowDown"?7:0;if(Q!==0){V.preventDefault(),V.stopPropagation();let ke=b??m??new Date,u=new Date(ke.getFullYear(),ke.getMonth(),ke.getDate()+Q);te(dateDigits(formatDateValue(u,t),t)),K(u);return}if(V.key==="Enter"){V.preventDefault(),V.stopPropagation(),x(false),b&&Oe(b);return}}if(V.key==="Enter"){V.preventDefault(),V.stopPropagation(),ue(),w();return}if(V.key==="Tab"){ue(),x(false),y&&(V.preventDefault(),V.stopPropagation(),y(V.shiftKey));return}if(V.key.length===1&&!V.ctrlKey&&!V.metaKey&&!/\d/.test(V.key)){V.preventDefault();return}gn(V)&&V.stopPropagation();}},Ge=H&&O?createPortal(jsxs("div",{ref:re,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${L}`,"data-kanuni-portal":"popup",style:{left:O.left,top:O.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":p?`${p} ${v.dateCalendar}`:v.dateCalendar,onMouseDown:V=>V.preventDefault(),children:[jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsx("button",{type:"button","aria-label":v.datePreviousMonth,"data-testid":"dg-date-prev",onClick:()=>K(new Date(ne.getFullYear(),ne.getMonth()-1,1)),children:"\u2039"}),jsxs("span",{"data-testid":"dg-date-title",children:[D[ne.getMonth()]," ",ne.getFullYear()]}),jsx("button",{type:"button","aria-label":v.dateNextMonth,"data-testid":"dg-date-next",onClick:()=>K(new Date(ne.getFullYear(),ne.getMonth()+1,1)),children:"\u203A"})]}),jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[G.map(V=>jsx("span",{className:"kanuni-datagrid-date-weekday",role:"columnheader",children:V},V)),(()=>{let Q=(new Date(ne.getFullYear(),ne.getMonth(),1).getDay()-ps(v)+7)%7,ke=daysInMonth(ne.getFullYear(),ne.getMonth()+1),u=[];for(let Ue=0;Ue<42;Ue++){let Ae=Ue-Q+1,Ie=new Date(ne.getFullYear(),ne.getMonth(),Ae),ht=Ae<1||Ae>ke,Be=Sc(Ie,b??m);u.push(jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${ht?" kanuni-datagrid-date-day--outside":""}${Be?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":Be,"data-testid":"dg-date-day","data-date":toIsoDate(Ie),onClick:()=>Oe(Ie),children:Ie.getDate()},Ue));}return u})()]})]}),N()):null;return jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsx("input",{ref:$,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":p,"aria-invalid":X||n?true:void 0,"data-testid":a,"data-column-id":d,disabled:o,className:`kanuni-datagrid-editor${X||n?" kanuni-datagrid-editor--invalid":""}`,value:E,onChange:V=>{let Q=dateDigits(V.target.value,t);te(Q);let ke=Q.length===dateDigitCount(t)?parseDateValue(maskDate(Q,t),t):null;ke&&Ne(ke);},onKeyDown:ye,onBlur:V=>{if(H)return;ue();let Q=V.relatedTarget;Q instanceof Element&&Q.closest(`${Ut}, .kanuni-datagrid-detached`)||P?.();}}),jsx("button",{type:"button",className:"kanuni-datagrid-date-button","aria-label":p?`${p} \u2014 ${v.dateOpenCalendar}`:v.dateOpenCalendar,"aria-expanded":H,"data-testid":"dg-date-open",disabled:o,tabIndex:-1,onMouseDown:V=>V.preventDefault(),onClick:()=>{x(V=>!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"})})}),Ge]})}function Oa(e){return {save:e.save,cancel:e.cancel,editTitle:e.formEditTitle,addTitle:e.formAddTitle,saving:e.editSaving,shortcut:e.formShortcut}}var Ic=Oa(getGridDictionary("en"));function Kc(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 gs(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 Fc(e,t){if(t==="number"){if(e==="")return null;let n=Number(e);return Number.isNaN(n)?e:n}return e}function Aa({rowKey:e,fields:t,getValue:n,errors:o,lookups:i,customEditors:a=false,row:d,saving:p,saveError:f,isNew:w,dark:k=false,popup:y=false,inline:P=false,onNaturalHeight:C,labels:S,onChange:v,setRowValues:L,onSave:N,onCancel:D}){let G=Fe(),$=$t(),q=useMemo(()=>({...Oa(G),...S}),[G,S]),te=useRef(null),H=Object.keys(o)[0]??null,x=useCallback(b=>{if(te.current=b,!b)return;let X=b.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");if(X?.focus(),X instanceof HTMLInputElement&&X.type==="text"&&X.select(),C){let ne=b.querySelector(".kanuni-datagrid-edit-form-fields");ne&&C(b.clientHeight-ne.clientHeight+ne.scrollHeight);}},[C]);useEffect(()=>{if(!H||!te.current)return;te.current.querySelector(`[data-field-id="${cssEscape(H)}"] input, [data-field-id="${cssEscape(H)}"] select`)?.focus();},[H]);let O=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),A=q.shortcut.replace("{key}",O?"\u2318":"Ctrl"),m=useCallback(b=>{if(b.key==="Escape"){b.preventDefault(),b.stopPropagation(),D();return}if(b.key==="Enter"&&(b.ctrlKey||b.metaKey)){b.preventDefault(),b.stopPropagation(),N();return}if(b.key==="Enter"&&!(b.target instanceof HTMLButtonElement)){b.preventDefault();return}if(b.key!=="Tab"||!y||!te.current)return;let X=Array.from(te.current.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(X.length===0)return;let ne=X[0],K=X[X.length-1];!b.shiftKey&&document.activeElement===K?(b.preventDefault(),ne.focus()):b.shiftKey&&document.activeElement===ne&&(b.preventDefault(),K.focus());},[D,N,y]),E=jsxs("div",{ref:x,className:`kanuni-datagrid-edit-form${P?" 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?q.addTitle:q.editTitle,onKeyDown:m,children:[jsx("div",{className:"kanuni-datagrid-edit-form-header",children:jsx("strong",{children:w?q.addTitle:q.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(b=>{let X=n(b.columnId),ne=o[b.columnId],K=i?.[b.columnId],oe=p||!b.editable,M=`dg-field-${String(e)}-${b.columnId}`;return jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":b.columnId,"data-invalid":ne?"":void 0,htmlFor:M,children:[jsx("span",{className:"kanuni-datagrid-edit-form-label",children:b.label}),a&&b.def?.renderEditor?b.def.renderEditor({value:X,rawValue:b.def.field?d[b.def.field]:void 0,row:d,columnId:b.columnId,rowKey:e,error:ne??null,invalid:!!ne,errorId:ne?`${M}-error`:void 0,ariaLabel:b.label,setValue:re=>v(b.columnId,re),commit:()=>(N(),true),cancel:D,suspendBlurCommit:()=>{},commitOnBlur:()=>{},api:{setRowValues:re=>L?.(re)??false}}):K!==void 0?jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsx(Sn,{options:K??[],value:X,...Oo(b.def?.lookup),onPick:b.def?.lookup?.linkedColumns||b.def?.lookup?.map?re=>L?.(Ao(b.def.lookup,b.columnId,re))??false:void 0,invalid:!!ne,testId:M,ariaLabel:b.label,onChange:re=>v(b.columnId,re),onCommit:()=>{},onCancel:D})}):b.def?.lookup?jsx("input",{id:M,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:lookupLabel(b.def,X)??gs(X,b.dataType)}):b.dataType==="date"?jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsx(Wn,{value:X,format:b.def?.dateFormat,invalid:!!ne,disabled:oe,autoFocus:false,testId:M,columnId:b.columnId,ariaLabel:b.label,onChange:re=>v(b.columnId,re),onCommit:()=>{},onCancel:D})}):zt(b.def)?jsx("input",{id:M,className:"kanuni-datagrid-edit-form-input",type:"text",inputMode:zt(b.def).decimals===0?"numeric":"decimal",disabled:oe,"aria-invalid":ne?true:void 0,value:X==null?"":String(X),onChange:re=>v(b.columnId,re.target.value)}):b.dataType==="boolean"?jsx("input",{id:M,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:oe,checked:X===true,onChange:re=>v(b.columnId,re.target.checked)}):jsx("input",{id:M,className:"kanuni-datagrid-edit-form-input",type:Kc(b.dataType,X),disabled:oe,"aria-invalid":ne?true:void 0,value:gs(X,b.dataType),onChange:re=>v(b.columnId,Fc(re.target.value,b.dataType))}),ne&&jsx("span",{id:`${M}-error`,className:"kanuni-datagrid-edit-form-message",role:"alert",children:ne})]},b.columnId)})}),jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:A}),jsx("button",{type:"button",onClick:D,disabled:p,"data-testid":"dg-form-cancel",children:q.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-edit-form-save",onClick:N,disabled:p,"data-testid":"dg-form-save",children:p?q.saving:q.save})]})]});return y?jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-edit-popup${k?" kanuni-datagrid-dark":""}${$}`,children:[jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:D}),E]}):E}function Ba({controller:e,engine:t,columnId:n,message:o,saving:i,lookupOptions:a,onSave:d,onCancel:p}){let f=e.getColumnModel(),w=f.getDef(n);if(a!==void 0){let S=w?.lookup,v=t.getRowSession()?.rowKey;return jsx(Sn,{options:a??[],value:t.rowEditValue(n),...Oo(S),onPick:S?.linkedColumns||S?.map?L=>v!==void 0&&t.setRowValues(v,Ao(S,n,L)):void 0,invalid:!!o,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:L=>t.setRowEditValue(n,L),commitOnPick:false,onCommit:d,onCancel:p})}let k=f.getDataType(n);if(k==="date")return jsx(Wn,{value:t.rowEditValue(n),format:w?.dateFormat,invalid:!!o,disabled:i,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:S=>t.setRowEditValue(n,S),onCommit:d,onCancel:p});let y=zt(w),P=k==="number"&&!y,C=S=>{S.key==="Enter"?(S.preventDefault(),S.stopPropagation(),d()):S.key==="Escape"&&(S.preventDefault(),S.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:o??void 0,disabled:i,type:"checkbox",checked:t.rowEditValue(n)===true,onChange:S=>t.setRowEditValue(n,S.target.checked),onKeyDown:C}):jsx("input",{className:`kanuni-datagrid-editor${o?" kanuni-datagrid-editor--invalid":""}`,"data-testid":"dg-row-editor","data-column-id":n,"aria-label":w?.headerName??n,title:o??void 0,disabled:i,type:P?"number":"text",inputMode:y?y.decimals===0?"numeric":"decimal":void 0,value:String(t.rowEditValue(n)??""),onChange:S=>{let v=S.target.value;t.setRowEditValue(n,P?v===""?null:Number(v):v);},onKeyDown:C})}var bn=Symbol("lookupPending");function _a(e){return e instanceof Date?`d${e.getTime()}`:`${typeof e}:${String(e)}`}var Tr=class{constructor(t){this.controller=t;}controller;lists=new WeakMap;shown=new Map;repaintQueued=false;effectiveRow=null;key(t,n,o){let i=_a(o);for(let a of t.dependsOn??[])i+=`${_a(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,o,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 d=this.key(t,n,o),p=a.get(d);if(p&&!i)return p.items??p.promise;let f={items:null,labels:null,promise:null},w=y=>{f.items=Array.isArray(y)?y:[],f.labels=null,f.promise=null;},k;try{k=t.items(n);}catch{k=[];}return a.set(d,f),Array.isArray(k)?(w(k),f.items):(f.promise=Promise.resolve(k).then(y=>(a.get(d)===f&&(w(y),this.repaint()),f.items??y),()=>(a.get(d)===f&&(w([]),this.repaint()),[])),f.promise)}label(t,n,o,i,a){let d=t?.lookup;if(!d||typeof d.items!="function"||d.linkedColumns)return null;let p=!!d.multiple;if(!p&&(o==null||o===""))return null;let f=this.effectiveRow?.(a)??i,w=this.items(d,f,a);if(p)return Array.isArray(w)?multipleLookupText(d,o,w):bn;let k=`${_a(a)}${n}`;if(!Array.isArray(w)){let C=this.shown.get(k);return C&&Object.is(C.value,o)?C.label:bn}let y=this.lists.get(d).get(this.key(d,f,a));if(!y.labels){y.labels=new Map;for(let C of w)y.labels.set(C.value,C.label);}let P=y.labels.get(o);return P===void 0?(this.shown.delete(k),null):(this.shown.set(k,{value:o,label:P}),P)}},ws=new WeakMap;function _o(e){let t=ws.get(e);return t||(t=new Tr(e),ws.set(e,t)),t}function hs(e,t){if(!e)return [];let n=e.getColumnLayout();return [...n.left,...n.center,...n.right].map(o=>o.state.id).filter(o=>!isChromeColumn(o)&&(t?.(o)??true))}function Ua({controller:e,editing:t,mode:n,active:o,rootRef:i,rowHeight:a,formLabels:d,formHeight:p,dark:f,rowLookups:w,customEditors:k=false,isFormColumn:y,batchBar:P=true,cardPopup:C=false}){let S=Fe(),{engine:v,version:L,beginRowEdit:N,saveRowEdit:D,cancelRowEdit:G,rowSaveError:$,saveChanges:q,cancelChanges:te}=t,H=o&&isRowEditMode(n),x=v?.getRowSession()??null,O=H||x?.standalone||C?x:null,A=!!O&&(n==="popup"||!!O.standalone||C&&!H),m=useRef(y);m.current=y;let E=useMemo(()=>{if(!e||!O)return [];let ae=e.getColumnModel();return hs(e,m.current).map(pe=>{let ve=ae.getDef(pe);return {columnId:pe,label:ve?.headerName??ve?.field??pe,dataType:ae.getEditorDataType(pe),def:ve,editable:v?.canUpdate(O.rowKey,pe)??true}})},[e,v,O]),b=n==="row"&&!A?O?.rowKey??null:null;useEffect(()=>{if(b===null)return;let ae=i.current;if(!ae)return;let pe=ae.querySelectorAll('[data-testid="dg-row-editor"]');if(pe.length===0)return;let ve=e?.getFocus(),Me=(ve&&String(ve.rowKey)===String(b)?ae.querySelector(`[data-testid="dg-row-editor"][data-column-id="${cssEscape(ve.columnId)}"]`):null)??pe[0],J=v?wr.get(v):void 0;v&&wr.delete(v),Me.focus({preventScroll:true}),Me instanceof HTMLInputElement&&(J!==void 0&&Me.getAttribute("data-column-id")===J?Me.setSelectionRange(Me.value.length,Me.value.length):Me.select());},[b]);let X=useCallback(ae=>H&&!A&&O?.rowKey===ae,[H,A,O]),ne=useCallback((ae,pe)=>{let ve=e?.getColumnModel().getDef(ae.columnId);if(ve?.renderCell&&ae.node.kind==="data")return ve.renderCell({value:pe,row:ae.node.data,node:ae.node,column:ve});let Se=ve?lookupLabel(ve,pe):null;if(Se!==null)return Se;if(e&&ve?.lookup&&!ve.valueFormatter&&ae.node.kind==="data"){let J=_o(e).label(ve,ae.columnId,pe,ae.node.data,ae.node.key);if(J===bn)return jsx("span",{className:"kanuni-datagrid-lookup-pending","aria-busy":"true"});if(J!==null)return J}if(ve?.valueFormatter&&ae.node.kind==="data")return ve.valueFormatter(pe,ae.node.data);if(ve?.dateFormat&&ve.dataType==="date")return formatDateValue(pe,ve.dateFormat);let Me=numberCellText(ve,pe);return Me!==null?Me:pe==null?"":String(pe)},[e]),K=useCallback(ae=>{if(!(n!=="row"||!v||!e||ae.node.kind!=="data"||!X(ae.node.key)))return v.canUpdate(ae.node.key,ae.columnId)?jsx(Ba,{controller:e,engine:v,columnId:ae.columnId,message:O?.errors[ae.columnId]??null,saving:O?.saving??false,lookupOptions:w?.[ae.columnId],onSave:()=>{D();},onCancel:G}):ne(ae,v.rowEditValue(ae.columnId))},[n,v,e,L,X,O,w,ne,D,G]),oe=useCallback(ae=>{if(!v||ae.node.kind!=="data")return;let pe=v.changes.get(ae.node.key,ae.columnId);return pe?ne(ae,pe.newValue):void 0},[v,L,ne]),[M,re]=useState(null),Ne=M??p??DEFAULT_EDIT_FORM_HEIGHT,Oe=useCallback(ae=>{ae>0&&re(pe=>pe!==null&&Math.abs(pe-ae)<a?pe:ae);},[a]);useEffect(()=>{O||re(null);},[O]);let ue=(ae,pe)=>O?jsx(Aa,{rowKey:ae,fields:E,getValue:ve=>v?.rowEditValue(ve),errors:O.errors,lookups:w,customEditors:k,row:v?.effectiveRow(O.rowKey),saving:O.saving,saveError:$,isNew:O.isNew,dark:f,popup:A,inline:pe,onNaturalHeight:pe?Oe:void 0,labels:d,onChange:(ve,Se)=>v?.setRowEditValue(ve,Se),setRowValues:ve=>v?.setRowValues(ae,ve)??false,onSave:()=>{D();},onCancel:G}):null,He=O&&A?ue(O.rowKey,false):null,ye=useRef(ue);ye.current=ue;let Ge=useCallback(ae=>ye.current(ae,true),[]),V=n==="form"&&!A?O?.rowKey??null:null,Q=O?.isNew??false,ke=useRef(null);useEffect(()=>{if(e){if(V===null){if(ke.current!==e)return;ke.current=null,e.setEditFormRow(null);return}ke.current=e,e.setEditFormRow(V,{height:Ne,atTop:Q});}},[e,V,Q,Ne]),useEffect(()=>()=>{let ae=ke.current;ke.current=null,ae?.setEditFormRow(null);},[]);let u=H&&n==="row"&&!!O&&!A,Ue=P&&o&&n==="batch"&&(v?.hasChanges()??false),Ae=u||Ue?jsxs(Fragment,{children:[u&&jsxs(Fragment,{children:[jsx("span",{className:"kanuni-datagrid-filter-active","data-testid":"dg-row-editing",children:O?.isNew?S.formAddTitle:fillText(S.editEditingRow,{row:String(O?.rowKey)})}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-row",disabled:O?.saving,onClick:()=>{D();},children:O?.saving?S.editSaving:S.editSaveRow}),jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:G,children:S.cancel}),$&&jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:$})]}),Ue&&jsxs(Fragment,{children:[jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:v?.isSaving(),onClick:()=>{q();},children:fillText(S.editSaveCount,{n:v?.getChanges().length??0})}),jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:te,children:S.cancel})]})]}):null,Ie=useCallback(ae=>!H||!v||v.isEditingRow()?null:{id:"dg-edit-row",label:S.editRowMenu,onSelect:()=>N(ae)},[H,v,N,S,L]),ht=useCallback(ae=>H?(N(ae),true):false,[H,N]),Be=useCallback(ae=>{if(!v)return false;let pe=v.getRowSession();return pe?pe.rowKey===ae:N(ae,{standalone:true})},[v,N]);return {rowModeActive:H,rowSession:O,isRowEditing:X,defaultContent:ne,renderRowCell:K,renderPending:oe,renderEditForm:n==="form"?Ge:void 0,popup:He,bar:Ae,rowSessionAttr:A?"popup":O&&n==="form"?"form":void 0,editRowMenuItem:Ie,openRow:ht,openCardEditor:Be}}var Zc=28,ep=44,tp=10;function Cs({options:e,lookup:t,value:n,ariaLabel:o,testId:i,invalid:a,autoFocus:d=true,onChange:p,onCommit:f,onCancel:w,onTab:k,onBlurCommit:y}){let P=Jt(),C=$t(),S=useRef(null),v=useRef(null),[L,N]=useState(0),[D,G]=useState(null),[$]=useState(()=>typeof window<"u"&&window.matchMedia?.("(pointer: coarse)").matches?ep:Zc),q=useMemo(()=>lookupSelectedValues(t,n,e),[t,n,e]),te=m=>q.some(E=>Object.is(E,m.value)),H=Math.min(Math.max(e.length,1),tp)*$;useLayoutEffect(()=>{let m=S.current;if(!m)return;d&&m.focus({preventScroll:true});let E=()=>{let b=m.getBoundingClientRect(),X=Math.max(b.width,200),ne=placeAnchoredLayer({anchor:{left:b.left,top:b.top,bottom:b.bottom},width:X,height:H,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});G({left:ne.left,top:ne.top,width:X});};return E(),window.addEventListener("scroll",E,true),window.addEventListener("resize",E),()=>{window.removeEventListener("scroll",E,true),window.removeEventListener("resize",E);}},[]),useLayoutEffect(()=>{let m=v.current;if(!m)return;let E=L*$;E<m.scrollTop?m.scrollTop=E:E+$>m.scrollTop+m.clientHeight&&(m.scrollTop=E+$-m.clientHeight);},[L,D]);let x=m=>{m.disabled||p(toggleMultipleValue(t,n,m.value,e));},O=m=>{if(ln(m))return;let E=e.length,b=()=>{m.preventDefault(),m.stopPropagation();};switch(m.key){case "ArrowDown":b(),N(X=>Math.min(E-1,X+1));return;case "ArrowUp":b(),N(X=>Math.max(0,X-1));return;case "Home":b(),N(0);return;case "End":b(),N(E-1);return;case " ":b(),e[L]&&x(e[L]);return;case "Enter":b(),f();return;case "Escape":b(),w();return;case "Tab":k&&(b(),k(m.shiftKey));return;default:if(!gn(m))return;m.stopPropagation();}},A=D&&createPortal(jsx("div",{ref:v,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup kanuni-datagrid-multi-popup${C}`,"data-kanuni-portal":"popup",role:"listbox","aria-multiselectable":"true","aria-label":o,"data-testid":i?`${i}-list`:void 0,style:{left:D.left,top:D.top,width:D.width,maxHeight:H},onMouseDown:m=>m.preventDefault(),children:e.map((m,E)=>{let b=te(m),X=typeof m.disabled=="string"?m.disabled:void 0;return jsxs("div",{role:"option","aria-selected":b,"aria-disabled":m.disabled?true:void 0,"aria-description":X,title:X,className:`kanuni-datagrid-lookup-item kanuni-datagrid-multi-item${E===L?" kanuni-datagrid-lookup-item--active":""}${m.disabled?" kanuni-datagrid-multi-item--disabled":""}`,style:{height:$},onMouseEnter:()=>N(E),onClick:()=>x(m),children:[jsx("input",{type:"checkbox",tabIndex:-1,readOnly:true,checked:b,disabled:!!m.disabled,"aria-hidden":"true"}),jsx("span",{className:"kanuni-datagrid-multi-label",children:m.label}),X&&jsx("span",{className:"kanuni-datagrid-multi-reason",children:X})]},String(m.value))})}),P());return jsxs(Fragment,{children:[jsx("input",{ref:S,type:"text",readOnly:true,role:"combobox","aria-expanded":"true","aria-haspopup":"listbox","aria-label":o,"aria-invalid":a||void 0,"data-testid":i,className:`kanuni-datagrid-editor${a?" kanuni-datagrid-editor--invalid":""}`,value:multipleLookupText(t,n,e),onKeyDown:O,onBlur:m=>{let E=m.relatedTarget;E instanceof Element&&E.closest(`${Ut}, .kanuni-datagrid-detached`)||y?.();}}),A]})}function sp(e,t="en-US"){let n=parseLocaleNumber(e,t);return n.ok?n.value:void 0}function dp(e){return e instanceof Element&&!!e.closest(`${Ut}, .kanuni-datagrid-detached`)}function Ts(e,t){return e==null?"":t==="date"&&e instanceof Date?e.toISOString().slice(0,10):String(e)}function Ya({value:e,dataType:t,error:n,seeded:o=false,seedText:i,options:a,allowCustom:d=false,matchMode:p,lookupSettings:f,onPick:w,multipleLookup:k,onPickerOpen:y,suspendBlurCommit:P,registerFlush:C,ariaLabel:S,dateFormat:v,numberFormat:L,numberLocale:N,onChange:D,onCommit:G,onTab:$,onCancel:q}){let te=useRef(null),H=useRef(false),[x,O]=useState(t==="number"&&i!==void 0?i:null),A=useRef(e),m=(M,re)=>!L||L.restrictInput!==true||isPartialNumberText(M,L)||(re||/\d/.test(M))&&readNumberText(M,L)!==void 0,E=useRef(false),b=useRef(""),X=useRef(()=>{});X.current=M=>{if(L?.restrictInput!==true||E.current||M.isComposing||M.inputType.startsWith("delete")||M.inputType.startsWith("history"))return;let re=te.current;if(!(re instanceof HTMLInputElement))return;let Ne=M.data??M.dataTransfer?.getData("text/plain")??"",Oe=re.selectionStart??re.value.length,ue=re.selectionEnd??Oe,He=M.inputType==="insertFromPaste"||M.inputType==="insertFromDrop",ye=re.value.slice(0,Oe)+(He?Ne.trim():Ne)+re.value.slice(ue);m(ye,He)||M.preventDefault();},useEffect(()=>{let M=te.current;if(!M||L?.restrictInput!==true)return;let re=Ne=>X.current(Ne);return M.addEventListener("beforeinput",re),()=>M.removeEventListener("beforeinput",re)},[]),useEffect(()=>{let M=te.current;if(M&&(M.focus({preventScroll:true}),!(!(M instanceof HTMLInputElement)||M.type==="checkbox")))if(o||i!==void 0){if(M.type==="text"||M.type==="search"){let re=M.value.length;M.setSelectionRange(re,re);}}else M.select();},[]);let K={ref:te,onKeyDown:M=>{if(!(M.nativeEvent.isComposing||M.keyCode===229)&&!ln(M)){if(L?.step!==void 0&&(M.key==="ArrowUp"||M.key==="ArrowDown")&&!M.altKey&&!M.shiftKey){M.preventDefault(),M.stopPropagation();let re=M.target.value??"",Ne=stepNumberText(re,L,M.key==="ArrowUp"?1:-1,M.ctrlKey||M.metaKey?10:1);Ne!==void 0&&D(Ne);return}M.key==="Enter"?(M.preventDefault(),M.stopPropagation(),G(M.shiftKey?"none":"down")):M.key==="Tab"?(M.preventDefault(),M.stopPropagation(),H.current=true,$(M.shiftKey?-1:1)):M.key==="Escape"?(M.preventDefault(),M.stopPropagation(),q()):gn(M)&&M.stopPropagation();}},onBlur:M=>{H.current||dp(M.relatedTarget)||G("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"},oe;return a===null&&k?oe=jsx("input",{...K,type:"text",value:"\u2026",readOnly:true,disabled:true}):a===null?oe=jsx(Sn,{options:[],loading:true,registerFlush:C,value:e,matchMode:p,allowCustom:d,seeded:o,...f,invalid:!!n,testId:K["data-testid"],ariaLabel:S,onChange:D,onCommit:()=>G("none"),onBlurCommit:()=>{H.current||G("blur");},onCancel:q,onTab:M=>{H.current=true,$(M?-1:1);}}):a&&k?oe=jsx(Cs,{options:a,lookup:k,value:e,ariaLabel:S,testId:K["data-testid"],invalid:!!n,onChange:D,onCommit:()=>G("none"),onCancel:q,onTab:M=>{H.current=true,$(M?-1:1);},onBlurCommit:()=>{H.current||G("blur");}}):a?oe=jsx(Sn,{options:a,value:e,matchMode:p,allowCustom:d,seeded:o,...f,onPick:w,onPickerOpen:y,suspendBlurCommit:P,registerFlush:C,invalid:!!n,testId:K["data-testid"],ariaLabel:S,onChange:D,onCommit:()=>G("none"),onBlurCommit:()=>{H.current||G("blur");},onCancel:q,onTab:M=>{H.current=true,$(M?-1:1);}}):L?oe=jsx("input",{...K,type:"text",inputMode:L.decimals===0?"numeric":"decimal",autoComplete:"off",value:String(mr(e,L)??""),onCompositionStart:M=>{E.current=true,b.current=M.currentTarget.value;},onCompositionEnd:M=>{E.current=false,m(M.currentTarget.value,true)||D(b.current);},onChange:M=>{let re=M.nativeEvent;!E.current&&!re.isComposing&&!(re.inputType??"").startsWith("delete")&&!m(M.target.value,true)||D(M.target.value);}}):t==="boolean"?oe=jsx("input",{...K,type:"checkbox",checked:e===true,onChange:M=>D(M.target.checked)}):t==="number"&&x!==null?oe=jsx("input",{...K,type:"text",inputMode:"decimal",value:x,onChange:M=>{let re=M.target.value;O(re);let Ne=sp(re,N);D(Ne===void 0?A.current:Ne);}}):t==="number"?oe=jsx("input",{...K,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:Ts(e,t),onChange:M=>D(M.target.value===""?null:Number(M.target.value))}):t==="date"?oe=jsx(Wn,{value:e,format:v,invalid:!!n,testId:K["data-testid"],ariaLabel:S,seedDigits:i,registerFlush:C,onChange:D,onCommit:()=>G("none"),onBlurCommit:()=>{H.current||G("blur");},onCancel:q,onTab:M=>{H.current=true,$(M?-1:1);}}):oe=jsx("input",{...K,type:"text",value:Ts(e,t),onChange:M=>D(M.target.value)}),jsxs(Fragment,{children:[oe,n&&jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function vs(e,t,n,o,i,a){let d=!n&&t!==void 0&&t.enabled!==false,p=d&&!i,f=t?.mode??"cell",w=useCallback(K=>{let oe=e?.getColumnModel().getDef(K);return !oe?.lookup&&!oe?.renderEditor&&oe?.allowFormulas!==true},[e]),k=Sa({controller:e,enabled:d,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:y,version:P,handleKeyDown:C,editAdjacentCell:S,focusScroller:v,saveError:L,clearSaveError:N,commitCellEditor:D,keyContext:G,doubleClickEdits:$}=k,q=Ua({controller:e,editing:k,mode:f,active:p,rootRef:a.rootRef,rowHeight:a.rowHeight,formLabels:t?.formLabels,formHeight:t?.formHeight,dark:a.dark,cardPopup:a.cardPopup}),{renderRowCell:te,renderPending:H,openRow:x}=q,{renderCellContent:O,getCellClassName:A,onCellDoubleClick:m}=o,E=useCallback(K=>{if(!d||!y||K.node.kind!=="data")return O?.(K);let oe=te(K);if(oe!==void 0)return oe;if(!y.isEditing(K.node.key,K.columnId))return H(K)??O?.(K);let M=y.getSession(),re=e.getColumnModel(),Ne=re.getDef(K.columnId);return jsx(Ya,{value:M.value,dataType:re.getEditorDataType(K.columnId),ariaLabel:Ne?.headerName??K.columnId,dateFormat:Ne?.dateFormat,numberFormat:zt(Ne),numberLocale:re.getNumberLocale(),error:M.validation.message,seeded:M.seeded,seedText:hr.get(M),registerFlush:Oe=>y.setEditFlusher(Oe),onChange:Oe=>y.setEditValue(Oe),onCommit:D,onTab:Oe=>{if(t?.focusCellOnTab===false){y.commitEdit();return}S(Oe,{open:false,cycle:t?.focusCellOnCycle!==false}),v();},onCancel:()=>{y.cancelEdit(),v();}})},[d,y,e,P,O,te,H,S,v,D,t?.focusCellOnTab,t?.focusCellOnCycle]),b=useCallback(K=>{let oe=A?.(K);if(!d||!y||K.node.kind!=="data")return oe;let M=oe?[oe]:[];return y.isEditing(K.node.key,K.columnId)&&M.push("kanuni-datagrid-cell--editing"),y.changes.isDirty(K.node.key,K.columnId)&&M.push("kanuni-datagrid-cell--dirty"),M.length>0?M.join(" "):void 0},[d,y,P,A]),X=useCallback(K=>{m?.(K),!(!d||!y||K.node.kind!=="data"||!$)&&(e?.isRowLeaveBlocked(K.node.key)||x(K.node.key)||y.beginEdit(K.node.key,K.columnId));},[d,y,e,m,x,$]),ne=useCallback(K=>p?C(K):false,[p,C]);return {active:d,renderCellContent:p?E:O,getCellClassName:p?b:A,onCellDoubleClick:p?X:m,handleKeyDown:ne,keyContext:G,saveError:d?L:null,clearSaveError:N,renderEditForm:p?q.renderEditForm:void 0,bar:p?q.bar:null,popup:d?q.popup:null,rowSessionAttr:d?q.rowSessionAttr:void 0,editRowMenuItem:q.editRowMenuItem,rowStatusSource:d?y:null,openCardEditor:d?q.openCardEditor:void 0}}function Xa({open:e,title:t,message:n,cancelLabel:o,confirmLabel:i,danger:a,dark:d,onConfirm:p,onCancel:f}){let w=useRef(null),k=useRef(null),y=useId(),P=useId(),C=$t(),S=Jt();return useEffect(()=>{if(!e)return;let v=document.activeElement;w.current?.focus();let L=k.current;return ()=>{let N=document.activeElement;L&&(L.contains(N)||N===document.body||N===null)&&v?.isConnected&&v.focus({preventScroll:true});}},[e]),useEffect(()=>{if(!e)return;let v=L=>{if(L.key==="Escape"){L.stopPropagation(),f();return}if(L.key==="Tab"&&k.current){let N=Array.from(k.current.querySelectorAll("button:not([disabled])"));if(N.length===0)return;let D=N.indexOf(document.activeElement),G=L.shiftKey?D<=0?N.length-1:D-1:D===N.length-1?0:D+1;L.preventDefault(),L.stopPropagation(),N[G].focus();}};return document.addEventListener("keydown",v,true),()=>document.removeEventListener("keydown",v,true)},[e,f]),!e||typeof document>"u"?null:createPortal(jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${d?" kanuni-datagrid-dark":""}${C}`,"data-kanuni-portal":"popup",role:"presentation",children:[jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:f}),jsxs("div",{ref:k,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":y,"aria-describedby":P,"data-testid":"dg-dialog",children:[jsx("div",{className:"kanuni-datagrid-dialog-title",id:y,children:t}),jsx("div",{className:"kanuni-datagrid-dialog-message",id:P,children:n}),jsxs("div",{className:"kanuni-datagrid-dialog-actions",children:[o!==void 0&&jsx("button",{type:"button","data-testid":"dg-dialog-cancel",onClick:f,children:o}),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:i})]})]})]}),S())}var mp=["kanuni-datagrid-band-row","kanuni-datagrid-header","kanuni-datagrid-filter-row"],Ss="kanuni-datagrid-print-table";function gp(e){let t=e.cloneNode(true);return t.removeAttribute("id"),t.querySelectorAll("[id]").forEach(n=>n.removeAttribute("id")),t}function wp(e){return mp.some(t=>e.classList.contains(t))}function Gs(e){let t=e?.querySelector(".kanuni-datagrid-canvas");if(!e||!t||t.hasAttribute("data-print-clone"))return;let n=document.createElement("table");n.className=Ss,n.setAttribute("aria-hidden","true");let o=n.createTHead(),i=null,a=(p,f)=>{f.insertRow().insertCell().appendChild(gp(p));},d=true;for(let p of Array.from(t.children)){if(d&&wp(p)){a(p,o);continue}if(d=false,i??=n.createTBody(),p.classList.contains("kanuni-datagrid-rows")){let f=p.querySelector(".kanuni-datagrid-viewport")??p;for(let w of Array.from(f.children))a(w,i);}else a(p,i);}t.setAttribute("data-print-clone",""),t.after(n);}function ja(e){e&&(e.querySelectorAll(`.${Ss}`).forEach(t=>t.remove()),e.querySelectorAll("[data-print-clone]").forEach(t=>t.removeAttribute("data-print-clone")));}var Er=0,Qa=5e3;function yp(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Qa,repeatHeader:t.repeatHeader??true,onLimit:t.onLimit}}function Rp(e,t){return e<=t}function Za(e,t,n){let o=yp(t),i=o!==null,a=o?.always??false,d=o?.maxRows??Qa,p=o?.repeatHeader??true,f=o?.onLimit,w=useRef(f);useEffect(()=>{w.current=f;},[f]);let[k,y]=useState(false),P=useCallback(()=>y(true),[]),C=useCallback(()=>y(false),[]);useEffect(()=>{if(!i||typeof window>"u"||typeof window.addEventListener!="function")return;let v=()=>{if(!a){let N=e.getRows().length;if(!Rp(N,d)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${N} rows exceeds maxRows (${d}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`),w.current?.({rows:N,maxRows:d});return}flushSync(()=>y(true));}p&&Gs(n?.current??null);},L=()=>{ja(n?.current??null),a||flushSync(()=>y(false));};return window.addEventListener("beforeprint",v),window.addEventListener("afterprint",L),()=>{window.removeEventListener("beforeprint",v),window.removeEventListener("afterprint",L),ja(n?.current??null);}},[i,a,d,p,e,n]);let S=a||k;return useEffect(()=>{if(!S||typeof document>"u")return;let v=document.documentElement;return Er++,v.classList.add("kanuni-datagrid-printing"),()=>{Er--,Er<=0&&(Er=0,v.classList.remove("kanuni-datagrid-printing"));}},[S]),{active:S,begin:P,end:C}}var xr=new Map,ei=new Set;function Ls(e,t){let n=xr.get(e);return n?[...n].filter(o=>o!==t):[]}function ti(e,t,n){let o=useRef(null);return useEffect(()=>{if(!t)return;let a={controller:e,scroller:()=>n.current};o.current=a;let d=xr.get(t)??new Set;d.add(a),xr.set(t,d);let p=e.events.on("columnStateChanged",()=>{if(ei.has(t))return;let f=Ls(t,a);if(f.length===0)return;let w=e.getColumnStates();ei.add(t);try{for(let k of f)k.controller.applyColumnStates(w);}finally{ei.delete(t);}});return ()=>{p(),d.delete(a),d.size===0&&xr.delete(t),o.current=null;}},[e,t,n]),{syncScroll:useCallback(a=>{let d=o.current;if(!t||!d)return;let p=Ls(t,d);if(p.length!==0)for(let f of p){let w=f.scroller();w&&w.scrollLeft!==a&&(w.scrollLeft=a);}},[t])}}function Dr(e,t,n){return e==="left"?t:e==="center"?n.left+t:n.left+n.center+t}function Ps(e,t){let{start:n,end:o}=t.columns,i=e.centerOffsets,a=i[n]??0,d=(i[o]??0)-a,p=Math.max(0,e.centerWidth-a-d),f=a,w=e.center.slice(n,o),k=Array.from({length:w.length},(C,S)=>n+S),y=e.stickyIndices.filter(C=>C<n);if(y.length>0){let C=y.map(S=>e.center[S]);f-=C.reduce((S,v)=>S+v.state.width,0),w=[...C,...w],k=[...y,...k];}let P=new Map;for(let C of e.stickyIndices){let S=e.centerStickyOffsets[C];S!==null&&P.set(e.center[C].state.id,S);}return {centerColumns:w,centerIndices:k,leadingSpacer:Math.max(0,f),trailingSpacer:p,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:P}}function Is(e){let t=[];for(let n=0;n<e.length;n++){let o=e[n];o&&o.kind!=="data"&&t.push(n);}return t.length>0?t:null}function Ks(e,t,n=0){if(!t)return n+e+1;let o=0,i=t.length;for(;o<i;){let a=o+i>>1;t[a]<e?o=a+1:i=a;}return n+e-o+1}var ri=null,Sr=null,Kp=400,Fp=24;function Hs(e,t,n){return `${e}\0${String(t)}\0${n}`}function Hp(e,t,n,o,i){let a=Hs(e,t,n),d=Date.now(),p=ri;return p&&p.cell===a&&d-p.time<=Kp&&Math.hypot(o-p.x,i-p.y)<=Fp?(ri=null,Sr={cell:a,time:d},true):(ri={cell:a,time:d,x:o,y:i},false)}function Op(e,t,n){return !!Sr&&Sr.cell===Hs(e,t,n)&&Date.now()-Sr.time<800}var Gr=36,Mr=28,bo=60,yo=24,Ap=[["statusColumn",yo],["rowNumberColumn",bo],["detailColumn",Mr],["checkboxColumn",Gr]];function di(e,t,n=false,o=false){return dn({checkboxColumn:e,detailColumn:t,rowNumberColumn:n,statusColumn:o}).total}function dn(e){let t=new Map,n=new Map,o=0,i=0;for(let[a,d]of Ap)e[a]&&(t.set(a,o),a!=="statusColumn"&&n.set(a,++i),o+=d);return {total:o,count:i,inset:a=>t.get(a)??0,colIndex:a=>n.get(a)??1}}function ai(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function ii(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 li(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 ho(e,t,n){if(t===""||e==="")return e;let o=foldMatchText(e,n),i=o.indexOf(t);if(i===-1)return e;let a=[],d=0,p=0;for(;i!==-1;)i>d&&a.push(e.slice(d,i)),a.push(jsx("mark",{className:"kanuni-datagrid-highlight",children:e.slice(i,i+t.length)},p++)),d=i+t.length,i=o.indexOf(t,d);return d<e.length&&a.push(e.slice(d)),jsx("span",{className:"kanuni-datagrid-cell-text",children:a})}function Bp(e,t,n,o="",i,a,d="case"){if(e.renderCell)return e.renderCell({value:t,row:n.data,node:n,column:e});let p=e.lookup?.multiple&&typeof e.lookup.items=="function"?null:lookupLabel(e,t,n.data);if(p!==null)return ho(p,o,d);if(i&&a!==void 0&&!e.valueFormatter){let w=i.label(e,a,t,n.data,n.key);if(w===bn)return jsx("span",{className:"kanuni-datagrid-lookup-pending","aria-busy":"true"});if(w!==null)return ho(w,o,d)}if(e.valueFormatter){let w=e.valueFormatter(t,n.data);return typeof w=="string"?ho(w,o,d):w}if(e.dateFormat&&e.dataType==="date")return ho(formatDateValue(t,e.dateFormat),o,d);let f=numberCellText(e,t);return f!==null?ho(f,o,d):t==null?"":ho(String(t),o,d)}function _p({gridId:e,node:t,index:n,layout:o,columnModel:i,centerColumns:a,centerIndices:d,stickyInsets:p,leadingSpacer:f,trailingSpacer:w,striped:k,selected:y,ariaSelectable:P=true,selectable:C=true,groupSelection:S,onToggleGroupSelect:v,groupDisplay:L="fullWidth",focusedColumnId:N,rowFocused:D=false,renderRow:G,checkboxColumn:$,statusColumn:q=false,rowNumberColumn:te=false,rowNumber:H=null,getNote:x,getSpan:O,resolveColSpans:A,findKind:m,headerRowCount:E,onRowClick:b,onRowMouseDown:X,onRowDoubleClick:ne,onToggleSelect:K,onCellMouseDown:oe,onRowContextMenu:M,searchNeedle:re="",searchFold:Ne="case",lookupLabels:Oe,onToggleGroup:ue,summaryDefs:He,detailColumn:ye=false,detailExpanded:Ge=false,onToggleDetail:V,onToggleTreeRow:Q,renderDetail:ke,renderEditForm:u,renderRowMessage:Ue,renderCellContent:Ae,getCellClassName:Ie,onCellPointerDown:ht,onCellPointerEnter:Be,onCellDoubleClick:ae,rowDrag:pe,dropSide:ve=null,rowStatus:Se,rowStatusText:Me,rowStatusTint:J=false,rowStatusStrike:be=false,rowClass:we,height:I}){let W=Fe();if(isDetailRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+E,"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:ke?.(t.data)})});if(isEditFormRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+E,"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:u?.(t.parentKey,t.data)})});if(isMessageRow(t))return jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-message-row",role:"row","aria-rowindex":n+1+E,"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:Ue?.(t.parentKey,t.data)})});if(isFillerRow(t))return null;if(isGroupRow(t)&&L==="fullWidth"){let B=i.getDef(t.columnId),Ee=B?.headerName??t.columnId,me=lookupLabel(B,t.value)??t.display??(t.label===""?W.filterBlank:t.label),Te=t.aggregates??null;return jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${N?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+E,"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:()=>ue?.(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:[S&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:S==="all",ref:de=>{de&&(de.indeterminate=S==="some");},"aria-label":fillText(W.selectGroupAria,{count:String(t.count),group:me}),onChange:()=>v?.(String(t.key)),onClick:de=>de.stopPropagation(),onMouseDown:de=>de.stopPropagation()}),jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:t.expanded?"\u25BE":"\u25B8"}),jsxs("span",{className:"kanuni-datagrid-group-caption",children:[Ee,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:me}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),Te&&He?.map(de=>jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[summaryLabel(de)," ",i.getDef(de.columnId)?.headerName??de.columnId,":"]})," ",formatSummaryValue(de,Te[summaryKey(de.columnId,de.type)],i.getDef(de.columnId))]},summaryKey(de.columnId,de.type)))]})})}let Y=[],ie=dn({statusColumn:q,rowNumberColumn:te,detailColumn:ye,checkboxColumn:$}),se=ie.count,Re=(B,Ee)=>({node:t,columnId:B,rowIndex:n,columnIndex:Ee,value:Z?void 0:i.getCellValue(t.data,B)}),qe=(B,Ee)=>{let me=()=>Re(B,Ee);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${B}`,"aria-colindex":se+Ee+1,"data-column-id":B,onMouseDown:Te=>{_t(Te)&&(oe?.(t,B),ht?.(me(),Te));},onMouseEnter:Be?Te=>{_t(Te)&&Be(me(),Te);}:void 0,onDoubleClick:ae?Te=>{_t(Te)&&(Op(e,t.key,B)||ae(me()));}:void 0,onPointerUp:ae?Te=>{Te.pointerType!=="touch"||!_t(Te)||Hp(e,t.key,B,Te.clientX,Te.clientY)&&ae(me());}:void 0}},Le=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,it=t.kind==="treePath",Z=isGroupRow(t)?t:null,ct=it||Z!==null,Xt=Z?L==="column"?GROUP_COLUMN_ID:(o.left[0]??o.center[0]??o.right[0])?.state.id??null:null,l=()=>{let B=Z,Ee=i.getDef(B.columnId),me=lookupLabel(Ee,B.value)??B.display??(B.label===""?W.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"}),L!=="column"&&jsxs("span",{className:"kanuni-datagrid-group-caption",children:[Ee?.headerName??B.columnId,":"]}),jsx("span",{className:"kanuni-datagrid-group-label",children:me}),jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",B.count,")"]})]})},st=(B,Ee)=>{let me=Z.aggregates?He?.find(Te=>Te.columnId===Ee):void 0;return me?jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:formatSummaryValue(me,Z.aggregates[summaryKey(Ee,me.type)],B)}):null},Ye=Le?(o.left[0]??o.center[0]??o.right[0])?.state.id??null:null,We=(B,Ee,me)=>{if(Z){if(Ee===Xt)return l();if(Ae){let de=Ae(Re(Ee,me));if(de!==void 0)return de}return st(B,Ee)}if(Ae&&!it){let de=Ae(Re(Ee,me));if(de!==void 0)return de}let Te=it?Ee===Ye?jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:Bp(B,i.getCellValue(t.data,Ee),t,re,Oe,Ee,Ne);return Le&&Ee===Ye?jsxs("span",{className:Le.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:Le.depth*16},children:[Le.hasChildren?jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":Le.expanded,"aria-label":Le.expanded?W.collapseTreeRow:W.expandTreeRow,onClick:de=>{de.stopPropagation(),Q?.(t.key);},children:Le.expanded?"\u25BE":"\u25B8"}):jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),Te]}):Te},Dt=(B,Ee)=>{if(!Ie||Z)return "";let me=Ie(Re(B,Ee));return me?` ${me}`:""},bt=B=>!x||t.kind!=="data"?"":x(t.key,B,t.data)?" kanuni-datagrid-cell--noted":"",dt=B=>O&&t.kind==="data"?O(n,B):null,rt=(B,Ee)=>{let me=B.autoHeight?" kanuni-datagrid-cell--wrap":"";return !B.cellClassName||ct?me:me+Ht(B,Ee)},Ht=(B,Ee)=>{let me=B.cellClassName;if(!me)return "";if(typeof me=="string")return ` ${me}`;let Te=t.data,de=me({value:i.getCellValue(Te,Ee),row:Te,node:t,column:B});return de?` ${de}`:""};if(q&&Y.push(jsx("div",{role:"presentation","aria-hidden":"true",className:"kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell",style:{width:yo,insetInlineStart:ie.inset("statusColumn")},children:jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),te){let B=t.kind==="data"&&H!==null;Y.push(jsx("div",{role:"gridcell","aria-colindex":ie.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:bo,insetInlineStart:ie.inset("rowNumberColumn")},children:B?H:""},"__rownum"));}ye&&Y.push(jsx("div",{role:"gridcell","aria-colindex":ie.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:Mr,insetInlineStart:ie.inset("detailColumn")},children:ct?null:jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":Ge,"aria-label":Ge?W.collapseDetails:W.expandDetails,onMouseDown:B=>B.stopPropagation(),onClick:B=>{B.stopPropagation(),V?.(t.key);},children:Ge?"\u25BE":"\u25B8"})},"__detail")),$&&Y.push(jsx("div",{role:"gridcell","aria-colindex":ie.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:Gr,insetInlineStart:ie.inset("checkboxColumn")},onMouseDown:B=>B.stopPropagation(),onClick:B=>{B.target.tagName!=="INPUT"&&(B.stopPropagation(),K?.(t));},children:Z?S&&jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:S==="all",ref:B=>{B&&(B.indeterminate=S==="some");},"aria-label":fillText(W.selectGroupAria,{count:String(Z.count),group:Z.display??Z.label}),onChange:()=>v?.(String(Z.key)),onClick:B=>B.stopPropagation(),onMouseDown:B=>B.stopPropagation()}):it?null:jsx("input",{type:"checkbox",checked:y,disabled:!C,tabIndex:-1,"aria-label":fillText(W.selectRowAria,{row:String(t.key)}),onChange:()=>K?.(t),onClick:B=>B.stopPropagation(),onMouseDown:B=>B.stopPropagation()})},"__select"));let yt=ie.total,je=B=>N===B?" kanuni-datagrid-cell--focused":"",St=B=>{let Ee=m&&t.kind==="data"?m(t.key,B):null;return Ee==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":Ee==="match"?" kanuni-datagrid-cell--find-match":""},Nt={left:o.left.length,center:o.center.length},ut=t.kind==="data"&&A?A(t):null,rn=B=>ut?.widths.get(B.state.id)??B.state.width,Gt=B=>{let Ee=ut?.spans.get(B);return Ee?{"aria-colspan":Ee}:null};o.left.forEach((B,Ee)=>{let me=B.def,Te=Ee===o.left.length-1,de=B.state.id;if(ut?.covered.has(de))return;let s=Dr("left",Ee,Nt);Y.push(jsx("div",{...qe(de,s),className:`${li(me.align,me.dataType)} kanuni-datagrid-cell--pinned${Te?" kanuni-datagrid-pin-edge-left":""}${je(de)}${St(de)}${rt(me,de)}${Dt(de,s)}${bt(de)}${ai(dt(de))}`,...Gt(de),style:{width:rn(B),insetInlineStart:o.leftOffsets[Ee]+yt},children:ii(dt(de),N===de,()=>We(me,de,s))},de));});let tt=ut?.lead??null,ze=f-(ut?.leadingDelta??0),Je=w-(ut?.trailingDelta??0);ze>0&&Y.push(jsx("div",{className:"kanuni-datagrid-spacer",style:{width:ze}},"__lead"));let nt=(B,Ee)=>{let me=B.def,Te=B.state.id,de=Dr("center",Ee,Nt),s=p?.get(Te),g=s===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",R=tt&&tt.column.state.id===Te?tt.width:rn(B);return jsx("div",{...qe(Te,de),...Gt(Te),className:`${li(me.align,me.dataType)}${g}${je(Te)}${St(Te)}${rt(me,Te)}${Dt(Te,de)}${bt(Te)}${ai(dt(Te))}`,style:s===void 0?{width:R}:{width:R,insetInlineStart:s+yt},children:ii(dt(Te),N===Te,()=>We(me,Te,de))},Te)},$e=tt?o.center.indexOf(tt.column):-1,pt=tt===null;return a.forEach((B,Ee)=>{let me=d?.[Ee]??Ee;!pt&&me>$e&&(Y.push(nt(tt.column,$e)),pt=true),!ut?.covered.has(B.state.id)&&Y.push(nt(B,me));}),pt||Y.push(nt(tt.column,$e)),Je>0&&Y.push(jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Je}},"__trail")),o.right.forEach((B,Ee)=>{let me=B.def,Te=Ee===0,de=B.state.id;if(ut?.covered.has(de))return;let s=Dr("right",Ee,Nt);Y.push(jsx("div",{...qe(de,s),className:`${li(me.align,me.dataType)} kanuni-datagrid-cell--pinned${Te?" kanuni-datagrid-pin-edge-right":""}${je(de)}${St(de)}${rt(me,de)}${Dt(de,s)}${bt(de)}${ai(dt(de))}`,...Gt(de),style:{width:rn(B),insetInlineEnd:o.rightOffsets[Ee]},children:ii(dt(de),N===de,()=>We(me,de,s))},de));}),jsxs("div",{className:`kanuni-datagrid-row${k&&n%2===1?" kanuni-datagrid-row--odd":""}${y?" kanuni-datagrid-row--selected":""}${D?" kanuni-datagrid-row--focused":""}${it?" kanuni-datagrid-row--tree-path":""}${Z?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${Z.level}`:""}${ve?` kanuni-datagrid-row--drop-${ve}`:""}${Se?` ${rowStatusClassName(Se,J,be)}`:""}${we?` ${we}`:""}`,role:"row","aria-rowindex":n+1+E,"aria-selected":Z||!P?void 0:y,"aria-expanded":Z?Z.expanded:void 0,"aria-level":Z?Z.level+1:void 0,"data-row-key":String(t.key),"data-row-status":Se,"aria-description":Se?Me:void 0,"aria-busy":Se==="saving"?true:void 0,"aria-invalid":Se==="error"?true:void 0,"data-group-key":Z?String(Z.key):void 0,"data-group-level":Z?Z.level:void 0,style:I===void 0?void 0:{height:I},draggable:pe?.draggable&&!Z?true:void 0,onDragStart:pe&&!Z?B=>pe.onDragStart(t,B):void 0,onDragEnd:pe&&!Z?()=>pe.onDragEnd():void 0,onDragOver:pe&&!Z?B=>pe.onDragOver(t,B):void 0,onDrop:pe&&!Z?B=>pe.onDrop(t,B):void 0,onMouseDown:X&&!Z?B=>_t(B)&&X(t,B):void 0,onClick:Z?()=>ue?.(String(Z.key)):b?B=>_t(B)&&b(t,n,B):void 0,onDoubleClick:ne?B=>_t(B)&&ne(t,n,B):void 0,onContextMenu:M?B=>_t(B)&&M(t,n,B):void 0,children:[pe&&!Z&&jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:W.dragToReorder,onMouseEnter:()=>pe.setDraggable(true),onMouseLeave:()=>pe.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"})]})})}),G&&t.kind==="data"?G({row:t.data,node:t,rowIndex:n,selected:y,focused:D}):Y]})}var Ro=memo(_p);var Co=26;function ui(e,t){return computeHeaderBands(e,t)}function ci(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function pi(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 o=t.pathOf(e.columnIds[0]).slice(0,e.level+1);if(o.length!==e.level+1||!t.collapsible(o))return n;let i=t.collapsed(o);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(o);},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 Vp({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:o,depth:i,checkboxColumn:a=false,detailColumn:d=false,statusColumn:p=false,rowNumberColumn:f=false,rowHeight:w=Co,bandFold:k}){if(i<=0)return null;let y=dn({statusColumn:p,rowNumberColumn:f,detailColumn:d,checkboxColumn:a}).total,P=ui(e.left,i),C=ui(t,i),S=ui(e.right,i),v=(L,N,D)=>{let G=D;for(let $=0;$<N;$++)G+=L[$].width;return G};return jsx(Fragment,{children:Array.from({length:i},(L,N)=>jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":N+1,style:{width:e.totalWidth+y,height:w,top:N*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"}),(P[N]??[]).map((D,G)=>jsx("div",{className:ci(D,` kanuni-datagrid-band-cell--pinned${G===(P[N]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:D.spacer?"presentation":"columnheader","aria-colspan":D.spacer?void 0:D.columnIds.length,style:{width:D.width,insetInlineStart:v(P[N]??[],G,y)},title:D.spacer?void 0:D.label,children:pi(D,k)},D.columnIds[0])),n>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(C[N]??[]).map(D=>jsx("div",{className:ci(D),role:D.spacer?"presentation":"columnheader","aria-colspan":D.spacer?void 0:D.columnIds.length,style:{width:D.width},title:D.spacer?void 0:D.label,children:pi(D,k)},D.columnIds[0])),o>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:o}}),(S[N]??[]).map((D,G)=>{let $=S[N]??[],q=0;for(let te=G+1;te<$.length;te++)q+=$[te].width;return jsx("div",{className:ci(D,` kanuni-datagrid-band-cell--pinned${G===0?" kanuni-datagrid-pin-edge-right":""}`),role:D.spacer?"presentation":"columnheader","aria-colspan":D.spacer?void 0:D.columnIds.length,style:{width:D.width,insetInlineEnd:q},title:D.spacer?void 0:D.label,children:pi(D,k)},D.columnIds[0])})]},N))})}var mi=memo(Vp);var Xp=()=>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 jp(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function Jp({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:o,leadingSpacer:i,trailingSpacer:a,sort:d,sortable:p,onSort:f,headerFilter:w=false,filteredColumns:k,onOpenFilter:y,filterIconMode:P="hover",checkboxColumn:C=false,detailColumn:S=false,statusColumn:v=false,rowNumberColumn:L=false,rowNumberHeader:N="#",selectAllState:D="none",selectAllDisabled:G=false,onToggleSelectAll:$,draggable:q=false,reorderable:te=false,onReorder:H,resizable:x=false,onResize:O,onAutoFit:A,onHeaderContextMenu:m,groupLevels:E,onHeaderClick:b,getHeaderClassName:X,renderHeaderLabel:ne}){let K=Fe(),oe=dn({statusColumn:v,rowNumberColumn:L,detailColumn:S,checkboxColumn:C}),M=new Map(d.map((J,be)=>[J.columnId,{direction:J.direction,order:be}])),re=new Set(k??[]),Ne=[...n.left.map(J=>J.state.id),...o.map(J=>J.state.id),...n.right.map(J=>J.state.id)],[Oe,ue]=useState(null),He=useId(),ye=Oe&&Ne.includes(Oe)?Oe:Ne[0],Ge=J=>{ue(J),document.querySelector(`[data-column-id="${J}"].kanuni-datagrid-header-cell`)?.focus();},V=J=>{let be=Ne.indexOf(ye),we=Math.min(Ne.length-1,Math.max(0,be+J));we!==be&&Ge(Ne[we]);},Q=useRef(null),ke=useRef(false),[u,Ue]=useState(null),Ae=Ne,Ie=J=>[...n.left,...n.center,...n.right].find(be=>be.state.id===J)?.state.pinned??null,ht=(J,be)=>(ke.current?J>be.left+be.width/2:J<be.left+be.width/2)?"before":"after",Be=(J,be)=>{let we=Q.current;if(!te||!we||we===J||Ie(we)!==Ie(J))return;be.preventDefault(),be.dataTransfer.dropEffect="move";let I=ht(be.clientX,be.currentTarget.getBoundingClientRect());Ue(W=>W?.id===J&&W.side===I?W:{id:J,side:I});},ae=(J,be)=>{let we=Q.current;if(Ue(null),!te||!we||we===J||Ie(we)!==Ie(J))return;if(be.preventDefault(),be.stopPropagation(),ht(be.clientX,be.currentTarget.getBoundingClientRect())==="before")H?.(we,J);else {let W=Ae[Ae.indexOf(J)+1];H?.(we,W===we?Ae[Ae.indexOf(J)+2]:W);}Q.current=null;},[pe,ve]=useState(null),Se=(J,be)=>{if(!x)return;be.preventDefault(),be.stopPropagation();let we=be.currentTarget,I=be.clientX,W=J.state.width,Y=ke.current?-1:1,ie=J.state.id;ve(ie),we.setPointerCapture(be.pointerId);let se=W,Re=false,qe=it=>{Re=true,se=W+(it.clientX-I)*Y,O?.(ie,se,false);},Le=()=>{we.releasePointerCapture?.(be.pointerId),we.removeEventListener("pointermove",qe),we.removeEventListener("pointerup",Le),we.removeEventListener("pointercancel",Le),Re&&O?.(ie,se,true),ve(null);};we.addEventListener("pointermove",qe),we.addEventListener("pointerup",Le),we.addEventListener("pointercancel",Le);},Me=(J,be,we)=>{let I=J.def,W=J.state.id,Y=p&&I.sortable!==false,ie=w&&I.filterable!==false,se=W===GROUP_COLUMN_ID,Re=M.get(se?E?.[0]??W:W),qe=q&&I.groupable!==false||te&&I.reorderable!==false,Le=u?.id===W?u.side:null,it=X?.(W);return jsxs("div",{className:`kanuni-datagrid-header-cell${be}${it?` ${it}`:""}${Y?" kanuni-datagrid-header-cell--sortable":""}${Le?` kanuni-datagrid-header-cell--drop-${Le}`:""}${pe===W?" kanuni-datagrid-header-cell--resizing":""}${I.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:we,role:"columnheader","aria-labelledby":`${He}-${encodeURIComponent(W)}`,"aria-sort":Re?Re.direction==="asc"?"ascending":"descending":"none","data-column-id":W,tabIndex:W===ye?0:-1,onFocus:()=>ue(W),draggable:qe&&pe===null,onDragStart:Z=>{Z.dataTransfer.setData("text/x-kanuni-column",W),Z.dataTransfer.effectAllowed="move",Q.current=W,ke.current=getComputedStyle(Z.currentTarget).direction==="rtl";},onDragEnd:()=>{Q.current=null,Ue(null);},onDragOver:te?Z=>Be(W,Z):void 0,onDragLeave:te?()=>Ue(Z=>Z?.id===W?null:Z):void 0,onDrop:te?Z=>ae(W,Z):void 0,onContextMenu:m&&!isChromeColumn(W)?Z=>m(W,Z):void 0,onClick:Y||b?Z=>{b?.(W,Z)||Y&&f(W,Z.shiftKey);}:void 0,onKeyDown:Z=>{Z.key==="ArrowRight"?(Z.preventDefault(),V(1)):Z.key==="ArrowLeft"?(Z.preventDefault(),V(-1)):Z.key==="Home"?(Z.preventDefault(),Ge(Ne[0])):Z.key==="End"?(Z.preventDefault(),Ge(Ne[Ne.length-1])):ie&&Z.altKey&&Z.key==="ArrowDown"?(Z.preventDefault(),y?.(W,Z.currentTarget)):Y&&(Z.key==="Enter"||Z.key===" ")&&(Z.preventDefault(),f(W,Z.shiftKey));},children:[jsx("span",{className:"kanuni-datagrid-header-label",id:`${He}-${encodeURIComponent(W)}`,children:ne?.(W)??jp(I,W)}),Re&&jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:Re.direction==="asc"?"\u25B2":"\u25BC"}),Re&&d.length>1&&!se&&jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:Re.order+1}),w&&I.filterable!==false&&jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${re.has(W)?" kanuni-datagrid-filter-button--active":""}${P==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":fillText(K.filterColumnAria,{column:I.headerName??W}),"aria-haspopup":"dialog","data-filter-button":W,tabIndex:-1,onClick:Z=>{Z.stopPropagation(),y?.(W,Z.currentTarget);},children:jsx(Xp,{})}),x&&I.resizable!==false&&jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":W,role:"presentation",onPointerDown:Z=>Se(J,Z),onDoubleClick:Z=>{Z.stopPropagation(),A?.(W);},onClick:Z=>Z.stopPropagation()})]},W)};return jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/Co)+1,style:{width:n.totalWidth+oe.total,top:e||void 0},children:[v&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell",role:"presentation","aria-hidden":"true",style:{width:yo,insetInlineStart:oe.inset("statusColumn")}}),L&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":oe.colIndex("rowNumberColumn"),"aria-label":K.rowNumberAria,style:{width:bo,insetInlineStart:oe.inset("rowNumberColumn")},children:N??""}),S&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":oe.colIndex("detailColumn"),"aria-label":K.detailsAria,style:{width:Mr,insetInlineStart:oe.inset("detailColumn")}}),C&&jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":oe.colIndex("checkboxColumn"),style:{width:Gr,insetInlineStart:oe.inset("checkboxColumn")},children:jsx("input",{type:"checkbox",checked:D==="all",ref:J=>{J&&(J.indeterminate=D==="some");},"aria-label":K.selectAllRows,disabled:G,onChange:()=>$?.()})}),n.left.map((J,be)=>Me(J,` kanuni-datagrid-header-cell--pinned${be===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:J.state.width,insetInlineStart:n.leftOffsets[be]+oe.total})),i>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:i}}),o.map(J=>{let be=t?.get(J.state.id);return be===void 0?Me(J,"",{width:J.state.width}):Me(J," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:J.state.width,insetInlineStart:be+oe.total})}),a>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((J,be)=>Me(J,` kanuni-datagrid-header-cell--pinned${be===0?" kanuni-datagrid-pin-edge-right":""}`,{width:J.state.width,insetInlineEnd:n.rightOffsets[be]}))]})}var wi=memo(Jp);function bi(e,t,n=[]){let o=null,i=new Set,a=d=>{if(i.has(d)||(i.add(d),t.isPending(d)))return;let p=t.textFor(d);if(p===null)return;let f=e[d]??"";f!==p&&(f===""&&p===""||(o??={...e},o[d]=p));};for(let d of Object.keys(e))a(d);for(let d of n)a(d);return o??e}function ef({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:o,leadingSpacer:i,trailingSpacer:a,values:d,checkboxColumn:p=false,detailColumn:f=false,statusColumn:w=false,rowNumberColumn:k=false,placeholder:y,onChange:P,onCommit:C,periodSuggestions:S,periodListId:v,operators:L,onOperatorChange:N,renderCustom:D}){let G=Fe(),$=dn({statusColumn:w,rowNumberColumn:k,detailColumn:f,checkboxColumn:p}),q=y??G.filterPlaceholder,te=(H,x,O)=>{let A=H.state.id,m=H.def.filterable!==false,E=m?D?.(A):void 0,b=m&&E===void 0?customFilterOperators(H.def):[],X=b.some(K=>K.id===L?.[A])?L[A]:"",ne=b.find(K=>K.id===X)?.operandType==="none";return jsxs("div",{className:`kanuni-datagrid-filter-cell${x}`,role:"gridcell",style:O,"data-column-id":A,children:[m&&E!==void 0&&E,m&&E===void 0&&b.length>0&&jsxs("select",{className:"kanuni-datagrid-filter-operator",value:X,"aria-label":fillText(G.filterOperatorAria,{column:H.def.headerName??A}),"data-filter-operator-for":A,onChange:K=>N?.(A,K.target.value),children:[jsx("option",{value:"",children:G.filterOperatorDefault}),b.map(K=>jsx("option",{value:K.id,children:K.label},K.id))]}),m&&E===void 0&&jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:d[A]??"",placeholder:q,"aria-label":fillText(G.filterColumnAria,{column:H.def.headerName??A}),"data-filter-for":A,disabled:ne||void 0,list:H.def.dataType==="date"&&v&&X===""?v:void 0,onChange:K=>P(A,K.target.value),onKeyDown:K=>{K.key==="Enter"&&C?.(A,K.target.value);},onBlur:K=>C?.(A,K.target.value)})]},A)};return jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+$.total,"--dg-band-offset":`${e}px`},children:[v&&S&&S.length>0&&jsx("datalist",{id:v,children:S.map(H=>jsx("option",{value:H},H))}),$.total>0&&jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",role:"gridcell",style:{width:$.total,insetInlineStart:0}}),n.left.map((H,x)=>te(H,` kanuni-datagrid-filter-cell--pinned${x===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:H.state.width,insetInlineStart:n.leftOffsets[x]+$.total})),i>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:i}}),o.map(H=>{let x=t?.get(H.state.id);return x===void 0?te(H,"",{width:H.state.width}):te(H," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:H.state.width,insetInlineStart:x+$.total})}),a>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((H,x)=>te(H,` kanuni-datagrid-filter-cell--pinned${x===0?" kanuni-datagrid-pin-edge-right":""}`,{width:H.state.width,insetInlineEnd:n.rightOffsets[x]}))]})}var yi=memo(ef);function Ft({children:e,dark:t=false,kind:n="popup"}){let[o,i]=useState(null),a=$t(),d=Jt();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",d().appendChild(p),i(p),()=>{p.remove();}},[t,a,d,n]),o?createPortal(e,o):null}function zn({anchor:e,onClose:t,margin:n=8,autoFocus:o=false}){let i=useRef(null),[a,d]=useState(e),p=useCallback(f=>{if(i.current=f,!f)return;let w=f.getBoundingClientRect(),k=e.top+w.height+n>window.innerHeight,y=e.top-w.height-n*2,P=k&&y>n?y:e.top;d({left:Math.max(n,Math.min(e.left,window.innerWidth-w.width-n)),top:Math.max(n,Math.min(P,window.innerHeight-w.height-n))}),o&&f.focus();},[e.left,e.top,n,o]);return useEffect(()=>{let f=y=>{let P=i.current;P&&!P.contains(y.target)&&t();},w=y=>{y.key==="Escape"&&t();},k=y=>{let P=i.current,C=y.target;P&&C instanceof Node&&P.contains(C)||t();};return document.addEventListener("mousedown",f),document.addEventListener("keydown",w),window.addEventListener("scroll",k,true),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("keydown",w),window.removeEventListener("scroll",k,true);}},[t]),{position:a,ref:p,elementRef:i}}var kn=25,Uo=new Map,_s=200,mf=200,$s=8;function gf(e){let t=Fe();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 wf=memo(function({itemKey:t,label:n,display:o,index:i,active:a,checked:d,onToggle:p,onFocus:f}){return jsxs("div",{role:"option","aria-selected":d,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:()=>p(t),children:[jsx("input",{type:"checkbox",readOnly:true,checked:d,tabIndex:-1}),jsx("span",{children:o})]})});function hf(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 Ei={value:void 0,label:""},Pr=e=>e.value===null||e.value===void 0;function bf({index:e,row:t,active:n,checked:o,text:i,onToggle:a,onFocus:d}){return t?jsxs("div",{role:"option","aria-selected":o,tabIndex:n?0:-1,className:`kanuni-datagrid-filter-item${n?" kanuni-datagrid-filter-item--active":""}`,"data-value":t.label,"data-index":e,onFocus:()=>d(e),onClick:()=>a(t),children:[jsx("input",{type:"checkbox",readOnly:true,checked:o,tabIndex:-1}),jsx("span",{children:hf(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 xi({gridId:e,columnId:t,headerLabel:n,entries:o,initialSelected:i,anchor:a,loading:d=false,dark:p,onApply:f,onClose:w,onCustom:k,truncated:y=false,onSearch:P,pager:C,labels:S}){let v=gf(S),[,L]=useReducer(I=>I+1,0);useEffect(()=>C?C.subscribe(L):void 0,[C]);let[N,D]=useState(""),[G,$]=useState(0),[q,te]=useState(()=>new Set(i??o.map(distinctEntryKey))),[H,x]=useState(false),O=useRef(null),A=useRef(null),[m,E]=useState(0),[b,X]=useState(240),ne=`${e??""}:${t}`,K=Uo.get(ne),oe=useRef(K?.scrollTop??null),[M,re]=useState(K&&K.width&&K.height?{width:K.width,height:K.height}:null),Ne=useCallback(I=>{O.current=I,I?.focus();},[]),Oe=useRef(null),ue=useMemo(()=>{let I=foldText(N.trim());if(!I||y)return o;let W=Oe.current;(!W||W.entries!==o)&&(W={entries:o,lowered:o.map(ie=>foldText(ie.label)),needle:"",result:[]},Oe.current=W);let Y=W.needle!==""&&I.includes(W.needle)?W.result.filter(ie=>foldText(ie.label).includes(I)):o.filter((ie,se)=>W.lowered[se].includes(I));return W.needle=I,W.result=Y,Y},[o,N,y]);useEffect(()=>{if(!P)return;let I=setTimeout(()=>P(N),150);return ()=>clearTimeout(I)},[N,P]),useEffect(()=>{if(!C)return;let I=setTimeout(()=>{if(C.getSearch()===N.trim())return;C.setSearch(N);let W=A.current;W&&(W.scrollTop=0),E(0),$(0);},150);return ()=>clearTimeout(I)},[C,N]),useEffect(()=>{H||!i||te(new Set(i));},[i,H]),useEffect(()=>{H||i||te(new Set(o.map(distinctEntryKey)));},[o,H,i]);let He=useCallback(I=>{A.current=I,I&&X(I.clientHeight||240);},[]);useEffect(()=>{let I=A.current;!I||oe.current===null||d||I.scrollHeight<=I.clientHeight||(I.scrollTop=oe.current,oe.current=null,E(I.scrollTop));});let ye=useMemo(()=>{if(N.trim()!=="")return ue;let I=ue.findIndex(Pr);return I<0?ue:[...ue.slice(0,I+1),Ei,...ue.slice(I+1)]},[ue,N]),Ge=useMemo(()=>{let I=ye.length,W=Math.max(0,Math.floor(m/kn)-$s),Y=Math.ceil(b/kn)+$s*2,ie=Math.min(W,Math.max(0,I-1)),se=Math.min(I,ie+Y);return {start:ie,end:se,count:I,rows:ye.slice(ie,se)}},[ye,m,b]);useEffect(()=>{let I=A.current;C&&I&&X(I.clientHeight||240);},[C,d,C?.isLoading(),C?.getRowCount()]);let V=C?C.getWindow(m,Math.max(b,150)):null,Q=V?.start??0,ke=V?.end??0;useEffect(()=>{C&&C.ensure(Q,ke);},[C,Q,ke,m]);let u=C?C.getRowCount():ye.length,Ue=C?!!V&&G>=V.start&&G<V.end&&!!C.getRow(G):G>=Ge.start&&G<Ge.end,Ae=d||(C?C.isLoading():false),Ie=zn({anchor:a,onClose:w}),[ht,Be]=useState(null),ae=(ht??Ie.position.left)+(M?.width??260)+48<window.innerWidth?"right":"left",pe=I=>{I.preventDefault(),I.stopPropagation();let W=Ie.elementRef.current;if(!W)return;let Y=W.getBoundingClientRect(),ie=ae,se={x:I.clientX,y:I.clientY,w:Y.width,h:Y.height,left:Y.left},Re=null,qe=it=>{let Z=it.clientX-se.x,ct=it.clientY-se.y,Xt=window.innerHeight-Y.top-12,l=Math.min(Xt,Math.max(mf,se.h+ct));if(ie==="right"){let st=window.innerWidth-se.left-12;Re={width:Math.min(st,Math.max(_s,se.w+Z)),height:l},re(Re);}else {let st=se.left+se.w,Ye=st-12,We=Math.min(Ye,Math.max(_s,se.w-Z));Re={width:We,height:l},re(Re),Be(st-We);}A.current&&X(A.current.clientHeight);},Le=()=>{if(window.removeEventListener("pointermove",qe),window.removeEventListener("pointerup",Le),Re){let it=Uo.get(ne);Uo.set(ne,{scrollTop:it?.scrollTop??A.current?.scrollTop??0,width:Math.round(Re.width),height:Math.round(Re.height)});}};window.addEventListener("pointermove",qe),window.addEventListener("pointerup",Le);},ve=useCallback(I=>{x(true),te(W=>{let Y=new Set(W);if(I===NONBLANK_KEY){let ie=distinctNonBlankTicked(o,W);for(let se of o)Pr(se)&&!ie?Y.delete(BLANK_KEY):Y.add(distinctEntryKey(se));return Y}return Y.has(I)?Y.delete(I):Y.add(I),Y});},[o]),Se=useCallback(I=>$(I),[]),Me=()=>{if(Ae)return;if(C){f(C.buildFilter(t));return}if(q.size===o.length){f(null);return}let I=o.filter(se=>q.has(distinctEntryKey(se))),W=I.some(Pr),Y=I.filter(se=>!Pr(se)),ie;distinctNonBlankTicked(o,q)?ie={columnId:t,operator:"isnotnull"}:Y.length===0?ie={columnId:t,operator:"isnull"}:W?ie={logic:"or",nodes:[{columnId:t,operator:"in",value:Y.map(se=>se.value)},{columnId:t,operator:"isnull"}]}:ie={columnId:t,operator:"in",value:Y.map(se=>se.value)},f(ie);},J=I=>{let W=Math.max(0,Math.min(u-1,I));if($(W),C){let Re=A.current;Re&&(I<=0||I>=u-1)&&(Re.scrollTop=I<=0?0:Re.scrollHeight),requestAnimationFrame(()=>{let qe=Ie.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${W}"]`);qe?.focus(),qe?.scrollIntoView?.({block:"nearest"});});return}let Y=A.current;if(Y){let Re=W*kn,qe=Y.clientHeight||240,Le=Y.scrollTop;Re<Le?Le=Re:Re+kn>Le+qe&&(Le=Re+kn-qe),Le!==Y.scrollTop&&(Y.scrollTop=Le),E(Le);}let ie=()=>Ie.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${W}"]`),se=ie();se?(se.focus(),se.scrollIntoView?.({block:"nearest"})):requestAnimationFrame(()=>ie()?.focus());},be=I=>I.key.length===1&&!I.ctrlKey&&!I.metaKey&&!I.altKey,we=I=>{let W=I.target===O.current;if(!((I.key==="Enter"||I.key===" ")&&I.target instanceof HTMLButtonElement)){if(I.key==="Tab"){let Y=Ie.elementRef.current,ie=Y?Array.from(Y.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')):[],se=ie[0],Re=ie[ie.length-1],qe=document.activeElement;se&&Re&&(!I.shiftKey&&(qe===Re||qe===Y)?(I.preventDefault(),se.focus()):I.shiftKey&&(qe===se||qe===Y)&&(I.preventDefault(),Re.focus()));return}if(I.key==="Backspace"&&!W){I.preventDefault(),O.current?.focus(),D(Y=>Y.slice(0,-1)),$(0);return}if(I.key==="ArrowDown"){I.preventDefault(),J(W?0:G+1);return}if(I.key==="ArrowUp"){I.preventDefault(),J(W?C?0:ye.length-1:G-1);return}if(!W&&(I.key==="Home"||I.key==="End")){I.preventDefault(),J(I.key==="Home"?0:u-1);return}if(I.key===" "&&!W){if(I.preventDefault(),C){let ie=C.getRow(G);ie&&C.toggle(ie);return}let Y=ye[G];Y&&ve(Y===Ei?NONBLANK_KEY:distinctEntryKey(Y));return}if(I.key==="Enter"){I.preventDefault(),Me();return}!W&&be(I)&&I.key!==" "&&(I.preventDefault(),O.current?.focus(),D(Y=>Y+I.key),$(0));}};return jsx(Ft,{dark:p,children:jsxs("div",{ref:Ie.ref,className:"kanuni-datagrid-filter-popup",style:{left:ht??Ie.position.left,top:Ie.position.top,...M?{width:M.width,height:M.height,maxHeight:"none"}:null},role:"dialog","aria-label":v.popupAria.replace("{column}",n),tabIndex:-1,onKeyDown:we,children:[jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${ae}`,"data-testid":"dg-filter-resize",onPointerDown:pe}),jsx("input",{ref:Ne,className:"kanuni-datagrid-filter-search",type:"search",placeholder:v.search,value:N,onChange:I=>{D(I.target.value),$(0);},"data-testid":"dg-filter-search"}),!C&&y&&jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:v.truncated}),k&&jsx("button",{type:"button",className:"kanuni-datagrid-filter-custom","data-testid":"dg-filter-custom",onClick:k,children:v.custom}),jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsx("button",{type:"button",onClick:()=>{if(C)return C.selectAll();x(true),N.trim()===""?te(new Set(o.map(distinctEntryKey))):te(I=>{let W=new Set(I);for(let Y of ue)W.add(distinctEntryKey(Y));return W});},children:v.selectAll}),jsx("button",{type:"button",onClick:()=>{if(C)return C.clear();x(true),N.trim()===""?te(new Set):te(I=>{let W=new Set(I);for(let Y of ue)W.delete(distinctEntryKey(Y));return W});},children:v.clear})]}),jsxs("div",{ref:He,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true",tabIndex:Ue||u===0?-1:0,"aria-busy":Ae||void 0,"aria-setsize":u,onScroll:I=>{let W=I.target.scrollTop;E(W),oe.current=null;let Y=Uo.get(ne);Uo.set(ne,{...Y,scrollTop:W});},children:[Ae&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:v.loading}),!Ae&&u===0&&jsx("div",{className:"kanuni-datagrid-filter-empty",children:v.noMatch}),C&&V&&u>0&&jsx("div",{style:{height:V.totalHeight,position:"relative"},children:jsx("div",{style:{transform:`translateY(${V.offsetY}px)`},children:Array.from({length:V.end-V.start},(I,W)=>{let Y=V.start+W,ie=C.getRow(Y);return jsx(bf,{index:Y,row:ie,active:Y===G,checked:ie?C.isChecked(ie):false,text:v,onToggle:se=>C.toggle(se),onFocus:Se},Y)})})}),!C&&Ge.count>0&&jsx("div",{style:{height:ye.length*kn,position:"relative"},children:jsx("div",{style:{transform:`translateY(${Ge.start*kn}px)`},children:Ge.rows.map((I,W)=>{let Y=Ge.start+W,ie=I===Ei,se=ie?NONBLANK_KEY:distinctEntryKey(I);return jsx(wf,{itemKey:se,label:I.label,display:ie?v.nonBlank:Ws(I,v),index:Y,active:Y===G,checked:ie?distinctNonBlankTicked(o,q):q.has(se),onToggle:ve,onFocus:Se},se)})})})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",onClick:w,children:v.cancel}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:Me,disabled:Ae,"data-testid":"dg-filter-apply",children:v.apply})]})]})})}function Di(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 Gi({controller:e,columnId:t,surface:n,close:o}){let[i,a]=useState(()=>Di(e,t,n));useEffect(()=>(a(Di(e,t,n)),e.events.on("filterChanged",()=>{a(Di(e,t,n));})),[e,t,n]);let d=useCallback(w=>{e.setColumnFilter(t,w,n==="row"?FILTER_PART_ROW:FILTER_PART_SET);},[e,t,n]),p=useCallback(()=>{},[]),f=e.getColumnModel().getDef(t);return f?.renderFilter?jsx(Fragment,{children:f.renderFilter({columnId:t,column:f,surface:n,value:i,setValue:d,close:o??p})}):null}var Tf='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function zs({controller:e,columnId:t,headerLabel:n,anchor:o,dark:i,onClose:a}){let d=Fe(),p=zn({anchor:o,onClose:a}),f=useRef(false),w=p.ref,k=useCallback(y=>{w(y),!(!y||f.current)&&(f.current=true,(y.querySelector(Tf)??y).focus({preventScroll:true}));},[w]);return jsx(Ft,{dark:i,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":d.filterPopupAria.replace("{column}",n),"data-column-id":t,children:jsx(Gi,{controller:e,columnId:t,surface:"popup",close:a})})})}var Mi="text/x-kanuni-column";function Df({columns:e,levels:t,onSetLevels:n,maxLevels:o=1,onExpandAll:i,onCollapseAll:a,emptyText:d}){let p=Fe(),f=d??p.groupPanelHint,[w,k]=useState(false),y=useRef(null),[P,C]=useState(null),S=x=>e.find(A=>A.state.id===x)?.def.headerName??x,v=x=>{if(!x||t.includes(x))return;let O=t.length>=o?t.slice(0,o-1):[...t];n([...O,x]);},L=x=>n(t.filter(O=>O!==x)),N=(x,O)=>{let A=t.filter(E=>E!==x),m=Math.max(0,Math.min(A.length,O));n([...A.slice(0,m),x,...A.slice(m)]);},D=(x,O,A)=>{if(x===O)return;let E=t.filter(b=>b!==x).indexOf(O);E<0||N(x,A==="before"?E:E+1);},G=(x,O)=>{let A=x+O;A<0||A>=t.length||D(t[x],t[A],O<0?"before":"after");},$=(x,O)=>x<O.top+O.height/2?"before":"after",q=(x,O)=>{O.preventDefault(),O.stopPropagation();let A=$(O.clientY,O.currentTarget.getBoundingClientRect());C(null),k(false);let m=y.current;if(y.current=null,m){D(m,t[x],A);return}let E=O.dataTransfer.getData(Mi);if(!E||t.includes(E))return;if(t.length>=o){v(E);return}let b=A==="before"?x:x+1;n([...t.slice(0,b),E,...t.slice(b)]);},te=(x,O,A)=>{let m=A.ctrlKey||A.metaKey;m&&(A.key==="ArrowUp"||A.key==="ArrowLeft")?(A.preventDefault(),G(x,-1)):m&&(A.key==="ArrowDown"||A.key==="ArrowRight")?(A.preventDefault(),G(x,1)):(A.key==="Delete"||A.key==="Backspace")&&(A.preventDefault(),L(O));},H=e.filter(x=>!t.includes(x.state.id));return jsxs("div",{className:`kanuni-datagrid-group-panel${w?" kanuni-datagrid-group-panel--over":""}`,onDragOver:x=>{x.preventDefault(),k(true);},onDragLeave:()=>k(false),onDrop:x=>{if(x.preventDefault(),k(false),C(null),y.current){y.current=null;return}v(x.dataTransfer.getData(Mi));},children:[t.length>0?jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((x,O)=>jsx("div",{className:`kanuni-datagrid-group-level${P?.index===O?` kanuni-datagrid-group-level--drop-${P.side}`:""}`,style:{"--dg-group-level":O},"data-group-level":O,onDragOver:A=>{A.preventDefault(),A.stopPropagation();let m=$(A.clientY,A.currentTarget.getBoundingClientRect());C(E=>E?.index===O&&E.side===m?E:{index:O,side:m});},onDragLeave:()=>C(A=>A?.index===O?null:A),onDrop:A=>q(O,A),children:jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:o>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${fillText(p.groupLevelAria,{n:O+1})}: ${S(x)}`,onDragStart:A=>{y.current=x,A.dataTransfer.effectAllowed="move",A.dataTransfer.setData(Mi,x);},onDragEnd:()=>{y.current=null,C(null);},onKeyDown:A=>te(O,x,A),children:[o>1&&jsx("span",{className:"kanuni-datagrid-group-chip-level",children:O+1}),S(x),jsx("button",{type:"button","aria-label":fillText(p.groupRemoveAria,{column:S(x)}),onClick:()=>L(x),children:"\xD7"})]})},x))}):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: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:o>1?p.groupAddLevel:p.groupByColumn}),o>1?jsxs("select",{value:"",disabled:H.length===0,onChange:x=>v(x.target.value),children:[jsx("option",{value:"",children:p.groupAddLevelButton}),H.map(x=>jsx("option",{value:x.state.id,children:x.def.headerName??x.state.id},x.state.id))]}):jsxs("select",{value:t[0]??"",onChange:x=>n(x.target.value?[x.target.value]:[]),children:[jsx("option",{value:"",children:p.groupNoGrouping}),e.map(x=>jsx("option",{value:x.state.id,children:x.def.headerName??x.state.id},x.state.id))]})]})]})]})}var Ni=memo(Df);function Lf({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:o,defs:i,values:a,checkboxColumn:d=false,detailColumn:p=false,statusColumn:f=false,rowNumberColumn:w=false,onPickSummary:k,emptyHint:y="",position:P="bottom",bandOffset:C=0,headerRowsBetween:S=0}){let v=Fe(),L=summaryTypeLabels(v),N=new Map(i.map($=>[$.columnId,$])),D=dn({statusColumn:f,rowNumberColumn:w,detailColumn:p,checkboxColumn:d}).total,G=($,q,te)=>{let H=$.state.id,x=N.get(H),O=x?a[summaryKey(x.columnId,x.type)]:void 0,A=$.def.dataType==="number"||$.def.dataType==="bigint",m=isChromeColumn(H)?void 0:k;return jsx("div",{className:`kanuni-datagrid-footer-cell${q}${A?" kanuni-datagrid-footer-cell--number":""}${x?" kanuni-datagrid-footer-cell--active":""}`,style:te,role:"gridcell","data-column-id":H,"data-summary-type":x?.type??"",title:x?`${summaryLabel(x,L)} \u2014 ${$.def.headerName??H}`:void 0,onContextMenu:m?E=>m(H,E):void 0,onClick:m?E=>m(H,E):void 0,children:x?jsx("span",{className:"kanuni-datagrid-footer-value",children:formatSummaryValue(x,O,$.def)}):m?jsx("span",{className:"kanuni-datagrid-footer-hint",children:y}):null},H)};return jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${P}`,role:"row","aria-label":v.columnTotalsAria,style:{width:e.totalWidth+D,"--dg-band-offset":`${C}px`,"--dg-pinned-gap":String(S)},children:[D>0&&jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:D,insetInlineStart:0}}),e.left.map(($,q)=>G($,` kanuni-datagrid-footer-cell--pinned${q===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:$.state.width,insetInlineStart:e.leftOffsets[q]+D})),n>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map($=>G($,"",{width:$.state.width})),o>0&&jsx("div",{className:"kanuni-datagrid-spacer",style:{width:o}}),e.right.map(($,q)=>G($,` kanuni-datagrid-footer-cell--pinned${q===0?" kanuni-datagrid-pin-edge-right":""}`,{width:$.state.width,insetInlineEnd:e.rightOffsets[q]}))]})}var Fr=memo(Lf);function Kf(e,t){return `__dg_pinned_${e}_${t}`}function Ff({gridId:e,side:t,rows:n,rowKeys:o,onUserRowContextMenu:i,layout:a,columnModel:d,centerColumns:p,centerIndices:f,stickyInsets:w,leadingSpacer:k,trailingSpacer:y,checkboxColumn:P=false,detailColumn:C=false,statusColumn:S=false,rowNumberColumn:v=false,rowHeight:L,bandOffset:N=0,headerRowsBetween:D,ariaRowBase:G,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":`${N}px`,"--dg-pinned-gap":String(D)},children:n.map((q,te)=>{let H=o?.[te]??null,x={kind:"data",key:Kf(t,te),sourceIndex:-1,data:q};return jsx(Ro,{gridId:e,node:x,index:te,layout:a,columnModel:d,centerColumns:p,centerIndices:f,stickyInsets:w,leadingSpacer:k,trailingSpacer:y,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:P,detailColumn:C,statusColumn:S,rowNumberColumn:v,rowNumber:null,headerRowCount:G,height:L,rowClass:$?.(x,te,H),onRowContextMenu:H!==null&&i?(O,A,m)=>i(H,q,m):void 0},x.key)})})}var Hr=memo(Ff);function js({controller:e,renderRow:t,width:n,bandOffset:o,headerRowsBetween:i,belowPinned:a}){let[,d]=useReducer(w=>w+1,0);useEffect(()=>{let w=[e.events.on("bodyScroll",d),e.events.on("contentReady",d),e.events.on("viewportChanged",d)];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 f=e.getStickyGroupRows();return f.length===0?null:jsx("div",{ref:p,className:"kanuni-datagrid-sticky-groups","aria-hidden":"true",style:{width:n||"100%","--dg-band-offset":`${o}px`,"--dg-pinned-gap":String(i),"--dg-sticky-below":`${a}px`},children:f.map((w,k)=>jsx("div",{className:`kanuni-datagrid-sticky-group${k===f.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:w.offset,height:w.height,zIndex:f.length-k},children:t(w.node,w.index,w.height)},String(w.node.key)))})}function Li({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 zo(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 qn({anchor:e,onClose:t,children:n,dark:o,className:i="",label:a,role:d="dialog"}){let p=zn({anchor:e,onClose:t});return jsx(Ft,{dark:o,children:jsx("div",{ref:p.ref,className:`kanuni-datagrid-filter-popup ${i}`.trim(),style:{left:p.position.left,top:p.position.top},role:d,"aria-label":a,children:n})})}function qf(e){let t=Fe();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 Xf=()=>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 jf({controller:e,search:t=true,exportCsv:n=true,exportExcel:o=false,exportPdf:i=false,columnChooser:a=true,dark:d,onOpenColumnChooser:p,itemsBefore:f,itemsAfter:w,searchDebounce:k=200,searchOptions:y,exportMenu:P=true,labels:C}){let S=qf(C),[v,L]=useState(()=>e.getSearchText()),N=useRef(false),[D,G]=useState(null),[$,q]=useState(null),[te,H]=useState(null),x=useId(),O=y?.debounce??k,A=y?.validate?.(v)??null,m=K=>{N.current=false;let oe=K.trim();e.getSearchText()!==oe&&e.setSearchText(oe);},E=()=>{A===null&&m(v);};useEffect(()=>{if(A!==null||!N.current)return;let K=setTimeout(()=>m(v),O);return ()=>clearTimeout(K)},[e,v,O,A]),useEffect(()=>{let K=oe=>{N.current||L(M=>M.trim()===oe?M:oe);};return K(e.getSearchText()),e.events.on("filterChanged",({searchText:oe})=>K(oe))},[e]);let[b,X]=useState(()=>e.getSelectedCount());useEffect(()=>(X(e.getSelectedCount()),e.events.on("selectionChanged",()=>X(e.getSelectedCount()))),[e]);let ne=async K=>{G(K),H(null);let oe=await zo(e,K);oe.error?H(oe.error):q(null),G(null);};return jsxs("div",{className:"kanuni-datagrid-toolbar",children:[f,t&&jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:y?.placeholder??S.search,value:v,maxLength:y?.maxLength,"aria-label":y?.ariaLabel??S.search,"aria-invalid":A!==null||void 0,"aria-describedby":A!==null?x:void 0,"data-testid":"dg-toolbar-search",onChange:K=>{N.current=true,L(K.target.value);},onBlur:()=>{y?.applyOnBlur!==false&&E();},onKeyDown:K=>{K.key==="Enter"&&y?.applyOnBlur!==false&&E();}}),t&&A!==null&&jsx("span",{id:x,className:"kanuni-datagrid-toolbar-search-error",role:"alert","data-testid":"dg-toolbar-search-error",children:A}),jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:K=>{let oe=K.currentTarget.getBoundingClientRect();p?.({left:oe.left,top:oe.bottom+2});},children:[jsx(Li,{name:"columns"}),jsx("span",{children:S.columns})]}),P&&(n&&e.canExportAll()||o||i)&&jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":S.exportMenu,title:S.exportMenu,disabled:D!==null,"data-testid":"dg-export-menu",onClick:K=>{let oe=K.currentTarget.getBoundingClientRect();q($?null:{left:oe.right-190,top:oe.bottom+2});},children:D?jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsx(Xf,{})}),$&&jsxs(qn,{anchor:$,onClose:()=>q(null),dark:d,role:"menu",label:S.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:D!==null,"data-testid":"dg-export-csv",onClick:()=>ne("csv"),children:D==="csv"?S.exporting:S.csv}),o&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:D!==null,"data-testid":"dg-export-excel",onClick:()=>ne("excel"),children:D==="excel"?S.exporting:S.excel}),o&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:D!==null||b===0,"data-testid":"dg-export-excel-selected",onClick:()=>ne("excel-selected"),children:D==="excel-selected"?S.exporting:S.excelSelected}),i&&jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:D!==null,"data-testid":"dg-export-pdf",onClick:()=>ne("pdf"),children:D==="pdf"?S.exporting:S.pdf})]}),w,te&&jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:te})]})}var Ki=memo(jf);var em=8;function tm(e){let t=Fe();return useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function Fi({controller:e,columns:t,anchor:n,onClose:o,dark:i,labels:a}){let d=tm(a),[p,f]=useState(""),w=e.getColumnModel(),k=L=>w.getDef(L.id)?.headerName??L.id,y=t.filter(L=>!isChromeColumn(L.id)),P=y.filter(L=>!w.getDef(L.id)?.hideInChooser),C=y.filter(L=>L.visible).length,S=p.trim().toLocaleLowerCase(),v=S?P.filter(L=>k(L).toLocaleLowerCase().includes(S)):P;return jsxs(qn,{anchor:n,onClose:o,dark:i,label:d.title,className:"kanuni-datagrid-column-chooser",children:[jsx("div",{className:"kanuni-datagrid-chooser-title",children:d.title}),P.length>em&&jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:d.search,"aria-label":d.search,value:p,onChange:L=>f(L.target.value)}),jsxs("div",{className:"kanuni-datagrid-filter-list",children:[v.length===0&&jsx("div",{className:"kanuni-datagrid-chooser-empty",children:d.empty}),v.map(L=>{let N=L.visible&&C===1;return jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsx("input",{type:"checkbox",checked:L.visible,disabled:N,"data-column-toggle":L.id,onChange:()=>e.setColumnVisible(L.id,!L.visible)}),jsx("span",{children:k(L)})]},L.id)})]}),jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsx("button",{type:"button",disabled:C===P.length,onClick:()=>P.forEach(L=>!L.visible&&e.setColumnVisible(L.id,true)),children:d.showAll}),jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:o,children:d.ok})]})]})}function im(e){let t=Fe();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 lm({page:e,pageCount:t,pageSize:n,pageSizes:o=[25,50,100,250],totalRows:i,onPage:a,onNext:d,onPrevious:p,onPageSize:f,pageButtons:w=false,maxPageButtons:k,labels:y}){let P=im(y),C=e<=0,S=e>=t-1,v=i===0?0:e*n+1,L=Math.min(i,(e+1)*n),N=useRef(null),D=useRef(null);return useEffect(()=>{let G=D.current,$=N.current;if(!$||!(G instanceof HTMLButtonElement)||!G.disabled)return;let q=document.activeElement;if(q&&q!==document.body&&q!==G)return;let te=$.querySelector('[aria-current="page"]')??$.querySelector("button:not(:disabled)");te?.focus(),D.current=te;},[e,t]),jsxs("div",{ref:N,className:"kanuni-datagrid-pager",role:"navigation","aria-label":P.navigation,onFocus:G=>{D.current=G.target;},onBlur:G=>{let $=G.relatedTarget;$&&!N.current?.contains($)&&(D.current=null);},children:[jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsx("span",{children:P.rowsPerPage}),jsx("select",{value:n,"data-testid":"dg-page-size",onChange:G=>f(Number(G.target.value)),children:o.map(G=>jsx("option",{value:G,children:G},G))})]}),jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[v.toLocaleString(),"\u2013",L.toLocaleString()," ",P.of," ",i.toLocaleString()]}),jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsx("button",{type:"button","aria-label":P.first,disabled:C,onClick:()=>a(0),children:"\xAB"}),jsx("button",{type:"button","aria-label":P.previous,disabled:C,"data-testid":"dg-page-prev",onClick:p,children:"\u2039"}),w?pageButtonItems(e,t,k).map(G=>typeof G=="number"?jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":fillText(P.pageButton,{n:String(G+1)}),"aria-current":G===e?"page":void 0,onClick:()=>a(G),children:G+1},G):jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},G)):jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[P.page," ",e+1," ",P.of," ",t]}),jsx("button",{type:"button","aria-label":P.next,disabled:S,"data-testid":"dg-page-next",onClick:d,children:"\u203A"}),jsx("button",{type:"button","aria-label":P.last,disabled:S,onClick:()=>a(t-1),children:"\xBB"})]})]})}var Hi=memo(lm);function mm(e){let t=Fe();return useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function gm({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:o,labels:i}){let a=mm(i),d=Fe(),[,p]=useState(0);useEffect(()=>e.events.on("filterChanged",()=>p(y=>y+1)),[e]);let f=e.getEffectiveFilter(),w=e.isFilterEnabled(),k=describeFilter(f,e.getColumnModel(),{...o,labels:{...filterLabels(d),...o?.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: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 Oi=memo(gm);var Br=e=>!e.separator&&!e.disabled;function _r({x:e,y:t,items:n,context:o,onClose:i,dark:a=false,label:d}){let p=Fe(),f=useRef(null),[w,k]=useState({left:e,top:t}),[y,P]=useState(()=>n.findIndex(Br)),[C,S]=useState(null),[v,L]=useState(null),N=useRef(null),[D,G]=useState(null);useEffect(()=>L(null),[C]);let $=useCallback((m,E)=>{if(S(m),m===null||!E)return;let b=E.getBoundingClientRect();G({left:b.left,right:b.right,top:b.top});},[]),q=m=>f.current?.querySelector(`[data-item-index="${m}"]`)??null,te=useCallback(m=>{if(N.current=m,!m||!D)return;let E=8,b=m.getBoundingClientRect(),X=Math.max(E,Math.min(D.top-4,window.innerHeight-b.height-E)),K=D.right+b.width+E<=window.innerWidth?D.right:Math.max(E,D.left-b.width);L({left:K,top:X});},[D]),H=useCallback(m=>{if(f.current=m,!m)return;let E=m.getBoundingClientRect(),b=8;k({left:Math.max(b,Math.min(e,window.innerWidth-E.width-b)),top:Math.max(b,Math.min(t,window.innerHeight-E.height-b))}),m.focus();},[e,t]);useEffect(()=>{let m=b=>{let X=b.target;N.current?.contains(X)||f.current&&!f.current.contains(X)&&i();},E=()=>i();return document.addEventListener("mousedown",m),window.addEventListener("scroll",E,true),()=>{document.removeEventListener("mousedown",m),window.removeEventListener("scroll",E,true);}},[i]);let x=(m,E)=>{let b=n.length;for(let X=1;X<=b;X++){let ne=(m+E*X+b*b)%b;if(Br(n[ne]))return ne}return m},O=m=>{let E=n[m];if(!(!E||!Br(E))){if(E.items?.length){$(m,q(m));return}E.onSelect?.(o),i();}},A=m=>{switch(m.key){case "ArrowDown":P(E=>x(E,1));break;case "ArrowUp":P(E=>x(E,-1));break;case "Home":P(n.findIndex(Br));break;case "End":P(x(0,-1));break;case "ArrowRight":if(n[y]?.items?.length)$(y,q(y));else return;break;case "ArrowLeft":if(C!==null)$(null);else return;break;case "Enter":case " ":O(y);break;case "Escape":i();break;case "Tab":i();return;default:return}m.preventDefault(),m.stopPropagation();};return jsxs(Ft,{dark:a,children:[jsx("div",{ref:H,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":d??p.rowActions,tabIndex:-1,style:{left:w.left,top:w.top},onKeyDown:A,children:n.map((m,E)=>m.separator?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},m.id??`sep-${E}`):jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${E===y?" kanuni-datagrid-menu-item--active":""}`,disabled:m.disabled,"data-item-index":E,"aria-haspopup":m.items?.length?"menu":void 0,"aria-expanded":m.items?.length?C===E:void 0,onMouseEnter:b=>{P(E),$(m.items?.length?E:null,b.currentTarget);},onClick:()=>O(E),children:[m.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:m.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:m.label}),m.shortcut&&jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:m.shortcut}),m.items?.length?jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},m.id??E))}),C!==null&&n[C]?.items?.length?jsx("div",{ref:te,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:v?{left:v.left,top:v.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[C].items.map((m,E)=>m.separator?jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},m.id??`sub-sep-${E}`):jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:m.disabled,onClick:()=>{m.onSelect?.(o),i();},children:[m.icon&&jsx("span",{className:"kanuni-datagrid-menu-icon",children:m.icon}),jsx("span",{className:"kanuni-datagrid-menu-label",children:m.label})]},m.id??E))}):null]})}var hm=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),_i=hm?"\u2318":"Ctrl+",nd=`${_i}C`,bm=`${_i}X`,ym=`${_i}V`;function vo(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
3
+ `).length:0,()=>e.writeClipboard(n,"copy"));}function Rm(e){navigator.clipboard?.writeText(e).catch(()=>{});}function Cm(e){let t=e.getColumnModel();return e.getVisualColumnIds().some(n=>{let o=t.getDef(n)?.band;return typeof o=="string"?o!=="":Array.isArray(o)&&o.length>0})}function km(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var Tm={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function $i(e,t,n,o,i){if(n===false)return [];let a=n===true||n===void 0?{}:n,d=[];a.copy!==false&&d.push({id:"__dg-copy",label:t.menuCopy,shortcut:nd,onSelect:()=>vo(e)}),a.copyWithHeaders!==false&&d.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>vo(e,{includeHeaders:true})}),a.copyWithGroupHeaders!==false&&Cm(e)&&d.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>vo(e,{includeGroupHeaders:true})});let p=km(a.export).filter(f=>f!=="csv"||e.canExportAll());if(p.length>0){let f=e.getSelectedCount()===0;d.push({id:"__dg-export",label:t.menuExport,items:p.map(w=>({id:`__dg-export-${w}`,label:t[Tm[w]],disabled:w==="excel-selected"&&f,onSelect:()=>{zo(e,w).then(k=>{k.error&&i?.(k.error);});}}))});}return d.length>0&&o&&d.unshift({id:"__dg-sep-builtin",separator:true}),d}function Wi(e,t,n,o){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)}),o?[{id:"__dg-sep-pin",separator:true},...a]:a}function Ui({anchor:e,value:t,dark:n,onCommit:o,onCancel:i}){let a=Fe(),[d,p]=useState(t),f=useRef(null);useEffect(()=>{let k=f.current;k&&(k.focus(),k.select());},[]);let w=()=>{let k=d.trim();o(k===""?null:k);};return jsxs(qn,{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:d,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(),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 Sm(e){let t=Fe();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 Gm=new Set(["filtering","sorting","computing","encoding","exporting"]);function Yi({controller:e,delay:t=300,labels:n,cancellable:o=true,forced:i=false}){let[a,d]=useState(()=>e.getBusy()),[p,f]=useState(false);useEffect(()=>(d(e.getBusy()),e.events.on("busyChanged",S=>d(S))),[e]);let w=a.busy&&a.background!==true;useEffect(()=>{if(!w){f(false);return}let S=setTimeout(()=>f(true),t);return ()=>clearTimeout(S)},[w,t]);let k=Sm(n);if(!i&&(!p||!w))return null;let y=a.phase?k[a.phase]:k.busy,P=a.progress===null?null:Math.max(0,Math.min(100,a.progress)),C=o&&a.phase!==null&&Gm.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}),P!==null&&jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(P),"aria-valuemin":0,"aria-valuemax":100,children:[jsx("div",{className:"kanuni-datagrid-loading-track",children:jsx("div",{className:"kanuni-datagrid-loading-fill",style:{width:`${P}%`}})}),jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(P),"%"]})]}),C&&jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:k.cancel})]})})}var ld=10;function sd({fields:e,content:t,statusIcon:n=false,onPress:o}){let i=useRef(null),a=f=>f.closest(".kanuni-datagrid-scroller"),[d,...p]=e;return jsx("div",{role:"gridcell",className:`kanuni-datagrid-card${t!==void 0?" kanuni-datagrid-card--custom":""}${o?" kanuni-datagrid-card--pressable":""}`,"data-testid":"dg-card",onPointerDown:o?f=>{i.current={x:f.clientX,y:f.clientY,scrollTop:a(f.currentTarget)?.scrollTop??0,moved:false};}:void 0,onPointerMove:o?f=>{let w=i.current;w&&Math.hypot(f.clientX-w.x,f.clientY-w.y)>ld&&(w.moved=true);}:void 0,onClick:o?f=>{let w=i.current;if(i.current=null,w){let k=(a(f.currentTarget)?.scrollTop??0)!==w.scrollTop,y=Math.hypot(f.clientX-w.x,f.clientY-w.y)>ld;if(w.moved||k||y)return}o(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":d?.pending?true:void 0,children:d?.text})]}),p.length>0&&jsx("dl",{className:"kanuni-datagrid-card-fields",children:p.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 dd({controller:e,sort:t,columns:n,text:o}){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:o.cardSortBy}),jsxs("select",{className:"kanuni-datagrid-cardbar-select",value:i?.columnId??"",onChange:d=>e.setSort(d.target.value?[{columnId:d.target.value,direction:i?.direction??"asc"}]:[]),children:[jsx("option",{value:"",children:o.none}),n.map(d=>jsx("option",{value:d.id,children:d.label},d.id))]})]}),i&&jsx("button",{type:"button",className:"kanuni-datagrid-cardbar-dir","aria-label":a?o.sortAsc:o.sortDesc,title:a?o.sortAsc:o.sortDesc,onClick:()=>e.setSort([{columnId:i.columnId,direction:a?"asc":"desc"}]),children:jsx("span",{"aria-hidden":"true",children:a?"\u2193":"\u2191"})})]})}var cd=44,pd=20,fd=48,md=640,ud=null;function gd(){return typeof document>"u"?null:(ud??=document.createElement("canvas"),ud.getContext("2d"))}function $r(e){let t=getComputedStyle(e);return `${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function Im(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function Km(e){let t=e.map(o=>[o.style.width,o.style.minWidth,o.style.maxWidth]);for(let o of e)o.style.width="max-content",o.style.minWidth="0",o.style.maxWidth="none";let n=0;for(let o of e){let i=Math.ceil(o.getBoundingClientRect().width);i>n&&(n=i);}return e.forEach((o,i)=>{[o.style.width,o.style.minWidth,o.style.maxWidth]=t[i];}),n}function Wr(e,t){let n=gd();if(!n)return null;let o=cssEscape(t),i=e.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${o}"]`),a=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${o}"]`);if(!i&&a.length===0)return null;let d=0;if(i){let p=i.querySelector(".kanuni-datagrid-header-label")??i;n.font=$r(p),d=n.measureText(p.textContent??"").width+cd;}if(a.length>0){n.font=$r(a[0]);let p=[];for(let f=0;f<a.length;f++){if(Im(a[f])){p.push(a[f]);continue}let w=a[f].textContent??"";if(w==="")continue;let k=n.measureText(w).width+pd;k>d&&(d=k);}p.length>0&&(d=Math.max(d,Km(p)));}return d===0?null:Math.round(Math.min(md,Math.max(fd,d)))}function Fm(e,t,n){let o=gd();if(!o)return null;let i=e.querySelector(".kanuni-datagrid-header-label"),a=e.querySelector(".kanuni-datagrid-cell[data-column-id]"),d=0;i&&(o.font=$r(i)),d=o.measureText(t).width+cd,a&&(o.font=$r(a));for(let p of n){if(p==="")continue;let f=o.measureText(p).width+pd;f>d&&(d=f);}return Math.round(Math.min(md,Math.max(fd,d)))}function wd(e,t){let n=new Map,o=[];for(let f of t.getColumnStates()){if(!f.visible||f.flex)continue;let w=Wr(e,f.id);w!==null?n.set(f.id,w):o.push(f.id);}if(o.length===0)return n;let{start:i,end:a}=t.getVirtualWindow().rows,d=[];t.forEachDisplayedNode((f,w)=>{w>=i&&w<a&&f.kind==="data"&&d.push(f.data);});let p=t.getColumnModel();for(let f of o){let w=p.getDef(f),k=d.map(P=>cellDisplayText(w,p.getCellValue(P,f),P)),y=Fm(e,w?.headerName??f,k);y!==null&&n.set(f,y);}return n}function qi(e,t){let n=useRef(t);n.current=t;let o=!!t?.enabled,i=t?.storageKey,a=t?.type;useEffect(()=>{if(o)return attachStateStoring(e,{...n.current,enabled:true})},[e,o,i,a]);}var Vr="application/x-kanuni-row";function ji(e,t){let n=!!t?.enabled,o=t?.group??null,i=t?.allowReordering??true,a=t?.allowDropInsert??o!==null,[d,p]=useState(false),[f,w]=useState(null),k=useRef(null),y=useRef(false),P=useRef(null),C=useRef(null),S=useRef(t);S.current=t;let v=useCallback(m=>e.getRowByKey(m),[e]),L=(m,E)=>{let b=E.getBoundingClientRect();return m.clientY<b.top+b.height/2?"before":"after"},N=useCallback((m,E)=>{if(!isDataRow(m))return;C.current=m.key,P.current=m.key,y.current=false,k.current=null;let b={gridId:e.gridId,group:o,rowKey:m.key,row:m.data};E.dataTransfer.setData(Vr,JSON.stringify(b)),E.dataTransfer.setData("text/plain",String(m.key)),E.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:m.key}),E.stopPropagation();},[e,o]),D=useCallback(()=>{let m=P.current;m!==null&&e.notifyRowDragEnd({rowKey:m,dropped:y.current,overKey:k.current?.key??null,position:k.current?.side??null}),y.current=false,k.current=null,P.current=null,C.current=null,w(null),p(false);},[e]),G=useCallback(m=>m.dataTransfer.types.includes(Vr)?C.current!==null?i:a&&o!==null:false,[i,a,o]),$=useCallback((m,E)=>{if(!isDataRow(m)||!G(E))return;if(E.preventDefault(),E.dataTransfer.dropEffect="move",C.current===m.key){k.current=null,w(null);return}let b=L(E,E.currentTarget),X=k.current?.key!==m.key||k.current.side!==b;k.current={key:m.key,side:b},w(ne=>ne?.key===m.key&&ne.side===b?ne:{key:m.key,side:b}),X&&C.current!==null&&e.notifyRowDrag("move",{rowKey:C.current,overKey:m.key,position:b});},[G,e]),q=useCallback((m,E,b)=>{let X=null;try{let K=m.dataTransfer.getData(Vr);X=K?JSON.parse(K):null;}catch{X=null;}if(!X)return;if(X.gridId===e.gridId){if(!i)return;let K=S.current?.onReorder;if(K){K({dragKey:X.rowKey,targetKey:E,position:b,row:v(X.rowKey)});return}e.moveRow(X.rowKey,E,b);return}!a||o===null||X.group!==o||S.current?.onAdd?.({row:X.row,rowKey:X.rowKey,otherGridId:X.gridId,targetKey:E,position:b});},[e,i,a,o,v]),te=useCallback((m,E)=>{if(w(null),!isDataRow(m)||!G(E))return;E.preventDefault(),E.stopPropagation();let b=L(E,E.currentTarget);y.current=true,k.current={key:m.key,side:b},q(E,m.key,b),C.current=null;},[G,q]),H=useCallback(m=>{G(m)&&(m.preventDefault(),m.dataTransfer.dropEffect="move");},[G]),x=useCallback(m=>{w(null),G(m)&&(m.preventDefault(),y.current=true,k.current=null,q(m,null,"after"),C.current=null);},[G,q]),O=useCallback(m=>{let E=m.relatedTarget;E&&m.currentTarget.contains(E)||C.current!==null&&(k.current=null,w(null),e.notifyRowDrag("leave",{rowKey:C.current}));},[e]);return {handlers:n?{draggable:d,setDraggable:p,onDragStart:N,onDragEnd:D,onDragOver:$,onDrop:te}:void 0,dropAt:n?f:null,bodyHandlers:n?{onDragOver:H,onDrop:x,onDragLeave:O}:void 0}}var Wm=400;function bd(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function yd(e){return (e.textContent??"").trim()}function Vm(e){let{def:t,node:n,value:o,clipped:i,note:a}=e;if(a)return a;if(t&&n){if(typeof t.tooltip=="function"){let d=t.tooltip({value:o,row:n.data,node:n,column:t});return d||null}if(typeof t.tooltip=="string")return t.tooltip||null;if(t.tooltipField){let d=n.data[t.tooltipField];return d==null||d===""?null:String(d)}}return i&&i.length>0?i:null}function Ji({rootRef:e,columnModel:t,getRowNode:n,getNote:o,config:i,controller:a,gridId:d}){let p=i?.enabled!==false,f=i?.delay??Wm,w=i?.showOnTruncation!==false,k=i?.trigger??"hover",y=k!=="focus",P=k!=="hover"&&!!a&&!!d,C=i?.interactive===true,[S,v]=useState(null),L=useRef({columnModel:t,getRowNode:n,getNote:o,showOnTruncation:w,delay:f});return L.current={columnModel:t,getRowNode:n,getNote:o,showOnTruncation:w,delay:f},useEffect(()=>{if(!p){v(null);return}let N=e.current;if(!N)return;let D=null,G=null,$=null,q=null,te=d?`${d}-tooltip`:void 0,H=()=>{q?.removeAttribute("aria-describedby"),q=null;},x=()=>{D!==null&&(clearTimeout(D),D=null),G!==null&&(clearTimeout(G),G=null),$=null,H(),v(null);},O=()=>{G!==null&&(clearTimeout(G),G=null);},A=()=>{G=null,H(),v(null);},m=()=>{O(),D!==null&&(clearTimeout(D),D=null);},E=()=>{if(!C){x();return}G!==null&&clearTimeout(G),G=setTimeout(A,150);},b=(ye,Ge)=>{let{columnModel:V,getRowNode:Q,getNote:ke}=L.current,u=V.getDef(Ge);if(!u?.renderTooltip)return;let Ue=ye.closest("[data-row-key]")?.dataset.rowKey,Ae=Ue===void 0?void 0:Q(Ue);if(!Ae||ke&&ke(Ae.key,Ge,Ae.data))return;let Ie=u.renderTooltip({value:V.getCellValue(Ae.data,Ge),row:Ae.data,node:Ae,column:u});return Ie==null||Ie===false?null:{content:Ie}},X=(ye,Ge,V,Q)=>{let ke=V?void 0:b(ye,Ge);if(ke===null)return;let u=ke?"":V?K(Ge,ye):ne(ye,Ge);if(!ke&&!u)return;let Ue=ye.getBoundingClientRect();O(),H(),Q&&te&&(ye.setAttribute("aria-describedby",te),q=ye),v({text:u??"",...ke?{content:ke.content}:{},anchor:{top:Ue.top,left:Ue.left,width:Ue.width,height:Ue.height},...C?{interactive:true,hold:m,release:x}:{},...te?{id:te}:{}});},ne=(ye,Ge)=>{let{columnModel:V,getRowNode:Q,getNote:ke,showOnTruncation:u}=L.current,Ue=V.getDef(Ge),Ae=ye.closest("[data-row-key]")?.dataset.rowKey,Ie=Ae===void 0?void 0:Q(Ae);return Vm({def:Ue,node:Ie,value:Ie?V.getCellValue(Ie.data,Ge):void 0,clipped:u&&bd(ye)?yd(ye):null,note:Ie&&ke?ke(Ie.key,Ge,Ie.data):null})},K=(ye,Ge)=>{let V=L.current.columnModel.getDef(ye);if(V?.headerTooltip)return V.headerTooltip;if(!L.current.showOnTruncation)return null;let Q=Ge.querySelector(".kanuni-datagrid-header-label")??Ge;if(!bd(Q))return null;let ke=yd(Q);return ke.length>0?ke:null},oe=ye=>{if(!y)return;let V=ye.target?.closest("[data-column-id]")??null;if(V===$){O();return}if(C&&G!==null?(D!==null&&(clearTimeout(D),D=null),$=null):x(),!V||!N.contains(V))return;let Q=V.dataset.columnId;if(!Q)return;let ke=V.classList.contains("kanuni-datagrid-header-cell");!ke&&!V.closest("[data-row-key]")||($=V,D=setTimeout(()=>{D=null,!($!==V||!V.isConnected)&&X(V,Q,ke,false);},L.current.delay));},M=ye=>{if(!y)return;let Ge=ye.relatedTarget;$&&Ge&&$.contains(Ge)||E();},re=-1/0,Ne=()=>{re=Date.now();},Oe=()=>{x();let ye=a?.getFocus();!ye||!d||(D=setTimeout(()=>{if(D=null,!N.contains(document.activeElement)&&Date.now()-re>1500)return;let Ge=document.getElementById(`${d}-cell-${String(ye.rowKey)}-${ye.columnId}`);!Ge||!N.contains(Ge)||($=Ge,X(Ge,ye.columnId,false,true));},L.current.delay));},ue=P?a.events.on("focusChanged",Oe):null,He=ye=>{(!P||ye.key==="Escape")&&x();};return N.addEventListener("mouseover",oe),N.addEventListener("mouseout",M),N.addEventListener("mousedown",x),N.addEventListener("pointerdown",Ne),N.addEventListener("keydown",He),N.addEventListener("scroll",x,true),window.addEventListener("blur",x),()=>{x(),ue?.(),N.removeEventListener("mouseover",oe),N.removeEventListener("mouseout",M),N.removeEventListener("mousedown",x),N.removeEventListener("pointerdown",Ne),N.removeEventListener("keydown",He),N.removeEventListener("scroll",x,true),window.removeEventListener("blur",x);}},[p,e,y,P,C,a,d]),p?S:null}var Cd=6,Do=8;function Qi({state:e,dark:t}){let[n,o]=useState(null),[i,a]=useState(null),{text:d,anchor:p,content:f,interactive:w,hold:k,release:y,id:P}=e;return useLayoutEffect(()=>{if(!n)return;let{width:C,height:S}=n.getBoundingClientRect(),v=document.documentElement.clientWidth,L=document.documentElement.clientHeight,N=p.top+p.height+Cd,D=p.top-S-Cd,$=N+S+Do<=L||D<Do?N:D,q=Math.min(Math.max(Do,p.left),Math.max(Do,v-C-Do));a({top:Math.min($,L-S-Do),left:q});},[n,d,f,p]),jsx(Ft,{dark:t,kind:"tooltip",children:jsx("div",{ref:o,id:P,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:i?{top:i.top,left:i.left}:{top:0,left:0,visibility:"hidden"},children:f??d})})}function Ur(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 Td=Ur(getGridDictionary("en"));function Zi(e,t){let n={...Td,...t.labels},{controller:o,maxGroupLevels:i}=t,a=e.columnId,d=o.getColumnModel().getDef(a),p=o.getSort(),f=p.find(G=>G.columnId===a),w=o.getGroupLevels(),k=w.includes(a),y=d?.sortable!==false,P=o.getColumnStates().find(G=>G.id===a)?.pinned??null,C=d?.groupable!==false,S=o.canGroup(),v=[{id:"sort-asc",label:n.sortAsc,disabled:!y||f?.direction==="asc",onSelect:()=>o.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!y||f?.direction==="desc",onSelect:()=>o.setSort([{columnId:a,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!f,onSelect:()=>o.setSort(p.filter(G=>G.columnId!==a))},{id:"sep-1",separator:true}];S&&v.push({id:"group",label:k?n.ungroup:n.groupBy,disabled:!C,onSelect:()=>{k?o.groupBy(w.filter(G=>G!==a)):o.groupBy([...w,a].slice(-i));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&v.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),v.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:o.getColumnStates().filter(G=>G.visible).length<=1,onSelect:()=>o.setColumnVisible(a,false)},{id:"field-chooser",label:n.fieldChooser,onSelect:t.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:n.bestFit,disabled:d?.resizable===false,onSelect:()=>t.onBestFit(a)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll});let L=o.getColumnStates().filter(G=>G.visible&&G.pinned===P).map(G=>G.id),N=L.indexOf(a),D=d?.reorderable!==false&&N>=0;return v.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!D||N<=0,onSelect:()=>o.moveColumn(a,L[N-1])},{id:"move-right",label:n.moveRight,disabled:!D||N<0||N>=L.length-1,onSelect:()=>o.moveColumn(a,L[N+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:P==="left",onSelect:()=>o.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:P==="right",onSelect:()=>o.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:P==="sticky",onSelect:()=>o.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:P===null,onSelect:()=>o.setColumnPinned(a,null)}),v}var In=typeof window<"u"?useLayoutEffect:useEffect,Gd=1e8,zr=null;function Nd(){if(zr!==null)return zr;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=`${Gd}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=Gd;let n=e.scrollTop;return il=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(zr=n),zr}var il=null;function Cg(){return il===null&&Nd(),il}function rl(e){return Math.abs(e)}function Md(e,t){return getComputedStyle(t).direction==="rtl"?-e:e}function Yr(e,t){if(t)return e;if(e.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");if(e.dataSource!=null&&!Array.isArray(e.dataSource)&&e.grouping){e.debugMode&&console.warn("[datagrid] grouping a server-side DataSource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let d={...e};return delete d.grouping,Yr(d,t)}if(e.columns?.some(d=>d.spanRows)){e.debugMode&&console.warn("[datagrid] cell span/merge (spanRows) is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let d={...e,columns:e.columns.map(p=>p.spanRows?{...p,spanRows:void 0}:p)};return Yr(d,t)}if(e.tree){e.debugMode&&console.warn("[datagrid] tree data is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let d={...e};return delete d.tree,Yr(d,t)}if(!e.grouping)return e.masterDetail?al(e):e;let{groupBy:n,groupSummaries:o}=e.grouping,i=n==null?[]:typeof n=="string"?[n]:n;if(i.length<=1&&!o)return e.masterDetail?al(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?al(a):a}function al(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 kg(e){return jsx(va,{locale:e.locale,messages:e.messages,children:jsx(La,{theme:e.theme,density:e.density,palette:e.palette,portalContainer:e.portalContainer,children:jsx(Tg,{...e})})})}function Tg(e){let t=Fe(),{className:n,style:o,dark:i=false,theme:a,palette:d,striped:p=true,emptyText:f,sortable:w=true,autoHeaderHeight:k=false,filterRow:y=false,headerFilter:P=false,filterIconMode:C="hover",columnReorder:S=true,columnResize:v=true,loadingOverlay:L=true,announcements:N=true,groupPanel:D=false,showRowCount:G=false,toolbar:$=false,toolbarExcel:q=false,toolbarPdf:te=false,filterPanel:H=false,filterPanelLabels:x,onOpenFilterBuilder:O,toolbarItemsBefore:A,toolbarItemsAfter:m,renderRow:E,stateStoring:b,headerMenu:X=true,focusedRow:ne=false,focusedRowKey:K,onFocusedRowChanged:oe,footer:M,footerMenu:re=true,pinFooterToBottom:Ne=false,onRowClick:Oe,onRowActivate:ue,onReady:He,onKeyDown:ye,renderCellContent:Ge,getCellClassName:V,renderOverlay:Q,onCellPointerDown:ke,onCellPointerEnter:u,onCellDoubleClick:Ue,onHeaderClick:Ae,getHeaderClassName:Ie,renderHeaderLabel:ht,enterpriseEdition:Be=false,renderDetail:ae,renderEditForm:pe,density:ve,rowMenu:Se,cellMenu:Me,autoColumns:J,rowDrag:be,tooltip:we,pinnedTopRows:I,pinnedBottomRows:W,footerPosition:Y="bottom",autoSizeStrategy:ie="none",highlightSearch:se=true,...Re}=e,qe=useMemo(()=>{let r=Re.columns;if(r&&r.length>0)return r;let h=Re.dataSource;if(!Array.isArray(h)||h.length===0)return r??[];let T=typeof J=="object"?J:void 0;return J===false?r??[]:inferColumns(h,T)},[Re.columns,Re.dataSource,J]),Le={...Re,columns:qe},it=isPackagedTheme(a)?THEME_ROW_HEIGHT[a][ve??"normal"]:ve?DENSITY_ROW_HEIGHT[ve]:DEFAULT_ROW_HEIGHT,Z=Le.rowHeight===void 0?{...Le,rowHeight:it}:Le,ct=Be?Number.POSITIVE_INFINITY:1,Xt=Yr(Z,Be),{controller:l,rows:st,window:Ye,layout:We,sort:Dt,rowHeight:bt,visibleCount:dt}=Ta(Xt),rt=e.cardView,Ht=rt?rt===true?"on":`${rt.breakpoint??""}|${rt.height??""}|${(rt.columns??[]).join("|")}`:"",yt=useMemo(()=>resolveCardView(rt),[Ht]),[je,St]=useState(false),Nt=useRef(yt);In(()=>{Nt.current=yt;let r=It.current;St(r?showsCards(cardViewWidth(r),yt):false);},[yt]);let ut=je?cardColumnIds(l.getColumnModel(),yt):null,rn=ut?JSON.stringify(ut):"",Gt=useMemo(()=>ut,[rn]);useEffect(()=>{let r=rt&&rt!==true?rt.height:void 0;l.setDataRowHeight(Gt?typeof r=="number"&&r>0?Math.max(44,r):cardHeight(Gt.length):null);},[l,Gt,Ht]);let tt=e.onCardViewChange,ze=useRef(false);useEffect(()=>{je!==ze.current&&(ze.current=je,tt?.(je));},[je,tt]);let Je=useRef(null),nt=normalizeRowStatus(e.rowStatus),$e=vs(l,e.editing,Be,{renderCellContent:Ge,getCellClassName:V,onCellDoubleClick:Ue},je,{rootRef:Je,rowHeight:bt,dark:i,savedDuration:nt?.savedDuration??0,cardPopup:je&&!!rt&&rt!==true&&rt.edit==="popup"}),pt=$e.rowStatusSource??e.rowStatusSource??null,B=_o(l);B.effectiveRow=pt?.effectiveRow?r=>pt.effectiveRow(r):null;let Ee=r=>{if(!nt||r.kind!=="data")return {};let h=resolveRowStatus(nt,r.data,r.key,pt);return h?{rowStatus:h.status,rowStatusText:rowStatusDescription(h,t),rowStatusTint:nt.tint,rowStatusStrike:nt.strike}:{}},me=e.rowClassName,Te=(r,h,T=r.key)=>{if(!me||r.kind!=="data")return;let U=r,le=pt?.effectiveRow?.(T)??U.data,ce=nt?resolveRowStatus(nt,le,T,pt)?.status??null:pt?.getRowStatus(T)??null,he=me({row:le,node:U,rowKey:T,status:ce,index:h});return typeof he=="string"&&he.trim()!==""?he.trim():void 0},de=rt&&rt!==true?rt:null,s=e.openCardEditor??$e.openCardEditor,g=je,R=(r,h)=>{let T=Gt?.[0];T!==void 0&&!l.focusCell(r.key,T)||(de?.onCardPress?.(r.key,r,h),!h.defaultPrevented&&de?.edit==="popup"&&s?.(r.key));},_=r=>{let h=l.getColumnModel(),T=pt?.effectiveRow?.(r.key)??r.data,U=cardFields(h,Gt??[],T).map(le=>{let ce=h.getDef(le.columnId);if(!ce?.lookup||ce.valueFormatter)return le;let he=B.label(ce,le.columnId,h.getCellValue(T,le.columnId),r.data,r.key);return he===bn?{...le,text:"",pending:true}:he===null?le:{...le,text:he}});return {row:T,fields:U}},ee=!!nt?.icons,F=de?.renderCard,z=r=>{let h=r.node,{row:T,fields:U}=_(h),le;if(F){let ce=nt?resolveRowStatus(nt,T,h.key,pt)?.status??null:pt?.getRowStatus(h.key)??null;le=F({row:T,node:h,fields:U,selected:r.selected,status:ce})??null;}return jsx(sd,{fields:U,content:le,statusIcon:ee,onPress:g?ce=>R(h,ce):void 0})};useEffect(()=>{if(je||!nt?.messages){l.setMessageRows([],bt);return}let r=nt.get,h=rowMessageKeys(nt,pt).filter(T=>{if(!r)return true;let U=l.getDataRowNode(T)?.data;if(U===void 0)return true;let le=r({row:U,rowKey:T});return le===void 0||le==="error"});l.setMessageRows(h,bt);});let fe=(r,h)=>{if(!nt)return null;let T=rowMessageModel(nt,r,h,pt,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:T.text,children:T.text}),T.retry&&jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-retry",onClick:T.retry,children:t.rowStatusRetry}),T.remove&&jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-delete",onClick:T.remove,children:t.rowStatusDelete})]})},ge=resolveToolbar($),xe=$e.renderCellContent,Xe=$e.getCellClassName,et=$e.onCellDoubleClick,ot=Za(l,e.printLayout,Je),Go=l.getEditingCells(),pn=We.center.length&&Go.length===1?Go.map(r=>We.center.findIndex(h=>h.state.id===r.columnId)).filter(r=>r>=0):[],Kn=ot.active?{...Ye.columns,start:0,end:We.center.length,offsetX:0}:pn.length>0?(()=>{let r=Math.min(Ye.columns.start,...pn),h=Math.max(Ye.columns.end,...pn.map(T=>T+1));return r===Ye.columns.start&&h===Ye.columns.end?Ye.columns:{...Ye.columns,start:r,end:h,offsetX:We.centerOffsets[r]??0}})():Ye.columns,fn=ot.active?{...Ye,rows:{...Ye.rows,start:0,end:st.length,offsetY:0,totalHeight:0},columns:Kn}:Kn===Ye.columns?Ye:{...Ye,columns:Kn},vn=useMemo(()=>qe.some(r=>r.autoHeight===true),[qe]),Jo=P&&l.canListDistinctValues();P&&!Jo&&Re.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 It=useRef(null);In(()=>{l.setEnterpriseEdition(Be);},[l,Be]),useEffect(()=>{He?.(l);},[l,He]),In(()=>{let r=Nd();r!==null&&r<DEFAULT_MAX_SCROLL_OFFSET&&l.setMaxScrollOffset(r);let h=Cg();h!==null&&l.setMaxCanvasHeight(h);},[l]),In(()=>{let r=It.current;if(!r)return;let h=()=>{l.setViewportSize(r.clientWidth,r.clientHeight),Nt.current&&St(showsCards(cardViewWidth(r),Nt.current)),r.style.setProperty("--dg-viewport-width",`${r.clientWidth}px`);let le=r.querySelector(".kanuni-datagrid-rows"),ce=r.querySelector(".kanuni-datagrid-canvas");if(le&&ce){let he=le.getBoundingClientRect(),Ze=ce.getBoundingClientRect();l.setChromeOffsets(he.top-Ze.top,Ze.bottom-he.bottom);}calibrateMaxScrollOffset(r,l);};if(h(),typeof ResizeObserver>"u")return;let T=new ResizeObserver(h);T.observe(r);let U=r.querySelector(".kanuni-datagrid-canvas");return U&&T.observe(U),()=>T.disconnect()},[l]),In(()=>{if(!k)return;let r=It.current?.querySelector(".kanuni-datagrid-canvas"),h=r?.querySelector(".kanuni-datagrid-header");if(!r||!h)return;let T=null,U=()=>{let ce=h.offsetHeight,he=ce>0?`${ce}px`:null;he!==T&&(T=he,he?r.style.setProperty("--dg-header-actual",he):r.style.removeProperty("--dg-header-actual"));};U();let le=typeof ResizeObserver>"u"?null:new ResizeObserver(U);return le?.observe(h),()=>{le?.disconnect(),r.style.removeProperty("--dg-header-actual");}},[l,k]),In(()=>{if(!vn)return;let r=It.current?.querySelector(".kanuni-datagrid-viewport");if(!r)return;let h=l.getVirtualWindow(),T=l.getRows(),U=new Map(l.getMeasuredRowHeights()),le=false;for(let ce=h.rows.start;ce<h.rows.end;ce++){let he=T[ce];if(!he||he.kind!=="data")continue;let Ze=r.querySelector(`[data-row-key="${cssEscape(String(he.key))}"]`);if(!Ze)continue;let Qe=Ze.getBoundingClientRect().height;Qe>0&&U.get(he.key)!==Qe&&(U.set(he.key,Qe),le=true);}le&&l.setMeasuredRowHeights(U);}),useEffect(()=>{if(vn)return l.events.on("columnStateChanged",()=>{l.clearMeasuredRowHeights();})},[l,vn]),useEffect(()=>l.events.on("scrollRequested",r=>{let h=It.current;if(!h)return;r.scrollTop!==void 0&&(h.scrollTop=r.scrollTop),r.scrollLeft!==void 0&&(h.scrollLeft=Md(r.scrollLeft,h)),l.setScroll(h.scrollTop,rl(h.scrollLeft));let T=r.scrollTop;T===void 0||Math.abs(h.scrollTop-T)<=1||setTimeout(()=>{let U=It.current;!U||Math.abs(U.scrollTop-T)<=1||(U.scrollTop=T,l.setScroll(U.scrollTop,rl(U.scrollLeft)));},0);}),[l]);let Mo=ti(l,e.alignedGrids,It),Xr=useCallback(r=>{let h=r.currentTarget;l.setScroll(h.scrollTop,rl(h.scrollLeft)),Mo.syncScroll(h.scrollLeft);},[l,Mo]),Qo=useCallback((r,h)=>l.toggleSort(r,h),[l]);qi(l,b);let mn=ji(l,be);useEffect(()=>{K!=null&&l.getFocusedRowKey()!==K&&l.focusRow(K);},[l,K]),useEffect(()=>{if(oe)return l.events.on("focusedRowChanged",r=>oe({rowKey:r.rowKey,row:r.row}))},[l,oe]);let[Jn,c]=useState(null);useEffect(()=>l.events.on("overlayChanged",r=>{c(r.manual?r.overlay:null);}),[l]);let j=useCallback(r=>{let h=l.getDataRowNode(r);if(h)return h;if(r==="")return;let T=Number(r);return Number.isNaN(T)?void 0:l.getDataRowNode(T)},[l]),Ce=Be?e.notes:void 0;!Be&&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 De=!!Ce?.onChange&&Ce.menu!==false,mt=useCallback((r,h,T)=>Ce?Ce.get({rowKey:r,columnId:h,row:T})??null:null,[Ce]),Ot=Ji({rootRef:Je,columnModel:l.getColumnModel(),getRowNode:j,getNote:Ce?mt:void 0,config:we,controller:l,gridId:Re.gridId}),[Fn,jr]=useState(0);useEffect(()=>{let r=new Set,h=[l.events.on("cellsFlashed",({rowKeys:T,columnIds:U,duration:le})=>{let ce=Je.current;if(!ce)return;let he=T.length?T.map(at=>`[data-row-key="${cssEscape(String(at))}"]`).join(","):".kanuni-datagrid-row",Ze=U.length?U.map(at=>`[data-column-id="${cssEscape(at)}"]`).join(","):"[data-column-id]",Qe=[];ce.querySelectorAll(he).forEach(at=>{at.querySelectorAll(Ze).forEach(Et=>Qe.push(Et));});for(let at of Qe)at.classList.remove("kanuni-datagrid-cell--flash");ce.offsetWidth;for(let at of Qe)at.classList.add("kanuni-datagrid-cell--flash");let gt=setTimeout(()=>{for(let at of Qe)at.classList.remove("kanuni-datagrid-cell--flash");r.delete(gt);},le);r.add(gt);}),l.events.on("cellsRefreshed",({revision:T})=>jr(T))];return ()=>{h.forEach(T=>T()),r.forEach(clearTimeout);}},[l]);let Zo=useCallback((r,h)=>l.moveColumn(r,h),[l]),Id=useCallback((r,h,T)=>l.setColumnWidth(r,h,T??true),[l]),Jr=useCallback(r=>{if(!Je.current)return;let h=Wr(Je.current,r);h!==null&&l.setColumnWidth(r,h);},[l]),Qr=useCallback(()=>{let r=Je.current;if(r)for(let[h,T]of wd(r,l))l.setColumnWidth(h,T);},[l]),Zr=useRef(null),[er]=useState(()=>new RowMotion),sl=e.animateRows===true;useEffect(()=>{l.setAnimateRows(sl);},[l,sl]),useEffect(()=>{let r=()=>{l.getAnimateRows()&&er.capture(Zr.current);},h=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(T=>l.events.on(T,r));return ()=>{h.forEach(T=>T()),er.dispose();}},[l,er]),In(()=>{l.getAnimateRows()&&er.play(Zr.current);}),useEffect(()=>{if(ie!=="fitGrid")return;let r=()=>l.sizeColumnsToFit();return r(),l.events.on("gridSizeChanged",r)},[l,ie]);let ea=useRef(null);In(()=>{if(ie!=="fitCells"){ea.current=null;return}ea.current!==l&&Je.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(ea.current=l,Qr());});let[ta,dl]=useState({}),[na,ul]=useState({}),Qn=useRef(na);Qn.current=na;let cl=useRef(ta);cl.current=ta;let pl=e.filterDebounce??(l.isRemote()?200:0),oa=useRef(false),tr=useMemo(()=>datePeriodLabels(t),[t]),ra=useRef(tr);ra.current=tr;let Kd=useMemo(()=>periodSuggestionList(tr),[tr]),Zn=useCallback((r,h)=>{let T=l.getColumnModel(),U=T.getDataType(r),le=findCustomFilterOperator(T.getDef(r),Qn.current[r]??"");oa.current=true;try{l.setColumnFilter(r,le?parseCustomFilterInput(r,h,le):parseFilterInput(r,h,U,ra.current),FILTER_PART_ROW);}finally{oa.current=false;}},[l]),jt=useMemo(()=>createDebouncedCommit(pl),[pl]);useEffect(()=>()=>jt.cancelAll(),[jt]);let Fd=useCallback((r,h)=>{dl(T=>({...T,[r]:h})),jt.schedule(r,()=>Zn(r,h));},[Zn,jt]),Hd=useCallback((r,h)=>{Qn.current={...Qn.current,[r]:h},ul(Qn.current),jt.cancel(r),Zn(r,cl.current[r]??"");},[Zn,jt]),Od=useCallback(r=>{if(l.getColumnModel().getDef(r)?.renderFilter)return jsx(Gi,{controller:l,columnId:r,surface:"row"})},[l]),Ad=useCallback((r,h)=>{jt.cancel(r),Zn(r,h);},[Zn,jt]);useEffect(()=>l.events.on("filterChanged",()=>{if(oa.current)return;let r=l.getColumnModel();ul(h=>{let T=null;for(let U of r.getOrder()){let le=r.getDef(U);if(!le?.filterOperators?.length||jt.isPending(U))continue;let ce=l.getColumnFilter(U,FILTER_PART_ROW),he=h[U]??"",Ze=he;ce?Ze=customFilterInputFromNode(ce,le)?.operatorId??"":findCustomFilterOperator(le,he)?.operandType==="none"&&(Ze=""),Ze!==he&&(T??={...h},T[U]=Ze);}return T&&(Qn.current=T),T??h}),dl(h=>bi(h,{isPending:T=>jt.isPending(T),textFor:T=>{let U=l.getColumnFilter(T,FILTER_PART_ROW);if(!U)return "";let le=customFilterInputFromNode(U,r.getDef(T));return le?le.text:!isFilterGroup(U)&&!isBuiltInFilterOperator(U.operator)?null:filterInputFromNode(T,U,r.getDataType(T),ra.current)}},r.getOrder()));}),[l,jt]);let[ft,Wt]=useState(null),Hn=useRef(null);useEffect(()=>{!ft&&Hn.current&&(Hn.current.dispose(),Hn.current=null);},[ft]);let eo=useRef(0),[to,aa]=useState(null),ia=useRef(null),an=useCallback(r=>{let h=document.activeElement instanceof HTMLElement?document.activeElement:null;if(h?.closest(".kanuni-datagrid-portal"))return;let T=h&&Je.current&&h!==Je.current&&h.contains(Je.current)?null:h;ia.current={el:T,columnId:T?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??r??null};},[]),Bd=useCallback((r,h)=>{an(r);let T=h.getBoundingClientRect(),U=l.getColumnModel().getDef(r),le={left:T.left,top:T.bottom+2},ce=U?.headerName??r;if(U?.renderFilter){++eo.current,Wt(null),aa({columnId:r,label:ce,anchor:le});return}aa(null);let he=l.getColumnFilter(r,FILTER_PART_SET)??l.getColumnFilter(r,FILTER_PART_DEFAULT);if(!l.isRemote()){let gt=++eo.current;Wt({columnId:r,label:ce,entries:[],selected:null,anchor:le,loading:true}),l.getDistinctValueSetAsync(r).then(({entries:at,truncated:Et})=>{eo.current===gt&&Wt(cr=>cr&&cr.columnId===r?{...cr,entries:at,truncated:Et,capped:Et,selected:selectedLabelsFromFilter(he,at,{text:l.getColumnModel().getDataType(r)==="string"}),loading:false}:cr);});return}let Ze=++eo.current,Qe=l.openRemoteDistinct(r,kn);if(Qe){Hn.current?.dispose(),Hn.current=Qe,Wt({columnId:r,label:ce,entries:[],selected:null,anchor:le,loading:true,pager:Qe}),Qe.start().then(gt=>{if(eo.current!==Ze){Qe.dispose();return}if(gt.kind==="paged"){Wt(Et=>Et&&Et.columnId===r?{...Et,loading:false}:Et);return}Qe.dispose(),Hn.current===Qe&&(Hn.current=null);let at=l.sortDistinctEntries(gt.values);Wt(Et=>Et&&Et.columnId===r?{...Et,pager:void 0,entries:at,selected:selectedLabelsFromFilter(he,at,{text:l.getColumnModel().getDataType(r)==="string"}),loading:false}:Et);});return}Wt({columnId:r,label:ce,entries:[],selected:null,anchor:le,loading:true}),l.getDistinctValuesAsync(r).then(gt=>{eo.current===Ze&&Wt(at=>at&&at.columnId===r?{...at,entries:gt,selected:selectedLabelsFromFilter(he,gt,{text:l.getColumnModel().getDataType(r)==="string"}),loading:false}:at);});},[l,an]),_d=useCallback(r=>{ft&&(l.setColumnFilter(ft.columnId,r,FILTER_PART_SET),Wt(null));},[l,ft]),$d=Object.keys(l.getColumnStates().reduce((r,h)=>(l.getColumnFilter(h.id)&&(r[h.id]=true),r),{})),no=l.getSelectionMode(),Tt=no!=="none"&&(Re.selection?.checkboxColumn??false),fl=(Re.selection?.rowClick??(Tt?"toggle":"replace"))==="toggle",Wd=useCallback((r,h)=>{if(l.isRowLeavePending())return;let T=l.getFocus();l.hasRowLeaving()&&T&&T.rowKey!==r.key&&(h.target.closest?.("[data-column-id]")||!l.focusCell(r.key,T.columnId))||l.handleRowClick(r.key,{ctrlKey:h.ctrlKey||fl&&!h.shiftKey,metaKey:h.metaKey,shiftKey:h.shiftKey});},[l,fl]),Vd=useCallback((r,h)=>l.focusCell(r.key,h),[l]),Ud=useCallback(r=>l.toggleRow(r.key),[l]),[oo,la]=useState(null),zd=useCallback(()=>la(null),[]),[No,sa]=useState(null),ml=useCallback((r,h)=>{let U=(Je.current?.querySelector(`[data-row-key="${cssEscape(String(r))}"] [data-column-id="${cssEscape(h)}"]`)??Je.current)?.getBoundingClientRect();return {left:U?.left??0,top:(U?.bottom??0)+2}},[]),Yd=useCallback(r=>{let h=No;sa(null),!(!h||!Ce?.onChange)&&Ce.onChange({rowKey:h.rowKey,columnId:h.columnId,row:h.row,text:r});},[No,Ce]),gl=useCallback((r,h)=>{if(!Ce?.onChange||Ce.menu===false)return [];let T=r.columnId;if(!T)return [];let U=l.getRowKey(r.row),le=mt(U,T,r.row),ce=()=>sa({rowKey:U,columnId:T,row:r.row,text:le??"",anchor:ml(U,T)}),he=[];return h&&he.push({separator:true,id:"__note-sep"}),he.push({id:"__note-edit",label:le?t.editNote:t.addNote,onSelect:ce}),le&&he.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>Ce.onChange?.({rowKey:U,columnId:T,row:r.row,text:null})}),he},[Ce,l,mt,ml,t]),[nr,or]=useState(null),da=useRef({x:0,y:0}),wl=useCallback(r=>$i(l,t,Me,r,h=>{or({message:h,...da.current}),console.error("[datagrid] export failed:",h);}),[l,t,Me]),rr=useCallback((r,h,T,U,le)=>{if(T.kind!=="data")return;an();let ce={row:T.data,node:T,rowIndex:U,columnId:le,selectedKeys:l.getSelectedKeys()},he=(typeof Se=="function"?Se(ce):Se)??[],Ze=$e.editRowMenuItem(T.key),Qe=Ze?[...he,...he.length>0?[{id:"dg-sep-edit",separator:true}]:[],Ze]:he,gt=gl(ce,Qe.length>0),at=Wi(l,t,T.key,Qe.length+gt.length>0),Et=[...Qe,...gt,...at,...wl(Qe.length+gt.length+at.length>0)];Et.length!==0&&(da.current={x:r,y:h},or(null),la({x:r,y:h,items:Et,context:ce}));},[Se,l,t,gl,wl,an,$e.editRowMenuItem]),hl=useCallback((r,h,T)=>{let U=Wi(l,t,r,false);if(U.length===0)return;T.preventDefault(),an();let le={row:h,node:{kind:"data",key:r,sourceIndex:-1,data:h},rowIndex:-1,columnId:T.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:l.getSelectedKeys()};da.current={x:T.clientX,y:T.clientY},or(null),la({x:T.clientX,y:T.clientY,items:U,context:le});},[l,t,an]),bl=useCallback(r=>r?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),ro=useCallback((r,h,T,U,le)=>{let ce=U??-1;r&&l.notifyRow(r,T,ce);let he=bl(le);he!==null&&l.notifyCell(h,T,ce,he);},[l,bl]),qd=useCallback((r,h,T)=>{Oe?.(r),ro("rowClicked","cellClicked",r,h,T);},[Oe,ro]),Xd=useCallback((r,h,T)=>{ue?.(r),ro("rowDoubleClicked","cellDoubleClicked",r,h,T);},[ue,ro]),jd=useCallback((r,h,T)=>{if(ro(null,"cellContextMenu",r,h,T),r.kind!=="data"||!Se&&!De&&Me===false&&!l.isRowPinningEnabled()&&$e.editRowMenuItem(r.key)===null||(T.preventDefault(),l.isRowLeaveBlocked(r.key)))return;let U=l.getFocus();if(l.hasRowLeaving()&&U&&U.rowKey!==r.key){let ce=T.target.closest("[data-column-id]")?.dataset.columnId??U.columnId;if(!l.focusCell(r.key,ce))return}l.isRowSelected(r.key)||l.handleRowClick(r.key,{});let le=T.target.closest("[data-column-id]")?.dataset.columnId??null;rr(T.clientX,T.clientY,r,h,le);},[Se,De,Me,l,rr,ro,$e.editRowMenuItem]),[Jd,Qd]=useState(null),[Zd,eu]=useState(null),[ua,tu]=useState(()=>Re.grouping?.groupSummaries??false),[On,ca]=useState(null),[yl,pa]=useState(null),fa=oo!==null||On!==null||ft!==null||to!==null,Rl=useRef(false);useEffect(()=>{if(Rl.current&&!fa){let r=ia.current;ia.current=null;let h=r?.columnId?Je.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${cssEscape(r.columnId)}"]`):null,T=r?.el?.isConnected?r.el:h,U=document.activeElement,le=!U||U===document.body||!!Je.current&&U!==Je.current&&U.contains(Je.current);T&&le&&(T.focus({preventScroll:true}),document.activeElement!==T&&h&&h.focus({preventScroll:true}));}Rl.current=fa;},[fa]);let nu=useCallback(()=>{l.getSelectedCount()>0?l.clearSelection():l.selectAll();},[l]),ma=Tt?l.getSelectableCount():dt,ga=l.getSelectedCount(),ou=ma>0&&ga>=ma?"all":ga>0?"some":"none",Cl=useRef(ye);Cl.current=ye;let ru=useCallback(r=>{let h=Cl.current;h&&_t(r,true)&&h(r.nativeEvent,$e.keyContext())==="handled"&&Ea(r);},[$e.keyContext]),au=useCallback(r=>{if(xa(r)||!_t(r))return;let h=r.target;if(h.closest?.(Ut)||h.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let T=h.tagName;if(T==="INPUT"||T==="TEXTAREA"||T==="SELECT"||h.isContentEditable||$e.handleKeyDown(r))return;if((Se||De||Me!==false||l.isRowPinningEnabled())&&(r.key==="ContextMenu"||r.key==="F10"&&r.shiftKey)){let ce=l.getFocus(),he=ce?st.findIndex(Qe=>Qe.key===ce.rowKey):-1,Ze=he>=0?st[he]:void 0;if(Ze){let gt=It.current?.querySelector(`[data-row-key="${cssEscape(String(Ze.key))}"]`)?.getBoundingClientRect();rr(gt?gt.left+16:0,gt?gt.bottom:0,Ze,he,ce?.columnId??null),r.preventDefault();}return}let U=resolveGridCommand({key:r.key,ctrlKey:r.ctrlKey,metaKey:r.metaKey,shiftKey:r.shiftKey,altKey:r.altKey});if(!U)return;if(U.type==="copy"){vo(l);return}if(U.type==="activate"){let ce=l.getFocus(),he=ce?st.find(Ze=>Ze.key===ce.rowKey):void 0;he&&ue?.(he),U.preventDefault&&r.preventDefault();return}l.executeCommand(U),U.preventDefault&&r.preventDefault();let le=l.getFocusIndices();if(le&&It.current){let he=l.getColumnLayout().center.findIndex(Qe=>Qe.state.id===l.getFocus()?.columnId),Ze=l.ensureVisible(le.rowIndex,he===-1?void 0:he);if(Ze){let Qe=It.current;Ze.scrollTop!==void 0&&(Qe.scrollTop=Ze.scrollTop),Ze.scrollLeft!==void 0&&(Qe.scrollLeft=Md(Ze.scrollLeft,Qe)),l.setScroll(Qe.scrollTop,Qe.scrollLeft);}}},[l,st,ue,Se,De,Me,rr,$e.handleKeyDown]),An=useMemo(()=>bandDepth([...We.left,...We.center,...We.right]),[We]),ao=Co,wa=(y?2:1)+An,kl=l.getPinnedRows("top"),Tl=l.getPinnedRows("bottom"),ha=[...I??[],...kl.map(r=>r.row)],ba=[...W??[],...Tl.map(r=>r.row)],iu=[...(I??[]).map(()=>null),...kl.map(r=>r.key)],lu=[...(W??[]).map(()=>null),...Tl.map(r=>r.key)],ar=ha.length,su=ba.length,ir=wa+ar,lr=Jd??Re.grouping?.panel??D,vl=l.getGroupLevels(),du=useCallback(r=>l.groupBy(r.slice(0,ct)),[l,ct]),uu=useCallback(r=>l.toggleGroup(r),[l]),El=useCallback(r=>l.toggleGroupSelection(r),[l]),cu=l.getColumnModel().runtime().filter(r=>r.state.visible&&r.def.groupable!==false),At=l.hasMasterDetail()&&!!ae,vt=e.rowNumbers??false,Vt=!!nt?.icons&&!je,pu=vt&&l.isPaginated()?l.getPage()*l.getPageSize():0;useEffect(()=>{l.setLeadWidth(di(Tt,At,vt,Vt));},[l,Tt,At,vt,Vt]);let fu=useCallback(r=>l.toggleDetail(r),[l]),mu=useCallback(r=>l.toggleTreeRow(r),[l]),xl=l.getSummaryDefs(),gu=l.getSummaries(),Bn=Zd??M??xl.length>0,io=Bn&&Y==="top",ya=y?2:1,Dl=Xt.grouping?.groupSummaries&&ua?Re.summaries:void 0,Sl=l.getGroupDisplay(),Gl=useCallback(()=>{tu(r=>(l.setGroupSummaries(!r),!r));},[l]),wu=useCallback((r,h)=>{if(!re)return;h.preventDefault();let T=l.getColumnModel().getDef(r),U=l.getColumnSummary(r),le={columnId:r,headerName:T?.headerName??T?.field??r},ce=[{id:"none",label:t.noTotal,disabled:U===null,onSelect:()=>l.setColumnSummary(r,null)},{id:"sep",separator:true},...allowedSummaryTypes(T?.dataType).map(he=>({id:he,label:summaryTypeLabels(t)[he],disabled:U?.type===he,onSelect:()=>l.setColumnSummary(r,he)}))];an(),ca({x:h.clientX,y:h.clientY,items:ce,context:le});},[l,re,an]),hu=useCallback((r,h)=>{if(X===false)return;h.preventDefault();let T=l.getColumnModel().getDef(r),U={columnId:r,headerName:T?.headerName??T?.field??r},le=Zi(U,{controller:l,groupPanelVisible:lr,footerVisible:Bn,groupFootersAvailable:Be&&l.getGroupLevels().length>0,groupFootersVisible:ua,onToggleGroupPanel:()=>Qd(!lr),onToggleFooter:()=>eu(!Bn),onToggleGroupFooters:Gl,onOpenFieldChooser:()=>pa({left:h.clientX,top:h.clientY}),onBestFit:Jr,onBestFitAll:Qr,maxGroupLevels:ct,labels:Ur(t)}),ce=typeof X=="function"?X(U,le):le;!ce||ce.length===0||(an(),ca({x:h.clientX,y:h.clientY,items:ce,context:U}));},[X,l,lr,Bn,Be,ua,Gl,Jr,Qr,ct,t,an]),lo=l.getFocus(),bu=lo?`${e.gridId}-cell-${String(lo.rowKey)}-${lo.columnId}`:void 0,Ra=l.getSelectedCount(),yu=useMemo(()=>{let r=[fillText(t.announceRows,{n:dt})];if(Dt.length>0){let h=Dt.map(T=>{let U=l.getColumnModel().getDef(T.columnId),le=String(U?.headerName??U?.field??T.columnId),ce=T.direction==="desc"?t.announceDescending:t.announceAscending;return `${le} ${ce}`}).join(", ");r.push(fillText(t.announceSortedBy,{columns:h}));}return Ra>0&&r.push(fillText(t.announceSelected,{n:Ra})),r.join(", ")},[l,dt,Dt,Ra,t]),{centerColumns:En,centerIndices:sr,stickyInsets:so,leadingSpacer:xn,trailingSpacer:Dn,rowStart:Ru,rowEnd:Ml}=Ps(We,fn),dr=l.getColumnModel(),_n=Ru,Cu=r=>{if(vn)return;let h=l.getRowHeightAt(r);return h===bt?void 0:h},ku=Array.from(st.slice(_n,Ml)),Tu=useMemo(()=>!vt||l.getGroupLevels().length===0&&!l.hasMasterDetail()&&!l.hasTreePathRows()?null:Is(st),[vt,l,st]),vu=l.hasCellSpans(),Nl=useRef({start:0,end:0});Nl.current={start:_n,end:Ml-1};let Ll=useRef(fn.columns);Ll.current=fn.columns;let Eu=useCallback(r=>l.planRowColSpans(r,Ll.current),[l]),xu=hasColSpans(We),Du=useCallback((r,h)=>{let T=l.getCellSpans(h);if(T.length===0)return null;let{start:U,end:le}=Nl.current,ce=spanRoleAt(T,r,U,le);if(!ce)return null;if(ce.role==="covered")return {kind:"covered"};let he=l.getRowOffset(ce.drawStart);return {kind:"draw",height:l.getRowOffset(ce.drawEnd)+l.getRowHeightAt(ce.drawEnd)-he,offset:0}},[l]),Ca=l.getSearchFold(),Pl=l.getFindNeedle()||(se?normalizeSearch(l.getSearchText(),Ca):""),Il=l.getFindState(),ur=Il.count>0?`${l.getFindNeedle()}\0${Il.activeIndex}`:"",Kl=useCallback((r,h)=>l.getFindMatchKind(r,h),[l]),Su={pathOf:r=>bandPath(l.getColumnModel().getDef(r)),collapsible:r=>l.isBandCollapsible(r),collapsed:r=>l.isBandCollapsed(r),onToggle:r=>l.toggleBand(r),labels:{expand:t.expandColumnGroup,collapse:t.collapseColumnGroup}},Fl={layout:We,centerColumns:En,leadingSpacer:xn,trailingSpacer:Dn,defs:xl,values:gu,checkboxColumn:Tt,detailColumn:At,statusColumn:Vt,rowNumberColumn:vt,onPickSummary:re?wu:void 0,emptyHint:re?"\xB7":""};return jsxs("div",{className:`kanuni-datagrid-root${i?" kanuni-datagrid-dark":""}${ot.active?" kanuni-datagrid-print":""}${je?" kanuni-datagrid-cards":""}${Ne&&Bn&&!io?" kanuni-datagrid--footer-pinned":""}${themeClassName(a,ve,d)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${bt}px`,"--dg-grip-inset":`${(vt?bo:0)+(Vt?yo:0)}px`,...o},dir:isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":a,"data-palette":d,"data-auto-height":vn?"":void 0,"data-auto-header-height":k?"":void 0,"data-row-session":$e.rowSessionAttr,onKeyDownCapture:ye?ru:void 0,ref:Je,children:[$e.bar&&jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:$e.bar}),ge.show&&jsx(Ki,{controller:l,dark:i,search:ge.search!==null,searchOptions:ge.search??void 0,exportMenu:ge.export,columnChooser:ge.columns??e.toolbarColumnChooser??true,exportExcel:Be&&q,exportPdf:Be&&te,itemsBefore:A,itemsAfter:m,onOpenColumnChooser:r=>pa(h=>h?null:r)}),lr&&jsx(Ni,{columns:cu,levels:vl,onSetLevels:du,maxLevels:ct,onExpandAll:()=>l.expandAllGroups(),onCollapseAll:()=>l.collapseAllGroups()}),je&&jsx(dd,{controller:l,sort:Dt,text:t,columns:w?l.getColumnModel().getOrder().filter(r=>{let h=l.getColumnModel();return h.getState(r)?.visible!==false&&h.getDef(r)?.sortable!==false}).map(r=>({id:r,label:l.getColumnModel().getDef(r)?.headerName??r})):[]}),jsx("div",{className:"kanuni-datagrid-scroller",ref:It,onScroll:Xr,onKeyDown:au,tabIndex:0,role:"grid","aria-rowcount":dt+wa+ar+su,"aria-colcount":We.left.length+We.center.length+We.right.length+(Tt?1:0)+(At?1:0)+(vt?1:0),"aria-multiselectable":no==="multiple"||void 0,"aria-activedescendant":bu,"aria-label":e.ariaLabel??e.gridId,children:jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(We.totalWidth||0)+di(Tt,At,vt,Vt)||"100%"},role:"rowgroup",children:[jsx(mi,{layout:We,centerColumns:En,leadingSpacer:xn,trailingSpacer:Dn,depth:An,checkboxColumn:Tt,detailColumn:At,statusColumn:Vt,rowNumberColumn:vt,rowHeight:ao,bandFold:Su}),jsx(wi,{bandOffset:An*ao,stickyInsets:so,layout:We,centerColumns:En,leadingSpacer:xn,trailingSpacer:Dn,sort:Dt,sortable:w,onSort:Qo,groupLevels:vl,headerFilter:Jo,filteredColumns:$d,onOpenFilter:Bd,filterIconMode:C,checkboxColumn:Tt,detailColumn:At,statusColumn:Vt,rowNumberColumn:vt,selectAllState:ou,selectAllDisabled:ma===0&&ga===0,onToggleSelectAll:nu,draggable:D,reorderable:S,onReorder:Zo,resizable:v,onResize:Id,onAutoFit:Jr,onHeaderContextMenu:X===false?void 0:hu,onHeaderClick:Ae,getHeaderClassName:Ie,renderHeaderLabel:ht}),y&&jsx(yi,{bandOffset:An*ao,stickyInsets:so,layout:We,centerColumns:En,leadingSpacer:xn,trailingSpacer:Dn,values:ta,checkboxColumn:Tt,detailColumn:At,statusColumn:Vt,rowNumberColumn:vt,onChange:Fd,onCommit:Ad,periodSuggestions:Kd,periodListId:`${e.gridId}-filter-periods`,operators:na,onOperatorChange:Hd,renderCustom:Od}),io&&jsx(Fr,{...Fl,position:"top",bandOffset:An*ao,headerRowsBetween:ya}),ha.length>0&&jsx(Hr,{gridId:e.gridId,side:"top",rows:ha,rowClassFor:me?(r,h,T)=>Te(r,h,T??r.key):void 0,rowKeys:iu,onUserRowContextMenu:hl,layout:We,columnModel:dr,centerColumns:En,centerIndices:sr,stickyInsets:so,leadingSpacer:xn,trailingSpacer:Dn,checkboxColumn:Tt,detailColumn:At,statusColumn:Vt,rowNumberColumn:vt,rowHeight:bt,bandOffset:An*ao,headerRowsBetween:ya+(io?1:0),ariaRowBase:wa}),l.hasStickyGroupHeaders()&&jsx(js,{controller:l,width:We.totalWidth,bandOffset:An*ao,headerRowsBetween:ya+(io?1:0),belowPinned:ar>0?ar*bt+1:0,renderRow:(r,h,T)=>jsx(Ro,{gridId:e.gridId,node:r,index:h,layout:We,columnModel:dr,centerColumns:En,centerIndices:sr,stickyInsets:so,leadingSpacer:xn,trailingSpacer:Dn,striped:false,selected:false,groupSelection:Tt&&no==="multiple"?l.getGroupSelectionState(String(r.key)):void 0,onToggleGroupSelect:El,groupDisplay:Sl,focusedColumnId:null,checkboxColumn:Tt,statusColumn:Vt,rowNumberColumn:vt,rowNumber:null,headerRowCount:ir,onToggleGroup:U=>{l.toggleGroup(U),l.scrollToRow(U);},revision:Fn,searchNeedle:Pl,searchFold:Ca,lookupLabels:B,findStamp:ur,findKind:ur?Kl:void 0,summaryDefs:Dl,detailColumn:At,height:T,renderCellContent:xe,getCellClassName:Xe})}),jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:fn.rows.totalHeight},onDragOver:mn.bodyHandlers?.onDragOver,onDrop:mn.bodyHandlers?.onDrop,onDragLeave:mn.bodyHandlers?.onDragLeave,children:[jsx("div",{ref:Zr,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${fn.rows.offsetY}px)`},children:ku.map((r,h)=>r?jsx(Ro,{gridId:e.gridId,node:r,index:_n+h,layout:We,columnModel:dr,centerColumns:En,centerIndices:sr,stickyInsets:so,leadingSpacer:xn,trailingSpacer:Dn,striped:p,selected:l.isRowSelected(r.key),ariaSelectable:no!=="none",selectable:Tt&&r.kind==="data"?l.isRowSelectable(r.key):true,groupSelection:r.kind==="group"&&Tt&&no==="multiple"?l.getGroupSelectionState(String(r.key)):void 0,onToggleGroupSelect:El,groupDisplay:Sl,focusedColumnId:lo?.rowKey===r.key?lo.columnId:null,rowFocused:ne&&lo?.rowKey===r.key,rowDrag:mn.handlers,dropSide:mn.dropAt?.key===r.key?mn.dropAt.side:null,...Ee(r),rowClass:Te(r,_n+h),renderRow:je?z:E,checkboxColumn:Tt,statusColumn:Vt,rowNumberColumn:vt,getSpan:vu?Du:void 0,resolveColSpans:xu?Eu:void 0,getNote:Ce?mt:void 0,rowNumber:vt?Ks(_n+h,Tu,pu):null,headerRowCount:ir,onRowClick:qd,onRowMouseDown:no==="none"?void 0:Wd,onRowDoubleClick:Xd,onToggleSelect:Ud,onCellMouseDown:Vd,onRowContextMenu:jd,onToggleGroup:uu,onToggleTreeRow:mu,revision:Fn,searchNeedle:Pl,searchFold:Ca,lookupLabels:B,findStamp:ur,findKind:ur?Kl:void 0,summaryDefs:Dl,detailColumn:At,detailExpanded:At&&l.isDetailExpanded(r.key),onToggleDetail:fu,renderDetail:ae,renderEditForm:pe??$e.renderEditForm,renderRowMessage:r.kind==="message"?fe:void 0,height:Cu(_n+h),renderCellContent:xe,getCellClassName:Xe,onCellPointerDown:ke,onCellPointerEnter:u,onCellDoubleClick:et},String(r.key)):(()=>{let T=_n+h,U=l.isRowLoadFailed(T);return jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${U?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":T+1+ir,"aria-busy":U?void 0:"true",children:jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:U?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-${T}`)})())}),Q?.()]}),ba.length>0&&jsx(Hr,{gridId:e.gridId,side:"bottom",rows:ba,rowClassFor:me?(r,h,T)=>Te(r,h,T??r.key):void 0,rowKeys:lu,onUserRowContextMenu:hl,layout:We,columnModel:dr,centerColumns:En,centerIndices:sr,stickyInsets:so,leadingSpacer:xn,trailingSpacer:Dn,checkboxColumn:Tt,detailColumn:At,statusColumn:Vt,rowNumberColumn:vt,rowHeight:bt,headerRowsBetween:Bn&&!io?1:0,ariaRowBase:ir+dt}),Bn&&!io&&jsx(Fr,{...Fl,position:"bottom"})]})}),(Jn==="noRows"||Jn===null&&dt===0)&&jsx("div",{className:"kanuni-datagrid-empty",children:f??t.noData}),$e.active&&jsx(Xa,{open:$e.saveError!==null,title:t.editCannotSave,message:$e.saveError?$e.saveError.columnId?`${l.getColumnModel().getDef($e.saveError.columnId)?.headerName??$e.saveError.columnId}: ${$e.saveError.message}`:$e.saveError.message:"",confirmLabel:t.ok,dark:i,onConfirm:$e.clearSaveError,onCancel:$e.clearSaveError}),$e.popup&&jsx(Ft,{dark:i,children:$e.popup}),H&&jsx(Oi,{controller:l,alwaysVisible:H==="always",onOpenBuilder:O,describeOptions:x}),L!==false&&jsx(Yi,{controller:l,delay:typeof L=="number"?L:void 0,forced:Jn==="loading"}),l.isPaginated()&&jsx(Hi,{page:l.getPage(),pageCount:l.getPageCount(),pageSize:l.getPageSize(),pageSizes:Re.pagination?.pageSizes,pageButtons:Re.pagination?.pageButtons,maxPageButtons:Re.pagination?.maxPageButtons,totalRows:dt,onPage:r=>l.setPage(r),onNext:()=>l.nextPage(),onPrevious:()=>l.previousPage(),onPageSize:r=>l.setPageSize(r)}),N&&jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:yu}),No&&jsx(Ui,{anchor:No.anchor,value:No.text,dark:i,onCommit:Yd,onCancel:()=>sa(null)}),oo&&jsx(_r,{x:oo.x,y:oo.y,items:oo.items,context:oo.context,dark:i,onClose:zd}),nr&&jsx(Ft,{dark:i,kind:"toast",children:jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:nr.x,top:nr.y},onClick:()=>or(null),children:nr.message})}),On&&jsx(_r,{x:On.x,y:On.y,items:On.items,context:On.context,dark:i,label:`${On.context.headerName} column`,onClose:()=>ca(null)}),Ot&&jsx(Qi,{state:Ot,dark:i}),yl&&jsx(Fi,{controller:l,columns:l.getColumnStates(),anchor:yl,dark:i,onClose:()=>pa(null)}),to&&jsx(zs,{controller:l,columnId:to.columnId,headerLabel:to.label,anchor:to.anchor,dark:i,onClose:()=>aa(null)},to.columnId),ft&&jsx(xi,{gridId:e.gridId,columnId:ft.columnId,headerLabel:ft.label,entries:ft.entries,initialSelected:ft.selected,anchor:ft.anchor,loading:ft.loading,truncated:ft.truncated,pager:ft.pager,onSearch:ft.capped&&!l.isRemote()?r=>{let{entries:h,truncated:T}=l.searchDistinctValues(ft.columnId,r);Wt(U=>U&&U.columnId===ft.columnId?{...U,entries:h,truncated:T}:U);}:void 0,dark:i,onApply:_d,onClose:()=>Wt(null),onCustom:O?()=>{let r=ft.columnId;Wt(null),O({columnId:r});}:void 0},ft.columnId)]})}function xg({defs:e,values:t,columnModel:n,rowCount:o,rowCountLabel:i}){let a=Fe(),d=summaryTypeLabels(a);return e.length===0&&o===void 0?null:jsxs("div",{className:"kanuni-datagrid-summary-bar",role:"status","aria-label":a.summaryAria,children:[o!==void 0&&jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsx("strong",{children:o.toLocaleString()})," ",i??a.summaryRows]}),e.map(p=>{let f=t[summaryKey(p.columnId,p.type)],w=n.getDef(p.columnId),k=formatSummaryValue(p,f,w);return jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxs("span",{className:"kanuni-datagrid-summary-label",children:[summaryLabel(p,d)," ",w?.headerName??p.columnId,":"]}),jsx("strong",{children:k})]},summaryKey(p.columnId,p.type))})]})}var Dg=memo(xg);function Sg({icon:e,label:t,shortcut:n,disabledReason:o,showLabel:i=false,onClick:a,testId:d}){let p=o!==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":p||void 0,"aria-description":p?o:void 0,title:p?`${f} \u2014 ${o}`:f,"data-testid":d,onClick:w=>{if(p){w.preventDefault();return}a?.();},children:[e,i&&jsx("span",{children:t})]})}function Ig(e,t){return ll(e,t,t?.source,(n,o)=>n.computeChartData(o))}function Kg(e,t){return ll(e,t,t?.source,(n,o)=>n.computeChartXYData(o))}function Fg(e,t){return ll(e,t,t?.source,(n,o)=>n.computeChartBoxData(o))}function ll(e,t,n,o){let[i,a]=useState(null);return useEffect(()=>{if(!e||!t){a(null);return}let d=n??"view",p=chartNeedsOrder(t),f=false,w=0,k=false,y=false,P=null,C=()=>{let L=++w;o(e,t).then(N=>{!f&&L===w&&a(N);},()=>{});},S=(L=false)=>{y||=L,!k&&(k=true,queueMicrotask(()=>{if(k=false,f)return;let N=e.chartBasis(d,p);!y&&N===P||(y=false,P=N,C());}));};P=e.chartBasis(d,p),C();let v=[e.events.on("contentReady",()=>S()),e.events.on("rowsChanged",()=>S()),e.events.on("dataUpdated",()=>S()),...d==="selection"?[e.events.on("selectionChanged",()=>S(true))]:[]];return ()=>{f=true,w++,v.forEach(L=>L());}},[e,t]),i}export{Co as BAND_ROW_HEIGHT,Ic as DEFAULT_EDIT_FORM_LABELS,Td as DEFAULT_HEADER_MENU_LABELS,kg as DataGrid,Ut as EDITOR_OWNED_SELECTOR,$l as GRID_PORTAL_SELECTOR,Ya as GridCellEditor,Fi as GridColumnChooser,_r as GridContextMenu,Wn as GridDateEditor,Xa as GridDialog,Aa as GridEditForm,Oi as GridFilterPanel,yi as GridFilterRow,Fr as GridFooterRow,Ni as GridGroupPanel,wi as GridHeader,mi as GridHeaderBands,xi as GridHeaderFilterPopup,Yi as GridLoadingOverlay,Sn as GridLookupEditor,Ui as GridNoteEditor,Hi as GridPager,Hr as GridPinnedRows,qn as GridPopupPanel,Ft as GridPortal,Ro as GridRow,Ba as GridRowEditor,Dg as GridSummaryBar,La as GridSurfaceProvider,va as GridTextProvider,Ki as GridToolbar,Sg as GridToolbarButton,Qi as GridTooltip,bn as LOOKUP_PENDING,Tr as LookupLabels,Qa as PRINT_MAX_ROWS,Vr as ROW_DRAG_MIME,nd as SHORTCUT_COPY,bm as SHORTCUT_CUT,ym as SHORTCUT_PASTE,Li as ToolbarIcon,$i as buildCellMenuItems,Zi as buildHeaderMenu,vo as copyToClipboard,hs as editFormColumnIds,Oa as editFormLabels,gn as editorOwnsKey,hr as editorSeedText,_t as eventFromOwnDom,fr as focusStaysWithGrid,xa as gridIgnoresKey,Ur as headerMenuLabels,Po as isAltGraphChar,ln as keyClaimed,Oo as lookupEditorSettings,_o as lookupLabelsFor,Ao as lookupPickValues,Ea as markKeyHandledByApp,Rc as matchOptions,Wr as measureBestFitWidth,zt as numberTextFormat,bi as reconcileFilterInputs,zo as runGridExport,ti as useAlignedGrids,zn as useAnchoredPopup,Ji as useCellTooltip,Ta as useDataGrid,Ua as useEditModes,Fg as useGridChartBoxData,Ig as useGridChartData,Kg as useGridChartXYData,Sa as useGridEditing,Jt as useGridPortalTarget,$t as useGridSurfaceClass,Fe as useGridText,Za as usePrintLayout,ji as useRowDrag,qi as useStateStoring,Rm as writeClipboardText};