@kanunilabs/datagrid-react 1.8.9 → 1.8.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +43 -5
- package/dist/index.d.ts +43 -5
- package/dist/index.js +3 -3
- package/dist/styles.css +40 -0
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var react=require('react'),datagridCore=require('@kanunilabs/datagrid-core'),jsxRuntime=require('react/jsx-runtime'),reactDom=require('react-dom');var au=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],fl=new WeakMap;function Xr(e){let t=fl.get(e);if(!t){let n={version:0,listeners:new Set},r=()=>{n.version++,n.listeners.forEach(i=>i());};for(let i of au)e.events.on(i,r);fl.set(e,n),t=n;}return t}function jr(e){let t=e.sorting?.postSort,n=react.useRef(t);react.useEffect(()=>{n.current=t;},[t]);let[r]=react.useState(()=>((M,g)=>n.current?.(M,g))),i=()=>{let M=new datagridCore.DataGridController(t?{...e,sorting:{...e.sorting,postSort:r}}:e);return Xr(M),M},[a,u]=react.useState(i);react.useEffect(()=>{if(a.isDisposed()){u(i());return}return ()=>a.dispose()},[a]);let m=react.useCallback(M=>{let{listeners:g}=Xr(a);return g.add(M),()=>{g.delete(M);}},[a]),f=react.useCallback(()=>Xr(a).version,[a]);react.useSyncExternalStore(m,f,f);let{dataSource:w,columns:C}=e,h=react.useRef(true);react.useEffect(()=>{if(h.current){h.current=false;return}Array.isArray(w)&&a.setData(w);},[a,w]);let F=react.useRef(true);react.useEffect(()=>{if(F.current){F.current=false;return}a.setColumns(C);},[a,C]);let E=e.pagination?e.pagination.enabled!==false:false;react.useEffect(()=>{a.setPaginationEnabled(E);},[a,E]);let k=e.rowHeight,S=react.useRef(true);react.useEffect(()=>{if(S.current){S.current=false;return}k!==void 0&&a.setRowHeight(k);},[a,k]);let K=e.selection?.mode??"none";react.useEffect(()=>{a.setSelectionMode(K);},[a,K]);let L=e.rowPinning;react.useEffect(()=>{a.setRowPinning(L);},[a,L]);let P=e.selection?.isRowSelectable,N=react.useRef(true);react.useEffect(()=>{if(N.current){N.current=false;return}a.setRowSelectable(P??null);},[a,P]);let _=t!==void 0,X=react.useRef(true);react.useEffect(()=>{if(X.current){X.current=false;return}a.setPostSort(_?r:null);},[a,_,r]);let j=e.grouping?.groupBy??null,W=JSON.stringify(j==null?[]:typeof j=="string"?[j]:j),R=react.useRef(true);return react.useEffect(()=>{if(R.current){R.current=false;return}a.groupBy(JSON.parse(W));},[a,W]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var wl=react.createContext(datagridCore.getGridDictionary("en"));function Jr({locale:e,messages:t,children:n}){let r=react.useMemo(()=>datagridCore.getGridDictionary(e,t),[e,t]);return jsxRuntime.jsx(wl.Provider,{value:r,children:n})}function Se(){return react.useContext(wl)}var $o=new WeakSet;function mo(e){return "nativeEvent"in e?e.nativeEvent:e}function Qr(e){$o.add(mo(e));}function po(e){let t=mo(e);return t.key.length===1&&typeof t.getModifierState=="function"&&t.getModifierState("AltGraph")}function Zr(e){let t=mo(e);return t.defaultPrevented||$o.has(t)?true:t.altKey&&!po(t)}function Tn(e){let t=mo(e);return t.defaultPrevented||$o.has(t)}var uu=new Set(["a","c","v","x","z","y","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","Backspace","Delete"]);function vn(e){let t=mo(e);return $o.has(t)||/^F([1-9]|1[0-2])$/.test(t.key)?false:po(t)?true:t.altKey?false:t.ctrlKey||t.metaKey?uu.has(t.key.length===1?t.key.toLowerCase():t.key):true}var Yt="[data-kanuni-editor]",yl=".kanuni-datagrid-portal, [data-kanuni-portal]";function Dt(e,t=false){let n=e.currentTarget,r=e.target;return typeof Node>"u"||!(n instanceof Node)||!(r instanceof Node)||n.contains(r)?true:t?!!(r instanceof Element?r:r.parentElement)?.closest(yl):false}function Wo(e,t){return t?!!t.closest(`${e}, .kanuni-datagrid-detached, [data-kanuni-portal], ${Yt}`):false}function Nt(e){let t=e?.numberFormat;if(!(!t?.locale||e?.lookup||e?.renderEditor||e?.allowFormulas))return t}function Vo(e,t){return typeof e=="number"||e===null||e===void 0?datagridCore.editableNumberText(e,t.locale):e}function hl(e,t){if(typeof e!="string")return e;let n=datagridCore.readNumberText(e,t);return n===void 0?Number.NaN:n}function Rl(e,t,n){let r=e.getColumnModel().getNumberFormat(t);if(r)return [{type:"custom",validate:({value:i})=>{if(typeof i!="number")return true;let a=n();if(Number.isNaN(i)){let f=datagridCore.formatNumberDisplay(r.decimals===0?1234:1234.5,r);return a.validationNumberLocale.replace("{example}",f)}let u=datagridCore.numberBoundsError(i,r);if(!u)return true;let m=datagridCore.formatNumberDisplay(u.limit,{...r,decimals:void 0});return u.bound==="min"?a.validationMin.replace("{min}",m):a.validationMax.replace("{max}",m)}}]}var zo=new WeakMap,Yo=new WeakMap,Gu=1e5,Nu=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function Mu(e){let{controller:t,canEditColumn:n}=e;return {controller:t,mode:e.mode??"cell",onSave:e.onSave,editOnKeyPress:e.editOnKeyPress,editKeys:e.editKeys,focusCellOnTab:e.focusCellOnTab,focusCellOnCycle:e.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,enabled:e.enabled,savedDuration:e.savedDuration,range:false,history:false,onReady:e.onReady,canEditColumn:r=>{let i=t?.getColumnModel().getDef(r);return i?.lookup||i?.renderEditor||i?.allowFormulas===true?false:n?.(r)??true}}}function ta(e){let t=e.controller?.isEnterpriseEdition()??false;return Pu(t?e:Mu(e))}function Pu({controller:e,mode:t="batch",rules:n,onSave:r,crud:i,allowAdding:a,allowUpdating:u,allowDeleting:m,onInitNewRow:f,onRowInserted:w,onRowUpdated:C,onRowRemoved:h,editOnKeyPress:F,confirmDelete:E,confirmDeleteMessage:k,insertKey:S,appendOnArrowDown:K,newRowPosition:L,focusCellOnTab:P,focusCellOnCycle:N,keepEditingOnTab:_,enabled:X=true,savedDuration:j,range:W=true,history:R=true,canEditColumn:M,onReady:g,commitOn:y="cell",rowMessages:G=false,editKeys:D,appendOnTab:U,deleteKey:re,fillKeys:A,rangePaste:Z}){let de=Se(),[fe,Oe]=react.useState(0),Te=react.useCallback(()=>Oe(s=>s+1),[]),be=react.useMemo(()=>new datagridCore.RangeSelectionEngine,[]),Ne=react.useMemo(()=>({start(s,c){be.start(s,c),Te();},add(s,c){be.add(s,c),Te();},extend(s,c){be.extend(s,c)&&Te();},finish(){be.finish(),Te(),e?.notifyViewStateChanged();},clear(){be.clear()&&(Te(),e?.notifyViewStateChanged());},contains:(s,c)=>be.contains(s,c),isAnchor:(s,c)=>be.isAnchor(s,c),getRange:()=>be.getRange(),getBounds:()=>be.getBounds(),toTsv:s=>be.toTsv(s),selectColumn(s,c,x){return be.selectColumn(s,c,x)?(Te(),e?.notifyViewStateChanged(),true):false},fullColumns:s=>be.fullColumns(s)}),[be,Te,e]),O=react.useRef(null);react.useEffect(()=>{if(!(!e||!W))return e.registerViewStatePart("ranges",{session:true,get:()=>datagridCore.rangesToSaved(be.getRanges(),e.getVisualColumnIds()),apply:s=>{be.setRanges(datagridCore.rangesFromSaved(s,e.getVisualColumnIds())),Te();}})},[e,W,be,Te]);let[ie,oe]=react.useState(null),V=react.useRef({onSave:r,crud:i,allowAdding:a,allowUpdating:u,allowDeleting:m,onInitNewRow:f,onRowInserted:w,onRowUpdated:C,onRowRemoved:h,editOnKeyPress:F,confirmDelete:E,confirmDeleteMessage:k,insertKey:S,appendOnArrowDown:K,newRowPosition:L,focusCellOnTab:P,focusCellOnCycle:N,keepEditingOnTab:_,canEditColumn:M,onReady:g,historyEnabled:R,rowMessages:G,editKeys:D,appendOnTab:U,deleteKey:re,fillKeys:A,rangePaste:Z,text:de});V.current={onSave:r,crud:i,allowAdding:a,allowUpdating:u,allowDeleting:m,onInitNewRow:f,onRowInserted:w,onRowUpdated:C,onRowRemoved:h,editOnKeyPress:F,confirmDelete:E,confirmDeleteMessage:k,insertKey:S,appendOnArrowDown:K,newRowPosition:L,focusCellOnTab:P,focusCellOnCycle:N,keepEditingOnTab:_,canEditColumn:M,onReady:g,historyEnabled:R,rowMessages:G,editKeys:D,appendOnTab:U,deleteKey:re,fillKeys:A,rangePaste:Z,text:de};let Ee=react.useRef(null),d=react.useMemo(()=>{if(!e||!X)return null;let s=c=>e.getRowByKey(c);return new datagridCore.EditingEngine({mode:t,commitOn:y,rules:n,messages:de,onChange:Te,onAutoSaveFailed:c=>Ee.current?.(c),onCellValueChanged:c=>e.notifyCellValueChanged(c),onEditingStarted:c=>e.notifyEditingStarted(c),onEditingStopped:c=>e.notifyEditingStopped(c),onRowEditingStarted:c=>e.notifyRowEditingStarted(c),onRowEditingStopped:c=>e.notifyRowEditingStopped(c),onHistoryStarted:({kind:c,label:x})=>e.notifyHistoryStarted(c,x),onHistoryEnded:({kind:c,...x})=>e.notifyHistoryEnded(c,x),onChangesChanged:c=>e.notifyChangesChanged(c),newRowKey:c=>{let x=e.getRowKeyField(),H=x?c[x]:void 0;return datagridCore.isRowKey(H)&&H!==""?H:void 0},readValue:(c,x)=>{let H=s(c);return H?e.getColumnModel().getStoredValue(H,x):void 0},formatForEdit:(c,x,H)=>{let J=Nt(e.getColumnModel().getDef(x));return J?Vo(H,J):e.formatCellForEdit(x,H)},parseFromEdit:(c,x,H)=>{let J=e.getColumnModel().getDef(x),$=Nt(J);return $&&!J?.valueParser?hl(H,$):e.parseCellFromEdit(x,H,c)},columnRules:c=>Rl(e,c,()=>V.current.text),readRow:s,editableColumns:c=>{let x=e.getColumnLayout(),H=s(c);return [...x.left,...x.center,...x.right].map(J=>J.state.id).filter(J=>{if(e.getColumnModel().getDef(J)?.editable===false||V.current.canEditColumn&&!V.current.canEditColumn(J))return false;let $=V.current.allowUpdating;return $===void 0?true:typeof $=="function"?$(H,J):$})},isColumnEditable:c=>e.getColumnModel().getDef(c)?.editable!==false&&(V.current.canEditColumn?.(c)??true),applyValue:(c,x,H)=>e.writeCellValue(c,x,H),storedValue:(c,x,H)=>e.valueAfterWrite(c,x,H),insertRow:(c,x,H,J)=>{let $=e.getRowKeyField(),Y={...x};$&&!datagridCore.isRowKey(Y[$])&&(Y[$]=c),e.applyTransaction({add:[Y],addPosition:H,addBeforeKey:J});},dropRow:c=>e.applyTransaction({remove:[c]}),replaceRow:(c,x)=>{let H=e.getRowKey(x);return H===c?(e.applyTransaction({update:[x]}),H):(e.applyTransaction({remove:[c],add:[x]}),H)},allowAdding:()=>V.current.allowAdding??false,allowUpdating:(c,x)=>{let H=V.current.allowUpdating;return H===void 0?true:typeof H=="function"?H(c,x):H},allowDeleting:c=>{let x=V.current.allowDeleting;return x===void 0?false:typeof x=="function"?x(c):x},onInitNewRow:c=>V.current.onInitNewRow?.(c),get newRowPosition(){return V.current.newRowPosition},onRowInserted:(c,x)=>V.current.onRowInserted?.(c,x),onRowUpdated:(c,x,H)=>V.current.onRowUpdated?.(c,x,H),onRowRemoved:(c,x)=>V.current.onRowRemoved?.(c,x),crud:{get insert(){let c=V.current.crud?.insert;return c&&(x=>c(x))},get update(){let c=V.current.crud?.update;return c&&((x,H,J)=>c(x,H,J))},get remove(){let c=V.current.crud?.remove;return c&&((x,H)=>c(x,H))}},onSave:c=>V.current.onSave?.(c)})},[e,X]);react.useEffect(()=>{d?.setMessages(de);},[d,de]),react.useEffect(()=>{d?.setMode(t);},[d,t]),react.useEffect(()=>{d?.setCommitOn(y);},[d,y]),react.useEffect(()=>{j!==void 0&&d?.setSavedDuration(j);},[d,j]);let Le=react.useRef(null),He=react.useRef(null),Ge=react.useMemo(()=>datagridCore.createEditingApi({engine:()=>Le.current,history:()=>V.current.historyEnabled!==false,addRow:(s,c)=>He.current?.(s,c)??null}),[]),Ue=react.useRef(false);react.useEffect(()=>{if(!(!e||!d))return Le.current=d,e.setEditingApi(Ge),Ue.current||(Ue.current=true,V.current.onReady?.(Ge)),()=>{Le.current=null,e.editing===Ge&&e.setEditingApi(null);}},[e,d,Ge]),react.useEffect(()=>(d?.resume(),()=>d?.dispose()),[d]),react.useEffect(()=>{if(!e||!d)return;let s=false,c=e.events.on("rowsChanged",H=>{s=H.removed===0;}),x=e.events.on("dataUpdated",()=>{let H=s;s=false,!H&&d.retainKeys(new Set(e.getDataRows().map(J=>J.key)));});return ()=>{c(),x();}},[e,d]),react.useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>Ne.clear())},[e,Ne]),react.useEffect(()=>{if(!(!e||!d))return e.setPendingValueReader({effectiveValue:(s,c,x)=>d.changes.effectiveValue(s,c,x),effectiveRow:(s,c)=>d.changes.applyPendingTo(s,c),hasPending:()=>d.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,d]),react.useEffect(()=>{if(!(!e||!d||!R))return e.setHistoryDelegate({undo:()=>d.undo(),redo:()=>d.redo(),canUndo:()=>d.canUndo(),canRedo:()=>d.canRedo(),depth:()=>d.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,d,R]);let et=react.useMemo(()=>datagridCore.createDebouncedCommit(150),[]);react.useEffect(()=>()=>et.cancelAll(),[et]);let Q=react.useRef(fe);react.useEffect(()=>{!e||!d||fe===Q.current||(Q.current=fe,et.schedule("footer",()=>e.refreshSummaries()));},[e,d,fe,et]);let ge=react.useCallback(s=>{let c=e?.getRows()[s];return c&&c.kind==="data"?c.key:null},[e]),ue=react.useCallback(s=>e?.getColumnIdAt(s)??null,[e]),qe=react.useCallback((s,c)=>{e?.scrollToCell(s,c),d?.beginEdit(s,c);},[d,e]),Fe=react.useCallback((s={},c,x={})=>{let H=d?.addRow(s,c,x.position)??null;if(H===null||!e)return H;if(datagridCore.isRowEditMode(t))return e.revealRow(H),H;let J=e.getRowKeyField(),$=e.getColumnModel().runtime().find(Y=>Y.state.visible&&Y.def.editable!==false&&(J===null||(Y.def.field??Y.state.id)!==J));return e.revealRow(H),$&&(e.focusCell(H,$.state.id),x.open!==false?d?.beginEdit(H,$.state.id):T()),H},[d,e]);He.current=Fe;let te=react.useCallback(s=>{if(!d)return false;let c=V.current.confirmDelete;if(c===false)return d.removeRow(s);let x=e?.getRowByKey(s);if(typeof c!="function")return Ae({rowKey:s,message:V.current.confirmDeleteMessage??de.editDeleteConfirm}),false;let H=c(s,x);return typeof H=="boolean"?H?d.removeRow(s):false:(H.then(J=>{J&&d.removeRow(s);}),false)},[d,e]),Re=react.useCallback((s,c)=>{if(!d||!e)return;if(d.isRemoved(s)){d.restoreRow(s);return}if(!d.canDelete(s))return;let x=V.current.confirmDelete;if(typeof x!="function")return;let H=()=>{let Y=e.getRows(),me=Y.findIndex(pe=>pe.key===s);if(me<0)return null;for(let pe=me+1;pe<Y.length;pe++)if(Y[pe]?.kind==="data")return Y[pe].key;for(let pe=me-1;pe>=0;pe--)if(Y[pe]?.kind==="data")return Y[pe].key;return null},J=()=>{let Y=d.getMode()!=="batch"||d.changes.isInserted(s),me=Y?H():null;d.removeRow(s)&&Y&&(me!==null?e.focusCell(me,c):e.clearFocus(),T());},$=x(s,e.getRowByKey(s));if(typeof $=="boolean"){$&&J();return}$.then(Y=>{Y&&J();});},[d,e]),T=react.useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),b=react.useCallback((s,c={})=>{if(!d||!e)return false;let x=d.getSession(),H=x?{rowKey:x.rowKey,columnId:x.columnId}:e.getFocus();if(!H)return false;let J=x!==null;if(!d.commitEdit())return false;let $=()=>(J&&T(),false),Y=ze=>e.getColumnModel().getDef(ze)?.editable!==false&&(V.current.canEditColumn?.(ze)??true),me=e.getColumnModel().runtime().filter(ze=>ze.state.visible).map(ze=>ze.state.id);if(datagridCore.edgeEditableColumn(me,Y,1)===null)return false;let pe=e.getRows(),ke=pe.findIndex(ze=>ze.key===H.rowKey);if(ke<0)return false;let Ye=datagridCore.nextEditableColumn(me,Y,H.columnId,s);if(Ye===null){if(c.cycle===false)return $();let ze=s;do ke+=ze;while(ke>=0&&ke<pe.length&&pe[ke]?.kind!=="data");if(ke>=pe.length&&s===1&&V.current.appendOnTab===true&&d.canAdd())return Fe({},void 0,{position:"last",open:c.open===true})!==null;if(ke<0||ke>=pe.length)return $();Ye=datagridCore.edgeEditableColumn(me,Y,s);}let Ve=pe[ke];return !Ve||Ve.kind!=="data"?$():(e.focusCell(Ve.key,Ye),e.scrollToCell(Ve.key,Ye),c.open===true?d.beginEdit(Ve.key,Ye):(T(),true))},[d,e,Fe]),I=react.useCallback((s,c,x)=>!d||!e||d.isEditingRow()||!d.canEditRow(s)||(e.scrollToCell(s,c),!d.beginRowEdit(s))?false:(x!==void 0&&d.getMode()==="row"&&(zo.set(d,c),d.setRowEditValue(c,x)),true),[d,e]),q=react.useCallback(s=>{if(!d||!e||d.getSession())return false;let c=e.getFocus();if(!c)return false;let x=e.getColumnModel().getDef(c.columnId);if(x?.editable===false)return false;let H=e.getColumnModel().getEditorDataType(c.columnId);if(H==="boolean")return false;let J=s,$,Y=Nt(x);if(Y){let{decimal:pe}=datagridCore.numberSeparators(Y.locale);if(!(/^\d$/.test(s)||s===pe||s==="-"&&Y.allowNegative!==false))return false}else if(H==="number")if(/^\d$/.test(s))J=Number(s);else if(s==="-"||s===",")J=void 0,$=s;else return false;else if(H==="date"){if(!/^\d$/.test(s))return false;J=void 0,$=s;}if(datagridCore.isRowEditMode(d.getMode()))return I(c.rowKey,c.columnId,J);if(e.scrollToCell(c.rowKey,c.columnId),!d.beginEdit(c.rowKey,c.columnId,J))return false;let me=d.getSession();return $!==void 0&&me&&Yo.set(me,$),true},[d,e,I]),[ve,ee]=react.useState(null),[Me,Ae]=react.useState(null),$e=react.useCallback(s=>{let c=Me;Ae(null),s&&c&&d&&d.removeRow(c.rowKey);},[Me,d]),Ce=react.useCallback(s=>{if(d?.getMode()==="cell"&&d.getCommitOn()==="row"){if(V.current.rowMessages)return;ee({message:s.error??de.editSaveFailed,rowKey:s.rowKey,columnId:s.columnId});return}ee({message:s.error??de.editSaveFailed,rowKey:s.rowKey,columnId:s.columnId}),s.rowKey!==void 0&&s.columnId!==void 0&&(e?.revealRow(s.rowKey),e?.focusCell(s.rowKey,s.columnId));},[e,de,d]);Ee.current=Ce;let ce=react.useRef(false);react.useEffect(()=>{if(!e||!d)return;let s=()=>d.getMode()==="cell"&&d.getCommitOn()==="row",c=e.events.on("focusedRowChanged",Y=>{s()&&d.commitRows(Y.rowKey);});if(typeof document>"u")return c;let x=`[data-grid-id="${CSS.escape(e.gridId)}"]`,H=Y=>!Wo(x,Y),J=null,$=Y=>{if(!s()||ce.current)return;let me=Y.target instanceof Element?Y.target:null;if(!me||!me.closest(x))return;let pe=Y.relatedTarget instanceof Element?Y.relatedTarget:null;pe&&!H(pe)||!me.isConnected&&!pe||(J!==null&&clearTimeout(J),J=setTimeout(()=>{if(J=null,d.getSession()||ce.current)return;let ke=document.activeElement;ke&&ke!==document.body&&!H(ke)||d.commitRows(null);},0));};return document.addEventListener("focusout",$,true),()=>{c(),document.removeEventListener("focusout",$,true),J!==null&&clearTimeout(J);}},[e,d]);let Lt=react.useCallback((s,c)=>{if(!d||!e||d.getMode()!=="cell"||d.getCommitOn()!=="row"||!d.isEmptyNewRow(s))return false;let x=e.getRows(),H=x.findIndex(Y=>Y.key===s),J=null;for(let Y=H+1;H>=0&&Y<x.length&&J===null;Y++)x[Y]?.kind==="data"&&(J=x[Y].key);for(let Y=H-1;H>=0&&Y>=0&&J===null;Y--)x[Y]?.kind==="data"&&(J=x[Y].key);d.discardEmptyNewRow(s);let $=c??e.getFocus()?.columnId??null;return J!==null&&$!==null?e.focusCell(J,$):e.clearFocus(),true},[d,e]),l=react.useRef(null),nt=react.useCallback(()=>{if(!d)return;let s=d.getSession();d.cancelEdit(),s&&Lt(s.rowKey,s.columnId),T();},[d,Lt,T]),xt=react.useCallback(s=>{!d||!d.commitEdit()||s!=="blur"&&(s==="down"&&V.current.editKeys?.enter!==true&&e?.moveFocus("down"),T());},[d,e,T]),We=react.useCallback(s=>{if(!d||!e)return false;if(s==="next"||s==="previous"){if(V.current.focusCellOnTab===false)return d.commitEdit()?(T(),true):false;let c=d.getSession();return b(s==="next"?1:-1,{open:V.current.keepEditingOnTab===true,cycle:V.current.focusCellOnCycle!==false}),c===null||d.getSession()!==c}return d.commitEdit()?s==="blur"?(d.getMode()==="cell"&&d.getCommitOn()==="row"&&typeof document<"u"&&!Wo(`[data-grid-id="${CSS.escape(e.gridId)}"]`,document.activeElement)&&d.commitRows(null),true):(s==="down"&&e.moveFocus("down"),T(),true):false},[d,e,T,b]),Rt=react.useCallback((s,c)=>{ce.current=s,!(s||typeof document>"u")&&setTimeout(()=>{setTimeout(()=>{let x=document.activeElement;if(x&&x!==document.body&&x.isConnected)return;let H=d?.getSession()?c?.():null;H?.isConnected?H.focus({preventScroll:true}):T();},0);},0);},[d,T]);react.useEffect(()=>{d?.getSession()||(ce.current=false);},[d,fe]);let Ct=react.useCallback(()=>ce.current,[]),ft=react.useCallback(()=>{let s=d?.getSession()??null,c=d?.getRowSession()??null,x=e?.getFocus()??null,H=s?{rowKey:s.rowKey,columnId:s.columnId}:c?{rowKey:c.rowKey,columnId:x?.columnId??""}:x?{rowKey:x.rowKey,columnId:x.columnId}:null;return {editing:s!==null||c!==null,cell:H,isNewRow:!!d&&H!==null&&d.changes.isInserted(H.rowKey),commit:()=>d?d.getRowSession()?false:d.getSession()?d.commitEdit()?(T(),true):false:true:true,cancel:()=>{d&&(d.getRowSession()?l.current?.():d.getSession()&&nt());}}},[d,e,T,nt]),Ze=react.useCallback(async()=>{if(!d)return;ee(null);let s=await d.saveChanges();s.saved||s.superseded||Ce(s);},[d,Ce]),In=react.useCallback(()=>ee(null),[]),Vt=react.useCallback(()=>{ee(null),d?.cancelChanges();},[d]);react.useEffect(()=>{(d?.getSession()||d?.isEditingRow())&&ee(null);},[fe,d]);let ot=react.useMemo(()=>{if(!e||!be.getRange())return null;let s=be.cellCount();if(s>Gu)return {cells:s,truncated:true,numeric:null};let c=e.getColumnModel(),x=e.getVisualColumnIds(),H=e.getRows(),J=be.getStats(($,Y)=>{let me=H[$],pe=x[Y];if(!me||me.kind!=="data"||!pe)return;let ke=d?d.effectiveValue(me.key,pe):c.getCellValue(me.data,pe);return typeof ke=="string"&&ke.trim()!==""&&!Number.isNaN(Number(ke))?Number(ke):ke});return {cells:s,truncated:false,numeric:J}},[e,be,d,fe]),It=react.useCallback((s,c)=>!!d&&!datagridCore.isChromeColumn(c)&&d.canUpdate(s,c),[d]),Jt=react.useCallback((s,c)=>{let x=Ne.getRange();O.current=x??{startRow:s,startColumn:c,endRow:s,endColumn:c},oe(null);},[Ne]),kt=react.useCallback((s,c)=>{let x=O.current;if(!x)return;let H=datagridCore.computeFillTarget(x,s,c);oe(H?{startRow:H.bounds.minRow,startColumn:H.bounds.minColumn,endRow:H.bounds.maxRow,endColumn:H.bounds.maxColumn}:null);},[]),Ut=react.useCallback((s,c)=>{if(!d||!e)return 0;let H=datagridCore.computeFillValues(s,c,(J,$)=>{let Y=ge(J),me=ue($);return Y!==null&&me?d.effectiveValue(Y,me):void 0}).map(J=>{let $=ge(J.row),Y=ue(J.column);if($===null||!Y||!It($,Y))return null;let me=J.from?e.shiftCellFormula(Y,J.value,J.row-J.from.row,J.column-J.from.column):J.value;return {rowKey:$,columnId:Y,value:me}}).filter(J=>J!==null);return e.notifyClipboardGesture("fill",H.length,()=>H.length===0?false:(d.applyEdits(H,datagridCore.fillText(de.editFillUndo,{count:H.length}),"fill"),true)),H.length},[d,e,ge,ue,It,de]),Ft=react.useCallback(()=>{let s=O.current,c=ie;if(O.current=null,oe(null),!s||!c||!d||!e)return;let x=datagridCore.computeFillTarget(s,c.endRow,c.endColumn);x&&Ut(s,x);},[ie,d,e,Ut]),gt=react.useCallback((s,c)=>{if(!e)return "";let x=e.getRows()[s],H=e.getColumnIdAt(c);if(!x||x.kind!=="data"||!H)return "";let J=e.getColumnModel(),$=d?d.effectiveValue(x.key,H):J.getCellValue(x.data,H),Y=datagridCore.cellDisplayText(J.getDef(H),$,x.data);return e.clipboardCellText(x,H,$,Y).replace(/[\t\r\n]+/g," ")},[e,d]),Kt=react.useCallback((s="copy")=>{if(!e||!Ne.getRange())return false;let c=Ne.toTsv(gt);return e.notifyClipboardGesture("copy",c?c.split(`
|
|
2
|
-
`).length:0,()=>e.writeClipboard(c,s)),true},[e,Ne,gt]),Je=react.useCallback(s=>{if(!e||!d)return false;let c=Ne.getRange()!==null,x=s??e.getFocus();if(!c&&!x)return false;if(!Kt("cut")){let Y=x?e.getVisualColumnIds().indexOf(x.columnId):-1,me=x?e.getRows().findIndex(ke=>ke.key===x.rowKey):-1;if(me<0||Y<0)return false;let pe=gt(me,Y);e.notifyClipboardGesture("copy",pe?1:0,()=>e.writeClipboard(pe,"cut"));}let H=[];if(c)be.forEachCell((Y,me)=>H.push([Y,me]));else {let Y=e.getRows().findIndex(pe=>pe.key===x.rowKey),me=e.getVisualColumnIds().indexOf(x.columnId);if(Y<0||me<0)return false;H.push([Y,me]);}let J=e.getRows(),$=[];for(let[Y,me]of H){let pe=J[Y];if(!pe||pe.kind!=="data")continue;let ke=e.getColumnIdAt(me);!ke||datagridCore.isChromeColumn(ke)||d.canUpdate(pe.key,ke)&&$.push({rowKey:pe.key,columnId:ke,value:null});}return e.notifyClipboardGesture("cut",$.length,()=>$.length===0?false:(d.applyEdits($,datagridCore.fillText(de.editCutUndo,{count:$.length}),"cut"),true)),true},[e,d,Ne,be,Kt,gt,de]),Xe=react.useCallback((s,c)=>{if(!d||!e||!s)return;let x=V.current.rangePaste===false,H=e.processPastedTable(x?[[s.replace(/\r?\n$/,"")]]:datagridCore.parseClipboardTable(s));if(!H)return;let J=x?null:Ne.getBounds(),$,Y;if(J)$=J.minRow,Y=J.minColumn;else {let Ye=c??e.getFocus();if(!Ye||($=e.getRows().findIndex(Ve=>Ve.key===Ye.rowKey),Y=e.getVisualColumnIds().indexOf(Ye.columnId),$<0||Y<0))return}let me=datagridCore.computePasteCells(H,$,Y,{target:J,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),pe=e.getColumnModel(),ke=me.map(Ye=>{let Ve=ge(Ye.row),ze=ue(Ye.column);return Ve===null||!ze||!It(Ve,ze)?null:{rowKey:Ve,columnId:ze,value:e.pastedCellValue(Ve,ze,Ye.text,datagridCore.coercePastedValue(Ye.text,pe.getEditorDataType(ze)))}}).filter(Ye=>Ye!==null);e.notifyClipboardGesture("paste",ke.length,()=>ke.length===0?false:(d.applyEdits(ke,datagridCore.fillText(de.editPasteUndo,{count:ke.length}),"paste"),true));},[d,e,Ne,ge,ue,It,de]),Ke=react.useCallback(async s=>{let c="";try{c=await navigator.clipboard.readText();}catch{return}Xe(c,s);},[Xe]),it=react.useCallback(()=>{if(!e||typeof document>"u")return false;let s=document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"]`);if(!s)return false;let c=document.createElement("textarea");c.className="kanuni-datagrid-paste-catcher",c.setAttribute("aria-hidden","true"),c.tabIndex=-1,Object.assign(c.style,{position:"fixed",left:"-10000px",top:"0",width:"1px",height:"1px",opacity:"0"}),s.appendChild(c);let x=false,H=$=>{x||(x=true,c.removeEventListener("paste",J),c.remove(),T(),Xe($));},J=$=>{$.preventDefault(),H($.clipboardData?.getData("text/plain")??"");};return c.addEventListener("paste",J),c.focus({preventScroll:true}),setTimeout(()=>H(c.value),300),true},[e,T,Xe]),[B,we]=react.useState(null),he=react.useCallback((s,c)=>d?(we(null),d.beginRowEdit(s,c)):false,[d]),ye=react.useCallback(async()=>{if(!d||!d.getRowSession())return false;let c=e?.getVisualColumnIds()??[],x=await d.saveRowEdit(c);return we(x.saved?null:x.error??null),x.saved&&T(),x.saved},[d,e,T]),ne=react.useCallback(()=>{d&&(we(null),d.cancelRowEdit(),T());},[d,T]);l.current=ne,react.useEffect(()=>{if(!(!e||!d))return e.setEditingDelegate({startEditingCell:(s,c)=>(e.scrollToCell(s,c),d.beginEdit(s,c)),stopEditing:async s=>{if(d.isEditingRow())return s?(ne(),true):ye();if(!d.getSession())return false;if(s)return d.cancelEdit(),T(),true;let c=d.commitEdit();return c&&T(),c},getEditingCells:()=>{let s=d.getRowSession();if(s)return e.getVisualColumnIds().filter(x=>!datagridCore.isChromeColumn(x)&&d.canUpdate(s.rowKey,x)).map(x=>({rowKey:s.rowKey,columnId:x}));let c=d.getSession();return c?[{rowKey:c.rowKey,columnId:c.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,d,ye,ne,T]);let yt=react.useCallback(s=>{if(!d||!e)return false;let c=po(s),x=(s.ctrlKey||s.metaKey)&&!c;if(R&&x&&(s.key==="z"||s.key==="Z"))return s.preventDefault(),s.shiftKey?d.redo():d.undo(),true;if(R&&x&&(s.key==="y"||s.key==="Y"))return s.preventDefault(),d.redo(),true;if(W&&x&&(s.key==="v"||s.key==="V"))return typeof window<"u"&&window.isSecureContext===false&&it()||(s.preventDefault(),Ke()),true;if(W&&x&&(s.key==="x"||s.key==="X"))return s.preventDefault(),Je(),true;if(x&&(s.key==="c"||s.key==="C"))return Kt()?(s.stopPropagation(),true):false;if(d.isEditingRow()){if(s.key==="Enter")return s.preventDefault(),ye(),true;if(s.key==="Escape")return s.preventDefault(),ne(),true}if(s.key==="Escape"&&d.getSession())return s.preventDefault(),nt(),true;if(s.key==="Escape"&&!x&&!d.getSession()){let $=e.getFocus();if($&&Lt($.rowKey,$.columnId))return s.preventDefault(),true}if(s.key==="Enter"&&V.current.editKeys?.enter===true&&!x&&!d.getSession()&&!d.isEditingRow()){let $=e.getFocus();if($&&!datagridCore.isChromeColumn($.columnId)&&d.canUpdate($.rowKey,$.columnId)){let Y;if(datagridCore.isRowEditMode(d.getMode())?Y=I($.rowKey,$.columnId):(e.scrollToCell($.rowKey,$.columnId),Y=d.beginEdit($.rowKey,$.columnId)),Y)return s.preventDefault(),s.stopPropagation(),true}}if(s.key==="Tab"&&V.current.focusCellOnTab!==false&&!d.getSession()&&e.getFocus()&&(b(s.shiftKey?-1:1,{open:V.current.keepEditingOnTab===true,cycle:V.current.focusCellOnCycle!==false})||s.shiftKey&&V.current.appendOnTab===true))return s.preventDefault(),true;if(W&&s.shiftKey&&!s.altKey&&!d.getSession()&&datagridCore.RANGE_KEY_DIRECTIONS[s.key]){let $=e.getFocus(),Y=e.getVisualColumnIds(),me=Y.flatMap((Ye,Ve)=>datagridCore.isChromeColumn(Ye)?[]:[Ve]),pe=$?e.getRowIndex($.rowKey):-1,ke=$?Y.indexOf($.columnId):-1;if(pe>=0&&ke>=0&&me.length>0){s.preventDefault(),s.stopPropagation();let Ye=e.getRows(),Ve=datagridCore.extendRangeByKey(Ne.getRange(),{row:pe,column:ke},datagridCore.RANGE_KEY_DIRECTIONS[s.key],x,{rows:Ye.length,firstColumn:me[0],lastColumn:me[me.length-1]});Ne.getRange()||Ne.start(Ve.startRow,Ve.startColumn),Ne.extend(Ve.endRow,Ve.endColumn),e.notifyViewStateChanged();let ze=Ye[Ve.endRow]?.key;return ze!==void 0&&e.scrollToCell(ze,Y[Ve.endColumn]),true}}if(W&&V.current.fillKeys!==false&&x&&!s.shiftKey&&!s.altKey&&!d.getSession()&&(s.key==="d"||s.key==="D"||s.key==="r"||s.key==="R")){let $=e.getFocus(),Y=e.getVisualColumnIds(),me=Y.findIndex(ze=>!datagridCore.isChromeColumn(ze)),pe=$?e.getRowIndex($.rowKey):-1,ke=$?Y.indexOf($.columnId):-1,Ye=Ne.getRange()??(pe>=0&&ke>=0?{startRow:pe,startColumn:ke,endRow:pe,endColumn:ke}:null),Ve=Ye?datagridCore.keyboardFill(Ye,s.key.toLowerCase()==="d"?"down":"right",Math.max(0,me)):null;if(Ve)return s.preventDefault(),s.stopPropagation(),Ut(Ve.source,Ve.target),true}!x&&!s.shiftKey&&!d.getSession()&&Nu.has(s.key)&&Ne.clear();let H=V.current.insertKey;if(s.key==="Insert"&&(H===true||H==="above"||H==="below")&&!x&&!d.getSession()){let $=e.getFocus();if($){if(s.preventDefault(),d.canAdd())if(H==="below"){let Y=e.getRows(),me=Y.findIndex(ke=>ke.key===$.rowKey),pe;for(let ke=me+1;me>=0&&ke<Y.length&&pe===void 0;ke++)Y[ke]?.kind==="data"&&(pe=Y[ke].key);pe!==void 0?Fe({},pe):Fe({},void 0,{position:"last"});}else Fe({},$.rowKey);return true}}if(s.key==="Delete"&&x&&!s.shiftKey&&V.current.deleteKey===true&&!d.getSession()){let $=e.getFocus();if($)return s.preventDefault(),Re($.rowKey,$.columnId),true}if(s.key==="ArrowDown"&&V.current.appendOnArrowDown===true&&!x&&!s.shiftKey&&!d.getSession()){let $=e.getFocus(),Y=e.getRows(),me=Y.length>0?Y[Y.length-1]:void 0;if($&&me&&me.key===$.rowKey&&d.canAdd())return s.preventDefault(),s.stopPropagation(),Fe({}),true}if(s.key==="F2"&&V.current.editKeys?.f2!==false&&!x&&!s.shiftKey){let $=e.getFocus();if($)return s.preventDefault(),datagridCore.isRowEditMode(d.getMode())?(I($.rowKey,$.columnId),true):(e.scrollToCell($.rowKey,$.columnId),d.beginEdit($.rowKey,$.columnId),true)}return (V.current.editKeys?.typing??V.current.editOnKeyPress)!==false&&!x&&(!s.altKey||c)&&s.key.length===1&&s.key!==" "&&!d.getSession()&&q(s.key)?(s.preventDefault(),true):false},[d,e,W,R,Ke,Je,Kt,q,I,b,Fe,ye,ne,Ut,nt,Lt,Re,it]);return {engine:d,range:Ne,version:fe,api:Ge,beginEdit:qe,beginRowEdit:he,saveRowEdit:ye,cancelRowEdit:ne,rowSaveError:B,addRow:Fe,commitCellEditor:xt,commitCustomEditor:We,suspendBlurCommit:Rt,blurCommitSuspended:Ct,keyContext:ft,doubleClickEdits:D?.doubleClick!==false,editAdjacentCell:b,editFocusedCellWith:q,cancelCellEdit:nt,focusScroller:T,deleteRow:te,saveChanges:Ze,cancelChanges:Vt,selectionStats:ot,handleKeyDown:yt,cut:Je,copySelection:Kt,paste:Ke,saveError:ve,clearSaveError:In,pendingDelete:Me,resolveDelete:$e,fillPreview:ie,startFillDrag:Jt,moveFillDrag:kt,endFillDrag:Ft,isDraggingFill:O.current!==null}}var Gl=react.createContext(""),Nl=react.createContext(()=>document.body),Bu=typeof window<"u"?react.useLayoutEffect:react.useEffect;function aa({theme:e,density:t,palette:n,portalContainer:r,children:i}){let a=react.useMemo(()=>datagridCore.themeClassName(e,t,n),[e,t,n]),u=react.useRef(r);Bu(()=>{u.current=r;},[r]);let m=react.useMemo(()=>()=>datagridCore.portalTarget(u.current),[]);return jsxRuntime.jsx(Gl.Provider,{value:a,children:jsxRuntime.jsx(Nl.Provider,{value:m,children:i})})}function Zt(){return react.useContext(Nl)}function Bt(){return react.useContext(Gl)}var la=8,Wu=26,Il=44;function Vu(){return typeof window<"u"&&!!window.matchMedia?.("(pointer: coarse)").matches}var Fl=4;function Hl(e,t,n,r,i="startsWith"){let a=datagridCore.foldText(t.trim());if(a==="")return null;let u=[],m=n==="contains",f=i==="contains";for(let w=0;w<e.length;w++){let C=e[w];if(m?C.includes(a):C.startsWith(a))u.push(w);else if(r){let h=r[w];(f?h.includes(a):h.startsWith(a))&&u.push(w);}}return u}function Uu(e,t,n){let r=e.map(a=>datagridCore.foldText(a.label)),i=Hl(r,t,n);return i===null?e:i.map(a=>e[a])}function wo(e){return e?{matchMode:datagridCore.lookupMatchMode(e,"name"),codeMatchMode:datagridCore.lookupMatchMode(e,"code"),linked:!!e.linkedColumns,allowCustom:e.allowCustom??false,autoCompleteSingle:e.autoCompleteSingle??true,onNoMatch:e.onNoMatch??"keep-open"}:{}}function yo(e,t,n){if(!e||!e.linkedColumns&&!e.map)return null;let r={[t]:n.value},i=e.linkedColumns;return i&&(r[i.code]=n.value,r[i.name]=n.label,i.id&&(r[i.id]=n.id)),e.map&&Object.assign(r,e.map(n)),r}function En({options:e,value:t,matchMode:n="startsWith",codeMatchMode:r="startsWith",linked:i=false,allowCustom:a=false,autoCompleteSingle:u=true,onNoMatch:m="keep-open",onPick:f,invalid:w,autoFocus:C=true,testId:h,columnId:F,ariaLabel:E,onChange:k,onCommit:S,commitOnPick:K=true,onCancel:L,onTab:P,onBlurCommit:N}){let _=Se(),X=Bt(),j=Zt(),W=react.useRef(null),R=react.useRef(null),[M,g]=react.useState(null),[y,G]=react.useState(false),[D,U]=react.useState(0),[re,A]=react.useState(0),[Z,de]=react.useState(null),[fe,Oe]=react.useState(false),[Te]=react.useState(()=>Vu()?Il:Wu),be=u&&!a,Ne=react.useMemo(()=>e.map(T=>datagridCore.foldText(T.label)),[e]),O=react.useMemo(()=>i?e.map(T=>datagridCore.foldText(T.value==null?"":String(T.value))):null,[e,i]),ie=react.useMemo(()=>{if(i)return t==null?"":String(t);let T=e.find(b=>b.value===t);return T?T.label:t==null||t===""?"":String(t)},[e,t,i]),oe=react.useMemo(()=>M===null?null:Hl(Ne,M,n,O,r),[Ne,O,M,n,r]),V=oe===null?e.length:oe.length,Ee=T=>e[oe===null?T:oe[T]],d=M??ie,Le=T=>{let b=datagridCore.foldText(T.trim());if(b==="")return -1;if(O){let I=O.indexOf(b);if(I>=0)return I}return Ne.indexOf(b)};react.useEffect(()=>{if(M===null){U(b=>b<V?b:be?0:-1);return}if(be){U(0);return}let T=Le(M);U(T<0||oe===null?T:oe.indexOf(T));},[oe,V]),react.useLayoutEffect(()=>{C&&(W.current?.focus({preventScroll:true}),W.current?.select());},[]);let He=()=>{let T=W.current;if(!T)return;let b=T.getBoundingClientRect(),I=i?Math.max(b.width,280):b.width,q=datagridCore.placeAnchoredLayer({anchor:{left:b.left,top:b.top,bottom:b.bottom},width:I,height:Math.min(Math.max(V,1),la)*Te,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});de({left:q.left,top:q.top,width:I});};react.useLayoutEffect(()=>{y&&He();},[y,V]),react.useEffect(()=>{if(!y)return;let T=()=>He();return window.addEventListener("scroll",T,true),window.addEventListener("resize",T),()=>{window.removeEventListener("scroll",T,true),window.removeEventListener("resize",T);}},[y]),react.useLayoutEffect(()=>{let T=R.current;if(!T||!y||V===0||D<0)return;let b=D*Te,I=b+Te,q=T.scrollTop;b<q?q=b:I>q+T.clientHeight&&(q=I-T.clientHeight),q!==T.scrollTop&&(T.scrollTop=q,A(q));},[D,y,V]);let Ge=Math.min(Math.max(V,1),la)*Te,Ue=Math.max(0,Math.floor(re/Te)-Fl),et=Math.min(V,Math.ceil((re+Ge)/Te)+Fl),Q=T=>{if(f){if(!f(T))return}else k(T.value);g(null),G(false),Oe(false),K&&S();},ge=()=>{y||(G(true),A(0),R.current&&(R.current.scrollTop=0),!be&&M===null&&U(e.findIndex(T=>Object.is(T.value,t))));},ue=()=>{ge(),Oe(true);},qe=()=>{if(M===null)return true;let T=M.trim();if(T==="")return a&&k(""),true;if(a){let q=Le(T);return k(q>=0?e[q].value:T),true}if(!u)return false;let b=datagridCore.foldText(T),I=Ne.indexOf(b);return I>=0?(k(e[I].value),true):V===1?(k(Ee(0).value),true):false},Fe=T=>{if(!(T.nativeEvent.isComposing||T.keyCode===229)&&!Tn(T)){if(T.key==="ArrowDown"||T.key==="ArrowUp"){if(T.preventDefault(),T.stopPropagation(),!y){ge();return}if(V===0)return;U(b=>b<0?T.key==="ArrowDown"?0:V-1:((T.key==="ArrowDown"?b+1:b-1)+V)%V);return}if(T.key==="PageDown"||T.key==="PageUp"){if(!y||V===0)return;T.preventDefault(),T.stopPropagation();let b=la*(T.key==="PageDown"?1:-1);U(I=>Math.min(V-1,Math.max(0,I+b)));return}if(T.key==="Home"||T.key==="End"){if(!y||V===0)return;T.preventDefault(),T.stopPropagation(),U(T.key==="Home"?0:V-1);return}if(T.key==="Enter"){if(T.preventDefault(),T.stopPropagation(),y&&D>=0&&D<V){Q(Ee(D));return}qe()?(g(null),S()):ue();return}if(T.key==="Escape"){if(T.preventDefault(),T.stopPropagation(),y){G(false);return}g(null),L();return}if(T.key==="Tab"){if(!qe()){if(m!=="revert"){T.preventDefault(),T.stopPropagation(),ue();return}g(null);}G(false),P&&(T.preventDefault(),T.stopPropagation(),P(T.shiftKey));return}vn(T)&&T.stopPropagation();}},te=[];for(let T=Ue;T<et;T++){let b=Ee(T);te.push(jsxRuntime.jsx("div",{role:"option","aria-selected":T===D,"aria-posinset":T+1,"aria-setsize":V,className:`kanuni-datagrid-lookup-item${T===D?" kanuni-datagrid-lookup-item--active":""}`,style:{position:"absolute",top:T*Te,height:Te,left:0,right:0},onMouseEnter:()=>U(T),onClick:()=>Q(b),children:i?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-lookup-code",children:b.value==null?"":String(b.value)}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-lookup-name",children:b.label})]}):b.label},String(b.value)));}let Re=y&&Z?reactDom.createPortal(jsxRuntime.jsx("div",{ref:R,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${Te===Il?" kanuni-datagrid-lookup-popup--touch":""}${X}`,"data-kanuni-portal":"popup",role:"listbox","aria-label":E,"data-testid":h?`${h}-list`:void 0,style:{left:Z.left,top:Z.top,width:Z.width,height:Ge},onScroll:T=>A(T.currentTarget.scrollTop),onMouseDown:T=>T.preventDefault(),children:V===0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-lookup-empty",children:_.editNoMatch}):jsxRuntime.jsx("div",{style:{position:"relative",height:V*Te},children:te})}),j()):null;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{ref:W,type:"text",role:"combobox","aria-expanded":y,"aria-autocomplete":"list","aria-label":E,"data-testid":h,"data-column-id":F,className:`kanuni-datagrid-editor${w?" kanuni-datagrid-editor--invalid":""}`,value:d,onChange:T=>{g(T.target.value),Oe(false),A(0),R.current&&(R.current.scrollTop=0),G(true);},onFocus:ge,onClick:ge,onKeyDown:Fe,onBlur:T=>{M!==null&&!qe()&&g(null),G(false),Oe(false);let b=T.relatedTarget;b instanceof Element&&b.closest(`${Yt}, .kanuni-datagrid-detached`)||N?.();}}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite",children:!a&&(fe||M!==null&&M.trim()!==""&&V===0)?_.editNoMatch:""}),Re]})}function Ju(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=Yl(e);return [...t.slice(n),...t.slice(0,n)]}function Yl(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function Qu(e){return [e.monthJanuary,e.monthFebruary,e.monthMarch,e.monthApril,e.monthMay,e.monthJune,e.monthJuly,e.monthAugust,e.monthSeptember,e.monthOctober,e.monthNovember,e.monthDecember]}function Zu(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Dn({value:e,format:t=datagridCore.DEFAULT_DATE_FORMAT,invalid:n,disabled:r,autoFocus:i=true,testId:a,columnId:u,ariaLabel:m,onChange:f,onCommit:w,onCancel:C,onTab:h,onBlurCommit:F,seedDigits:E}){let k=Se(),S=Bt(),K=Zt(),L=react.useMemo(()=>Qu(k),[k]),P=react.useMemo(()=>Ju(k),[k]),N=react.useRef(null),[_,X]=react.useState(()=>E!==void 0?datagridCore.dateDigits(E,t):null),[j,W]=react.useState(false),[R,M]=react.useState(null),g=react.useMemo(()=>datagridCore.toDate(e),[e]),y=_===null?datagridCore.formatDateValue(e,t):datagridCore.maskDate(_,t),G=_===null?null:datagridCore.parseDateValue(y,t),D=_!==null&&_.length===datagridCore.dateDigitCount(t)&&G===null,[U,re]=react.useState(()=>g??new Date);react.useEffect(()=>{j&&re(G??g??new Date);},[j]),react.useLayoutEffect(()=>{if(i)if(N.current?.focus({preventScroll:true}),E!==void 0){let O=N.current?.value.length??0;N.current?.setSelectionRange(O,O);}else N.current?.select();},[]);let A=react.useRef(null),Z=react.useCallback(()=>{let O=N.current;if(!O)return;let ie=O.getBoundingClientRect(),oe=datagridCore.placeAnchoredLayer({anchor:{left:ie.left,top:ie.top,bottom:ie.bottom},width:A.current?.offsetWidth??0,height:A.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});M({left:oe.left,top:oe.top});},[]),de=react.useCallback(O=>{A.current=O,O&&Z();},[Z]);react.useLayoutEffect(()=>{j&&Z();},[j,Z]),react.useEffect(()=>{if(!j)return;let O=()=>Z();return window.addEventListener("scroll",O,true),window.addEventListener("resize",O),()=>{window.removeEventListener("scroll",O,true),window.removeEventListener("resize",O);}},[j,Z]);let fe=react.useCallback(O=>{if(O===null){f(null);return}f(e instanceof Date?O:datagridCore.toIsoDate(O));},[f,e]),Oe=O=>{X(null),W(false),fe(O),N.current?.focus({preventScroll:true});},Te=react.useCallback(()=>{if(_!==null){if(_.length===0){fe(null),X(null);return}G&&fe(G),X(null);}},[_,G,fe]),be=O=>{if(!Tn(O)){if(O.key==="Escape"){if(O.preventDefault(),O.stopPropagation(),j){W(false);return}X(null),C();return}if(j){let ie=O.key==="ArrowLeft"?-1:O.key==="ArrowRight"?1:O.key==="ArrowUp"?-7:O.key==="ArrowDown"?7:0;if(ie!==0){O.preventDefault(),O.stopPropagation();let oe=G??g??new Date,V=new Date(oe.getFullYear(),oe.getMonth(),oe.getDate()+ie);X(datagridCore.dateDigits(datagridCore.formatDateValue(V,t),t)),re(V);return}if(O.key==="Enter"){O.preventDefault(),O.stopPropagation(),W(false),G&&Oe(G);return}}if(O.key==="Enter"){O.preventDefault(),O.stopPropagation(),Te(),w();return}if(O.key==="Tab"){Te(),W(false),h&&(O.preventDefault(),O.stopPropagation(),h(O.shiftKey));return}if(O.key.length===1&&!O.ctrlKey&&!O.metaKey&&!/\d/.test(O.key)){O.preventDefault();return}vn(O)&&O.stopPropagation();}},Ne=j&&R?reactDom.createPortal(jsxRuntime.jsxs("div",{ref:de,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${S}`,"data-kanuni-portal":"popup",style:{left:R.left,top:R.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":m?`${m} ${k.dateCalendar}`:k.dateCalendar,onMouseDown:O=>O.preventDefault(),children:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsxRuntime.jsx("button",{type:"button","aria-label":k.datePreviousMonth,"data-testid":"dg-date-prev",onClick:()=>re(new Date(U.getFullYear(),U.getMonth()-1,1)),children:"\u2039"}),jsxRuntime.jsxs("span",{"data-testid":"dg-date-title",children:[L[U.getMonth()]," ",U.getFullYear()]}),jsxRuntime.jsx("button",{type:"button","aria-label":k.dateNextMonth,"data-testid":"dg-date-next",onClick:()=>re(new Date(U.getFullYear(),U.getMonth()+1,1)),children:"\u203A"})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[P.map(O=>jsxRuntime.jsx("span",{className:"kanuni-datagrid-date-weekday",role:"columnheader",children:O},O)),(()=>{let ie=(new Date(U.getFullYear(),U.getMonth(),1).getDay()-Yl(k)+7)%7,oe=datagridCore.daysInMonth(U.getFullYear(),U.getMonth()+1),V=[];for(let Ee=0;Ee<42;Ee++){let d=Ee-ie+1,Le=new Date(U.getFullYear(),U.getMonth(),d),He=d<1||d>oe,Ge=Zu(Le,G??g);V.push(jsxRuntime.jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${He?" kanuni-datagrid-date-day--outside":""}${Ge?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":Ge,"data-testid":"dg-date-day","data-date":datagridCore.toIsoDate(Le),onClick:()=>Oe(Le),children:Le.getDate()},Ee));}return V})()]})]}),K()):null;return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsxRuntime.jsx("input",{ref:N,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":m,"aria-invalid":D||n?true:void 0,"data-testid":a,"data-column-id":u,disabled:r,className:`kanuni-datagrid-editor${D||n?" kanuni-datagrid-editor--invalid":""}`,value:y,onChange:O=>{let ie=datagridCore.dateDigits(O.target.value,t);X(ie);let oe=ie.length===datagridCore.dateDigitCount(t)?datagridCore.parseDateValue(datagridCore.maskDate(ie,t),t):null;oe&&fe(oe);},onKeyDown:be,onBlur:O=>{if(j)return;Te();let ie=O.relatedTarget;ie instanceof Element&&ie.closest(`${Yt}, .kanuni-datagrid-detached`)||F?.();}}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-date-button","aria-label":m?`${m} \u2014 ${k.dateOpenCalendar}`:k.dateOpenCalendar,"aria-expanded":j,"data-testid":"dg-date-open",disabled:r,tabIndex:-1,onMouseDown:O=>O.preventDefault(),onClick:()=>{W(O=>!O),N.current?.focus({preventScroll:true});},children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:"M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),Ne]})}function ua(e){return {save:e.save,cancel:e.cancel,editTitle:e.formEditTitle,addTitle:e.formAddTitle,saving:e.editSaving,shortcut:e.formShortcut}}var ac=ua(datagridCore.getGridDictionary("en"));function ic(e,t){switch(e){case "number":return t==null||t===""||!Number.isNaN(Number(t))?"number":"text";case "date":return t==null||t===""||!Number.isNaN(Date.parse(String(t)))?"date":"text";case "boolean":return "checkbox";default:return "text"}}function Xl(e,t){if(e==null)return "";if(t==="date"){if(e instanceof Date)return e.toISOString().slice(0,10);let n=String(e);return n.length>10&&n.includes("-")?n.slice(0,10):n}return String(e)}function lc(e,t){if(t==="number"){if(e==="")return null;let n=Number(e);return Number.isNaN(n)?e:n}return e}function ca({rowKey:e,fields:t,getValue:n,errors:r,lookups:i,customEditors:a=false,row:u,saving:m,saveError:f,isNew:w,dark:C=false,popup:h=false,inline:F=false,onNaturalHeight:E,labels:k,onChange:S,setRowValues:K,onSave:L,onCancel:P}){let N=Se(),_=Bt(),X=react.useMemo(()=>({...ua(N),...k}),[N,k]),j=react.useRef(null),W=Object.keys(r)[0]??null,R=react.useCallback(D=>{if(j.current=D,!D)return;let U=D.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");if(U?.focus(),U instanceof HTMLInputElement&&U.type==="text"&&U.select(),E){let re=D.querySelector(".kanuni-datagrid-edit-form-fields");re&&E(D.clientHeight-re.clientHeight+re.scrollHeight);}},[E]);react.useEffect(()=>{if(!W||!j.current)return;j.current.querySelector(`[data-field-id="${CSS.escape(W)}"] input, [data-field-id="${CSS.escape(W)}"] select`)?.focus();},[W]);let M=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),g=X.shortcut.replace("{key}",M?"\u2318":"Ctrl"),y=react.useCallback(D=>{if(D.key==="Escape"){D.preventDefault(),D.stopPropagation(),P();return}if(D.key==="Enter"&&(D.ctrlKey||D.metaKey)){D.preventDefault(),D.stopPropagation(),L();return}if(D.key==="Enter"&&!(D.target instanceof HTMLButtonElement)){D.preventDefault();return}if(D.key!=="Tab"||!h||!j.current)return;let U=Array.from(j.current.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(U.length===0)return;let re=U[0],A=U[U.length-1];!D.shiftKey&&document.activeElement===A?(D.preventDefault(),re.focus()):D.shiftKey&&document.activeElement===re&&(D.preventDefault(),A.focus());},[P,L,h]),G=jsxRuntime.jsxs("div",{ref:R,className:`kanuni-datagrid-edit-form${F?" kanuni-datagrid-edit-form--inline":""}`,"data-testid":"dg-edit-form","data-row-key":String(e),"data-popup":h?"":void 0,role:h?"dialog":"group","aria-modal":h?true:void 0,"aria-label":w?X.addTitle:X.editTitle,onKeyDown:y,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-header",children:jsxRuntime.jsx("strong",{children:w?X.addTitle:X.editTitle})}),f&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-form-error",children:f}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-fields",children:t.map(D=>{let U=n(D.columnId),re=r[D.columnId],A=i?.[D.columnId],Z=m||!D.editable,de=`dg-field-${String(e)}-${D.columnId}`;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":D.columnId,"data-invalid":re?"":void 0,htmlFor:de,children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-label",children:D.label}),a&&D.def?.renderEditor?D.def.renderEditor({value:U,row:u,columnId:D.columnId,rowKey:e,error:re??null,invalid:!!re,errorId:re?`${de}-error`:void 0,ariaLabel:D.label,setValue:fe=>S(D.columnId,fe),commit:()=>(L(),true),cancel:P,suspendBlurCommit:()=>{},commitOnBlur:()=>{},api:{setRowValues:fe=>K?.(fe)??false}}):A!==void 0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(En,{options:A??[],value:U,...wo(D.def?.lookup),onPick:D.def?.lookup?.linkedColumns||D.def?.lookup?.map?fe=>K?.(yo(D.def.lookup,D.columnId,fe))??false:void 0,invalid:!!re,testId:de,ariaLabel:D.label,onChange:fe=>S(D.columnId,fe),onCommit:()=>{},onCancel:P})}):D.def?.lookup?jsxRuntime.jsx("input",{id:de,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:datagridCore.lookupLabel(D.def,U)??Xl(U,D.dataType)}):D.dataType==="date"?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(Dn,{value:U,format:D.def?.dateFormat,invalid:!!re,disabled:Z,autoFocus:false,testId:de,columnId:D.columnId,ariaLabel:D.label,onChange:fe=>S(D.columnId,fe),onCommit:()=>{},onCancel:P})}):Nt(D.def)?jsxRuntime.jsx("input",{id:de,className:"kanuni-datagrid-edit-form-input",type:"text",inputMode:Nt(D.def).decimals===0?"numeric":"decimal",disabled:Z,"aria-invalid":re?true:void 0,value:U==null?"":String(U),onChange:fe=>S(D.columnId,fe.target.value)}):D.dataType==="boolean"?jsxRuntime.jsx("input",{id:de,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:Z,checked:U===true,onChange:fe=>S(D.columnId,fe.target.checked)}):jsxRuntime.jsx("input",{id:de,className:"kanuni-datagrid-edit-form-input",type:ic(D.dataType,U),disabled:Z,"aria-invalid":re?true:void 0,value:Xl(U,D.dataType),onChange:fe=>S(D.columnId,lc(fe.target.value,D.dataType))}),re&&jsxRuntime.jsx("span",{id:`${de}-error`,className:"kanuni-datagrid-edit-form-message",role:"alert",children:re})]},D.columnId)})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:g}),jsxRuntime.jsx("button",{type:"button",onClick:P,disabled:m,"data-testid":"dg-form-cancel",children:X.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-edit-form-save",onClick:L,disabled:m,"data-testid":"dg-form-save",children:m?X.saving:X.save})]})]});return h?jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-edit-popup${C?" kanuni-datagrid-dark":""}${_}`,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:P}),G]}):G}function ma({controller:e,engine:t,columnId:n,message:r,saving:i,lookupOptions:a,onSave:u,onCancel:m}){let f=e.getColumnModel(),w=f.getDef(n);if(a!==void 0){let k=w?.lookup,S=t.getRowSession()?.rowKey;return jsxRuntime.jsx(En,{options:a??[],value:t.rowEditValue(n),...wo(k),onPick:k?.linkedColumns||k?.map?K=>S!==void 0&&t.setRowValues(S,yo(k,n,K)):void 0,invalid:!!r,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:K=>t.setRowEditValue(n,K),commitOnPick:false,onCommit:u,onCancel:m})}let C=f.getDataType(n);if(C==="date")return jsxRuntime.jsx(Dn,{value:t.rowEditValue(n),format:w?.dateFormat,invalid:!!r,disabled:i,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:w?.headerName??n,onChange:k=>t.setRowEditValue(n,k),onCommit:u,onCancel:m});let h=Nt(w),F=C==="number"&&!h,E=k=>{k.key==="Enter"?(k.preventDefault(),k.stopPropagation(),u()):k.key==="Escape"&&(k.preventDefault(),k.stopPropagation(),m());};return C==="boolean"?jsxRuntime.jsx("input",{className:"kanuni-datagrid-editor","data-testid":"dg-row-editor","data-column-id":n,"aria-label":w?.headerName??n,title:r??void 0,disabled:i,type:"checkbox",checked:t.rowEditValue(n)===true,onChange:k=>t.setRowEditValue(n,k.target.checked),onKeyDown:E}):jsxRuntime.jsx("input",{className:`kanuni-datagrid-editor${r?" kanuni-datagrid-editor--invalid":""}`,"data-testid":"dg-row-editor","data-column-id":n,"aria-label":w?.headerName??n,title:r??void 0,disabled:i,type:F?"number":"text",inputMode:h?h.decimals===0?"numeric":"decimal":void 0,value:String(t.rowEditValue(n)??""),onChange:k=>{let S=k.target.value;t.setRowEditValue(n,F?S===""?null:Number(S):S);},onKeyDown:E})}var mn=Symbol("lookupPending");function pa(e){return e instanceof Date?`d${e.getTime()}`:`${typeof e}:${String(e)}`}var Zo=class{constructor(t){this.controller=t;}controller;lists=new WeakMap;shown=new Map;repaintQueued=false;effectiveRow=null;key(t,n,r){let i=pa(r);for(let a of t.dependsOn??[])i+=`${pa(this.controller.getColumnModel().getStoredValue(n,a))}`;return i}repaint(){this.repaintQueued||(this.repaintQueued=true,queueMicrotask(()=>{this.repaintQueued=false,this.controller.isDisposed()||this.controller.refreshCells();}));}items(t,n,r,i=false){if(typeof t.items!="function")return t.items;let a=this.lists.get(t);a||this.lists.set(t,a=new Map);let u=this.key(t,n,r),m=a.get(u);if(m&&!i)return m.items??m.promise;let f={items:null,labels:null,promise:null},w=h=>{f.items=Array.isArray(h)?h:[],f.labels=null,f.promise=null;},C;try{C=t.items(n);}catch{C=[];}return a.set(u,f),Array.isArray(C)?(w(C),f.items):(f.promise=Promise.resolve(C).then(h=>(a.get(u)===f&&(w(h),this.repaint()),f.items??h),()=>(a.get(u)===f&&(w([]),this.repaint()),[])),f.promise)}label(t,n,r,i,a){let u=t?.lookup;if(!u||typeof u.items!="function"||u.linkedColumns||r==null||r==="")return null;let m=this.effectiveRow?.(a)??i,f=this.items(u,m,a),w=`${pa(a)}${n}`;if(!Array.isArray(f)){let F=this.shown.get(w);return F&&Object.is(F.value,r)?F.label:mn}let C=this.lists.get(u).get(this.key(u,m,a));if(!C.labels){C.labels=new Map;for(let F of f)C.labels.set(F.value,F.label);}let h=C.labels.get(r);return h===void 0?(this.shown.delete(w),null):(this.shown.set(w,{value:r,label:h}),h)}},jl=new WeakMap;function ho(e){let t=jl.get(e);return t||(t=new Zo(e),jl.set(e,t)),t}function Jl(e,t){if(!e)return [];let n=e.getColumnLayout();return [...n.left,...n.center,...n.right].map(r=>r.state.id).filter(r=>!datagridCore.isChromeColumn(r)&&(t?.(r)??true))}function ya({controller:e,editing:t,mode:n,active:r,rootRef:i,rowHeight:a,formLabels:u,formHeight:m,dark:f,rowLookups:w,customEditors:C=false,isFormColumn:h,batchBar:F=true,cardPopup:E=false}){let k=Se(),{engine:S,version:K,beginRowEdit:L,saveRowEdit:P,cancelRowEdit:N,rowSaveError:_,saveChanges:X,cancelChanges:j}=t,W=r&&datagridCore.isRowEditMode(n),R=S?.getRowSession()??null,M=W||R?.standalone||E?R:null,g=!!M&&(n==="popup"||!!M.standalone||E&&!W),y=react.useRef(h);y.current=h;let G=react.useMemo(()=>{if(!e||!M)return [];let Q=e.getColumnModel();return Jl(e,y.current).map(ge=>{let ue=Q.getDef(ge);return {columnId:ge,label:ue?.headerName??ue?.field??ge,dataType:Q.getEditorDataType(ge),def:ue,editable:S?.canUpdate(M.rowKey,ge)??true}})},[e,S,M]),D=n==="row"&&!g?M?.rowKey??null:null;react.useEffect(()=>{if(D===null)return;let Q=i.current;if(!Q)return;let ge=Q.querySelectorAll('[data-testid="dg-row-editor"]');if(ge.length===0)return;let ue=e?.getFocus(),Fe=(ue&&String(ue.rowKey)===String(D)?Q.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(ue.columnId)}"]`):null)??ge[0],te=S?zo.get(S):void 0;S&&zo.delete(S),Fe.focus({preventScroll:true}),Fe instanceof HTMLInputElement&&(te!==void 0&&Fe.getAttribute("data-column-id")===te?Fe.setSelectionRange(Fe.value.length,Fe.value.length):Fe.select());},[D]);let U=react.useCallback(Q=>W&&!g&&M?.rowKey===Q,[W,g,M]),re=react.useCallback((Q,ge)=>{let ue=e?.getColumnModel().getDef(Q.columnId);if(ue?.renderCell&&Q.node.kind==="data")return ue.renderCell({value:ge,row:Q.node.data,node:Q.node,column:ue});let qe=ue?datagridCore.lookupLabel(ue,ge):null;if(qe!==null)return qe;if(e&&ue?.lookup&&!ue.valueFormatter&&Q.node.kind==="data"){let te=ho(e).label(ue,Q.columnId,ge,Q.node.data,Q.node.key);if(te===mn)return jsxRuntime.jsx("span",{className:"kanuni-datagrid-lookup-pending","aria-busy":"true"});if(te!==null)return te}if(ue?.valueFormatter&&Q.node.kind==="data")return ue.valueFormatter(ge,Q.node.data);if(ue?.dateFormat&&ue.dataType==="date")return datagridCore.formatDateValue(ge,ue.dateFormat);let Fe=datagridCore.numberCellText(ue,ge);return Fe!==null?Fe:ge==null?"":String(ge)},[e]),A=react.useCallback(Q=>{if(!(n!=="row"||!S||!e||Q.node.kind!=="data"||!U(Q.node.key)))return S.canUpdate(Q.node.key,Q.columnId)?jsxRuntime.jsx(ma,{controller:e,engine:S,columnId:Q.columnId,message:M?.errors[Q.columnId]??null,saving:M?.saving??false,lookupOptions:w?.[Q.columnId],onSave:()=>{P();},onCancel:N}):re(Q,S.rowEditValue(Q.columnId))},[n,S,e,K,U,M,w,re,P,N]),Z=react.useCallback(Q=>{if(!S||Q.node.kind!=="data")return;let ge=S.changes.get(Q.node.key,Q.columnId);return ge?re(Q,ge.newValue):void 0},[S,K,re]),[de,fe]=react.useState(null),Oe=de??m??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,Te=react.useCallback(Q=>{Q>0&&fe(ge=>ge!==null&&Math.abs(ge-Q)<a?ge:Q);},[a]);react.useEffect(()=>{M||fe(null);},[M]);let be=(Q,ge)=>M?jsxRuntime.jsx(ca,{rowKey:Q,fields:G,getValue:ue=>S?.rowEditValue(ue),errors:M.errors,lookups:w,customEditors:C,row:S?.effectiveRow(M.rowKey),saving:M.saving,saveError:_,isNew:M.isNew,dark:f,popup:g,inline:ge,onNaturalHeight:ge?Te:void 0,labels:u,onChange:(ue,qe)=>S?.setRowEditValue(ue,qe),setRowValues:ue=>S?.setRowValues(Q,ue)??false,onSave:()=>{P();},onCancel:N}):null,Ne=M&&g?be(M.rowKey,false):null,O=react.useRef(be);O.current=be;let ie=react.useCallback(Q=>O.current(Q,true),[]),oe=n==="form"&&!g?M?.rowKey??null:null,V=M?.isNew??false,Ee=react.useRef(null);react.useEffect(()=>{if(e){if(oe===null){if(Ee.current!==e)return;Ee.current=null,e.setEditFormRow(null);return}Ee.current=e,e.setEditFormRow(oe,{height:Oe,atTop:V});}},[e,oe,V,Oe]),react.useEffect(()=>()=>{let Q=Ee.current;Ee.current=null,Q?.setEditFormRow(null);},[]);let d=W&&n==="row"&&!!M&&!g,Le=F&&r&&n==="batch"&&(S?.hasChanges()??false),He=d||Le?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[d&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-active","data-testid":"dg-row-editing",children:M?.isNew?k.formAddTitle:datagridCore.fillText(k.editEditingRow,{row:String(M?.rowKey)})}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-row",disabled:M?.saving,onClick:()=>{P();},children:M?.saving?k.editSaving:k.editSaveRow}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:N,children:k.cancel}),_&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:_})]}),Le&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:S?.isSaving(),onClick:()=>{X();},children:datagridCore.fillText(k.editSaveCount,{n:S?.getChanges().length??0})}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:j,children:k.cancel})]})]}):null,Ge=react.useCallback(Q=>!W||!S||S.isEditingRow()?null:{id:"dg-edit-row",label:k.editRowMenu,onSelect:()=>L(Q)},[W,S,L,k,K]),Ue=react.useCallback(Q=>W?(L(Q),true):false,[W,L]),et=react.useCallback(Q=>{if(!S)return false;let ge=S.getRowSession();return ge?ge.rowKey===Q:L(Q,{standalone:true})},[S,L]);return {rowModeActive:W,rowSession:M,isRowEditing:U,defaultContent:re,renderRowCell:A,renderPending:Z,renderEditForm:n==="form"?ie:void 0,popup:Ne,bar:He,rowSessionAttr:g?"popup":M&&n==="form"?"form":void 0,editRowMenuItem:Ge,openRow:Ue,openCardEditor:et}}function Rc(e,t="en-US"){let n=datagridCore.parseLocaleNumber(e,t);return n.ok?n.value:void 0}function Cc(e){return e instanceof Element&&!!e.closest(`${Yt}, .kanuni-datagrid-detached`)}function Ql(e,t){return e==null?"":t==="date"&&e instanceof Date?e.toISOString().slice(0,10):String(e)}function ha({value:e,dataType:t,error:n,seeded:r=false,seedText:i,options:a,allowCustom:u=false,matchMode:m,lookupSettings:f,onPick:w,ariaLabel:C,dateFormat:h,numberFormat:F,numberLocale:E,onChange:k,onCommit:S,onTab:K,onCancel:L}){let P=react.useRef(null),N=react.useRef(false),[_,X]=react.useState(t==="number"&&i!==void 0?i:null),j=react.useRef(e);react.useEffect(()=>{let g=P.current;if(g&&(g.focus({preventScroll:true}),!(!(g instanceof HTMLInputElement)||g.type==="checkbox")))if(r||i!==void 0){if(g.type==="text"||g.type==="search"){let y=g.value.length;g.setSelectionRange(y,y);}}else g.select();},[]);let R={ref:P,onKeyDown:g=>{if(!(g.nativeEvent.isComposing||g.keyCode===229)&&!Tn(g)){if(F?.step!==void 0&&(g.key==="ArrowUp"||g.key==="ArrowDown")&&!g.altKey&&!g.shiftKey){g.preventDefault(),g.stopPropagation();let y=g.target.value??"",G=datagridCore.stepNumberText(y,F,g.key==="ArrowUp"?1:-1,g.ctrlKey||g.metaKey?10:1);G!==void 0&&k(G);return}g.key==="Enter"?(g.preventDefault(),g.stopPropagation(),S(g.shiftKey?"none":"down")):g.key==="Tab"?(g.preventDefault(),g.stopPropagation(),N.current=true,K(g.shiftKey?-1:1)):g.key==="Escape"?(g.preventDefault(),g.stopPropagation(),L()):vn(g)&&g.stopPropagation();}},onBlur:g=>{N.current||Cc(g.relatedTarget)||S("blur");},className:`kanuni-datagrid-editor${n?" kanuni-datagrid-editor--invalid":""}`,"aria-invalid":!!n,"aria-errormessage":n?"kanuni-datagrid-editor-error":void 0,"data-testid":"dg-cell-editor"},M;return a===null?M=jsxRuntime.jsx("input",{...R,type:"text",value:"\u2026",readOnly:true,disabled:true}):a?M=jsxRuntime.jsx(En,{options:a,value:e,matchMode:m,allowCustom:u,...f,onPick:w,invalid:!!n,testId:R["data-testid"],ariaLabel:C,onChange:k,onCommit:()=>S("none"),onBlurCommit:()=>{N.current||S("blur");},onCancel:L,onTab:g=>{N.current=true,K(g?-1:1);}}):F?M=jsxRuntime.jsx("input",{...R,type:"text",inputMode:F.decimals===0?"numeric":"decimal",autoComplete:"off",value:String(Vo(e,F)??""),onChange:g=>k(g.target.value)}):t==="boolean"?M=jsxRuntime.jsx("input",{...R,type:"checkbox",checked:e===true,onChange:g=>k(g.target.checked)}):t==="number"&&_!==null?M=jsxRuntime.jsx("input",{...R,type:"text",inputMode:"decimal",value:_,onChange:g=>{let y=g.target.value;X(y);let G=Rc(y,E);k(G===void 0?j.current:G);}}):t==="number"?M=jsxRuntime.jsx("input",{...R,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:Ql(e,t),onChange:g=>k(g.target.value===""?null:Number(g.target.value))}):t==="date"?M=jsxRuntime.jsx(Dn,{value:e,format:h,invalid:!!n,testId:R["data-testid"],ariaLabel:C,seedDigits:i,onChange:k,onCommit:()=>S("none"),onBlurCommit:()=>{N.current||S("blur");},onCancel:L,onTab:g=>{N.current=true,K(g?-1:1);}}):M=jsxRuntime.jsx("input",{...R,type:"text",value:Ql(e,t),onChange:g=>k(g.target.value)}),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[M,n&&jsxRuntime.jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function Zl(e,t,n,r,i,a){let u=!n&&t!==void 0&&t.enabled!==false,m=u&&!i,f=t?.mode??"cell",w=react.useCallback(A=>{let Z=e?.getColumnModel().getDef(A);return !Z?.lookup&&!Z?.renderEditor&&Z?.allowFormulas!==true},[e]),C=ta({controller:e,enabled:u,mode:f,onSave:t?.onSave,editOnKeyPress:t?.editOnKeyPress,editKeys:t?.editKeys,focusCellOnTab:t?.focusCellOnTab,focusCellOnCycle:t?.focusCellOnCycle,keepEditingOnTab:false,allowAdding:false,allowDeleting:false,range:false,history:false,canEditColumn:w,savedDuration:a.savedDuration}),{engine:h,version:F,handleKeyDown:E,editAdjacentCell:k,focusScroller:S,saveError:K,clearSaveError:L,commitCellEditor:P,keyContext:N,doubleClickEdits:_}=C,X=ya({controller:e,editing:C,mode:f,active:m,rootRef:a.rootRef,rowHeight:a.rowHeight,formLabels:t?.formLabels,formHeight:t?.formHeight,dark:a.dark,cardPopup:a.cardPopup}),{renderRowCell:j,renderPending:W,openRow:R}=X,{renderCellContent:M,getCellClassName:g,onCellDoubleClick:y}=r,G=react.useCallback(A=>{if(!u||!h||A.node.kind!=="data")return M?.(A);let Z=j(A);if(Z!==void 0)return Z;if(!h.isEditing(A.node.key,A.columnId))return W(A)??M?.(A);let de=h.getSession(),fe=e.getColumnModel(),Oe=fe.getDef(A.columnId);return jsxRuntime.jsx(ha,{value:de.value,dataType:fe.getEditorDataType(A.columnId),ariaLabel:Oe?.headerName??A.columnId,dateFormat:Oe?.dateFormat,numberFormat:Nt(Oe),numberLocale:fe.getNumberLocale(),error:de.validation.message,seeded:de.seeded,seedText:Yo.get(de),onChange:Te=>h.setEditValue(Te),onCommit:P,onTab:Te=>{if(t?.focusCellOnTab===false){h.commitEdit();return}k(Te,{open:false,cycle:t?.focusCellOnCycle!==false}),S();},onCancel:()=>{h.cancelEdit(),S();}})},[u,h,e,F,M,j,W,k,S,P,t?.focusCellOnTab,t?.focusCellOnCycle]),D=react.useCallback(A=>{let Z=g?.(A);if(!u||!h||A.node.kind!=="data")return Z;let de=Z?[Z]:[];return h.isEditing(A.node.key,A.columnId)&&de.push("kanuni-datagrid-cell--editing"),h.changes.isDirty(A.node.key,A.columnId)&&de.push("kanuni-datagrid-cell--dirty"),de.length>0?de.join(" "):void 0},[u,h,F,g]),U=react.useCallback(A=>{y?.(A),!(!u||!h||A.node.kind!=="data"||!_)&&(R(A.node.key)||h.beginEdit(A.node.key,A.columnId));},[u,h,y,R,_]),re=react.useCallback(A=>m?E(A):false,[m,E]);return {active:u,renderCellContent:m?G:M,getCellClassName:m?D:g,onCellDoubleClick:m?U:y,handleKeyDown:re,keyContext:N,saveError:u?K:null,clearSaveError:L,renderEditForm:m?X.renderEditForm:void 0,bar:m?X.bar:null,popup:u?X.popup:null,rowSessionAttr:u?X.rowSessionAttr:void 0,editRowMenuItem:X.editRowMenuItem,rowStatusSource:u?h:null,openCardEditor:u?X.openCardEditor:void 0}}function Ca({open:e,title:t,message:n,cancelLabel:r,confirmLabel:i,danger:a,dark:u,onConfirm:m,onCancel:f}){let w=react.useRef(null),C=react.useRef(null),h=react.useId(),F=react.useId(),E=Bt(),k=Zt();return react.useEffect(()=>{if(!e)return;let S=document.activeElement;w.current?.focus();let K=C.current;return ()=>{let L=document.activeElement;K&&(K.contains(L)||L===document.body||L===null)&&S?.isConnected&&S.focus({preventScroll:true});}},[e]),react.useEffect(()=>{if(!e)return;let S=K=>{if(K.key==="Escape"){K.stopPropagation(),f();return}if(K.key==="Tab"&&C.current){let L=Array.from(C.current.querySelectorAll("button:not([disabled])"));if(L.length===0)return;let P=L.indexOf(document.activeElement),N=K.shiftKey?P<=0?L.length-1:P-1:P===L.length-1?0:P+1;K.preventDefault(),K.stopPropagation(),L[N].focus();}};return document.addEventListener("keydown",S,true),()=>document.removeEventListener("keydown",S,true)},[e,f]),!e||typeof document>"u"?null:reactDom.createPortal(jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${u?" kanuni-datagrid-dark":""}${E}`,"data-kanuni-portal":"popup",role:"presentation",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:f}),jsxRuntime.jsxs("div",{ref:C,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":h,"aria-describedby":F,"data-testid":"dg-dialog",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-title",id:h,children:t}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-message",id:F,children:n}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-dialog-actions",children:[r!==void 0&&jsxRuntime.jsx("button",{type:"button","data-testid":"dg-dialog-cancel",onClick:f,children:r}),jsxRuntime.jsx("button",{ref:w,type:"button",className:`kanuni-datagrid-dialog-primary${a?" kanuni-datagrid-dialog-primary--danger":""}`,"data-testid":"dg-dialog-confirm",onClick:m,children:i})]})]})]}),k())}var tr=0,Ta=5e3;function Sc(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Ta,onLimit:t.onLimit}}function Gc(e,t){return e<=t}function va(e,t){let n=Sc(t),r=n!==null,i=n?.always??false,a=n?.maxRows??Ta,u=n?.onLimit,m=react.useRef(u);react.useEffect(()=>{m.current=u;},[u]);let[f,w]=react.useState(false),C=react.useCallback(()=>w(true),[]),h=react.useCallback(()=>w(false),[]);react.useEffect(()=>{if(!r||i||typeof window>"u"||typeof window.addEventListener!="function")return;let E=()=>{let S=e.getRows().length;if(!Gc(S,a)){e.isDebugMode()&&console.warn(`[datagrid] print layout skipped: ${S} rows exceeds maxRows (${a}). Printing the visible rows instead \u2014 use exportPdf() for the whole result.`),m.current?.({rows:S,maxRows:a});return}reactDom.flushSync(()=>w(true));},k=()=>reactDom.flushSync(()=>w(false));return window.addEventListener("beforeprint",E),window.addEventListener("afterprint",k),()=>{window.removeEventListener("beforeprint",E),window.removeEventListener("afterprint",k);}},[r,i,a,e]);let F=i||f;return react.useEffect(()=>{if(!F||typeof document>"u")return;let E=document.documentElement;return tr++,E.classList.add("kanuni-datagrid-printing"),()=>{tr--,tr<=0&&(tr=0,E.classList.remove("kanuni-datagrid-printing"));}},[F]),{active:F,begin:C,end:h}}var nr=new Map,xa=new Set;function as(e,t){let n=nr.get(e);return n?[...n].filter(r=>r!==t):[]}function Ea(e,t,n){let r=react.useRef(null);return react.useEffect(()=>{if(!t)return;let a={controller:e,scroller:()=>n.current};r.current=a;let u=nr.get(t)??new Set;u.add(a),nr.set(t,u);let m=e.events.on("columnStateChanged",()=>{if(xa.has(t))return;let f=as(t,a);if(f.length===0)return;let w=e.getColumnStates();xa.add(t);try{for(let C of f)C.controller.applyColumnStates(w);}finally{xa.delete(t);}});return ()=>{m(),u.delete(a),u.size===0&&nr.delete(t),r.current=null;}},[e,t,n]),{syncScroll:react.useCallback(a=>{let u=r.current;if(!t||!u)return;let m=as(t,u);if(m.length!==0)for(let f of m){let w=f.scroller();w&&w.scrollLeft!==a&&(w.scrollLeft=a);}},[t])}}function or(e,t,n){return e==="left"?t:e==="center"?n.left+t:n.left+n.center+t}function is(e,t){let{start:n,end:r}=t.columns,i=e.centerOffsets,a=i[n]??0,u=(i[r]??0)-a,m=Math.max(0,e.centerWidth-a-u),f=a,w=e.center.slice(n,r),C=Array.from({length:w.length},(E,k)=>n+k),h=e.stickyIndices.filter(E=>E<n);if(h.length>0){let E=h.map(k=>e.center[k]);f-=E.reduce((k,S)=>k+S.state.width,0),w=[...E,...w],C=[...h,...C];}let F=new Map;for(let E of e.stickyIndices){let k=e.centerStickyOffsets[E];k!==null&&F.set(e.center[E].state.id,k);}return {centerColumns:w,centerIndices:C,leadingSpacer:Math.max(0,f),trailingSpacer:m,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:F}}function ls(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];r&&r.kind!=="data"&&t.push(n);}return t.length>0?t:null}function ss(e,t,n=0){if(!t)return n+e+1;let r=0,i=t.length;for(;r<i;){let a=r+i>>1;t[a]<e?r=a+1:i=a;}return n+e-r+1}var Ga=null,rr=null,Vc=400,Uc=24;function us(e,t,n){return `${e}\0${String(t)}\0${n}`}function zc(e,t,n,r,i){let a=us(e,t,n),u=Date.now(),m=Ga;return m&&m.cell===a&&u-m.time<=Vc&&Math.hypot(r-m.x,i-m.y)<=Uc?(Ga=null,rr={cell:a,time:u},true):(Ga={cell:a,time:u,x:r,y:i},false)}function Yc(e,t,n){return !!rr&&rr.cell===us(e,t,n)&&Date.now()-rr.time<800}var ar=36,ir=28,Jn=60,Qn=24,qc=[["statusColumn",Qn],["rowNumberColumn",Jn],["detailColumn",ir],["checkboxColumn",ar]];function Ia(e,t,n=false,r=false){return qt({checkboxColumn:e,detailColumn:t,rowNumberColumn:n,statusColumn:r}).total}function qt(e){let t=new Map,n=new Map,r=0,i=0;for(let[a,u]of qc)e[a]&&(t.set(a,r),a!=="statusColumn"&&n.set(a,++i),r+=u);return {total:r,count:i,inset:a=>t.get(a)??0,colIndex:a=>n.get(a)??1}}function Na(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function Ma(e,t,n){return e?e.kind==="covered"?t?n():null:jsxRuntime.jsx("div",{className:"kanuni-datagrid-span-box",style:{height:e.height},children:n()}):n()}function Pa(e,t){let n=e??(t==="number"||t==="bigint"?"right":"left");return n==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":n==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function jn(e,t){if(t===""||e==="")return e;let n=datagridCore.foldText(e),r=n.indexOf(t);if(r===-1)return e;let i=[],a=0,u=0;for(;r!==-1;)r>a&&i.push(e.slice(a,r)),i.push(jsxRuntime.jsx("mark",{className:"kanuni-datagrid-highlight",children:e.slice(r,r+t.length)},u++)),a=r+t.length,r=n.indexOf(t,a);return a<e.length&&i.push(e.slice(a)),jsxRuntime.jsx("span",{className:"kanuni-datagrid-cell-text",children:i})}function Xc(e,t,n,r="",i,a){if(e.renderCell)return e.renderCell({value:t,row:n.data,node:n,column:e});let u=datagridCore.lookupLabel(e,t);if(u!==null)return jn(u,r);if(i&&a!==void 0&&!e.valueFormatter){let f=i.label(e,a,t,n.data,n.key);if(f===mn)return jsxRuntime.jsx("span",{className:"kanuni-datagrid-lookup-pending","aria-busy":"true"});if(f!==null)return jn(f,r)}if(e.valueFormatter){let f=e.valueFormatter(t,n.data);return typeof f=="string"?jn(f,r):f}if(e.dateFormat&&e.dataType==="date")return jn(datagridCore.formatDateValue(t,e.dateFormat),r);let m=datagridCore.numberCellText(e,t);return m!==null?jn(m,r):t==null?"":jn(String(t),r)}function jc({gridId:e,node:t,index:n,layout:r,columnModel:i,centerColumns:a,centerIndices:u,stickyInsets:m,leadingSpacer:f,trailingSpacer:w,striped:C,selected:h,ariaSelectable:F=true,selectable:E=true,groupSelection:k,onToggleGroupSelect:S,groupDisplay:K="fullWidth",focusedColumnId:L,rowFocused:P=false,renderRow:N,checkboxColumn:_,statusColumn:X=false,rowNumberColumn:j=false,rowNumber:W=null,getNote:R,getSpan:M,resolveColSpans:g,findKind:y,headerRowCount:G,onRowClick:D,onRowMouseDown:U,onRowDoubleClick:re,onToggleSelect:A,onCellMouseDown:Z,onRowContextMenu:de,searchNeedle:fe="",lookupLabels:Oe,onToggleGroup:Te,summaryDefs:be,detailColumn:Ne=false,detailExpanded:O=false,onToggleDetail:ie,onToggleTreeRow:oe,renderDetail:V,renderEditForm:Ee,renderRowMessage:d,renderCellContent:Le,getCellClassName:He,onCellPointerDown:Ge,onCellPointerEnter:Ue,onCellDoubleClick:et,rowDrag:Q,dropSide:ge=null,rowStatus:ue,rowStatusText:qe,rowStatusTint:Fe=false,rowStatusStrike:te=false,rowClass:Re,height:T}){let b=Se();if(datagridCore.isDetailRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+G,"data-row-key":String(t.key),"data-detail-for":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-detail-cell",role:"gridcell","aria-colindex":1,children:V?.(t.data)})});if(datagridCore.isEditFormRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+G,"data-row-key":String(t.key),"data-editform-for":t.parentKey===null?"":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-editform-cell",role:"gridcell","aria-colindex":1,children:t.parentKey===null?null:Ee?.(t.parentKey,t.data)})});if(datagridCore.isMessageRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-message-row",role:"row","aria-rowindex":n+1+G,"data-row-key":String(t.key),"data-message-for":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-message-cell",role:"gridcell","aria-colindex":1,children:d?.(t.parentKey,t.data)})});if(datagridCore.isFillerRow(t))return null;if(datagridCore.isGroupRow(t)&&K==="fullWidth"){let B=i.getDef(t.columnId),we=B?.headerName??t.columnId,he=datagridCore.lookupLabel(B,t.value)??t.display??(t.label===""?b.filterBlank:t.label),ye=t.aggregates??null;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-group-row kanuni-datagrid-group-row--level-${t.level}${L?" kanuni-datagrid-group-row--focused":""}`,role:"row","aria-rowindex":n+1+G,"aria-expanded":t.expanded,"aria-level":t.level+1,"data-row-key":String(t.key),"data-group-key":String(t.key),"data-group-level":t.level,onClick:()=>Te?.(String(t.key)),children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-group-cell",role:"gridcell","aria-colindex":1,id:`${e}-cell-${String(t.key)}-__group`,style:t.level>0?{paddingLeft:8+t.level*18}:void 0,children:[k&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:k==="all",ref:ne=>{ne&&(ne.indeterminate=k==="some");},"aria-label":datagridCore.fillText(b.selectGroupAria,{count:String(t.count),group:he}),onChange:()=>S?.(String(t.key)),onClick:ne=>ne.stopPropagation(),onMouseDown:ne=>ne.stopPropagation()}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:t.expanded?"\u25BE":"\u25B8"}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[we,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:he}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),ye&&be?.map(ne=>jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[datagridCore.summaryLabel(ne)," ",i.getDef(ne.columnId)?.headerName??ne.columnId,":"]})," ",datagridCore.formatSummaryValue(ne,ye[datagridCore.summaryKey(ne.columnId,ne.type)],i.getDef(ne.columnId))]},datagridCore.summaryKey(ne.columnId,ne.type)))]})})}let I=[],q=qt({statusColumn:X,rowNumberColumn:j,detailColumn:Ne,checkboxColumn:_}),ve=q.count,ee=(B,we)=>({node:t,columnId:B,rowIndex:n,columnIndex:we,value:Ce?void 0:i.getCellValue(t.data,B)}),Me=(B,we)=>{let he=()=>ee(B,we);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${B}`,"aria-colindex":ve+we+1,"data-column-id":B,onMouseDown:ye=>{Dt(ye)&&(Z?.(t,B),Ge?.(he(),ye));},onMouseEnter:Ue?ye=>{Dt(ye)&&Ue(he(),ye);}:void 0,onDoubleClick:et?ye=>{Dt(ye)&&(Yc(e,t.key,B)||et(he()));}:void 0,onPointerUp:et?ye=>{ye.pointerType!=="touch"||!Dt(ye)||zc(e,t.key,B,ye.clientX,ye.clientY)&&et(he());}:void 0}},Ae=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,$e=t.kind==="treePath",Ce=datagridCore.isGroupRow(t)?t:null,ce=$e||Ce!==null,Lt=Ce?K==="column"?datagridCore.GROUP_COLUMN_ID:(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,l=()=>{let B=Ce,we=i.getDef(B.columnId),he=datagridCore.lookupLabel(we,B.value)??B.display??(B.label===""?b.filterBlank:B.label);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:B.level*16},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:B.expanded?"\u25BE":"\u25B8"}),K!=="column"&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[we?.headerName??B.columnId,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:he}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",B.count,")"]})]})},nt=(B,we)=>{let he=Ce.aggregates?be?.find(ye=>ye.columnId===we):void 0;return he?jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:datagridCore.formatSummaryValue(he,Ce.aggregates[datagridCore.summaryKey(we,he.type)],B)}):null},xt=Ae?(r.left[0]??r.center[0]??r.right[0])?.state.id??null:null,We=(B,we,he)=>{if(Ce){if(we===Lt)return l();if(Le){let ne=Le(ee(we,he));if(ne!==void 0)return ne}return nt(B,we)}if(Le&&!$e){let ne=Le(ee(we,he));if(ne!==void 0)return ne}let ye=$e?we===xt?jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:Xc(B,i.getCellValue(t.data,we),t,fe,Oe,we);return Ae&&we===xt?jsxRuntime.jsxs("span",{className:Ae.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:Ae.depth*16},children:[Ae.hasChildren?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":Ae.expanded,"aria-label":Ae.expanded?b.collapseTreeRow:b.expandTreeRow,onClick:ne=>{ne.stopPropagation(),oe?.(t.key);},children:Ae.expanded?"\u25BE":"\u25B8"}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),ye]}):ye},Rt=(B,we)=>{if(!He||Ce)return "";let he=He(ee(B,we));return he?` ${he}`:""},Ct=B=>!R||t.kind!=="data"?"":R(t.key,B,t.data)?" kanuni-datagrid-cell--noted":"",ft=B=>M&&t.kind==="data"?M(n,B):null,Ze=(B,we)=>{let he=B.autoHeight?" kanuni-datagrid-cell--wrap":"";return !B.cellClassName||ce?he:he+In(B,we)},In=(B,we)=>{let he=B.cellClassName;if(!he)return "";if(typeof he=="string")return ` ${he}`;let ye=t.data,ne=he({value:i.getCellValue(ye,we),row:ye,node:t,column:B});return ne?` ${ne}`:""};if(X&&I.push(jsxRuntime.jsx("div",{role:"presentation","aria-hidden":"true",className:"kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell",style:{width:Qn,insetInlineStart:q.inset("statusColumn")},children:jsxRuntime.jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),j){let B=t.kind==="data"&&W!==null;I.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":q.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:Jn,insetInlineStart:q.inset("rowNumberColumn")},children:B?W:""},"__rownum"));}Ne&&I.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":q.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:ir,insetInlineStart:q.inset("detailColumn")},children:ce?null:jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":O,"aria-label":O?b.collapseDetails:b.expandDetails,onMouseDown:B=>B.stopPropagation(),onClick:B=>{B.stopPropagation(),ie?.(t.key);},children:O?"\u25BE":"\u25B8"})},"__detail")),_&&I.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":q.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:ar,insetInlineStart:q.inset("checkboxColumn")},onMouseDown:B=>B.stopPropagation(),onClick:B=>{B.target.tagName!=="INPUT"&&(B.stopPropagation(),A?.(t));},children:Ce?k&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:k==="all",ref:B=>{B&&(B.indeterminate=k==="some");},"aria-label":datagridCore.fillText(b.selectGroupAria,{count:String(Ce.count),group:Ce.display??Ce.label}),onChange:()=>S?.(String(Ce.key)),onClick:B=>B.stopPropagation(),onMouseDown:B=>B.stopPropagation()}):$e?null:jsxRuntime.jsx("input",{type:"checkbox",checked:h,disabled:!E,tabIndex:-1,"aria-label":datagridCore.fillText(b.selectRowAria,{row:String(t.key)}),onChange:()=>A?.(t),onClick:B=>B.stopPropagation(),onMouseDown:B=>B.stopPropagation()})},"__select"));let Vt=q.total,ot=B=>L===B?" kanuni-datagrid-cell--focused":"",It=B=>{let we=y&&t.kind==="data"?y(t.key,B):null;return we==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":we==="match"?" kanuni-datagrid-cell--find-match":""},Jt={left:r.left.length,center:r.center.length},kt=t.kind==="data"&&g?g(t):null,Ut=B=>kt?.widths.get(B.state.id)??B.state.width,Ft=B=>{let we=kt?.spans.get(B);return we?{"aria-colspan":we}:null};r.left.forEach((B,we)=>{let he=B.def,ye=we===r.left.length-1,ne=B.state.id;if(kt?.covered.has(ne))return;let yt=or("left",we,Jt);I.push(jsxRuntime.jsx("div",{...Me(ne,yt),className:`${Pa(he.align,he.dataType)} kanuni-datagrid-cell--pinned${ye?" kanuni-datagrid-pin-edge-left":""}${ot(ne)}${It(ne)}${Ze(he,ne)}${Rt(ne,yt)}${Ct(ne)}${Na(ft(ne))}`,...Ft(ne),style:{width:Ut(B),insetInlineStart:r.leftOffsets[we]+Vt},children:Ma(ft(ne),L===ne,()=>We(he,ne,yt))},ne));});let gt=kt?.lead??null,Kt=f-(kt?.leadingDelta??0),Je=w-(kt?.trailingDelta??0);Kt>0&&I.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Kt}},"__lead"));let Xe=(B,we)=>{let he=B.def,ye=B.state.id,ne=or("center",we,Jt),yt=m?.get(ye),s=yt===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",c=gt&>.column.state.id===ye?gt.width:Ut(B);return jsxRuntime.jsx("div",{...Me(ye,ne),...Ft(ye),className:`${Pa(he.align,he.dataType)}${s}${ot(ye)}${It(ye)}${Ze(he,ye)}${Rt(ye,ne)}${Ct(ye)}${Na(ft(ye))}`,style:yt===void 0?{width:c}:{width:c,insetInlineStart:yt+Vt},children:Ma(ft(ye),L===ye,()=>We(he,ye,ne))},ye)},Ke=gt?r.center.indexOf(gt.column):-1,it=gt===null;return a.forEach((B,we)=>{let he=u?.[we]??we;!it&&he>Ke&&(I.push(Xe(gt.column,Ke)),it=true),!kt?.covered.has(B.state.id)&&I.push(Xe(B,he));}),it||I.push(Xe(gt.column,Ke)),Je>0&&I.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Je}},"__trail")),r.right.forEach((B,we)=>{let he=B.def,ye=we===0,ne=B.state.id;if(kt?.covered.has(ne))return;let yt=or("right",we,Jt);I.push(jsxRuntime.jsx("div",{...Me(ne,yt),className:`${Pa(he.align,he.dataType)} kanuni-datagrid-cell--pinned${ye?" kanuni-datagrid-pin-edge-right":""}${ot(ne)}${It(ne)}${Ze(he,ne)}${Rt(ne,yt)}${Ct(ne)}${Na(ft(ne))}`,...Ft(ne),style:{width:Ut(B),insetInlineEnd:r.rightOffsets[we]},children:Ma(ft(ne),L===ne,()=>We(he,ne,yt))},ne));}),jsxRuntime.jsxs("div",{className:`kanuni-datagrid-row${C&&n%2===1?" kanuni-datagrid-row--odd":""}${h?" kanuni-datagrid-row--selected":""}${P?" kanuni-datagrid-row--focused":""}${$e?" kanuni-datagrid-row--tree-path":""}${Ce?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${Ce.level}`:""}${ge?` kanuni-datagrid-row--drop-${ge}`:""}${ue?` ${datagridCore.rowStatusClassName(ue,Fe,te)}`:""}${Re?` ${Re}`:""}`,role:"row","aria-rowindex":n+1+G,"aria-selected":Ce||!F?void 0:h,"aria-expanded":Ce?Ce.expanded:void 0,"aria-level":Ce?Ce.level+1:void 0,"data-row-key":String(t.key),"data-row-status":ue,"aria-description":ue?qe:void 0,"aria-busy":ue==="saving"?true:void 0,"aria-invalid":ue==="error"?true:void 0,"data-group-key":Ce?String(Ce.key):void 0,"data-group-level":Ce?Ce.level:void 0,style:T===void 0?void 0:{height:T},draggable:Q?.draggable&&!Ce?true:void 0,onDragStart:Q&&!Ce?B=>Q.onDragStart(t,B):void 0,onDragEnd:Q&&!Ce?()=>Q.onDragEnd():void 0,onDragOver:Q&&!Ce?B=>Q.onDragOver(t,B):void 0,onDrop:Q&&!Ce?B=>Q.onDrop(t,B):void 0,onMouseDown:U&&!Ce?B=>Dt(B)&&U(t,B):void 0,onClick:Ce?()=>Te?.(String(Ce.key)):D?B=>Dt(B)&&D(t,n,B):void 0,onDoubleClick:re?B=>Dt(B)&&re(t,n,B):void 0,onContextMenu:de?B=>Dt(B)&&de(t,n,B):void 0,children:[Q&&!Ce&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:b.dragToReorder,onMouseEnter:()=>Q.setDraggable(true),onMouseLeave:()=>Q.setDraggable(false),children:jsxRuntime.jsx("svg",{width:"10",height:"14",viewBox:"0 0 10 14",focusable:"false",children:jsxRuntime.jsxs("g",{fill:"currentColor",children:[jsxRuntime.jsx("circle",{cx:"3",cy:"3",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"3",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"3",cy:"7",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"3",cy:"11",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"11",r:"1.2"})]})})}),N&&t.kind==="data"?N({row:t.data,node:t,rowIndex:n,selected:h,focused:P}):I]})}var Zn=react.memo(jc);var eo=26;function Fa(e,t){return datagridCore.computeHeaderBands(e,t)}function Ka(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function Oa(e,t){let n=jsxRuntime.jsx("span",{className:"kanuni-datagrid-band-label",children:e.label});if(!t||e.spacer||e.columnIds.length===0)return n;let r=t.pathOf(e.columnIds[0]).slice(0,e.level+1);if(r.length!==e.level+1||!t.collapsible(r))return n;let i=t.collapsed(r);return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-band-toggle","aria-expanded":!i,"aria-label":i?t.labels.expand:t.labels.collapse,title:i?t.labels.expand:t.labels.collapse,onClick:a=>{a.stopPropagation(),t.onToggle(r);},children:jsxRuntime.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[jsxRuntime.jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),jsxRuntime.jsx("path",{d:"M5 8h6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),i&&jsxRuntime.jsx("path",{d:"M8 5v6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}),n]})}function Zc({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,depth:i,checkboxColumn:a=false,detailColumn:u=false,statusColumn:m=false,rowNumberColumn:f=false,rowHeight:w=eo,bandFold:C}){if(i<=0)return null;let h=qt({statusColumn:m,rowNumberColumn:f,detailColumn:u,checkboxColumn:a}).total,F=Fa(e.left,i),E=Fa(t,i),k=Fa(e.right,i),S=(K,L,P)=>{let N=P;for(let _=0;_<L;_++)N+=K[_].width;return N};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:i},(K,L)=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":L+1,style:{width:e.totalWidth+h,height:w,top:L*w},children:[h>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned",style:{width:h,insetInlineStart:0},"aria-hidden":"true"}),(F[L]??[]).map((P,N)=>jsxRuntime.jsx("div",{className:Ka(P,` kanuni-datagrid-band-cell--pinned${N===(F[L]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:P.spacer?"presentation":"columnheader","aria-colspan":P.spacer?void 0:P.columnIds.length,style:{width:P.width,insetInlineStart:S(F[L]??[],N,h)},title:P.spacer?void 0:P.label,children:Oa(P,C)},P.columnIds[0])),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(E[L]??[]).map(P=>jsxRuntime.jsx("div",{className:Ka(P),role:P.spacer?"presentation":"columnheader","aria-colspan":P.spacer?void 0:P.columnIds.length,style:{width:P.width},title:P.spacer?void 0:P.label,children:Oa(P,C)},P.columnIds[0])),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),(k[L]??[]).map((P,N)=>{let _=k[L]??[],X=0;for(let j=N+1;j<_.length;j++)X+=_[j].width;return jsxRuntime.jsx("div",{className:Ka(P,` kanuni-datagrid-band-cell--pinned${N===0?" kanuni-datagrid-pin-edge-right":""}`),role:P.spacer?"presentation":"columnheader","aria-colspan":P.spacer?void 0:P.columnIds.length,style:{width:P.width,insetInlineEnd:X},title:P.spacer?void 0:P.label,children:Oa(P,C)},P.columnIds[0])})]},L))})}var Aa=react.memo(Zc);var rm=()=>jsxRuntime.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:"M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"0.6",strokeLinejoin:"round"})});function am(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function im({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:i,trailingSpacer:a,sort:u,sortable:m,onSort:f,headerFilter:w=false,filteredColumns:C,onOpenFilter:h,filterIconMode:F="hover",checkboxColumn:E=false,detailColumn:k=false,statusColumn:S=false,rowNumberColumn:K=false,rowNumberHeader:L="#",selectAllState:P="none",selectAllDisabled:N=false,onToggleSelectAll:_,draggable:X=false,reorderable:j=false,onReorder:W,resizable:R=false,onResize:M,onAutoFit:g,onHeaderContextMenu:y,groupLevels:G,onHeaderClick:D,getHeaderClassName:U,renderHeaderLabel:re}){let A=Se(),Z=qt({statusColumn:S,rowNumberColumn:K,detailColumn:k,checkboxColumn:E}),de=new Map(u.map((te,Re)=>[te.columnId,{direction:te.direction,order:Re}])),fe=new Set(C??[]),Oe=[...n.left.map(te=>te.state.id),...r.map(te=>te.state.id),...n.right.map(te=>te.state.id)],[Te,be]=react.useState(null),Ne=react.useId(),O=Te&&Oe.includes(Te)?Te:Oe[0],ie=te=>{be(te),document.querySelector(`[data-column-id="${te}"].kanuni-datagrid-header-cell`)?.focus();},oe=te=>{let Re=Oe.indexOf(O),T=Math.min(Oe.length-1,Math.max(0,Re+te));T!==Re&&ie(Oe[T]);},V=react.useRef(null),Ee=react.useRef(false),[d,Le]=react.useState(null),He=Oe,Ge=te=>[...n.left,...n.center,...n.right].find(Re=>Re.state.id===te)?.state.pinned??null,Ue=(te,Re)=>(Ee.current?te>Re.left+Re.width/2:te<Re.left+Re.width/2)?"before":"after",et=(te,Re)=>{let T=V.current;if(!j||!T||T===te||Ge(T)!==Ge(te))return;Re.preventDefault(),Re.dataTransfer.dropEffect="move";let b=Ue(Re.clientX,Re.currentTarget.getBoundingClientRect());Le(I=>I?.id===te&&I.side===b?I:{id:te,side:b});},Q=(te,Re)=>{let T=V.current;if(Le(null),!j||!T||T===te||Ge(T)!==Ge(te))return;if(Re.preventDefault(),Re.stopPropagation(),Ue(Re.clientX,Re.currentTarget.getBoundingClientRect())==="before")W?.(T,te);else {let I=He[He.indexOf(te)+1];W?.(T,I===T?He[He.indexOf(te)+2]:I);}V.current=null;},[ge,ue]=react.useState(null),qe=(te,Re)=>{if(!R)return;Re.preventDefault(),Re.stopPropagation();let T=Re.currentTarget,b=Re.clientX,I=te.state.width,q=Ee.current?-1:1,ve=te.state.id;ue(ve),T.setPointerCapture(Re.pointerId);let ee=I,Me=false,Ae=Ce=>{Me=true,ee=I+(Ce.clientX-b)*q,M?.(ve,ee,false);},$e=()=>{T.releasePointerCapture?.(Re.pointerId),T.removeEventListener("pointermove",Ae),T.removeEventListener("pointerup",$e),T.removeEventListener("pointercancel",$e),Me&&M?.(ve,ee,true),ue(null);};T.addEventListener("pointermove",Ae),T.addEventListener("pointerup",$e),T.addEventListener("pointercancel",$e);},Fe=(te,Re,T)=>{let b=te.def,I=te.state.id,q=m&&b.sortable!==false,ve=w&&b.filterable!==false,ee=I===datagridCore.GROUP_COLUMN_ID,Me=de.get(ee?G?.[0]??I:I),Ae=X&&b.groupable!==false||j&&b.reorderable!==false,$e=d?.id===I?d.side:null,Ce=U?.(I);return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-header-cell${Re}${Ce?` ${Ce}`:""}${q?" kanuni-datagrid-header-cell--sortable":""}${$e?` kanuni-datagrid-header-cell--drop-${$e}`:""}${ge===I?" kanuni-datagrid-header-cell--resizing":""}${b.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:T,role:"columnheader","aria-labelledby":`${Ne}-${encodeURIComponent(I)}`,"aria-sort":Me?Me.direction==="asc"?"ascending":"descending":"none","data-column-id":I,tabIndex:I===O?0:-1,onFocus:()=>be(I),draggable:Ae&&ge===null,onDragStart:ce=>{ce.dataTransfer.setData("text/x-kanuni-column",I),ce.dataTransfer.effectAllowed="move",V.current=I,Ee.current=getComputedStyle(ce.currentTarget).direction==="rtl";},onDragEnd:()=>{V.current=null,Le(null);},onDragOver:j?ce=>et(I,ce):void 0,onDragLeave:j?()=>Le(ce=>ce?.id===I?null:ce):void 0,onDrop:j?ce=>Q(I,ce):void 0,onContextMenu:y&&!datagridCore.isChromeColumn(I)?ce=>y(I,ce):void 0,onClick:q||D?ce=>{D?.(I,ce)||q&&f(I,ce.shiftKey);}:void 0,onKeyDown:ce=>{ce.key==="ArrowRight"?(ce.preventDefault(),oe(1)):ce.key==="ArrowLeft"?(ce.preventDefault(),oe(-1)):ce.key==="Home"?(ce.preventDefault(),ie(Oe[0])):ce.key==="End"?(ce.preventDefault(),ie(Oe[Oe.length-1])):ve&&ce.altKey&&ce.key==="ArrowDown"?(ce.preventDefault(),h?.(I,ce.currentTarget)):q&&(ce.key==="Enter"||ce.key===" ")&&(ce.preventDefault(),f(I,ce.shiftKey));},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-header-label",id:`${Ne}-${encodeURIComponent(I)}`,children:re?.(I)??am(b,I)}),Me&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:Me.direction==="asc"?"\u25B2":"\u25BC"}),Me&&u.length>1&&!ee&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:Me.order+1}),w&&b.filterable!==false&&jsxRuntime.jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${fe.has(I)?" kanuni-datagrid-filter-button--active":""}${F==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":datagridCore.fillText(A.filterColumnAria,{column:b.headerName??I}),"aria-haspopup":"dialog","data-filter-button":I,tabIndex:-1,onClick:ce=>{ce.stopPropagation(),h?.(I,ce.currentTarget);},children:jsxRuntime.jsx(rm,{})}),R&&b.resizable!==false&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":I,role:"presentation",onPointerDown:ce=>qe(te,ce),onDoubleClick:ce=>{ce.stopPropagation(),g?.(I);},onClick:ce=>ce.stopPropagation()})]},I)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/eo)+1,style:{width:n.totalWidth+Z.total,top:e||void 0},children:[S&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell",role:"presentation","aria-hidden":"true",style:{width:Qn,insetInlineStart:Z.inset("statusColumn")}}),K&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":Z.colIndex("rowNumberColumn"),"aria-label":A.rowNumberAria,style:{width:Jn,insetInlineStart:Z.inset("rowNumberColumn")},children:L??""}),k&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":Z.colIndex("detailColumn"),"aria-label":A.detailsAria,style:{width:ir,insetInlineStart:Z.inset("detailColumn")}}),E&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":Z.colIndex("checkboxColumn"),style:{width:ar,insetInlineStart:Z.inset("checkboxColumn")},children:jsxRuntime.jsx("input",{type:"checkbox",checked:P==="all",ref:te=>{te&&(te.indeterminate=P==="some");},"aria-label":A.selectAllRows,disabled:N,onChange:()=>_?.()})}),n.left.map((te,Re)=>Fe(te,` kanuni-datagrid-header-cell--pinned${Re===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:te.state.width,insetInlineStart:n.leftOffsets[Re]+Z.total})),i>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:i}}),r.map(te=>{let Re=t?.get(te.state.id);return Re===void 0?Fe(te,"",{width:te.state.width}):Fe(te," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:te.state.width,insetInlineStart:Re+Z.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((te,Re)=>Fe(te,` kanuni-datagrid-header-cell--pinned${Re===0?" kanuni-datagrid-pin-edge-right":""}`,{width:te.state.width,insetInlineEnd:n.rightOffsets[Re]}))]})}var _a=react.memo(im);function Wa(e,t,n=[]){let r=null,i=new Set,a=u=>{if(i.has(u)||(i.add(u),t.isPending(u)))return;let m=t.textFor(u);if(m===null)return;let f=e[u]??"";f!==m&&(f===""&&m===""||(r??={...e},r[u]=m));};for(let u of Object.keys(e))a(u);for(let u of n)a(u);return r??e}function dm({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:r,leadingSpacer:i,trailingSpacer:a,values:u,checkboxColumn:m=false,detailColumn:f=false,statusColumn:w=false,rowNumberColumn:C=false,placeholder:h,onChange:F,onCommit:E,periodSuggestions:k,periodListId:S,operators:K,onOperatorChange:L,renderCustom:P}){let N=Se(),_=qt({statusColumn:w,rowNumberColumn:C,detailColumn:f,checkboxColumn:m}),X=h??N.filterPlaceholder,j=(W,R,M)=>{let g=W.state.id,y=W.def.filterable!==false,G=y?P?.(g):void 0,D=y&&G===void 0?datagridCore.customFilterOperators(W.def):[],U=D.some(A=>A.id===K?.[g])?K[g]:"",re=D.find(A=>A.id===U)?.operandType==="none";return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-cell${R}`,role:"gridcell",style:M,"data-column-id":g,children:[y&&G!==void 0&&G,y&&G===void 0&&D.length>0&&jsxRuntime.jsxs("select",{className:"kanuni-datagrid-filter-operator",value:U,"aria-label":datagridCore.fillText(N.filterOperatorAria,{column:W.def.headerName??g}),"data-filter-operator-for":g,onChange:A=>L?.(g,A.target.value),children:[jsxRuntime.jsx("option",{value:"",children:N.filterOperatorDefault}),D.map(A=>jsxRuntime.jsx("option",{value:A.id,children:A.label},A.id))]}),y&&G===void 0&&jsxRuntime.jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:u[g]??"",placeholder:X,"aria-label":datagridCore.fillText(N.filterColumnAria,{column:W.def.headerName??g}),"data-filter-for":g,disabled:re||void 0,list:W.def.dataType==="date"&&S&&U===""?S:void 0,onChange:A=>F(g,A.target.value),onKeyDown:A=>{A.key==="Enter"&&E?.(g,A.target.value);},onBlur:A=>E?.(g,A.target.value)})]},g)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+_.total,"--dg-band-offset":`${e}px`},children:[S&&k&&k.length>0&&jsxRuntime.jsx("datalist",{id:S,children:k.map(W=>jsxRuntime.jsx("option",{value:W},W))}),_.total>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",role:"gridcell",style:{width:_.total,insetInlineStart:0}}),n.left.map((W,R)=>j(W,` kanuni-datagrid-filter-cell--pinned${R===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:W.state.width,insetInlineStart:n.leftOffsets[R]+_.total})),i>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:i}}),r.map(W=>{let R=t?.get(W.state.id);return R===void 0?j(W,"",{width:W.state.width}):j(W," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:W.state.width,insetInlineStart:R+_.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((W,R)=>j(W,` kanuni-datagrid-filter-cell--pinned${R===0?" kanuni-datagrid-pin-edge-right":""}`,{width:W.state.width,insetInlineEnd:n.rightOffsets[R]}))]})}var Va=react.memo(dm);function vt({children:e,dark:t=false,kind:n="popup"}){let[r,i]=react.useState(null),a=Bt(),u=Zt();return react.useEffect(()=>{let m=document.createElement("div");return m.className=`kanuni-datagrid-root kanuni-datagrid-portal${t?" kanuni-datagrid-dark":""}${a}`,m.setAttribute(datagridCore.PORTAL_ATTRIBUTE,n),m.style.pointerEvents="auto",u().appendChild(m),i(m),()=>{m.remove();}},[t,a,u,n]),r?reactDom.createPortal(e,r):null}function Nn({anchor:e,onClose:t,margin:n=8,autoFocus:r=false}){let i=react.useRef(null),[a,u]=react.useState(e),m=react.useCallback(f=>{if(i.current=f,!f)return;let w=f.getBoundingClientRect(),C=e.top+w.height+n>window.innerHeight,h=e.top-w.height-n*2,F=C&&h>n?h:e.top;u({left:Math.max(n,Math.min(e.left,window.innerWidth-w.width-n)),top:Math.max(n,Math.min(F,window.innerHeight-w.height-n))}),r&&f.focus();},[e.left,e.top,n,r]);return react.useEffect(()=>{let f=h=>{let F=i.current;F&&!F.contains(h.target)&&t();},w=h=>{h.key==="Escape"&&t();},C=h=>{let F=i.current,E=h.target;F&&E instanceof Node&&F.contains(E)||t();};return document.addEventListener("mousedown",f),document.addEventListener("keydown",w),window.addEventListener("scroll",C,true),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("keydown",w),window.removeEventListener("scroll",C,true);}},[t]),{position:a,ref:m,elementRef:i}}var rn=25,ko=new Map,fs=200,km=200,gs=8;function Tm(e){let t=Se();return react.useMemo(()=>({search:t.search,selectAll:t.filterSelectAll,clear:t.clear,apply:t.apply,cancel:t.cancel,blank:t.filterBlank,custom:t.filterCustom,popupAria:t.filterPopupAria,nonBlank:t.filterNonBlank,emptyText:t.filterEmptyText,space:t.filterSpace,spaces:t.filterSpaces,noMatch:t.filterNoMatch,loading:t.filterLoading,truncated:t.filterTruncated,...e}),[t,e])}var vm=react.memo(function({itemKey:t,label:n,display:r,index:i,active:a,checked:u,onToggle:m,onFocus:f}){return jsxRuntime.jsxs("div",{role:"option","aria-selected":u,tabIndex:a?0:-1,className:`kanuni-datagrid-filter-item${a?" kanuni-datagrid-filter-item--active":""}`,"data-value":n,"data-index":i,onFocus:()=>f(i),onClick:()=>m(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:u,tabIndex:-1}),jsxRuntime.jsx("span",{children:r})]})});function xm(e,t){return e.nonBlank?t.nonBlank:ws({value:e.blank?null:e.value,label:e.label},t)}function ws(e,t){return datagridCore.distinctDisplayText(e,{filterBlank:t.blank,filterEmptyText:t.emptyText,filterSpace:t.space,filterSpaces:t.spaces})}var ja={value:void 0,label:""},dr=e=>e.value===null||e.value===void 0;function Em({index:e,row:t,active:n,checked:r,text:i,onToggle:a,onFocus:u}){return t?jsxRuntime.jsxs("div",{role:"option","aria-selected":r,tabIndex:n?0:-1,className:`kanuni-datagrid-filter-item${n?" kanuni-datagrid-filter-item--active":""}`,"data-value":t.label,"data-index":e,onFocus:()=>u(e),onClick:()=>a(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:r,tabIndex:-1}),jsxRuntime.jsx("span",{children:xm(t,i)})]}):jsxRuntime.jsx("div",{role:"option","aria-selected":false,"aria-busy":"true",className:"kanuni-datagrid-filter-item kanuni-datagrid-filter-item--pending","data-index":e,children:jsxRuntime.jsx("span",{"aria-hidden":"true",children:"\u2026"})})}function Ja({gridId:e,columnId:t,headerLabel:n,entries:r,initialSelected:i,anchor:a,loading:u=false,dark:m,onApply:f,onClose:w,onCustom:C,truncated:h=false,onSearch:F,pager:E,labels:k}){let S=Tm(k),[,K]=react.useReducer(b=>b+1,0);react.useEffect(()=>E?E.subscribe(K):void 0,[E]);let[L,P]=react.useState(""),[N,_]=react.useState(0),[X,j]=react.useState(()=>new Set(i??r.map(datagridCore.distinctEntryKey))),[W,R]=react.useState(false),M=react.useRef(null),g=react.useRef(null),[y,G]=react.useState(0),[D,U]=react.useState(240),re=`${e??""}:${t}`,A=ko.get(re),Z=react.useRef(A?.scrollTop??null),[de,fe]=react.useState(A&&A.width&&A.height?{width:A.width,height:A.height}:null),Oe=react.useCallback(b=>{M.current=b,b?.focus();},[]),Te=react.useRef(null),be=react.useMemo(()=>{let b=datagridCore.foldText(L.trim());if(!b||h)return r;let I=Te.current;(!I||I.entries!==r)&&(I={entries:r,lowered:r.map(ve=>datagridCore.foldText(ve.label)),needle:"",result:[]},Te.current=I);let q=I.needle!==""&&b.includes(I.needle)?I.result.filter(ve=>datagridCore.foldText(ve.label).includes(b)):r.filter((ve,ee)=>I.lowered[ee].includes(b));return I.needle=b,I.result=q,q},[r,L,h]);react.useEffect(()=>{if(!F)return;let b=setTimeout(()=>F(L),150);return ()=>clearTimeout(b)},[L,F]),react.useEffect(()=>{if(!E)return;let b=setTimeout(()=>{if(E.getSearch()===L.trim())return;E.setSearch(L);let I=g.current;I&&(I.scrollTop=0),G(0),_(0);},150);return ()=>clearTimeout(b)},[E,L]),react.useEffect(()=>{W||!i||j(new Set(i));},[i,W]),react.useEffect(()=>{W||i||j(new Set(r.map(datagridCore.distinctEntryKey)));},[r,W,i]);let Ne=react.useCallback(b=>{g.current=b,b&&U(b.clientHeight||240);},[]);react.useEffect(()=>{let b=g.current;!b||Z.current===null||u||b.scrollHeight<=b.clientHeight||(b.scrollTop=Z.current,Z.current=null,G(b.scrollTop));});let O=react.useMemo(()=>{if(L.trim()!=="")return be;let b=be.findIndex(dr);return b<0?be:[...be.slice(0,b+1),ja,...be.slice(b+1)]},[be,L]),ie=react.useMemo(()=>{let b=O.length,I=Math.max(0,Math.floor(y/rn)-gs),q=Math.ceil(D/rn)+gs*2,ve=Math.min(I,Math.max(0,b-1)),ee=Math.min(b,ve+q);return {start:ve,end:ee,count:b,rows:O.slice(ve,ee)}},[O,y,D]);react.useEffect(()=>{let b=g.current;E&&b&&U(b.clientHeight||240);},[E,u,E?.isLoading(),E?.getRowCount()]);let oe=E?E.getWindow(y,Math.max(D,150)):null,V=oe?.start??0,Ee=oe?.end??0;react.useEffect(()=>{E&&E.ensure(V,Ee);},[E,V,Ee,y]);let d=E?E.getRowCount():O.length,Le=E?!!oe&&N>=oe.start&&N<oe.end&&!!E.getRow(N):N>=ie.start&&N<ie.end,He=u||(E?E.isLoading():false),Ge=Nn({anchor:a,onClose:w}),[Ue,et]=react.useState(null),Q=(Ue??Ge.position.left)+(de?.width??260)+48<window.innerWidth?"right":"left",ge=b=>{b.preventDefault(),b.stopPropagation();let I=Ge.elementRef.current;if(!I)return;let q=I.getBoundingClientRect(),ve=Q,ee={x:b.clientX,y:b.clientY,w:q.width,h:q.height,left:q.left},Me=null,Ae=Ce=>{let ce=Ce.clientX-ee.x,Lt=Ce.clientY-ee.y,l=window.innerHeight-q.top-12,nt=Math.min(l,Math.max(km,ee.h+Lt));if(ve==="right"){let xt=window.innerWidth-ee.left-12;Me={width:Math.min(xt,Math.max(fs,ee.w+ce)),height:nt},fe(Me);}else {let xt=ee.left+ee.w,We=xt-12,Rt=Math.min(We,Math.max(fs,ee.w-ce));Me={width:Rt,height:nt},fe(Me),et(xt-Rt);}g.current&&U(g.current.clientHeight);},$e=()=>{if(window.removeEventListener("pointermove",Ae),window.removeEventListener("pointerup",$e),Me){let Ce=ko.get(re);ko.set(re,{scrollTop:Ce?.scrollTop??g.current?.scrollTop??0,width:Math.round(Me.width),height:Math.round(Me.height)});}};window.addEventListener("pointermove",Ae),window.addEventListener("pointerup",$e);},ue=react.useCallback(b=>{R(true),j(I=>{let q=new Set(I);if(b===datagridCore.NONBLANK_KEY){let ve=datagridCore.distinctNonBlankTicked(r,I);for(let ee of r)dr(ee)&&!ve?q.delete(datagridCore.BLANK_KEY):q.add(datagridCore.distinctEntryKey(ee));return q}return q.has(b)?q.delete(b):q.add(b),q});},[r]),qe=react.useCallback(b=>_(b),[]),Fe=()=>{if(He)return;if(E){f(E.buildFilter(t));return}if(X.size===r.length){f(null);return}let b=r.filter(ee=>X.has(datagridCore.distinctEntryKey(ee))),I=b.some(dr),q=b.filter(ee=>!dr(ee)),ve;datagridCore.distinctNonBlankTicked(r,X)?ve={columnId:t,operator:"isnotnull"}:q.length===0?ve={columnId:t,operator:"isnull"}:I?ve={logic:"or",nodes:[{columnId:t,operator:"in",value:q.map(ee=>ee.value)},{columnId:t,operator:"isnull"}]}:ve={columnId:t,operator:"in",value:q.map(ee=>ee.value)},f(ve);},te=b=>{let I=Math.max(0,Math.min(d-1,b));if(_(I),E){let Me=g.current;Me&&(b<=0||b>=d-1)&&(Me.scrollTop=b<=0?0:Me.scrollHeight),requestAnimationFrame(()=>{let Ae=Ge.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${I}"]`);Ae?.focus(),Ae?.scrollIntoView?.({block:"nearest"});});return}let q=g.current;if(q){let Me=I*rn,Ae=q.clientHeight||240,$e=q.scrollTop;Me<$e?$e=Me:Me+rn>$e+Ae&&($e=Me+rn-Ae),$e!==q.scrollTop&&(q.scrollTop=$e),G($e);}let ve=()=>Ge.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${I}"]`),ee=ve();ee?(ee.focus(),ee.scrollIntoView?.({block:"nearest"})):requestAnimationFrame(()=>ve()?.focus());},Re=b=>b.key.length===1&&!b.ctrlKey&&!b.metaKey&&!b.altKey,T=b=>{let I=b.target===M.current;if(!((b.key==="Enter"||b.key===" ")&&b.target instanceof HTMLButtonElement)){if(b.key==="Tab"){let q=Ge.elementRef.current,ve=q?Array.from(q.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')):[],ee=ve[0],Me=ve[ve.length-1],Ae=document.activeElement;ee&&Me&&(!b.shiftKey&&(Ae===Me||Ae===q)?(b.preventDefault(),ee.focus()):b.shiftKey&&(Ae===ee||Ae===q)&&(b.preventDefault(),Me.focus()));return}if(b.key==="Backspace"&&!I){b.preventDefault(),M.current?.focus(),P(q=>q.slice(0,-1)),_(0);return}if(b.key==="ArrowDown"){b.preventDefault(),te(I?0:N+1);return}if(b.key==="ArrowUp"){b.preventDefault(),te(I?E?0:O.length-1:N-1);return}if(!I&&(b.key==="Home"||b.key==="End")){b.preventDefault(),te(b.key==="Home"?0:d-1);return}if(b.key===" "&&!I){if(b.preventDefault(),E){let ve=E.getRow(N);ve&&E.toggle(ve);return}let q=O[N];q&&ue(q===ja?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(q));return}if(b.key==="Enter"){b.preventDefault(),Fe();return}!I&&Re(b)&&b.key!==" "&&(b.preventDefault(),M.current?.focus(),P(q=>q+b.key),_(0));}};return jsxRuntime.jsx(vt,{dark:m,children:jsxRuntime.jsxs("div",{ref:Ge.ref,className:"kanuni-datagrid-filter-popup",style:{left:Ue??Ge.position.left,top:Ge.position.top,...de?{width:de.width,height:de.height,maxHeight:"none"}:null},role:"dialog","aria-label":S.popupAria.replace("{column}",n),tabIndex:-1,onKeyDown:T,children:[jsxRuntime.jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${Q}`,"data-testid":"dg-filter-resize",onPointerDown:ge}),jsxRuntime.jsx("input",{ref:Oe,className:"kanuni-datagrid-filter-search",type:"search",placeholder:S.search,value:L,onChange:b=>{P(b.target.value),_(0);},"data-testid":"dg-filter-search"}),!E&&h&&jsxRuntime.jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:S.truncated}),C&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-custom","data-testid":"dg-filter-custom",onClick:C,children:S.custom}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(E)return E.selectAll();R(true),L.trim()===""?j(new Set(r.map(datagridCore.distinctEntryKey))):j(b=>{let I=new Set(b);for(let q of be)I.add(datagridCore.distinctEntryKey(q));return I});},children:S.selectAll}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(E)return E.clear();R(true),L.trim()===""?j(new Set):j(b=>{let I=new Set(b);for(let q of be)I.delete(datagridCore.distinctEntryKey(q));return I});},children:S.clear})]}),jsxRuntime.jsxs("div",{ref:Ne,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true",tabIndex:Le||d===0?-1:0,"aria-busy":He||void 0,"aria-setsize":d,onScroll:b=>{let I=b.target.scrollTop;G(I),Z.current=null;let q=ko.get(re);ko.set(re,{...q,scrollTop:I});},children:[He&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:S.loading}),!He&&d===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:S.noMatch}),E&&oe&&d>0&&jsxRuntime.jsx("div",{style:{height:oe.totalHeight,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${oe.offsetY}px)`},children:Array.from({length:oe.end-oe.start},(b,I)=>{let q=oe.start+I,ve=E.getRow(q);return jsxRuntime.jsx(Em,{index:q,row:ve,active:q===N,checked:ve?E.isChecked(ve):false,text:S,onToggle:ee=>E.toggle(ee),onFocus:qe},q)})})}),!E&&ie.count>0&&jsxRuntime.jsx("div",{style:{height:O.length*rn,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${ie.start*rn}px)`},children:ie.rows.map((b,I)=>{let q=ie.start+I,ve=b===ja,ee=ve?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(b);return jsxRuntime.jsx(vm,{itemKey:ee,label:b.label,display:ve?S.nonBlank:ws(b,S),index:q,active:q===N,checked:ve?datagridCore.distinctNonBlankTicked(r,X):X.has(ee),onToggle:ue,onFocus:qe},ee)})})})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:w,children:S.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:Fe,disabled:He,"data-testid":"dg-filter-apply",children:S.apply})]})]})})}function Qa(e,t,n){return n==="row"?e.getColumnFilter(t,datagridCore.FILTER_PART_ROW):e.getColumnFilter(t,datagridCore.FILTER_PART_SET)??e.getColumnFilter(t,datagridCore.FILTER_PART_DEFAULT)}function ei({controller:e,columnId:t,surface:n,close:r}){let[i,a]=react.useState(()=>Qa(e,t,n));react.useEffect(()=>(a(Qa(e,t,n)),e.events.on("filterChanged",()=>{a(Qa(e,t,n));})),[e,t,n]);let u=react.useCallback(w=>{e.setColumnFilter(t,w,n==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET);},[e,t,n]),m=react.useCallback(()=>{},[]),f=e.getColumnModel().getDef(t);return f?.renderFilter?jsxRuntime.jsx(jsxRuntime.Fragment,{children:f.renderFilter({columnId:t,column:f,surface:n,value:i,setValue:u,close:r??m})}):null}var Mm='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function hs({controller:e,columnId:t,headerLabel:n,anchor:r,dark:i,onClose:a}){let u=Se(),m=Nn({anchor:r,onClose:a}),f=react.useRef(false),w=m.ref,C=react.useCallback(h=>{w(h),!(!h||f.current)&&(f.current=true,(h.querySelector(Mm)??h).focus({preventScroll:true}));},[w]);return jsxRuntime.jsx(vt,{dark:i,children:jsxRuntime.jsx("div",{ref:C,tabIndex:-1,className:"kanuni-datagrid-filter-popup kanuni-datagrid-filter-popup--custom",style:{left:m.position.left,top:m.position.top},role:"dialog","aria-label":u.filterPopupAria.replace("{column}",n),"data-column-id":t,children:jsxRuntime.jsx(ei,{controller:e,columnId:t,surface:"popup",close:a})})})}var ti="text/x-kanuni-column";function Fm({columns:e,levels:t,onSetLevels:n,maxLevels:r=1,onExpandAll:i,onCollapseAll:a,emptyText:u}){let m=Se(),f=u??m.groupPanelHint,[w,C]=react.useState(false),h=react.useRef(null),[F,E]=react.useState(null),k=R=>e.find(g=>g.state.id===R)?.def.headerName??R,S=R=>{if(!R||t.includes(R))return;let M=t.length>=r?t.slice(0,r-1):[...t];n([...M,R]);},K=R=>n(t.filter(M=>M!==R)),L=(R,M)=>{let g=t.filter(G=>G!==R),y=Math.max(0,Math.min(g.length,M));n([...g.slice(0,y),R,...g.slice(y)]);},P=(R,M,g)=>{if(R===M)return;let G=t.filter(D=>D!==R).indexOf(M);G<0||L(R,g==="before"?G:G+1);},N=(R,M)=>{let g=R+M;g<0||g>=t.length||P(t[R],t[g],M<0?"before":"after");},_=(R,M)=>R<M.top+M.height/2?"before":"after",X=(R,M)=>{M.preventDefault(),M.stopPropagation();let g=_(M.clientY,M.currentTarget.getBoundingClientRect());E(null),C(false);let y=h.current;if(h.current=null,y){P(y,t[R],g);return}let G=M.dataTransfer.getData(ti);if(!G||t.includes(G))return;if(t.length>=r){S(G);return}let D=g==="before"?R:R+1;n([...t.slice(0,D),G,...t.slice(D)]);},j=(R,M,g)=>{let y=g.ctrlKey||g.metaKey;y&&(g.key==="ArrowUp"||g.key==="ArrowLeft")?(g.preventDefault(),N(R,-1)):y&&(g.key==="ArrowDown"||g.key==="ArrowRight")?(g.preventDefault(),N(R,1)):(g.key==="Delete"||g.key==="Backspace")&&(g.preventDefault(),K(M));},W=e.filter(R=>!t.includes(R.state.id));return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-group-panel${w?" kanuni-datagrid-group-panel--over":""}`,onDragOver:R=>{R.preventDefault(),C(true);},onDragLeave:()=>C(false),onDrop:R=>{if(R.preventDefault(),C(false),E(null),h.current){h.current=null;return}S(R.dataTransfer.getData(ti));},children:[t.length>0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((R,M)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-group-level${F?.index===M?` kanuni-datagrid-group-level--drop-${F.side}`:""}`,style:{"--dg-group-level":M},"data-group-level":M,onDragOver:g=>{g.preventDefault(),g.stopPropagation();let y=_(g.clientY,g.currentTarget.getBoundingClientRect());E(G=>G?.index===M&&G.side===y?G:{index:M,side:y});},onDragLeave:()=>E(g=>g?.index===M?null:g),onDrop:g=>X(M,g),children:jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:r>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${datagridCore.fillText(m.groupLevelAria,{n:M+1})}: ${k(R)}`,onDragStart:g=>{h.current=R,g.dataTransfer.effectAllowed="move",g.dataTransfer.setData(ti,R);},onDragEnd:()=>{h.current=null,E(null);},onKeyDown:g=>j(M,R,g),children:[r>1&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-chip-level",children:M+1}),k(R),jsxRuntime.jsx("button",{type:"button","aria-label":datagridCore.fillText(m.groupRemoveAria,{column:k(R)}),onClick:()=>K(R),children:"\xD7"})]})},R))}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-panel-hint",children:f}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-group-panel-actions",children:[t.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:i,children:m.groupExpandAll}),jsxRuntime.jsx("button",{type:"button",onClick:a,children:m.groupCollapseAll})]}),jsxRuntime.jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-sr-only",children:r>1?m.groupAddLevel:m.groupByColumn}),r>1?jsxRuntime.jsxs("select",{value:"",disabled:W.length===0,onChange:R=>S(R.target.value),children:[jsxRuntime.jsx("option",{value:"",children:m.groupAddLevelButton}),W.map(R=>jsxRuntime.jsx("option",{value:R.state.id,children:R.def.headerName??R.state.id},R.state.id))]}):jsxRuntime.jsxs("select",{value:t[0]??"",onChange:R=>n(R.target.value?[R.target.value]:[]),children:[jsxRuntime.jsx("option",{value:"",children:m.groupNoGrouping}),e.map(R=>jsxRuntime.jsx("option",{value:R.state.id,children:R.def.headerName??R.state.id},R.state.id))]})]})]})]})}var ni=react.memo(Fm);function Bm({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:r,defs:i,values:a,checkboxColumn:u=false,detailColumn:m=false,statusColumn:f=false,rowNumberColumn:w=false,onPickSummary:C,emptyHint:h="",position:F="bottom",bandOffset:E=0,headerRowsBetween:k=0}){let S=Se(),K=datagridCore.summaryTypeLabels(S),L=new Map(i.map(_=>[_.columnId,_])),P=qt({statusColumn:f,rowNumberColumn:w,detailColumn:m,checkboxColumn:u}).total,N=(_,X,j)=>{let W=_.state.id,R=L.get(W),M=R?a[datagridCore.summaryKey(R.columnId,R.type)]:void 0,g=_.def.dataType==="number"||_.def.dataType==="bigint",y=datagridCore.isChromeColumn(W)?void 0:C;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-footer-cell${X}${g?" kanuni-datagrid-footer-cell--number":""}${R?" kanuni-datagrid-footer-cell--active":""}`,style:j,role:"gridcell","data-column-id":W,"data-summary-type":R?.type??"",title:R?`${datagridCore.summaryLabel(R,K)} \u2014 ${_.def.headerName??W}`:void 0,onContextMenu:y?G=>y(W,G):void 0,onClick:y?G=>y(W,G):void 0,children:R?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-value",children:datagridCore.formatSummaryValue(R,M,_.def)}):y?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-hint",children:h}):null},W)};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${F}`,role:"row","aria-label":S.columnTotalsAria,style:{width:e.totalWidth+P,"--dg-band-offset":`${E}px`,"--dg-pinned-gap":String(k)},children:[P>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:P,insetInlineStart:0}}),e.left.map((_,X)=>N(_,` kanuni-datagrid-footer-cell--pinned${X===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:_.state.width,insetInlineStart:e.leftOffsets[X]+P})),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map(_=>N(_,"",{width:_.state.width})),r>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:r}}),e.right.map((_,X)=>N(_,` kanuni-datagrid-footer-cell--pinned${X===0?" kanuni-datagrid-pin-edge-right":""}`,{width:_.state.width,insetInlineEnd:e.rightOffsets[X]}))]})}var mr=react.memo(Bm);function Wm(e,t){return `__dg_pinned_${e}_${t}`}function Vm({gridId:e,side:t,rows:n,rowKeys:r,onUserRowContextMenu:i,layout:a,columnModel:u,centerColumns:m,centerIndices:f,stickyInsets:w,leadingSpacer:C,trailingSpacer:h,checkboxColumn:F=false,detailColumn:E=false,statusColumn:k=false,rowNumberColumn:S=false,rowHeight:K,bandOffset:L=0,headerRowsBetween:P,ariaRowBase:N,rowClassFor:_}){return n.length===0?null:jsxRuntime.jsx("div",{className:`kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--${t}`,role:"rowgroup",style:{width:a.totalWidth||"100%","--dg-band-offset":`${L}px`,"--dg-pinned-gap":String(P)},children:n.map((X,j)=>{let W=r?.[j]??null,R={kind:"data",key:Wm(t,j),sourceIndex:-1,data:X};return jsxRuntime.jsx(Zn,{gridId:e,node:R,index:j,layout:a,columnModel:u,centerColumns:m,centerIndices:f,stickyInsets:w,leadingSpacer:C,trailingSpacer:h,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:F,detailColumn:E,statusColumn:k,rowNumberColumn:S,rowNumber:null,headerRowCount:N,height:K,rowClass:_?.(R,j,W),onRowContextMenu:W!==null&&i?(M,g,y)=>i(W,X,y):void 0},R.key)})})}var pr=react.memo(Vm);function Ts({controller:e,renderRow:t,width:n,bandOffset:r,headerRowsBetween:i,belowPinned:a}){let[,u]=react.useReducer(w=>w+1,0);react.useEffect(()=>{let w=[e.events.on("bodyScroll",u),e.events.on("contentReady",u),e.events.on("viewportChanged",u)];return ()=>w.forEach(C=>C())},[e]);let m=react.useRef(null);react.useLayoutEffect(()=>{m.current?.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(w=>w.setAttribute("tabindex","-1"));});let f=e.getStickyGroupRows();return f.length===0?null:jsxRuntime.jsx("div",{ref:m,className:"kanuni-datagrid-sticky-groups","aria-hidden":"true",style:{width:n||"100%","--dg-band-offset":`${r}px`,"--dg-pinned-gap":String(i),"--dg-sticky-below":`${a}px`},children:f.map((w,C)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-sticky-group${C===f.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:w.offset,height:w.height,zIndex:f.length-C},children:t(w.node,w.index,w.height)},String(w.node.key)))})}function oi({name:e,size:t=14}){return jsxRuntime.jsx("svg",{width:t,height:t,viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",className:"kanuni-datagrid-icon",children:jsxRuntime.jsx("path",{d:datagridCore.TOOLBAR_ICON_PATHS[e],fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}async function To(e,t){try{let n=t==="csv"?await e.exportToCsv():t==="excel"?await e.exportToExcel():t==="excel-selected"?await e.exportToExcel({selectedOnly:!0}):await e.exportToPdf();return datagridCore.downloadBlob(n.blob,n.fileName),{completed:!0}}catch(n){return n instanceof datagridCore.ExportAbortedError?{completed:false}:{completed:false,error:n instanceof Error?n.message:String(n)}}}function Pn({anchor:e,onClose:t,children:n,dark:r,className:i="",label:a,role:u="dialog"}){let m=Nn({anchor:e,onClose:t});return jsxRuntime.jsx(vt,{dark:r,children:jsxRuntime.jsx("div",{ref:m.ref,className:`kanuni-datagrid-filter-popup ${i}`.trim(),style:{left:m.position.left,top:m.position.top},role:u,"aria-label":a,children:n})})}function np(e){let t=Se();return react.useMemo(()=>({search:t.toolbarSearch,csv:t.exportCsv,excel:t.exportExcel,excelSelected:t.exportExcelSelected,pdf:t.exportPdf,columns:t.columns,exporting:t.exporting,exportMenu:t.exportMenu,...e}),[t,e])}var op=()=>jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:"M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})});function rp({controller:e,search:t=true,exportCsv:n=true,exportExcel:r=false,exportPdf:i=false,columnChooser:a=true,dark:u,onOpenColumnChooser:m,itemsBefore:f,itemsAfter:w,searchDebounce:C=200,searchOptions:h,exportMenu:F=true,labels:E}){let k=np(E),[S,K]=react.useState(()=>e.getSearchText()),L=react.useRef(false),[P,N]=react.useState(null),[_,X]=react.useState(null),[j,W]=react.useState(null),R=react.useId(),M=h?.debounce??C,g=h?.validate?.(S)??null,y=A=>{L.current=false;let Z=A.trim();e.getSearchText()!==Z&&e.setSearchText(Z);},G=()=>{g===null&&y(S);};react.useEffect(()=>{if(g!==null||!L.current)return;let A=setTimeout(()=>y(S),M);return ()=>clearTimeout(A)},[e,S,M,g]),react.useEffect(()=>{let A=Z=>{L.current||K(de=>de.trim()===Z?de:Z);};return A(e.getSearchText()),e.events.on("filterChanged",({searchText:Z})=>A(Z))},[e]);let[D,U]=react.useState(()=>e.getSelectedCount());react.useEffect(()=>(U(e.getSelectedCount()),e.events.on("selectionChanged",()=>U(e.getSelectedCount()))),[e]);let re=async A=>{N(A),W(null);let Z=await To(e,A);Z.error?W(Z.error):X(null),N(null);};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-toolbar",children:[f,t&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:h?.placeholder??k.search,value:S,maxLength:h?.maxLength,"aria-label":h?.ariaLabel??k.search,"aria-invalid":g!==null||void 0,"aria-describedby":g!==null?R:void 0,"data-testid":"dg-toolbar-search",onChange:A=>{L.current=true,K(A.target.value);},onBlur:()=>{h?.applyOnBlur!==false&&G();},onKeyDown:A=>{A.key==="Enter"&&h?.applyOnBlur!==false&&G();}}),t&&g!==null&&jsxRuntime.jsx("span",{id:R,className:"kanuni-datagrid-toolbar-search-error",role:"alert","data-testid":"dg-toolbar-search-error",children:g}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxRuntime.jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:A=>{let Z=A.currentTarget.getBoundingClientRect();m?.({left:Z.left,top:Z.bottom+2});},children:[jsxRuntime.jsx(oi,{name:"columns"}),jsxRuntime.jsx("span",{children:k.columns})]}),F&&(n&&e.canExportAll()||r||i)&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":k.exportMenu,title:k.exportMenu,disabled:P!==null,"data-testid":"dg-export-menu",onClick:A=>{let Z=A.currentTarget.getBoundingClientRect();X(_?null:{left:Z.right-190,top:Z.bottom+2});},children:P?jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsxRuntime.jsx(op,{})}),_&&jsxRuntime.jsxs(Pn,{anchor:_,onClose:()=>X(null),dark:u,role:"menu",label:k.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-csv",onClick:()=>re("csv"),children:P==="csv"?k.exporting:k.csv}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-excel",onClick:()=>re("excel"),children:P==="excel"?k.exporting:k.excel}),r&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null||D===0,"data-testid":"dg-export-excel-selected",onClick:()=>re("excel-selected"),children:P==="excel-selected"?k.exporting:k.excelSelected}),i&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:P!==null,"data-testid":"dg-export-pdf",onClick:()=>re("pdf"),children:P==="pdf"?k.exporting:k.pdf})]}),w,j&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:j})]})}var ii=react.memo(rp);var sp=8;function dp(e){let t=Se();return react.useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function li({controller:e,columns:t,anchor:n,onClose:r,dark:i,labels:a}){let u=dp(a),[m,f]=react.useState(""),w=e.getColumnModel(),C=K=>w.getDef(K.id)?.headerName??K.id,h=t.filter(K=>!datagridCore.isChromeColumn(K.id)),F=h.filter(K=>!w.getDef(K.id)?.hideInChooser),E=h.filter(K=>K.visible).length,k=m.trim().toLocaleLowerCase(),S=k?F.filter(K=>C(K).toLocaleLowerCase().includes(k)):F;return jsxRuntime.jsxs(Pn,{anchor:n,onClose:r,dark:i,label:u.title,className:"kanuni-datagrid-column-chooser",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-title",children:u.title}),F.length>sp&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:u.search,"aria-label":u.search,value:m,onChange:K=>f(K.target.value)}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-list",children:[S.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-empty",children:u.empty}),S.map(K=>{let L=K.visible&&E===1;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsxRuntime.jsx("input",{type:"checkbox",checked:K.visible,disabled:L,"data-column-toggle":K.id,onChange:()=>e.setColumnVisible(K.id,!K.visible)}),jsxRuntime.jsx("span",{children:C(K)})]},K.id)})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",disabled:E===F.length,onClick:()=>F.forEach(K=>!K.visible&&e.setColumnVisible(K.id,true)),children:u.showAll}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:r,children:u.ok})]})]})}function fp(e){let t=Se();return react.useMemo(()=>({first:t.pagerFirst,previous:t.pagerPrevious,next:t.pagerNext,last:t.pagerLast,page:t.pagerPage,of:t.pagerOf,rowsPerPage:t.pagerRowsPerPage,pageButton:t.pagerPageButton,navigation:t.pagerAria,...e}),[t,e])}function gp({page:e,pageCount:t,pageSize:n,pageSizes:r=[25,50,100,250],totalRows:i,onPage:a,onNext:u,onPrevious:m,onPageSize:f,pageButtons:w=false,maxPageButtons:C,labels:h}){let F=fp(h),E=e<=0,k=e>=t-1,S=i===0?0:e*n+1,K=Math.min(i,(e+1)*n),L=react.useRef(null),P=react.useRef(null);return react.useEffect(()=>{let N=P.current,_=L.current;if(!_||!(N instanceof HTMLButtonElement)||!N.disabled)return;let X=document.activeElement;if(X&&X!==document.body&&X!==N)return;let j=_.querySelector('[aria-current="page"]')??_.querySelector("button:not(:disabled)");j?.focus(),P.current=j;},[e,t]),jsxRuntime.jsxs("div",{ref:L,className:"kanuni-datagrid-pager",role:"navigation","aria-label":F.navigation,onFocus:N=>{P.current=N.target;},onBlur:N=>{let _=N.relatedTarget;_&&!L.current?.contains(_)&&(P.current=null);},children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsxRuntime.jsx("span",{children:F.rowsPerPage}),jsxRuntime.jsx("select",{value:n,"data-testid":"dg-page-size",onChange:N=>f(Number(N.target.value)),children:r.map(N=>jsxRuntime.jsx("option",{value:N,children:N},N))})]}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[S.toLocaleString(),"\u2013",K.toLocaleString()," ",F.of," ",i.toLocaleString()]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsxRuntime.jsx("button",{type:"button","aria-label":F.first,disabled:E,onClick:()=>a(0),children:"\xAB"}),jsxRuntime.jsx("button",{type:"button","aria-label":F.previous,disabled:E,"data-testid":"dg-page-prev",onClick:m,children:"\u2039"}),w?datagridCore.pageButtonItems(e,t,C).map(N=>typeof N=="number"?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":datagridCore.fillText(F.pageButton,{n:String(N+1)}),"aria-current":N===e?"page":void 0,onClick:()=>a(N),children:N+1},N):jsxRuntime.jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},N)):jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[F.page," ",e+1," ",F.of," ",t]}),jsxRuntime.jsx("button",{type:"button","aria-label":F.next,disabled:k,"data-testid":"dg-page-next",onClick:u,children:"\u203A"}),jsxRuntime.jsx("button",{type:"button","aria-label":F.last,disabled:k,onClick:()=>a(t-1),children:"\xBB"})]})]})}var si=react.memo(gp);function kp(e){let t=Se();return react.useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function Tp({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:r,labels:i}){let a=kp(i),u=Se(),[,m]=react.useState(0);react.useEffect(()=>e.events.on("filterChanged",()=>m(h=>h+1)),[e]);let f=e.getEffectiveFilter(),w=e.isFilterEnabled(),C=datagridCore.describeFilter(f,e.getColumnModel(),{...r,labels:{...datagridCore.filterLabels(u),...r?.labels}});return !f&&!n?null:jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-panel${w?"":" kanuni-datagrid-filter-panel--suspended"}`,"data-testid":"dg-filter-panel",role:"group","aria-label":a.toggle,children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-clear",title:a.clear,"aria-label":a.clear,disabled:!f,"data-testid":"dg-filter-panel-clear",onClick:()=>{e.setFilter(null),e.clearColumnFilters(),e.setFilterEnabled(true);},children:"\xD7"}),jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-filter-panel-toggle",checked:w,disabled:!f,title:a.toggle,"aria-label":a.toggle,"data-testid":"dg-filter-panel-toggle",onChange:h=>e.setFilterEnabled(h.target.checked)}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:C??void 0,"data-testid":"dg-filter-panel-text",children:C??a.empty}),t&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-builder",title:a.builder,"aria-label":a.builder,"data-testid":"dg-filter-panel-builder",onClick:()=>t(),children:"\u25BE"})]})}var di=react.memo(Tp);var wr=e=>!e.separator&&!e.disabled;function yr({x:e,y:t,items:n,context:r,onClose:i,dark:a=false,label:u}){let m=Se(),f=react.useRef(null),[w,C]=react.useState({left:e,top:t}),[h,F]=react.useState(()=>n.findIndex(wr)),[E,k]=react.useState(null),[S,K]=react.useState(null),L=react.useRef(null),[P,N]=react.useState(null);react.useEffect(()=>K(null),[E]);let _=react.useCallback((y,G)=>{if(k(y),y===null||!G)return;let D=G.getBoundingClientRect();N({left:D.left,right:D.right,top:D.top});},[]),X=y=>f.current?.querySelector(`[data-item-index="${y}"]`)??null,j=react.useCallback(y=>{if(L.current=y,!y||!P)return;let G=8,D=y.getBoundingClientRect(),U=Math.max(G,Math.min(P.top-4,window.innerHeight-D.height-G)),A=P.right+D.width+G<=window.innerWidth?P.right:Math.max(G,P.left-D.width);K({left:A,top:U});},[P]),W=react.useCallback(y=>{if(f.current=y,!y)return;let G=y.getBoundingClientRect(),D=8;C({left:Math.max(D,Math.min(e,window.innerWidth-G.width-D)),top:Math.max(D,Math.min(t,window.innerHeight-G.height-D))}),y.focus();},[e,t]);react.useEffect(()=>{let y=D=>{let U=D.target;L.current?.contains(U)||f.current&&!f.current.contains(U)&&i();},G=()=>i();return document.addEventListener("mousedown",y),window.addEventListener("scroll",G,true),()=>{document.removeEventListener("mousedown",y),window.removeEventListener("scroll",G,true);}},[i]);let R=(y,G)=>{let D=n.length;for(let U=1;U<=D;U++){let re=(y+G*U+D*D)%D;if(wr(n[re]))return re}return y},M=y=>{let G=n[y];if(!(!G||!wr(G))){if(G.items?.length){_(y,X(y));return}G.onSelect?.(r),i();}},g=y=>{switch(y.key){case "ArrowDown":F(G=>R(G,1));break;case "ArrowUp":F(G=>R(G,-1));break;case "Home":F(n.findIndex(wr));break;case "End":F(R(0,-1));break;case "ArrowRight":if(n[h]?.items?.length)_(h,X(h));else return;break;case "ArrowLeft":if(E!==null)_(null);else return;break;case "Enter":case " ":M(h);break;case "Escape":i();break;case "Tab":i();return;default:return}y.preventDefault(),y.stopPropagation();};return jsxRuntime.jsxs(vt,{dark:a,children:[jsxRuntime.jsx("div",{ref:W,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":u??m.rowActions,tabIndex:-1,style:{left:w.left,top:w.top},onKeyDown:g,children:n.map((y,G)=>y.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},y.id??`sep-${G}`):jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${G===h?" kanuni-datagrid-menu-item--active":""}`,disabled:y.disabled,"data-item-index":G,"aria-haspopup":y.items?.length?"menu":void 0,"aria-expanded":y.items?.length?E===G:void 0,onMouseEnter:D=>{F(G),_(y.items?.length?G:null,D.currentTarget);},onClick:()=>M(G),children:[y.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:y.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:y.label}),y.shortcut&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:y.shortcut}),y.items?.length?jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},y.id??G))}),E!==null&&n[E]?.items?.length?jsxRuntime.jsx("div",{ref:j,className:"kanuni-datagrid-context-menu kanuni-datagrid-submenu",style:S?{left:S.left,top:S.top}:{left:0,top:0,visibility:"hidden"},role:"menu",children:n[E].items.map((y,G)=>y.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},y.id??`sub-sep-${G}`):jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:y.disabled,onClick:()=>{y.onSelect?.(r),i();},children:[y.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:y.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:y.label})]},y.id??G))}):null]})}var xp=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),mi=xp?"\u2318":"Ctrl+",Gs=`${mi}C`,Ep=`${mi}X`,Dp=`${mi}V`;function oo(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
|
|
3
|
-
`).length:0,()=>e.writeClipboard(n,"copy"));}function Sp(e){navigator.clipboard?.writeText(e).catch(()=>{});}function Gp(e){let t=e.getColumnModel();return e.getVisualColumnIds().some(n=>{let r=t.getDef(n)?.band;return typeof r=="string"?r!=="":Array.isArray(r)&&r.length>0})}function Np(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var Mp={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function pi(e,t,n,r,i){if(n===false)return [];let a=n===true||n===void 0?{}:n,u=[];a.copy!==false&&u.push({id:"__dg-copy",label:t.menuCopy,shortcut:Gs,onSelect:()=>oo(e)}),a.copyWithHeaders!==false&&u.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>oo(e,{includeHeaders:true})}),a.copyWithGroupHeaders!==false&&Gp(e)&&u.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>oo(e,{includeGroupHeaders:true})});let m=Np(a.export).filter(f=>f!=="csv"||e.canExportAll());if(m.length>0){let f=e.getSelectedCount()===0;u.push({id:"__dg-export",label:t.menuExport,items:m.map(w=>({id:`__dg-export-${w}`,label:t[Mp[w]],disabled:w==="excel-selected"&&f,onSelect:()=>{To(e,w).then(C=>{C.error&&i?.(C.error);});}}))});}return u.length>0&&r&&u.unshift({id:"__dg-sep-builtin",separator:true}),u}function fi(e,t,n,r){if(!e.isRowPinningEnabled()||!e.canPinRow(n))return [];let i=e.getRowPinSide(n),a=[];return i!=="top"&&a.push({id:"__dg-pin-top",label:t.pinRowTop,onSelect:()=>e.pinRow(n,"top")}),i!=="bottom"&&a.push({id:"__dg-pin-bottom",label:t.pinRowBottom,onSelect:()=>e.pinRow(n,"bottom")}),i&&a.push({id:"__dg-unpin",label:t.unpinRow,onSelect:()=>e.pinRow(n,null)}),r?[{id:"__dg-sep-pin",separator:true},...a]:a}function wi({anchor:e,value:t,dark:n,onCommit:r,onCancel:i}){let a=Se(),[u,m]=react.useState(t),f=react.useRef(null);react.useEffect(()=>{let C=f.current;C&&(C.focus(),C.select());},[]);let w=()=>{let C=u.trim();r(C===""?null:C);};return jsxRuntime.jsxs(Pn,{anchor:e,onClose:i,dark:n,label:a.noteEditorAria,className:"kanuni-datagrid-note-editor",children:[jsxRuntime.jsx("textarea",{ref:f,className:"kanuni-datagrid-note-input",value:u,rows:4,"aria-label":a.noteEditorAria,placeholder:a.notePlaceholder,onChange:C=>m(C.target.value),onKeyDown:C=>{C.key==="Enter"&&(C.ctrlKey||C.metaKey)&&(C.preventDefault(),w()),C.key==="Escape"&&(C.preventDefault(),i());}}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-note-actions",children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-note-cancel",onClick:i,children:a.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-note-save",onClick:w,children:a.save})]})]})}function Kp(e){let t=Se();return react.useMemo(()=>({busy:t.busy,loading:t.busyLoading,encoding:t.busyEncoding,filtering:t.busyFiltering,sorting:t.busySorting,computing:t.busyComputing,grouping:t.busyGrouping,aggregating:t.busyAggregating,projecting:t.busyProjecting,exporting:t.busyExporting,cancel:t.cancel,...e}),[t,e])}var Op=new Set(["filtering","sorting","computing","encoding","exporting"]);function bi({controller:e,delay:t=300,labels:n,cancellable:r=true,forced:i=false}){let[a,u]=react.useState(()=>e.getBusy()),[m,f]=react.useState(false);react.useEffect(()=>(u(e.getBusy()),e.events.on("busyChanged",k=>u(k))),[e]);let w=a.busy&&a.background!==true;react.useEffect(()=>{if(!w){f(false);return}let k=setTimeout(()=>f(true),t);return ()=>clearTimeout(k)},[w,t]);let C=Kp(n);if(!i&&(!m||!w))return null;let h=a.phase?C[a.phase]:C.busy,F=a.progress===null?null:Math.max(0,Math.min(100,a.progress)),E=r&&a.phase!==null&&Op.has(a.phase)&&a.cancellable!==false;return jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-overlay",role:"status","aria-live":"polite","data-testid":"dg-loading-overlay","data-phase":a.phase??"busy","data-blocking":a.phase==="exporting"?"true":void 0,"aria-busy":"true",children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-card",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-spinner","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-label",children:h}),F!==null&&jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(F),"aria-valuemin":0,"aria-valuemax":100,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-track",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-fill",style:{width:`${F}%`}})}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(F),"%"]})]}),E&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:C.cancel})]})})}var Is=10;function Fs({fields:e,content:t,statusIcon:n=false,onPress:r}){let i=react.useRef(null),a=f=>f.closest(".kanuni-datagrid-scroller"),[u,...m]=e;return jsxRuntime.jsx("div",{role:"gridcell",className:`kanuni-datagrid-card${t!==void 0?" kanuni-datagrid-card--custom":""}${r?" kanuni-datagrid-card--pressable":""}`,"data-testid":"dg-card",onPointerDown:r?f=>{i.current={x:f.clientX,y:f.clientY,scrollTop:a(f.currentTarget)?.scrollTop??0,moved:false};}:void 0,onPointerMove:r?f=>{let w=i.current;w&&Math.hypot(f.clientX-w.x,f.clientY-w.y)>Is&&(w.moved=true);}:void 0,onClick:r?f=>{let w=i.current;if(i.current=null,w){let C=(a(f.currentTarget)?.scrollTop??0)!==w.scrollTop,h=Math.hypot(f.clientX-w.x,f.clientY-w.y)>Is;if(w.moved||C||h)return}r(f);}:void 0,children:t!==void 0?t:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-card-title",children:[n&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-status-icon","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-card-title-text","aria-busy":u?.pending?true:void 0,children:u?.text})]}),m.length>0&&jsxRuntime.jsx("dl",{className:"kanuni-datagrid-card-fields",children:m.map(f=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-card-field",children:[jsxRuntime.jsx("dt",{children:f.label}),jsxRuntime.jsx("dd",{"aria-busy":f.pending?true:void 0,children:f.text})]},f.columnId))})]})})}function Ks({controller:e,sort:t,columns:n,text:r}){if(n.length===0)return null;let i=t[0],a=i?.direction==="desc";return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-cardbar",children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-cardbar-label",children:[jsxRuntime.jsx("span",{children:r.cardSortBy}),jsxRuntime.jsxs("select",{className:"kanuni-datagrid-cardbar-select",value:i?.columnId??"",onChange:u=>e.setSort(u.target.value?[{columnId:u.target.value,direction:i?.direction??"asc"}]:[]),children:[jsxRuntime.jsx("option",{value:"",children:r.none}),n.map(u=>jsxRuntime.jsx("option",{value:u.id,children:u.label},u.id))]})]}),i&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-cardbar-dir","aria-label":a?r.sortAsc:r.sortDesc,title:a?r.sortAsc:r.sortDesc,onClick:()=>e.setSort([{columnId:i.columnId,direction:a?"asc":"desc"}]),children:jsxRuntime.jsx("span",{"aria-hidden":"true",children:a?"\u2193":"\u2191"})})]})}var Os=null;function Bp(){return typeof document>"u"?null:(Os??=document.createElement("canvas"),Os.getContext("2d"))}function Hs(e){let t=getComputedStyle(e);return `${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function _p(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function $p(e){let t=e.map(r=>[r.style.width,r.style.minWidth,r.style.maxWidth]);for(let r of e)r.style.width="max-content",r.style.minWidth="0",r.style.maxWidth="none";let n=0;for(let r of e){let i=Math.ceil(r.getBoundingClientRect().width);i>n&&(n=i);}return e.forEach((r,i)=>{[r.style.width,r.style.minWidth,r.style.maxWidth]=t[i];}),n}function br(e,t){let n=Bp();if(!n)return null;let r=typeof CSS<"u"&&CSS.escape?CSS.escape(t):t.replace(/"/g,'\\"'),i=e.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${r}"]`),a=e.querySelectorAll(`.kanuni-datagrid-cell[data-column-id="${r}"]`);if(!i&&a.length===0)return null;let u=0;if(i){let m=i.querySelector(".kanuni-datagrid-header-label")??i;n.font=Hs(m),u=n.measureText(m.textContent??"").width+44;}if(a.length>0){n.font=Hs(a[0]);let m=[];for(let f=0;f<a.length;f++){if(_p(a[f])){m.push(a[f]);continue}let w=a[f].textContent??"";if(w==="")continue;let C=n.measureText(w).width+20;C>u&&(u=C);}m.length>0&&(u=Math.max(u,$p(m)));}return u===0?null:Math.round(Math.min(640,Math.max(48,u)))}function hi(e,t){let n=react.useRef(t);n.current=t;let r=!!t?.enabled,i=t?.storageKey,a=t?.type;react.useEffect(()=>{if(r)return datagridCore.attachStateStoring(e,{...n.current,enabled:true})},[e,r,i,a]);}var hr="application/x-kanuni-row";function Ci(e,t){let n=!!t?.enabled,r=t?.group??null,i=t?.allowReordering??true,a=t?.allowDropInsert??r!==null,[u,m]=react.useState(false),[f,w]=react.useState(null),C=react.useRef(null),h=react.useRef(false),F=react.useRef(null),E=react.useRef(null),k=react.useRef(t);k.current=t;let S=react.useCallback(y=>e.getRowByKey(y),[e]),K=(y,G)=>{let D=G.getBoundingClientRect();return y.clientY<D.top+D.height/2?"before":"after"},L=react.useCallback((y,G)=>{if(!datagridCore.isDataRow(y))return;E.current=y.key,F.current=y.key,h.current=false,C.current=null;let D={gridId:e.gridId,group:r,rowKey:y.key,row:y.data};G.dataTransfer.setData(hr,JSON.stringify(D)),G.dataTransfer.setData("text/plain",String(y.key)),G.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:y.key}),G.stopPropagation();},[e,r]),P=react.useCallback(()=>{let y=F.current;y!==null&&e.notifyRowDragEnd({rowKey:y,dropped:h.current,overKey:C.current?.key??null,position:C.current?.side??null}),h.current=false,C.current=null,F.current=null,E.current=null,w(null),m(false);},[e]),N=react.useCallback(y=>y.dataTransfer.types.includes(hr)?E.current!==null?i:a&&r!==null:false,[i,a,r]),_=react.useCallback((y,G)=>{if(!datagridCore.isDataRow(y)||!N(G))return;if(G.preventDefault(),G.dataTransfer.dropEffect="move",E.current===y.key){C.current=null,w(null);return}let D=K(G,G.currentTarget),U=C.current?.key!==y.key||C.current.side!==D;C.current={key:y.key,side:D},w(re=>re?.key===y.key&&re.side===D?re:{key:y.key,side:D}),U&&E.current!==null&&e.notifyRowDrag("move",{rowKey:E.current,overKey:y.key,position:D});},[N,e]),X=react.useCallback((y,G,D)=>{let U=null;try{let A=y.dataTransfer.getData(hr);U=A?JSON.parse(A):null;}catch{U=null;}if(!U)return;if(U.gridId===e.gridId){if(!i)return;let A=k.current?.onReorder;if(A){A({dragKey:U.rowKey,targetKey:G,position:D,row:S(U.rowKey)});return}e.moveRow(U.rowKey,G,D);return}!a||r===null||U.group!==r||k.current?.onAdd?.({row:U.row,rowKey:U.rowKey,otherGridId:U.gridId,targetKey:G,position:D});},[e,i,a,r,S]),j=react.useCallback((y,G)=>{if(w(null),!datagridCore.isDataRow(y)||!N(G))return;G.preventDefault(),G.stopPropagation();let D=K(G,G.currentTarget);h.current=true,C.current={key:y.key,side:D},X(G,y.key,D),E.current=null;},[N,X]),W=react.useCallback(y=>{N(y)&&(y.preventDefault(),y.dataTransfer.dropEffect="move");},[N]),R=react.useCallback(y=>{w(null),N(y)&&(y.preventDefault(),h.current=true,C.current=null,X(y,null,"after"),E.current=null);},[N,X]),M=react.useCallback(y=>{let G=y.relatedTarget;G&&y.currentTarget.contains(G)||E.current!==null&&(C.current=null,w(null),e.notifyRowDrag("leave",{rowKey:E.current}));},[e]);return {handlers:n?{draggable:u,setDraggable:m,onDragStart:L,onDragEnd:P,onDragOver:_,onDrop:j}:void 0,dropAt:n?f:null,bodyHandlers:n?{onDragOver:W,onDrop:R,onDragLeave:M}:void 0}}var Xp=400;function Bs(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function _s(e){return (e.textContent??"").trim()}function jp(e){let{def:t,node:n,value:r,clipped:i,note:a}=e;if(a)return a;if(t&&n){if(typeof t.tooltip=="function"){let u=t.tooltip({value:r,row:n.data,node:n,column:t});return u||null}if(typeof t.tooltip=="string")return t.tooltip||null;if(t.tooltipField){let u=n.data[t.tooltipField];return u==null||u===""?null:String(u)}}return i&&i.length>0?i:null}function ki({rootRef:e,columnModel:t,getRowNode:n,getNote:r,config:i,controller:a,gridId:u}){let m=i?.enabled!==false,f=i?.delay??Xp,w=i?.showOnTruncation!==false,C=i?.trigger??"hover",h=C!=="focus",F=C!=="hover"&&!!a&&!!u,E=i?.interactive===true,[k,S]=react.useState(null),K=react.useRef({columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:f});return K.current={columnModel:t,getRowNode:n,getNote:r,showOnTruncation:w,delay:f},react.useEffect(()=>{if(!m){S(null);return}let L=e.current;if(!L)return;let P=null,N=null,_=null,X=null,j=u?`${u}-tooltip`:void 0,W=()=>{X?.removeAttribute("aria-describedby"),X=null;},R=()=>{P!==null&&(clearTimeout(P),P=null),N!==null&&(clearTimeout(N),N=null),_=null,W(),S(null);},M=()=>{N!==null&&(clearTimeout(N),N=null);},g=()=>{N=null,W(),S(null);},y=()=>{M(),P!==null&&(clearTimeout(P),P=null);},G=()=>{if(!E){R();return}N!==null&&clearTimeout(N),N=setTimeout(g,150);},D=(O,ie)=>{let{columnModel:oe,getRowNode:V,getNote:Ee}=K.current,d=oe.getDef(ie);if(!d?.renderTooltip)return;let Le=O.closest("[data-row-key]")?.dataset.rowKey,He=Le===void 0?void 0:V(Le);if(!He||Ee&&Ee(He.key,ie,He.data))return;let Ge=d.renderTooltip({value:oe.getCellValue(He.data,ie),row:He.data,node:He,column:d});return Ge==null||Ge===false?null:{content:Ge}},U=(O,ie,oe,V)=>{let Ee=oe?void 0:D(O,ie);if(Ee===null)return;let d=Ee?"":oe?A(ie,O):re(O,ie);if(!Ee&&!d)return;let Le=O.getBoundingClientRect();M(),W(),V&&j&&(O.setAttribute("aria-describedby",j),X=O),S({text:d??"",...Ee?{content:Ee.content}:{},anchor:{top:Le.top,left:Le.left,width:Le.width,height:Le.height},...E?{interactive:true,hold:y,release:R}:{},...j?{id:j}:{}});},re=(O,ie)=>{let{columnModel:oe,getRowNode:V,getNote:Ee,showOnTruncation:d}=K.current,Le=oe.getDef(ie),He=O.closest("[data-row-key]")?.dataset.rowKey,Ge=He===void 0?void 0:V(He);return jp({def:Le,node:Ge,value:Ge?oe.getCellValue(Ge.data,ie):void 0,clipped:d&&Bs(O)?_s(O):null,note:Ge&&Ee?Ee(Ge.key,ie,Ge.data):null})},A=(O,ie)=>{let oe=K.current.columnModel.getDef(O);if(oe?.headerTooltip)return oe.headerTooltip;if(!K.current.showOnTruncation)return null;let V=ie.querySelector(".kanuni-datagrid-header-label")??ie;if(!Bs(V))return null;let Ee=_s(V);return Ee.length>0?Ee:null},Z=O=>{if(!h)return;let oe=O.target?.closest("[data-column-id]")??null;if(oe===_){M();return}if(E&&N!==null?(P!==null&&(clearTimeout(P),P=null),_=null):R(),!oe||!L.contains(oe))return;let V=oe.dataset.columnId;if(!V)return;let Ee=oe.classList.contains("kanuni-datagrid-header-cell");!Ee&&!oe.closest("[data-row-key]")||(_=oe,P=setTimeout(()=>{P=null,!(_!==oe||!oe.isConnected)&&U(oe,V,Ee,false);},K.current.delay));},de=O=>{if(!h)return;let ie=O.relatedTarget;_&&ie&&_.contains(ie)||G();},fe=-1/0,Oe=()=>{fe=Date.now();},Te=()=>{R();let O=a?.getFocus();!O||!u||(P=setTimeout(()=>{if(P=null,!L.contains(document.activeElement)&&Date.now()-fe>1500)return;let ie=document.getElementById(`${u}-cell-${String(O.rowKey)}-${O.columnId}`);!ie||!L.contains(ie)||(_=ie,U(ie,O.columnId,false,true));},K.current.delay));},be=F?a.events.on("focusChanged",Te):null,Ne=O=>{(!F||O.key==="Escape")&&R();};return L.addEventListener("mouseover",Z),L.addEventListener("mouseout",de),L.addEventListener("mousedown",R),L.addEventListener("pointerdown",Oe),L.addEventListener("keydown",Ne),L.addEventListener("scroll",R,true),window.addEventListener("blur",R),()=>{R(),be?.(),L.removeEventListener("mouseover",Z),L.removeEventListener("mouseout",de),L.removeEventListener("mousedown",R),L.removeEventListener("pointerdown",Oe),L.removeEventListener("keydown",Ne),L.removeEventListener("scroll",R,true),window.removeEventListener("blur",R);}},[m,e,h,F,E,a,u]),m?k:null}var Ws=6,io=8;function Ti({state:e,dark:t}){let[n,r]=react.useState(null),[i,a]=react.useState(null),{text:u,anchor:m,content:f,interactive:w,hold:C,release:h,id:F}=e;return react.useLayoutEffect(()=>{if(!n)return;let{width:E,height:k}=n.getBoundingClientRect(),S=document.documentElement.clientWidth,K=document.documentElement.clientHeight,L=m.top+m.height+Ws,P=m.top-k-Ws,_=L+k+io<=K||P<io?L:P,X=Math.min(Math.max(io,m.left),Math.max(io,S-E-io));a({top:Math.min(_,K-k-io),left:X});},[n,u,f,m]),jsxRuntime.jsx(vt,{dark:t,kind:"tooltip",children:jsxRuntime.jsx("div",{ref:r,id:F,className:w?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:w?C:void 0,onMouseLeave:w?h:void 0,style:i?{top:i.top,left:i.left}:{top:0,left:0,visibility:"hidden"},children:f??u})})}function Rr(e){return {sortAsc:e.sortAsc,sortDesc:e.sortDesc,clearSort:e.clearSort,groupBy:e.groupByColumn,ungroup:e.ungroupColumn,showGroupPanel:e.showGroupPanel,hideGroupPanel:e.hideGroupPanel,showFooter:e.showFooter,hideFooter:e.hideFooter,showGroupFooters:e.showGroupFooters,hideGroupFooters:e.hideGroupFooters,hideColumn:e.hideColumn,fieldChooser:e.fieldChooser,bestFit:e.bestFit,bestFitAll:e.bestFitAll,fixedPosition:e.fixedPosition,pinLeft:e.pinLeft,pinRight:e.pinRight,pinSticky:e.pinSticky,unpin:e.unpin,moveLeft:e.moveLeft,moveRight:e.moveRight}}var Us=Rr(datagridCore.getGridDictionary("en"));function vi(e,t){let n={...Us,...t.labels},{controller:r,maxGroupLevels:i}=t,a=e.columnId,u=r.getColumnModel().getDef(a),m=r.getSort(),f=m.find(N=>N.columnId===a),w=r.getGroupLevels(),C=w.includes(a),h=u?.sortable!==false,F=r.getColumnStates().find(N=>N.id===a)?.pinned??null,E=u?.groupable!==false,k=r.canGroup(),S=[{id:"sort-asc",label:n.sortAsc,disabled:!h||f?.direction==="asc",onSelect:()=>r.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!h||f?.direction==="desc",onSelect:()=>r.setSort([{columnId:a,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!f,onSelect:()=>r.setSort(m.filter(N=>N.columnId!==a))},{id:"sep-1",separator:true}];k&&S.push({id:"group",label:C?n.ungroup:n.groupBy,disabled:!E,onSelect:()=>{C?r.groupBy(w.filter(N=>N!==a)):r.groupBy([...w,a].slice(-i));}},{id:"group-panel",label:t.groupPanelVisible?n.hideGroupPanel:n.showGroupPanel,onSelect:t.onToggleGroupPanel}),t.groupFootersAvailable&&S.push({id:"group-footers",label:t.groupFootersVisible?n.hideGroupFooters:n.showGroupFooters,onSelect:t.onToggleGroupFooters}),S.push({id:"footer",label:t.footerVisible?n.hideFooter:n.showFooter,onSelect:t.onToggleFooter},{id:"sep-2",separator:true},{id:"hide-column",label:n.hideColumn,disabled:r.getColumnStates().filter(N=>N.visible).length<=1,onSelect:()=>r.setColumnVisible(a,false)},{id:"field-chooser",label:n.fieldChooser,onSelect:t.onOpenFieldChooser},{id:"sep-3",separator:true},{id:"best-fit",label:n.bestFit,disabled:u?.resizable===false,onSelect:()=>t.onBestFit(a)},{id:"best-fit-all",label:n.bestFitAll,onSelect:t.onBestFitAll});let K=r.getColumnStates().filter(N=>N.visible&&N.pinned===F).map(N=>N.id),L=K.indexOf(a),P=u?.reorderable!==false&&L>=0;return S.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!P||L<=0,onSelect:()=>r.moveColumn(a,K[L-1])},{id:"move-right",label:n.moveRight,disabled:!P||L<0||L>=K.length-1,onSelect:()=>r.moveColumn(a,K[L+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:F==="left",onSelect:()=>r.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:F==="right",onSelect:()=>r.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:F==="sticky",onSelect:()=>r.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:F===null,onSelect:()=>r.setColumnPinned(a,null)}),S}var yn=typeof window<"u"?react.useLayoutEffect:react.useEffect,Js=1e8,Cr=null;function Zs(){if(Cr!==null)return Cr;if(typeof document>"u"||!document.body)return null;let e=document.createElement("div");e.setAttribute("aria-hidden","true"),e.style.cssText="position:fixed;top:0;left:-9999px;width:80px;height:80px;overflow:auto;visibility:hidden;pointer-events:none;";let t=document.createElement("div");t.style.cssText="width:1px;",t.style.height=`${Js}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=Js;let n=e.scrollTop;return Mi=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(Cr=n),Cr}var Mi=null;function Sf(){return Mi===null&&Zs(),Mi}function Gi(e){return Math.abs(e)}function Qs(e,t){return getComputedStyle(t).direction==="rtl"?-e:e}function kr(e,t){if(t)return e;if(e.viewportDatasource)throw new Error("[datagrid] viewportDatasource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");if(e.dataSource!=null&&!Array.isArray(e.dataSource)&&e.grouping){e.debugMode&&console.warn("[datagrid] grouping a server-side DataSource is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let u={...e};return delete u.grouping,kr(u,t)}if(e.columns?.some(u=>u.spanRows)){e.debugMode&&console.warn("[datagrid] cell span/merge (spanRows) is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let u={...e,columns:e.columns.map(m=>m.spanRows?{...m,spanRows:void 0}:m)};return kr(u,t)}if(e.tree){e.debugMode&&console.warn("[datagrid] tree data is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let u={...e};return delete u.tree,kr(u,t)}if(!e.grouping)return e.masterDetail?Ni(e):e;let{groupBy:n,groupSummaries:r}=e.grouping,i=n==null?[]:typeof n=="string"?[n]:n;if(i.length<=1&&!r)return e.masterDetail?Ni(e):e;e.debugMode&&console.warn("[datagrid] multi-level grouping and group summaries are Enterprise features \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use them.");let a={...e,grouping:{...e.grouping,groupBy:i.slice(0,1),groupSummaries:false}};return e.masterDetail?Ni(a):a}function Ni(e){e.debugMode&&console.warn("[datagrid] master-detail is an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use it.");let t={...e};return delete t.masterDetail,t}function Gf(e){return jsxRuntime.jsx(Jr,{locale:e.locale,messages:e.messages,children:jsxRuntime.jsx(aa,{theme:e.theme,density:e.density,palette:e.palette,portalContainer:e.portalContainer,children:jsxRuntime.jsx(Nf,{...e})})})}function Nf(e){let t=Se(),{className:n,style:r,dark:i=false,theme:a,palette:u,striped:m=true,emptyText:f,sortable:w=true,autoHeaderHeight:C=false,filterRow:h=false,headerFilter:F=false,filterIconMode:E="hover",columnReorder:k=true,columnResize:S=true,loadingOverlay:K=true,announcements:L=true,groupPanel:P=false,showRowCount:N=false,toolbar:_=false,toolbarExcel:X=false,toolbarPdf:j=false,filterPanel:W=false,filterPanelLabels:R,onOpenFilterBuilder:M,toolbarItemsBefore:g,toolbarItemsAfter:y,renderRow:G,stateStoring:D,headerMenu:U=true,focusedRow:re=false,focusedRowKey:A,onFocusedRowChanged:Z,footer:de,footerMenu:fe=true,onRowClick:Oe,onRowActivate:Te,onReady:be,onKeyDown:Ne,renderCellContent:O,getCellClassName:ie,renderOverlay:oe,onCellPointerDown:V,onCellPointerEnter:Ee,onCellDoubleClick:d,onHeaderClick:Le,getHeaderClassName:He,renderHeaderLabel:Ge,enterpriseEdition:Ue=false,renderDetail:et,renderEditForm:Q,density:ge,rowMenu:ue,cellMenu:qe,autoColumns:Fe,rowDrag:te,tooltip:Re,pinnedTopRows:T,pinnedBottomRows:b,footerPosition:I="bottom",autoSizeStrategy:q="none",highlightSearch:ve=true,...ee}=e,Me=react.useMemo(()=>{let o=ee.columns;if(o&&o.length>0)return o;let p=ee.dataSource;if(!Array.isArray(p)||p.length===0)return o??[];let v=typeof Fe=="object"?Fe:void 0;return Fe===false?o??[]:datagridCore.inferColumns(p,v)},[ee.columns,ee.dataSource,Fe]),Ae={...ee,columns:Me},$e=datagridCore.isPackagedTheme(a)?datagridCore.THEME_ROW_HEIGHT[a][ge??"normal"]:ge?datagridCore.DENSITY_ROW_HEIGHT[ge]:datagridCore.DEFAULT_ROW_HEIGHT,Ce=Ae.rowHeight===void 0?{...Ae,rowHeight:$e}:Ae,ce=Ue?Number.POSITIVE_INFINITY:1,Lt=kr(Ce,Ue),{controller:l,rows:nt,window:xt,layout:We,sort:Rt,rowHeight:Ct,visibleCount:ft}=jr(Lt),Ze=e.cardView,In=Ze?Ze===true?"on":`${Ze.breakpoint??""}|${Ze.height??""}|${(Ze.columns??[]).join("|")}`:"",Vt=react.useMemo(()=>datagridCore.resolveCardView(Ze),[In]),[ot,It]=react.useState(false),Jt=react.useRef(Vt);yn(()=>{Jt.current=Vt;let o=Ot.current;It(o?datagridCore.showsCards(datagridCore.cardViewWidth(o),Vt):false);},[Vt]);let kt=ot?datagridCore.cardColumnIds(l.getColumnModel(),Vt):null,Ut=kt?JSON.stringify(kt):"",Ft=react.useMemo(()=>kt,[Ut]);react.useEffect(()=>{let o=Ze&&Ze!==true?Ze.height:void 0;l.setDataRowHeight(Ft?typeof o=="number"&&o>0?Math.max(44,o):datagridCore.cardHeight(Ft.length):null);},[l,Ft,In]);let gt=e.onCardViewChange,Kt=react.useRef(false);react.useEffect(()=>{ot!==Kt.current&&(Kt.current=ot,gt?.(ot));},[ot,gt]);let Je=react.useRef(null),Xe=datagridCore.normalizeRowStatus(e.rowStatus),Ke=Zl(l,e.editing,Ue,{renderCellContent:O,getCellClassName:ie,onCellDoubleClick:d},ot,{rootRef:Je,rowHeight:Ct,dark:i,savedDuration:Xe?.savedDuration??0,cardPopup:ot&&!!Ze&&Ze!==true&&Ze.edit==="popup"}),it=Ke.rowStatusSource??e.rowStatusSource??null,B=ho(l);B.effectiveRow=it?.effectiveRow?o=>it.effectiveRow(o):null;let we=o=>{if(!Xe||o.kind!=="data")return {};let p=datagridCore.resolveRowStatus(Xe,o.data,o.key,it);return p?{rowStatus:p.status,rowStatusText:datagridCore.rowStatusDescription(p,t),rowStatusTint:Xe.tint,rowStatusStrike:Xe.strike}:{}},he=e.rowClassName,ye=(o,p,v=o.key)=>{if(!he||o.kind!=="data")return;let z=o,ae=it?.effectiveRow?.(v)??z.data,le=Xe?datagridCore.resolveRowStatus(Xe,ae,v,it)?.status??null:it?.getRowStatus(v)??null,se=he({row:ae,node:z,rowKey:v,status:le,index:p});return typeof se=="string"&&se.trim()!==""?se.trim():void 0},ne=Ze&&Ze!==true?Ze:null,yt=e.openCardEditor??Ke.openCardEditor,s=ot,c=(o,p)=>{let v=Ft?.[0];v!==void 0&&l.focusCell(o.key,v),ne?.onCardPress?.(o.key,o,p),!p.defaultPrevented&&ne?.edit==="popup"&&yt?.(o.key);},x=o=>{let p=l.getColumnModel(),v=it?.effectiveRow?.(o.key)??o.data,z=datagridCore.cardFields(p,Ft??[],v).map(ae=>{let le=p.getDef(ae.columnId);if(!le?.lookup||le.valueFormatter)return ae;let se=B.label(le,ae.columnId,p.getCellValue(v,ae.columnId),o.data,o.key);return se===mn?{...ae,text:"",pending:true}:se===null?ae:{...ae,text:se}});return {row:v,fields:z}},H=!!Xe?.icons,J=ne?.renderCard,$=o=>{let p=o.node,{row:v,fields:z}=x(p),ae;if(J){let le=Xe?datagridCore.resolveRowStatus(Xe,v,p.key,it)?.status??null:it?.getRowStatus(p.key)??null;ae=J({row:v,node:p,fields:z,selected:o.selected,status:le})??null;}return jsxRuntime.jsx(Fs,{fields:z,content:ae,statusIcon:H,onPress:s?le=>c(p,le):void 0})};react.useEffect(()=>{if(ot||!Xe?.messages){l.setMessageRows([],Ct);return}let o=Xe.get,p=datagridCore.rowMessageKeys(Xe,it).filter(v=>{if(!o)return true;let z=l.getDataRowNode(v)?.data;if(z===void 0)return true;let ae=o({row:z,rowKey:v});return ae===void 0||ae==="error"});l.setMessageRows(p,Ct);});let Y=(o,p)=>{if(!Xe)return null;let v=datagridCore.rowMessageModel(Xe,o,p,it,t);return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-row-message","data-testid":"dg-row-message",children:[jsxRuntime.jsxs("svg",{className:"kanuni-datagrid-row-message-icon",viewBox:"0 0 16 16",width:"14",height:"14","aria-hidden":"true",children:[jsxRuntime.jsx("path",{d:"M8 1.5 15 14H1z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsxRuntime.jsx("path",{d:"M8 6v3.5M8 11.6v.4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-message-text",title:v.text,children:v.text}),v.retry&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-retry",onClick:v.retry,children:t.rowStatusRetry}),v.remove&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-delete",onClick:v.remove,children:t.rowStatusDelete})]})},me=datagridCore.resolveToolbar(_),pe=Ke.renderCellContent,ke=Ke.getCellClassName,Ye=Ke.onCellDoubleClick,Ve=va(l,e.printLayout),ze=Ve.active?{...xt,rows:{...xt.rows,start:0,end:nt.length,offsetY:0,totalHeight:0}}:xt,so=react.useMemo(()=>Me.some(o=>o.autoHeight===true),[Me]),Li=F&&l.canListDistinctValues();F&&!Li&&ee.debugMode&&console.warn("[datagrid] headerFilter needs a column's distinct values. This grid is remote and its DataSource does not implement `loadDistinctValues` \u2014 implement it, or use `filterRow`.");let Ot=react.useRef(null);yn(()=>{l.setEnterpriseEdition(Ue);},[l,Ue]),react.useEffect(()=>{be?.(l);},[l,be]),yn(()=>{let o=Zs();o!==null&&o<datagridCore.DEFAULT_MAX_SCROLL_OFFSET&&l.setMaxScrollOffset(o);let p=Sf();p!==null&&l.setMaxCanvasHeight(p);},[l]),yn(()=>{let o=Ot.current;if(!o)return;let p=()=>{l.setViewportSize(o.clientWidth,o.clientHeight),Jt.current&&It(datagridCore.showsCards(datagridCore.cardViewWidth(o),Jt.current)),o.style.setProperty("--dg-viewport-width",`${o.clientWidth}px`);let ae=o.querySelector(".kanuni-datagrid-rows"),le=o.querySelector(".kanuni-datagrid-canvas");if(ae&&le){let se=ae.getBoundingClientRect(),_e=le.getBoundingClientRect();l.setChromeOffsets(se.top-_e.top,_e.bottom-se.bottom);}datagridCore.calibrateMaxScrollOffset(o,l);};if(p(),typeof ResizeObserver>"u")return;let v=new ResizeObserver(p);v.observe(o);let z=o.querySelector(".kanuni-datagrid-canvas");return z&&v.observe(z),()=>v.disconnect()},[l]),yn(()=>{if(!C)return;let o=Ot.current?.querySelector(".kanuni-datagrid-canvas"),p=o?.querySelector(".kanuni-datagrid-header");if(!o||!p)return;let v=null,z=()=>{let le=p.offsetHeight,se=le>0?`${le}px`:null;se!==v&&(v=se,se?o.style.setProperty("--dg-header-actual",se):o.style.removeProperty("--dg-header-actual"));};z();let ae=typeof ResizeObserver>"u"?null:new ResizeObserver(z);return ae?.observe(p),()=>{ae?.disconnect(),o.style.removeProperty("--dg-header-actual");}},[l,C]),yn(()=>{if(!so)return;let o=Ot.current?.querySelector(".kanuni-datagrid-viewport");if(!o)return;let p=l.getVirtualWindow(),v=l.getRows(),z=new Map(l.getMeasuredRowHeights()),ae=false;for(let le=p.rows.start;le<p.rows.end;le++){let se=v[le];if(!se||se.kind!=="data")continue;let _e=o.querySelector(`[data-row-key="${CSS.escape(String(se.key))}"]`);if(!_e)continue;let Be=_e.getBoundingClientRect().height;Be>0&&z.get(se.key)!==Be&&(z.set(se.key,Be),ae=true);}ae&&l.setMeasuredRowHeights(z);}),react.useEffect(()=>{if(so)return l.events.on("columnStateChanged",()=>{l.clearMeasuredRowHeights();})},[l,so]),react.useEffect(()=>l.events.on("scrollRequested",o=>{let p=Ot.current;if(!p)return;o.scrollTop!==void 0&&(p.scrollTop=o.scrollTop),o.scrollLeft!==void 0&&(p.scrollLeft=Qs(o.scrollLeft,p)),l.setScroll(p.scrollTop,Gi(p.scrollLeft));let v=o.scrollTop;v===void 0||Math.abs(p.scrollTop-v)<=1||setTimeout(()=>{let z=Ot.current;!z||Math.abs(z.scrollTop-v)<=1||(z.scrollTop=v,l.setScroll(z.scrollTop,Gi(z.scrollLeft)));},0);}),[l]);let Ii=Ea(l,e.alignedGrids,Ot),nd=react.useCallback(o=>{let p=o.currentTarget;l.setScroll(p.scrollTop,Gi(p.scrollLeft)),Ii.syncScroll(p.scrollLeft);},[l,Ii]),od=react.useCallback((o,p)=>l.toggleSort(o,p),[l]);hi(l,D);let Fn=Ci(l,te);react.useEffect(()=>{A!=null&&l.getFocusedRowKey()!==A&&l.focusRow(A);},[l,A]),react.useEffect(()=>{if(Z)return l.events.on("focusedRowChanged",o=>Z({rowKey:o.rowKey,row:o.row}))},[l,Z]);let[vr,rd]=react.useState(null);react.useEffect(()=>l.events.on("overlayChanged",o=>{rd(o.manual?o.overlay:null);}),[l]);let ad=react.useCallback(o=>{let p=l.getDataRowNode(o);if(p)return p;if(o==="")return;let v=Number(o);return Number.isNaN(v)?void 0:l.getDataRowNode(v)},[l]),Tt=Ue?e.notes:void 0;!Ue&&e.notes&&e.debugMode&&console.warn("[datagrid] cell notes are an Enterprise feature \u2014 import EnterpriseDataGrid from @kanunilabs/datagrid-react-enterprise to use them.");let So=!!Tt?.onChange&&Tt.menu!==false,Go=react.useCallback((o,p,v)=>Tt?Tt.get({rowKey:o,columnId:p,row:v})??null:null,[Tt]),Fi=ki({rootRef:Je,columnModel:l.getColumnModel(),getRowNode:ad,getNote:Tt?Go:void 0,config:Re,controller:l,gridId:ee.gridId}),[Ki,id]=react.useState(0);react.useEffect(()=>{let o=new Set,p=[l.events.on("cellsFlashed",({rowKeys:v,columnIds:z,duration:ae})=>{let le=Je.current;if(!le)return;let se=v.length?v.map(je=>`[data-row-key="${CSS.escape(String(je))}"]`).join(","):".kanuni-datagrid-row",_e=z.length?z.map(je=>`[data-column-id="${CSS.escape(je)}"]`).join(","):"[data-column-id]",Be=[];le.querySelectorAll(se).forEach(je=>{je.querySelectorAll(_e).forEach(mt=>Be.push(mt));});for(let je of Be)je.classList.remove("kanuni-datagrid-cell--flash");le.offsetWidth;for(let je of Be)je.classList.add("kanuni-datagrid-cell--flash");let rt=setTimeout(()=>{for(let je of Be)je.classList.remove("kanuni-datagrid-cell--flash");o.delete(rt);},ae);o.add(rt);}),l.events.on("cellsRefreshed",({revision:v})=>id(v))];return ()=>{p.forEach(v=>v()),o.forEach(clearTimeout);}},[l]);let ld=react.useCallback((o,p)=>l.moveColumn(o,p),[l]),sd=react.useCallback((o,p,v)=>l.setColumnWidth(o,p,v??true),[l]),xr=react.useCallback(o=>{if(!Je.current)return;let p=br(Je.current,o);p!==null&&l.setColumnWidth(o,p);},[l]),Er=react.useCallback(()=>{let o=Je.current;if(o)for(let p of l.getColumnStates()){if(!p.visible||p.flex)continue;let v=br(o,p.id);v!==null&&l.setColumnWidth(p.id,v);}},[l]),Dr=react.useRef(null),[No]=react.useState(()=>new datagridCore.RowMotion),Oi=e.animateRows===true;react.useEffect(()=>{l.setAnimateRows(Oi);},[l,Oi]),react.useEffect(()=>{let o=()=>{l.getAnimateRows()&&No.capture(Dr.current);},p=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(v=>l.events.on(v,o));return ()=>{p.forEach(v=>v()),No.dispose();}},[l,No]),yn(()=>{l.getAnimateRows()&&No.play(Dr.current);}),react.useEffect(()=>{if(q!=="fitGrid")return;let o=()=>l.sizeColumnsToFit();return o(),l.events.on("gridSizeChanged",o)},[l,q]);let Sr=react.useRef(null);yn(()=>{if(q!=="fitCells"){Sr.current=null;return}Sr.current!==l&&Je.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(Sr.current=l,Er());});let[Gr,Hi]=react.useState({}),[Nr,Ai]=react.useState({}),Kn=react.useRef(Nr);Kn.current=Nr;let Bi=react.useRef(Gr);Bi.current=Gr;let _i=e.filterDebounce??(l.isRemote()?200:0),Mr=react.useRef(false),Mo=react.useMemo(()=>datagridCore.datePeriodLabels(t),[t]),Pr=react.useRef(Mo);Pr.current=Mo;let dd=react.useMemo(()=>datagridCore.periodSuggestionList(Mo),[Mo]),On=react.useCallback((o,p)=>{let v=l.getColumnModel(),z=v.getDataType(o),ae=datagridCore.findCustomFilterOperator(v.getDef(o),Kn.current[o]??"");Mr.current=true;try{l.setColumnFilter(o,ae?datagridCore.parseCustomFilterInput(o,p,ae):datagridCore.parseFilterInput(o,p,z,Pr.current),datagridCore.FILTER_PART_ROW);}finally{Mr.current=false;}},[l]),Ht=react.useMemo(()=>datagridCore.createDebouncedCommit(_i),[_i]);react.useEffect(()=>()=>Ht.cancelAll(),[Ht]);let ud=react.useCallback((o,p)=>{Hi(v=>({...v,[o]:p})),Ht.schedule(o,()=>On(o,p));},[On,Ht]),cd=react.useCallback((o,p)=>{Kn.current={...Kn.current,[o]:p},Ai(Kn.current),Ht.cancel(o),On(o,Bi.current[o]??"");},[On,Ht]),md=react.useCallback(o=>{if(l.getColumnModel().getDef(o)?.renderFilter)return jsxRuntime.jsx(ei,{controller:l,columnId:o,surface:"row"})},[l]),pd=react.useCallback((o,p)=>{Ht.cancel(o),On(o,p);},[On,Ht]);react.useEffect(()=>l.events.on("filterChanged",()=>{if(Mr.current)return;let o=l.getColumnModel();Ai(p=>{let v=null;for(let z of o.getOrder()){let ae=o.getDef(z);if(!ae?.filterOperators?.length||Ht.isPending(z))continue;let le=l.getColumnFilter(z,datagridCore.FILTER_PART_ROW),se=p[z]??"",_e=se;le?_e=datagridCore.customFilterInputFromNode(le,ae)?.operatorId??"":datagridCore.findCustomFilterOperator(ae,se)?.operandType==="none"&&(_e=""),_e!==se&&(v??={...p},v[z]=_e);}return v&&(Kn.current=v),v??p}),Hi(p=>Wa(p,{isPending:v=>Ht.isPending(v),textFor:v=>{let z=l.getColumnFilter(v,datagridCore.FILTER_PART_ROW);if(!z)return "";let ae=datagridCore.customFilterInputFromNode(z,o.getDef(v));return ae?ae.text:!datagridCore.isFilterGroup(z)&&!datagridCore.isBuiltInFilterOperator(z.operator)?null:datagridCore.filterInputFromNode(v,z,o.getDataType(v),Pr.current)}},o.getOrder()));}),[l,Ht]);let[tt,St]=react.useState(null),bn=react.useRef(null);react.useEffect(()=>{!tt&&bn.current&&(bn.current.dispose(),bn.current=null);},[tt]);let Hn=react.useRef(0),[An,Lr]=react.useState(null),Ir=react.useRef(null),zt=react.useCallback(o=>{let p=document.activeElement instanceof HTMLElement?document.activeElement:null;if(p?.closest(".kanuni-datagrid-portal"))return;let v=p&&Je.current&&p!==Je.current&&p.contains(Je.current)?null:p;Ir.current={el:v,columnId:v?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??o??null};},[]),fd=react.useCallback((o,p)=>{zt(o);let v=p.getBoundingClientRect(),z=l.getColumnModel().getDef(o),ae={left:v.left,top:v.bottom+2},le=z?.headerName??o;if(z?.renderFilter){++Hn.current,St(null),Lr({columnId:o,label:le,anchor:ae});return}Lr(null);let se=l.getColumnFilter(o,datagridCore.FILTER_PART_SET)??l.getColumnFilter(o,datagridCore.FILTER_PART_DEFAULT);if(!l.isRemote()){let rt=++Hn.current;St({columnId:o,label:le,entries:[],selected:null,anchor:ae,loading:true}),l.getDistinctValueSetAsync(o).then(({entries:je,truncated:mt})=>{Hn.current===rt&&St(_o=>_o&&_o.columnId===o?{..._o,entries:je,truncated:mt,capped:mt,selected:datagridCore.selectedLabelsFromFilter(se,je,{text:l.getColumnModel().getDataType(o)==="string"}),loading:false}:_o);});return}let _e=++Hn.current,Be=l.openRemoteDistinct(o,rn);if(Be){bn.current?.dispose(),bn.current=Be,St({columnId:o,label:le,entries:[],selected:null,anchor:ae,loading:true,pager:Be}),Be.start().then(rt=>{if(Hn.current!==_e){Be.dispose();return}if(rt.kind==="paged"){St(mt=>mt&&mt.columnId===o?{...mt,loading:false}:mt);return}Be.dispose(),bn.current===Be&&(bn.current=null);let je=l.sortDistinctEntries(rt.values);St(mt=>mt&&mt.columnId===o?{...mt,pager:void 0,entries:je,selected:datagridCore.selectedLabelsFromFilter(se,je,{text:l.getColumnModel().getDataType(o)==="string"}),loading:false}:mt);});return}St({columnId:o,label:le,entries:[],selected:null,anchor:ae,loading:true}),l.getDistinctValuesAsync(o).then(rt=>{Hn.current===_e&&St(je=>je&&je.columnId===o?{...je,entries:rt,selected:datagridCore.selectedLabelsFromFilter(se,rt,{text:l.getColumnModel().getDataType(o)==="string"}),loading:false}:je);});},[l,zt]),gd=react.useCallback(o=>{tt&&(l.setColumnFilter(tt.columnId,o,datagridCore.FILTER_PART_SET),St(null));},[l,tt]),wd=Object.keys(l.getColumnStates().reduce((o,p)=>(l.getColumnFilter(p.id)&&(o[p.id]=true),o),{})),Bn=l.getSelectionMode(),ut=Bn!=="none"&&(ee.selection?.checkboxColumn??false),$i=(ee.selection?.rowClick??(ut?"toggle":"replace"))==="toggle",yd=react.useCallback((o,p)=>{l.handleRowClick(o.key,{ctrlKey:p.ctrlKey||$i&&!p.shiftKey,metaKey:p.metaKey,shiftKey:p.shiftKey});},[l,$i]),bd=react.useCallback((o,p)=>l.focusCell(o.key,p),[l]),hd=react.useCallback(o=>l.toggleRow(o.key),[l]),[_n,Fr]=react.useState(null),Rd=react.useCallback(()=>Fr(null),[]),[uo,Kr]=react.useState(null),Wi=react.useCallback((o,p)=>{let z=(Je.current?.querySelector(`[data-row-key="${CSS.escape(String(o))}"] [data-column-id="${CSS.escape(p)}"]`)??Je.current)?.getBoundingClientRect();return {left:z?.left??0,top:(z?.bottom??0)+2}},[]),Cd=react.useCallback(o=>{let p=uo;Kr(null),!(!p||!Tt?.onChange)&&Tt.onChange({rowKey:p.rowKey,columnId:p.columnId,row:p.row,text:o});},[uo,Tt]),Vi=react.useCallback((o,p)=>{if(!Tt?.onChange||Tt.menu===false)return [];let v=o.columnId;if(!v)return [];let z=l.getRowKey(o.row),ae=Go(z,v,o.row),le=()=>Kr({rowKey:z,columnId:v,row:o.row,text:ae??"",anchor:Wi(z,v)}),se=[];return p&&se.push({separator:true,id:"__note-sep"}),se.push({id:"__note-edit",label:ae?t.editNote:t.addNote,onSelect:le}),ae&&se.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>Tt.onChange?.({rowKey:z,columnId:v,row:o.row,text:null})}),se},[Tt,l,Go,Wi,t]),[Po,Lo]=react.useState(null),Or=react.useRef({x:0,y:0}),Ui=react.useCallback(o=>pi(l,t,qe,o,p=>{Lo({message:p,...Or.current}),console.error("[datagrid] export failed:",p);}),[l,t,qe]),Io=react.useCallback((o,p,v,z,ae)=>{if(v.kind!=="data")return;zt();let le={row:v.data,node:v,rowIndex:z,columnId:ae,selectedKeys:l.getSelectedKeys()},se=(typeof ue=="function"?ue(le):ue)??[],_e=Ke.editRowMenuItem(v.key),Be=_e?[...se,...se.length>0?[{id:"dg-sep-edit",separator:true}]:[],_e]:se,rt=Vi(le,Be.length>0),je=fi(l,t,v.key,Be.length+rt.length>0),mt=[...Be,...rt,...je,...Ui(Be.length+rt.length+je.length>0)];mt.length!==0&&(Or.current={x:o,y:p},Lo(null),Fr({x:o,y:p,items:mt,context:le}));},[ue,l,t,Vi,Ui,zt,Ke.editRowMenuItem]),zi=react.useCallback((o,p,v)=>{let z=fi(l,t,o,false);if(z.length===0)return;v.preventDefault(),zt();let ae={row:p,node:{kind:"data",key:o,sourceIndex:-1,data:p},rowIndex:-1,columnId:v.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:l.getSelectedKeys()};Or.current={x:v.clientX,y:v.clientY},Lo(null),Fr({x:v.clientX,y:v.clientY,items:z,context:ae});},[l,t,zt]),Yi=react.useCallback(o=>o?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),$n=react.useCallback((o,p,v,z,ae)=>{let le=z??-1;o&&l.notifyRow(o,v,le);let se=Yi(ae);se!==null&&l.notifyCell(p,v,le,se);},[l,Yi]),kd=react.useCallback((o,p,v)=>{Oe?.(o),$n("rowClicked","cellClicked",o,p,v);},[Oe,$n]),Td=react.useCallback((o,p,v)=>{Te?.(o),$n("rowDoubleClicked","cellDoubleClicked",o,p,v);},[Te,$n]),vd=react.useCallback((o,p,v)=>{if($n(null,"cellContextMenu",o,p,v),o.kind!=="data"||!ue&&!So&&qe===false&&!l.isRowPinningEnabled()&&Ke.editRowMenuItem(o.key)===null)return;v.preventDefault(),l.isRowSelected(o.key)||l.handleRowClick(o.key,{});let z=v.target.closest("[data-column-id]")?.dataset.columnId??null;Io(v.clientX,v.clientY,o,p,z);},[ue,So,qe,l,Io,$n,Ke.editRowMenuItem]),[xd,Ed]=react.useState(null),[Dd,Sd]=react.useState(null),[Hr,Gd]=react.useState(()=>ee.grouping?.groupSummaries??false),[hn,Ar]=react.useState(null),[qi,Br]=react.useState(null),_r=_n!==null||hn!==null||tt!==null||An!==null,Xi=react.useRef(false);react.useEffect(()=>{if(Xi.current&&!_r){let o=Ir.current;Ir.current=null;let p=o?.columnId?Je.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(o.columnId)}"]`):null,v=o?.el?.isConnected?o.el:p,z=document.activeElement,ae=!z||z===document.body||!!Je.current&&z!==Je.current&&z.contains(Je.current);v&&ae&&(v.focus({preventScroll:true}),document.activeElement!==v&&p&&p.focus({preventScroll:true}));}Xi.current=_r;},[_r]);let Nd=react.useCallback(()=>{l.getSelectedCount()>0?l.clearSelection():l.selectAll();},[l]),$r=ut?l.getSelectableCount():ft,Wr=l.getSelectedCount(),Md=$r>0&&Wr>=$r?"all":Wr>0?"some":"none",ji=react.useRef(Ne);ji.current=Ne;let Pd=react.useCallback(o=>{let p=ji.current;p&&Dt(o,true)&&p(o.nativeEvent,Ke.keyContext())==="handled"&&Qr(o);},[Ke.keyContext]),Ld=react.useCallback(o=>{if(Zr(o)||!Dt(o))return;let p=o.target;if(p.closest?.(Yt)||p.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let v=p.tagName;if(v==="INPUT"||v==="TEXTAREA"||v==="SELECT"||p.isContentEditable||Ke.handleKeyDown(o))return;if((ue||So||qe!==false||l.isRowPinningEnabled())&&(o.key==="ContextMenu"||o.key==="F10"&&o.shiftKey)){let le=l.getFocus(),se=le?nt.findIndex(Be=>Be.key===le.rowKey):-1,_e=se>=0?nt[se]:void 0;if(_e){let rt=Ot.current?.querySelector(`[data-row-key="${CSS.escape(String(_e.key))}"]`)?.getBoundingClientRect();Io(rt?rt.left+16:0,rt?rt.bottom:0,_e,se,le?.columnId??null),o.preventDefault();}return}let z=datagridCore.resolveGridCommand({key:o.key,ctrlKey:o.ctrlKey,metaKey:o.metaKey,shiftKey:o.shiftKey,altKey:o.altKey});if(!z)return;if(z.type==="copy"){oo(l);return}if(z.type==="activate"){let le=l.getFocus(),se=le?nt.find(_e=>_e.key===le.rowKey):void 0;se&&Te?.(se),z.preventDefault&&o.preventDefault();return}l.executeCommand(z),z.preventDefault&&o.preventDefault();let ae=l.getFocusIndices();if(ae&&Ot.current){let se=l.getColumnLayout().center.findIndex(Be=>Be.state.id===l.getFocus()?.columnId),_e=l.ensureVisible(ae.rowIndex,se===-1?void 0:se);if(_e){let Be=Ot.current;_e.scrollTop!==void 0&&(Be.scrollTop=_e.scrollTop),_e.scrollLeft!==void 0&&(Be.scrollLeft=Qs(_e.scrollLeft,Be)),l.setScroll(Be.scrollTop,Be.scrollLeft);}}},[l,nt,Te,ue,So,qe,Io,Ke.handleKeyDown]),Rn=react.useMemo(()=>datagridCore.bandDepth([...We.left,...We.center,...We.right]),[We]),Wn=eo,Vr=(h?2:1)+Rn,Ji=l.getPinnedRows("top"),Qi=l.getPinnedRows("bottom"),Ur=[...T??[],...Ji.map(o=>o.row)],zr=[...b??[],...Qi.map(o=>o.row)],Id=[...(T??[]).map(()=>null),...Ji.map(o=>o.key)],Fd=[...(b??[]).map(()=>null),...Qi.map(o=>o.key)],Fo=Ur.length,Kd=zr.length,Ko=Vr+Fo,Oo=xd??ee.grouping?.panel??P,Zi=l.getGroupLevels(),Od=react.useCallback(o=>l.groupBy(o.slice(0,ce)),[l,ce]),Hd=react.useCallback(o=>l.toggleGroup(o),[l]),el=react.useCallback(o=>l.toggleGroupSelection(o),[l]),Ad=l.getColumnModel().runtime().filter(o=>o.state.visible&&o.def.groupable!==false),Et=l.hasMasterDetail()&&!!et,ct=e.rowNumbers??false,Gt=!!Xe?.icons&&!ot,Bd=ct&&l.isPaginated()?l.getPage()*l.getPageSize():0;react.useEffect(()=>{l.setLeadWidth(Ia(ut,Et,ct,Gt));},[l,ut,Et,ct,Gt]);let _d=react.useCallback(o=>l.toggleDetail(o),[l]),$d=react.useCallback(o=>l.toggleTreeRow(o),[l]),tl=l.getSummaryDefs(),Wd=l.getSummaries(),Vn=Dd??de??tl.length>0,co=Vn&&I==="top",Yr=h?2:1,nl=Lt.grouping?.groupSummaries&&Hr?ee.summaries:void 0,ol=l.getGroupDisplay(),rl=react.useCallback(()=>{Gd(o=>(l.setGroupSummaries(!o),!o));},[l]),Vd=react.useCallback((o,p)=>{if(!fe)return;p.preventDefault();let v=l.getColumnModel().getDef(o),z=l.getColumnSummary(o),ae={columnId:o,headerName:v?.headerName??v?.field??o},le=[{id:"none",label:t.noTotal,disabled:z===null,onSelect:()=>l.setColumnSummary(o,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(v?.dataType).map(se=>({id:se,label:datagridCore.summaryTypeLabels(t)[se],disabled:z?.type===se,onSelect:()=>l.setColumnSummary(o,se)}))];zt(),Ar({x:p.clientX,y:p.clientY,items:le,context:ae});},[l,fe,zt]),Ud=react.useCallback((o,p)=>{if(U===false)return;p.preventDefault();let v=l.getColumnModel().getDef(o),z={columnId:o,headerName:v?.headerName??v?.field??o},ae=vi(z,{controller:l,groupPanelVisible:Oo,footerVisible:Vn,groupFootersAvailable:Ue&&l.getGroupLevels().length>0,groupFootersVisible:Hr,onToggleGroupPanel:()=>Ed(!Oo),onToggleFooter:()=>Sd(!Vn),onToggleGroupFooters:rl,onOpenFieldChooser:()=>Br({left:p.clientX,top:p.clientY}),onBestFit:xr,onBestFitAll:Er,maxGroupLevels:ce,labels:Rr(t)}),le=typeof U=="function"?U(z,ae):ae;!le||le.length===0||(zt(),Ar({x:p.clientX,y:p.clientY,items:le,context:z}));},[U,l,Oo,Vn,Ue,Hr,rl,xr,Er,ce,t,zt]),Un=l.getFocus(),zd=Un?`${e.gridId}-cell-${String(Un.rowKey)}-${Un.columnId}`:void 0,qr=l.getSelectedCount(),Yd=react.useMemo(()=>{let o=[datagridCore.fillText(t.announceRows,{n:ft})];if(Rt.length>0){let p=Rt.map(v=>{let z=l.getColumnModel().getDef(v.columnId),ae=String(z?.headerName??z?.field??v.columnId),le=v.direction==="desc"?t.announceDescending:t.announceAscending;return `${ae} ${le}`}).join(", ");o.push(datagridCore.fillText(t.announceSortedBy,{columns:p}));}return qr>0&&o.push(datagridCore.fillText(t.announceSelected,{n:qr})),o.join(", ")},[l,ft,Rt,qr,t]),{centerColumns:ln,centerIndices:Ho,stickyInsets:zn,leadingSpacer:sn,trailingSpacer:dn,rowStart:qd,rowEnd:al}=is(We,ze),Ao=l.getColumnModel(),Cn=qd,Xd=o=>{if(so)return;let p=l.getRowHeightAt(o);return p===Ct?void 0:p},jd=Array.from(nt.slice(Cn,al)),Jd=react.useMemo(()=>!ct||l.getGroupLevels().length===0&&!l.hasMasterDetail()&&!l.hasTreePathRows()?null:ls(nt),[ct,l,nt]),Qd=l.hasCellSpans(),il=react.useRef({start:0,end:0});il.current={start:Cn,end:al-1};let ll=react.useRef(ze.columns);ll.current=ze.columns;let Zd=react.useCallback(o=>l.planRowColSpans(o,ll.current),[l]),eu=datagridCore.hasColSpans(We),tu=react.useCallback((o,p)=>{let v=l.getCellSpans(p);if(v.length===0)return null;let{start:z,end:ae}=il.current,le=datagridCore.spanRoleAt(v,o,z,ae);if(!le)return null;if(le.role==="covered")return {kind:"covered"};let se=l.getRowOffset(le.drawStart);return {kind:"draw",height:l.getRowOffset(le.drawEnd)+l.getRowHeightAt(le.drawEnd)-se,offset:0}},[l]),sl=l.getFindNeedle()||(ve?datagridCore.normalizeSearch(l.getSearchText()):""),dl=l.getFindState(),Bo=dl.count>0?`${l.getFindNeedle()}\0${dl.activeIndex}`:"",ul=react.useCallback((o,p)=>l.getFindMatchKind(o,p),[l]),nu={pathOf:o=>datagridCore.bandPath(l.getColumnModel().getDef(o)),collapsible:o=>l.isBandCollapsible(o),collapsed:o=>l.isBandCollapsed(o),onToggle:o=>l.toggleBand(o),labels:{expand:t.expandColumnGroup,collapse:t.collapseColumnGroup}},cl={layout:We,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,defs:tl,values:Wd,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,onPickSummary:fe?Vd:void 0,emptyHint:fe?"\xB7":""};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-root${i?" kanuni-datagrid-dark":""}${Ve.active?" kanuni-datagrid-print":""}${ot?" kanuni-datagrid-cards":""}${datagridCore.themeClassName(a,ge,u)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${Ct}px`,"--dg-grip-inset":`${(ct?Jn:0)+(Gt?Qn:0)}px`,...r},dir:datagridCore.isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":a,"data-palette":u,"data-auto-height":so?"":void 0,"data-auto-header-height":C?"":void 0,"data-row-session":Ke.rowSessionAttr,onKeyDownCapture:Ne?Pd:void 0,ref:Je,children:[Ke.bar&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:Ke.bar}),me.show&&jsxRuntime.jsx(ii,{controller:l,dark:i,search:me.search!==null,searchOptions:me.search??void 0,exportMenu:me.export,columnChooser:me.columns??e.toolbarColumnChooser??true,exportExcel:Ue&&X,exportPdf:Ue&&j,itemsBefore:g,itemsAfter:y,onOpenColumnChooser:o=>Br(p=>p?null:o)}),Oo&&jsxRuntime.jsx(ni,{columns:Ad,levels:Zi,onSetLevels:Od,maxLevels:ce,onExpandAll:()=>l.expandAllGroups(),onCollapseAll:()=>l.collapseAllGroups()}),ot&&jsxRuntime.jsx(Ks,{controller:l,sort:Rt,text:t,columns:w?l.getColumnModel().getOrder().filter(o=>{let p=l.getColumnModel();return p.getState(o)?.visible!==false&&p.getDef(o)?.sortable!==false}).map(o=>({id:o,label:l.getColumnModel().getDef(o)?.headerName??o})):[]}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-scroller",ref:Ot,onScroll:nd,onKeyDown:Ld,tabIndex:0,role:"grid","aria-rowcount":ft+Vr+Fo+Kd,"aria-colcount":We.left.length+We.center.length+We.right.length+(ut?1:0)+(Et?1:0)+(ct?1:0),"aria-multiselectable":Bn==="multiple"||void 0,"aria-activedescendant":zd,"aria-label":e.ariaLabel??e.gridId,children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(We.totalWidth||0)+Ia(ut,Et,ct,Gt)||"100%"},role:"rowgroup",children:[jsxRuntime.jsx(Aa,{layout:We,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,depth:Rn,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,rowHeight:Wn,bandFold:nu}),jsxRuntime.jsx(_a,{bandOffset:Rn*Wn,stickyInsets:zn,layout:We,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,sort:Rt,sortable:w,onSort:od,groupLevels:Zi,headerFilter:Li,filteredColumns:wd,onOpenFilter:fd,filterIconMode:E,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,selectAllState:Md,selectAllDisabled:$r===0&&Wr===0,onToggleSelectAll:Nd,draggable:P,reorderable:k,onReorder:ld,resizable:S,onResize:sd,onAutoFit:xr,onHeaderContextMenu:U===false?void 0:Ud,onHeaderClick:Le,getHeaderClassName:He,renderHeaderLabel:Ge}),h&&jsxRuntime.jsx(Va,{bandOffset:Rn*Wn,stickyInsets:zn,layout:We,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,values:Gr,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,onChange:ud,onCommit:pd,periodSuggestions:dd,periodListId:`${e.gridId}-filter-periods`,operators:Nr,onOperatorChange:cd,renderCustom:md}),co&&jsxRuntime.jsx(mr,{...cl,position:"top",bandOffset:Rn*Wn,headerRowsBetween:Yr}),Ur.length>0&&jsxRuntime.jsx(pr,{gridId:e.gridId,side:"top",rows:Ur,rowClassFor:he?(o,p,v)=>ye(o,p,v??o.key):void 0,rowKeys:Id,onUserRowContextMenu:zi,layout:We,columnModel:Ao,centerColumns:ln,centerIndices:Ho,stickyInsets:zn,leadingSpacer:sn,trailingSpacer:dn,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,rowHeight:Ct,bandOffset:Rn*Wn,headerRowsBetween:Yr+(co?1:0),ariaRowBase:Vr}),l.hasStickyGroupHeaders()&&jsxRuntime.jsx(Ts,{controller:l,width:We.totalWidth,bandOffset:Rn*Wn,headerRowsBetween:Yr+(co?1:0),belowPinned:Fo>0?Fo*Ct+1:0,renderRow:(o,p,v)=>jsxRuntime.jsx(Zn,{gridId:e.gridId,node:o,index:p,layout:We,columnModel:Ao,centerColumns:ln,centerIndices:Ho,stickyInsets:zn,leadingSpacer:sn,trailingSpacer:dn,striped:false,selected:false,groupSelection:ut&&Bn==="multiple"?l.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:el,groupDisplay:ol,focusedColumnId:null,checkboxColumn:ut,statusColumn:Gt,rowNumberColumn:ct,rowNumber:null,headerRowCount:Ko,onToggleGroup:z=>{l.toggleGroup(z),l.scrollToRow(z);},revision:Ki,searchNeedle:sl,lookupLabels:B,findStamp:Bo,findKind:Bo?ul:void 0,summaryDefs:nl,detailColumn:Et,height:v,renderCellContent:pe,getCellClassName:ke})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:ze.rows.totalHeight},onDragOver:Fn.bodyHandlers?.onDragOver,onDrop:Fn.bodyHandlers?.onDrop,onDragLeave:Fn.bodyHandlers?.onDragLeave,children:[jsxRuntime.jsx("div",{ref:Dr,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${ze.rows.offsetY}px)`},children:jd.map((o,p)=>o?jsxRuntime.jsx(Zn,{gridId:e.gridId,node:o,index:Cn+p,layout:We,columnModel:Ao,centerColumns:ln,centerIndices:Ho,stickyInsets:zn,leadingSpacer:sn,trailingSpacer:dn,striped:m,selected:l.isRowSelected(o.key),ariaSelectable:Bn!=="none",selectable:ut&&o.kind==="data"?l.isRowSelectable(o.key):true,groupSelection:o.kind==="group"&&ut&&Bn==="multiple"?l.getGroupSelectionState(String(o.key)):void 0,onToggleGroupSelect:el,groupDisplay:ol,focusedColumnId:Un?.rowKey===o.key?Un.columnId:null,rowFocused:re&&Un?.rowKey===o.key,rowDrag:Fn.handlers,dropSide:Fn.dropAt?.key===o.key?Fn.dropAt.side:null,...we(o),rowClass:ye(o,Cn+p),renderRow:ot?$:G,checkboxColumn:ut,statusColumn:Gt,rowNumberColumn:ct,getSpan:Qd?tu:void 0,resolveColSpans:eu?Zd:void 0,getNote:Tt?Go:void 0,rowNumber:ct?ss(Cn+p,Jd,Bd):null,headerRowCount:Ko,onRowClick:kd,onRowMouseDown:Bn==="none"?void 0:yd,onRowDoubleClick:Td,onToggleSelect:hd,onCellMouseDown:bd,onRowContextMenu:vd,onToggleGroup:Hd,onToggleTreeRow:$d,revision:Ki,searchNeedle:sl,lookupLabels:B,findStamp:Bo,findKind:Bo?ul:void 0,summaryDefs:nl,detailColumn:Et,detailExpanded:Et&&l.isDetailExpanded(o.key),onToggleDetail:_d,renderDetail:et,renderEditForm:Q??Ke.renderEditForm,renderRowMessage:o.kind==="message"?Y:void 0,height:Xd(Cn+p),renderCellContent:pe,getCellClassName:ke,onCellPointerDown:V,onCellPointerEnter:Ee,onCellDoubleClick:Ye},String(o.key)):(()=>{let v=Cn+p,z=l.isRowLoadFailed(v);return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${z?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":v+1+Ko,"aria-busy":z?void 0:"true",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:z?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-load-failed-text",children:t.rowsLoadFailed}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-retry-button","data-retry-load":"",onClick:()=>l.retryFailedLoads(),children:t.retryLoad})]}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-bar"})})},`__loading-${v}`)})())}),oe?.()]}),zr.length>0&&jsxRuntime.jsx(pr,{gridId:e.gridId,side:"bottom",rows:zr,rowClassFor:he?(o,p,v)=>ye(o,p,v??o.key):void 0,rowKeys:Fd,onUserRowContextMenu:zi,layout:We,columnModel:Ao,centerColumns:ln,centerIndices:Ho,stickyInsets:zn,leadingSpacer:sn,trailingSpacer:dn,checkboxColumn:ut,detailColumn:Et,statusColumn:Gt,rowNumberColumn:ct,rowHeight:Ct,headerRowsBetween:Vn&&!co?1:0,ariaRowBase:Ko+ft}),Vn&&!co&&jsxRuntime.jsx(mr,{...cl,position:"bottom"})]})}),(vr==="noRows"||vr===null&&ft===0)&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-empty",children:f??t.noData}),Ke.active&&jsxRuntime.jsx(Ca,{open:Ke.saveError!==null,title:t.editCannotSave,message:Ke.saveError?Ke.saveError.columnId?`${l.getColumnModel().getDef(Ke.saveError.columnId)?.headerName??Ke.saveError.columnId}: ${Ke.saveError.message}`:Ke.saveError.message:"",confirmLabel:t.ok,dark:i,onConfirm:Ke.clearSaveError,onCancel:Ke.clearSaveError}),Ke.popup&&jsxRuntime.jsx(vt,{dark:i,children:Ke.popup}),W&&jsxRuntime.jsx(di,{controller:l,alwaysVisible:W==="always",onOpenBuilder:M,describeOptions:R}),K!==false&&jsxRuntime.jsx(bi,{controller:l,delay:typeof K=="number"?K:void 0,forced:vr==="loading"}),l.isPaginated()&&jsxRuntime.jsx(si,{page:l.getPage(),pageCount:l.getPageCount(),pageSize:l.getPageSize(),pageSizes:ee.pagination?.pageSizes,pageButtons:ee.pagination?.pageButtons,maxPageButtons:ee.pagination?.maxPageButtons,totalRows:ft,onPage:o=>l.setPage(o),onNext:()=>l.nextPage(),onPrevious:()=>l.previousPage(),onPageSize:o=>l.setPageSize(o)}),L&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:Yd}),uo&&jsxRuntime.jsx(wi,{anchor:uo.anchor,value:uo.text,dark:i,onCommit:Cd,onCancel:()=>Kr(null)}),_n&&jsxRuntime.jsx(yr,{x:_n.x,y:_n.y,items:_n.items,context:_n.context,dark:i,onClose:Rd}),Po&&jsxRuntime.jsx(vt,{dark:i,kind:"toast",children:jsxRuntime.jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:Po.x,top:Po.y},onClick:()=>Lo(null),children:Po.message})}),hn&&jsxRuntime.jsx(yr,{x:hn.x,y:hn.y,items:hn.items,context:hn.context,dark:i,label:`${hn.context.headerName} column`,onClose:()=>Ar(null)}),Fi&&jsxRuntime.jsx(Ti,{state:Fi,dark:i}),qi&&jsxRuntime.jsx(li,{controller:l,columns:l.getColumnStates(),anchor:qi,dark:i,onClose:()=>Br(null)}),An&&jsxRuntime.jsx(hs,{controller:l,columnId:An.columnId,headerLabel:An.label,anchor:An.anchor,dark:i,onClose:()=>Lr(null)},An.columnId),tt&&jsxRuntime.jsx(Ja,{gridId:e.gridId,columnId:tt.columnId,headerLabel:tt.label,entries:tt.entries,initialSelected:tt.selected,anchor:tt.anchor,loading:tt.loading,truncated:tt.truncated,pager:tt.pager,onSearch:tt.capped&&!l.isRemote()?o=>{let{entries:p,truncated:v}=l.searchDistinctValues(tt.columnId,o);St(z=>z&&z.columnId===tt.columnId?{...z,entries:p,truncated:v}:z);}:void 0,dark:i,onApply:gd,onClose:()=>St(null),onCustom:M?()=>{let o=tt.columnId;St(null),M({columnId:o});}:void 0},tt.columnId)]})}function Lf({defs:e,values:t,columnModel:n,rowCount:r,rowCountLabel:i}){let a=Se(),u=datagridCore.summaryTypeLabels(a);return e.length===0&&r===void 0?null:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-summary-bar",role:"status","aria-label":a.summaryAria,children:[r!==void 0&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsx("strong",{children:r.toLocaleString()})," ",i??a.summaryRows]}),e.map(m=>{let f=t[datagridCore.summaryKey(m.columnId,m.type)],w=n.getDef(m.columnId),C=datagridCore.formatSummaryValue(m,f,w);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-label",children:[datagridCore.summaryLabel(m,u)," ",w?.headerName??m.columnId,":"]}),jsxRuntime.jsx("strong",{children:C})]},datagridCore.summaryKey(m.columnId,m.type))})]})}var If=react.memo(Lf);function Ff({icon:e,label:t,shortcut:n,disabledReason:r,showLabel:i=false,onClick:a,testId:u}){let m=r!==void 0,f=n?`${t} (${n})`:t;return jsxRuntime.jsxs("button",{type:"button",className:`kanuni-datagrid-app-button${i?"":" kanuni-datagrid-toolbar-icon-button"}`,"aria-label":i?void 0:t,"aria-keyshortcuts":n,"aria-disabled":m||void 0,"aria-description":m?r:void 0,title:m?`${f} \u2014 ${r}`:f,"data-testid":u,onClick:w=>{if(m){w.preventDefault();return}a?.();},children:[e,i&&jsxRuntime.jsx("span",{children:t})]})}function _f(e,t){return Pi(e,t,t?.source,(n,r)=>n.computeChartData(r))}function $f(e,t){return Pi(e,t,t?.source,(n,r)=>n.computeChartXYData(r))}function Wf(e,t){return Pi(e,t,t?.source,(n,r)=>n.computeChartBoxData(r))}function Pi(e,t,n,r){let[i,a]=react.useState(null);return react.useEffect(()=>{if(!e||!t){a(null);return}let u=n??"view",m=datagridCore.chartNeedsOrder(t),f=false,w=0,C=false,h=false,F=null,E=()=>{let K=++w;r(e,t).then(L=>{!f&&K===w&&a(L);},()=>{});},k=(K=false)=>{h||=K,!C&&(C=true,queueMicrotask(()=>{if(C=false,f)return;let L=e.chartBasis(u,m);!h&&L===F||(h=false,F=L,E());}));};F=e.chartBasis(u,m),E();let S=[e.events.on("contentReady",()=>k()),e.events.on("rowsChanged",()=>k()),e.events.on("dataUpdated",()=>k()),...u==="selection"?[e.events.on("selectionChanged",()=>k(true))]:[]];return ()=>{f=true,w++,S.forEach(K=>K());}},[e,t]),i}Object.defineProperty(exports,"ClientRowModel",{enumerable:true,get:function(){return datagridCore.ClientRowModel}});Object.defineProperty(exports,"ColumnModel",{enumerable:true,get:function(){return datagridCore.ColumnModel}});Object.defineProperty(exports,"DEFAULT_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DEFAULT_ROW_HEIGHT}});Object.defineProperty(exports,"DENSITY_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DENSITY_ROW_HEIGHT}});Object.defineProperty(exports,"DataGridController",{enumerable:true,get:function(){return datagridCore.DataGridController}});Object.defineProperty(exports,"GRID_COLOR_SCHEMES",{enumerable:true,get:function(){return datagridCore.GRID_COLOR_SCHEMES}});Object.defineProperty(exports,"GRID_PALETTES",{enumerable:true,get:function(){return datagridCore.GRID_PALETTES}});Object.defineProperty(exports,"GRID_THEMES",{enumerable:true,get:function(){return datagridCore.GRID_THEMES}});Object.defineProperty(exports,"GridStateStore",{enumerable:true,get:function(){return datagridCore.GridStateStore}});Object.defineProperty(exports,"SUMMARY_TYPE_LABEL",{enumerable:true,get:function(){return datagridCore.SUMMARY_TYPE_LABEL}});Object.defineProperty(exports,"SaveRejected",{enumerable:true,get:function(){return datagridCore.SaveRejected}});Object.defineProperty(exports,"THEME_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.THEME_ROW_HEIGHT}});Object.defineProperty(exports,"VirtualWindowEngine",{enumerable:true,get:function(){return datagridCore.VirtualWindowEngine}});Object.defineProperty(exports,"allowedSummaryTypes",{enumerable:true,get:function(){return datagridCore.allowedSummaryTypes}});Object.defineProperty(exports,"andFilters",{enumerable:true,get:function(){return datagridCore.andFilters}});Object.defineProperty(exports,"attachStateStoring",{enumerable:true,get:function(){return datagridCore.attachStateStoring}});Object.defineProperty(exports,"bandDepth",{enumerable:true,get:function(){return datagridCore.bandDepth}});Object.defineProperty(exports,"bandPath",{enumerable:true,get:function(){return datagridCore.bandPath}});Object.defineProperty(exports,"computeColumnLayout",{enumerable:true,get:function(){return datagridCore.computeColumnLayout}});Object.defineProperty(exports,"computeHeaderBands",{enumerable:true,get:function(){return datagridCore.computeHeaderBands}});Object.defineProperty(exports,"createRestDataSource",{enumerable:true,get:function(){return datagridCore.createRestDataSource}});Object.defineProperty(exports,"describeFilter",{enumerable:true,get:function(){return datagridCore.describeFilter}});Object.defineProperty(exports,"downloadBlob",{enumerable:true,get:function(){return datagridCore.downloadBlob}});Object.defineProperty(exports,"fillText",{enumerable:true,get:function(){return datagridCore.fillText}});Object.defineProperty(exports,"filterInputFromNode",{enumerable:true,get:function(){return datagridCore.filterInputFromNode}});Object.defineProperty(exports,"formatSummaryValue",{enumerable:true,get:function(){return datagridCore.formatSummaryValue}});Object.defineProperty(exports,"humanizeField",{enumerable:true,get:function(){return datagridCore.humanizeField}});Object.defineProperty(exports,"importCsv",{enumerable:true,get:function(){return datagridCore.importCsv}});Object.defineProperty(exports,"inferColumns",{enumerable:true,get:function(){return datagridCore.inferColumns}});Object.defineProperty(exports,"isDataRow",{enumerable:true,get:function(){return datagridCore.isDataRow}});Object.defineProperty(exports,"isDataSource",{enumerable:true,get:function(){return datagridCore.isDataSource}});Object.defineProperty(exports,"isFilterGroup",{enumerable:true,get:function(){return datagridCore.isFilterGroup}});Object.defineProperty(exports,"isGroupRow",{enumerable:true,get:function(){return datagridCore.isGroupRow}});Object.defineProperty(exports,"isPackagedTheme",{enumerable:true,get:function(){return datagridCore.isPackagedTheme}});Object.defineProperty(exports,"isSaveRejected",{enumerable:true,get:function(){return datagridCore.isSaveRejected}});Object.defineProperty(exports,"lookupLabel",{enumerable:true,get:function(){return datagridCore.lookupLabel}});Object.defineProperty(exports,"moveRowInArray",{enumerable:true,get:function(){return datagridCore.moveRowInArray}});Object.defineProperty(exports,"parseCsv",{enumerable:true,get:function(){return datagridCore.parseCsv}});Object.defineProperty(exports,"parseFilterInput",{enumerable:true,get:function(){return datagridCore.parseFilterInput}});Object.defineProperty(exports,"sniffDelimiter",{enumerable:true,get:function(){return datagridCore.sniffDelimiter}});Object.defineProperty(exports,"summaryKey",{enumerable:true,get:function(){return datagridCore.summaryKey}});Object.defineProperty(exports,"summaryLabel",{enumerable:true,get:function(){return datagridCore.summaryLabel}});Object.defineProperty(exports,"summaryTypeLabels",{enumerable:true,get:function(){return datagridCore.summaryTypeLabels}});Object.defineProperty(exports,"themeClassName",{enumerable:true,get:function(){return datagridCore.themeClassName}});exports.BAND_ROW_HEIGHT=eo;exports.DEFAULT_EDIT_FORM_LABELS=ac;exports.DEFAULT_HEADER_MENU_LABELS=Us;exports.DataGrid=Gf;exports.EDITOR_OWNED_SELECTOR=Yt;exports.GRID_PORTAL_SELECTOR=yl;exports.GridCellEditor=ha;exports.GridColumnChooser=li;exports.GridContextMenu=yr;exports.GridDateEditor=Dn;exports.GridDialog=Ca;exports.GridEditForm=ca;exports.GridFilterPanel=di;exports.GridFilterRow=Va;exports.GridFooterRow=mr;exports.GridGroupPanel=ni;exports.GridHeader=_a;exports.GridHeaderBands=Aa;exports.GridHeaderFilterPopup=Ja;exports.GridLoadingOverlay=bi;exports.GridLookupEditor=En;exports.GridNoteEditor=wi;exports.GridPager=si;exports.GridPinnedRows=pr;exports.GridPopupPanel=Pn;exports.GridPortal=vt;exports.GridRow=Zn;exports.GridRowEditor=ma;exports.GridSummaryBar=If;exports.GridSurfaceProvider=aa;exports.GridTextProvider=Jr;exports.GridToolbar=ii;exports.GridToolbarButton=Ff;exports.GridTooltip=Ti;exports.LOOKUP_PENDING=mn;exports.LookupLabels=Zo;exports.PRINT_MAX_ROWS=Ta;exports.ROW_DRAG_MIME=hr;exports.SHORTCUT_COPY=Gs;exports.SHORTCUT_CUT=Ep;exports.SHORTCUT_PASTE=Dp;exports.ToolbarIcon=oi;exports.buildCellMenuItems=pi;exports.buildHeaderMenu=vi;exports.copyToClipboard=oo;exports.editFormColumnIds=Jl;exports.editFormLabels=ua;exports.editorOwnsKey=vn;exports.editorSeedText=Yo;exports.eventFromOwnDom=Dt;exports.focusStaysWithGrid=Wo;exports.gridIgnoresKey=Zr;exports.headerMenuLabels=Rr;exports.isAltGraphChar=po;exports.keyClaimed=Tn;exports.lookupEditorSettings=wo;exports.lookupLabelsFor=ho;exports.lookupPickValues=yo;exports.markKeyHandledByApp=Qr;exports.matchOptions=Uu;exports.measureBestFitWidth=br;exports.numberTextFormat=Nt;exports.reconcileFilterInputs=Wa;exports.runGridExport=To;exports.useAlignedGrids=Ea;exports.useAnchoredPopup=Nn;exports.useCellTooltip=ki;exports.useDataGrid=jr;exports.useEditModes=ya;exports.useGridChartBoxData=Wf;exports.useGridChartData=_f;exports.useGridChartXYData=$f;exports.useGridEditing=ta;exports.useGridPortalTarget=Zt;exports.useGridSurfaceClass=Bt;exports.useGridText=Se;exports.usePrintLayout=va;exports.useRowDrag=Ci;exports.useStateStoring=hi;exports.writeClipboardText=Sp;
|
|
1
|
+
'use strict';var react=require('react'),datagridCore=require('@kanunilabs/datagrid-core'),jsxRuntime=require('react/jsx-runtime'),reactDom=require('react-dom');var su=["contentReady","viewportChanged","columnStateChanged","sortChanged","filterChanged","selectionChanged","focusChanged","summariesChanged","rowPinningChanged","findChanged"],bl=new WeakMap;function Qr(e){let t=bl.get(e);if(!t){let n={version:0,listeners:new Set},o=()=>{n.version++,n.listeners.forEach(i=>i());};for(let i of su)e.events.on(i,o);bl.set(e,n),t=n;}return t}function Zr(e){let t=e.sorting?.postSort,n=react.useRef(t);react.useEffect(()=>{n.current=t;},[t]);let[o]=react.useState(()=>((L,w)=>n.current?.(L,w))),i=()=>{let L=new datagridCore.DataGridController(t?{...e,sorting:{...e.sorting,postSort:o}}:e);return Qr(L),L},[a,d]=react.useState(i);react.useEffect(()=>{if(a.isDisposed()){d(i());return}return ()=>a.dispose()},[a]);let c=react.useCallback(L=>{let{listeners:w}=Qr(a);return w.add(L),()=>{w.delete(L);}},[a]),p=react.useCallback(()=>Qr(a).version,[a]);react.useSyncExternalStore(c,p,p);let{dataSource:g,columns:h}=e,b=react.useRef(true);react.useEffect(()=>{if(b.current){b.current=false;return}Array.isArray(g)&&a.setData(g);},[a,g]);let I=react.useRef(true);react.useEffect(()=>{if(I.current){I.current=false;return}a.setColumns(h);},[a,h]);let E=e.pagination?e.pagination.enabled!==false:false;react.useEffect(()=>{a.setPaginationEnabled(E);},[a,E]);let R=e.rowHeight,v=react.useRef(true);react.useEffect(()=>{if(v.current){v.current=false;return}R!==void 0&&a.setRowHeight(R);},[a,R]);let K=e.selection?.mode??"none";react.useEffect(()=>{a.setSelectionMode(K);},[a,K]);let N=e.rowPinning;react.useEffect(()=>{a.setRowPinning(N);},[a,N]);let M=e.selection?.isRowSelectable,S=react.useRef(true);react.useEffect(()=>{if(S.current){S.current=false;return}a.setRowSelectable(M??null);},[a,M]);let $=t!==void 0,X=react.useRef(true);react.useEffect(()=>{if(X.current){X.current=false;return}a.setPostSort($?o:null);},[a,$,o]);let Y=e.grouping?.groupBy??null,W=JSON.stringify(Y==null?[]:typeof Y=="string"?[Y]:Y),C=react.useRef(true);return react.useEffect(()=>{if(C.current){C.current=false;return}a.groupBy(JSON.parse(W));},[a,W]),{controller:a,rows:a.getRows(),window:a.getVirtualWindow(),layout:a.getColumnLayout(),sort:a.getSort(),rowHeight:a.getRowHeight(),visibleCount:a.getVisibleCount(),totalCount:a.getTotalCount()}}var Rl=react.createContext(datagridCore.getGridDictionary("en"));function ea({locale:e,messages:t,children:n}){let o=react.useMemo(()=>datagridCore.getGridDictionary(e,t),[e,t]);return jsxRuntime.jsx(Rl.Provider,{value:o,children:n})}function Pe(){return react.useContext(Rl)}var Vo=new WeakSet;function po(e){return "nativeEvent"in e?e.nativeEvent:e}function ta(e){Vo.add(po(e));}function fo(e){let t=po(e);return t.key.length===1&&typeof t.getModifierState=="function"&&t.getModifierState("AltGraph")}function na(e){let t=po(e);return t.defaultPrevented||Vo.has(t)?true:t.altKey&&!fo(t)}function vn(e){let t=po(e);return t.defaultPrevented||Vo.has(t)}var pu=new Set(["a","c","v","x","z","y","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","Backspace","Delete"]);function xn(e){let t=po(e);return Vo.has(t)||/^F([1-9]|1[0-2])$/.test(t.key)?false:fo(t)?true:t.altKey?false:t.ctrlKey||t.metaKey?pu.has(t.key.length===1?t.key.toLowerCase():t.key):true}var Yt="[data-kanuni-editor]",Cl=".kanuni-datagrid-portal, [data-kanuni-portal]";function St(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(Cl):false}function Uo(e,t){return t?!!t.closest(`${e}, .kanuni-datagrid-detached, [data-kanuni-portal], ${Yt}`):false}function Nt(e){let t=e?.numberFormat;if(!(!t?.locale||e?.lookup||e?.renderEditor||e?.allowFormulas))return t}function zo(e,t){return typeof e=="number"||e===null||e===void 0?datagridCore.editableNumberText(e,t.locale):e}function Tl(e,t){if(typeof e!="string")return e;let n=datagridCore.readNumberText(e,t);return n===void 0?Number.NaN:n}function vl(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 p=datagridCore.formatNumberDisplay(o.decimals===0?1234:1234.5,o);return a.validationNumberLocale.replace("{example}",p)}let d=datagridCore.numberBoundsError(i,o);if(!d)return true;let c=datagridCore.formatNumberDisplay(d.limit,{...o,decimals:void 0});return d.bound==="min"?a.validationMin.replace("{min}",c):a.validationMax.replace("{max}",c)}}]}var Yo=new WeakMap,qo=new WeakMap,Pu=1e5,Lu=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown","Tab"]);function Iu(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 ra(e){let t=e.controller?.isEnterpriseEdition()??false;return Ku(t?e:Iu(e))}function Ku({controller:e,mode:t="batch",rules:n,onSave:o,crud:i,allowAdding:a,allowUpdating:d,allowDeleting:c,onInitNewRow:p,onRowInserted:g,onRowUpdated:h,onRowRemoved:b,editOnKeyPress:I,confirmDelete:E,confirmDeleteMessage:R,insertKey:v,appendOnArrowDown:K,newRowPosition:N,focusCellOnTab:M,focusCellOnCycle:S,keepEditingOnTab:$,enabled:X=true,savedDuration:Y,range:W=true,history:C=true,canEditColumn:L,onReady:w,commitOn:y="cell",rowMessages:D=false,editKeys:x,appendOnTab:z,deleteKey:te,fillKeys:F,rangePaste:j}){let le=Pe(),[me,Fe]=react.useState(0),Oe=react.useCallback(()=>Fe(s=>s+1),[]),ye=react.useMemo(()=>new datagridCore.RangeSelectionEngine,[]),Le=react.useMemo(()=>({start(s,m){ye.start(s,m),Oe();},add(s,m){ye.add(s,m),Oe();},extend(s,m){ye.extend(s,m)&&Oe();},finish(){ye.finish(),Oe(),e?.notifyViewStateChanged();},clear(){ye.clear()&&(Oe(),e?.notifyViewStateChanged());},contains:(s,m)=>ye.contains(s,m),isAnchor:(s,m)=>ye.isAnchor(s,m),getRange:()=>ye.getRange(),getBounds:()=>ye.getBounds(),toTsv:s=>ye.toTsv(s),selectColumn(s,m,k){return ye.selectColumn(s,m,k)?(Oe(),e?.notifyViewStateChanged(),true):false},fullColumns:s=>ye.fullColumns(s)}),[ye,Oe,e]),A=react.useRef(null);react.useEffect(()=>{if(!(!e||!W))return e.registerViewStatePart("ranges",{session:true,get:()=>datagridCore.rangesToSaved(ye.getRanges(),e.getVisualColumnIds()),apply:s=>{ye.setRanges(datagridCore.rangesFromSaved(s,e.getVisualColumnIds())),Oe();}})},[e,W,ye,Oe]);let[de,ae]=react.useState(null),q=react.useRef({onSave:o,crud:i,allowAdding:a,allowUpdating:d,allowDeleting:c,onInitNewRow:p,onRowInserted:g,onRowUpdated:h,onRowRemoved:b,editOnKeyPress:I,confirmDelete:E,confirmDeleteMessage:R,insertKey:v,appendOnArrowDown:K,newRowPosition:N,focusCellOnTab:M,focusCellOnCycle:S,keepEditingOnTab:$,canEditColumn:L,onReady:w,historyEnabled:C,rowMessages:D,editKeys:x,appendOnTab:z,deleteKey:te,fillKeys:F,rangePaste:j,text:le});q.current={onSave:o,crud:i,allowAdding:a,allowUpdating:d,allowDeleting:c,onInitNewRow:p,onRowInserted:g,onRowUpdated:h,onRowRemoved:b,editOnKeyPress:I,confirmDelete:E,confirmDeleteMessage:R,insertKey:v,appendOnArrowDown:K,newRowPosition:N,focusCellOnTab:M,focusCellOnCycle:S,keepEditingOnTab:$,canEditColumn:L,onReady:w,historyEnabled:C,rowMessages:D,editKeys:x,appendOnTab:z,deleteKey:te,fillKeys:F,rangePaste:j,text:le};let Ge=react.useRef(null),u=react.useMemo(()=>{if(!e||!X)return null;let s=m=>e.getRowByKey(m);return new datagridCore.EditingEngine({mode:t,commitOn:y,rules:n,messages:le,onChange:Oe,onAutoSaveFailed:m=>Ge.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:k})=>e.notifyHistoryStarted(m,k),onHistoryEnded:({kind:m,...k})=>e.notifyHistoryEnded(m,k),onChangesChanged:m=>e.notifyChangesChanged(m),newRowKey:m=>{let k=e.getRowKeyField(),B=k?m[k]:void 0;return datagridCore.isRowKey(B)&&B!==""?B:void 0},readValue:(m,k)=>{let B=s(m);return B?e.getColumnModel().getStoredValue(B,k):void 0},formatForEdit:(m,k,B)=>{let Z=Nt(e.getColumnModel().getDef(k));return Z?zo(B,Z):e.formatCellForEdit(k,B)},parseFromEdit:(m,k,B)=>{let Z=e.getColumnModel().getDef(k),H=Nt(Z);return H&&!Z?.valueParser?Tl(B,H):e.parseCellFromEdit(k,B,m)},columnRules:m=>vl(e,m,()=>q.current.text),readRow:s,editableColumns:m=>{let k=e.getColumnLayout(),B=s(m);return [...k.left,...k.center,...k.right].map(Z=>Z.state.id).filter(Z=>{if(e.getColumnModel().getDef(Z)?.editable===false||q.current.canEditColumn&&!q.current.canEditColumn(Z))return false;let H=q.current.allowUpdating;return H===void 0?true:typeof H=="function"?H(B,Z):H})},isColumnEditable:m=>e.getColumnModel().getDef(m)?.editable!==false&&(q.current.canEditColumn?.(m)??true),applyValue:(m,k,B)=>e.writeCellValue(m,k,B),storedValue:(m,k,B)=>e.valueAfterWrite(m,k,B),insertRow:(m,k,B,Z)=>{let H=e.getRowKeyField(),U={...k};H&&!datagridCore.isRowKey(U[H])&&(U[H]=m),e.applyTransaction({add:[U],addPosition:B,addBeforeKey:Z});},dropRow:m=>e.applyTransaction({remove:[m]}),replaceRow:(m,k)=>{let B=e.getRowKey(k);return B===m?(e.applyTransaction({update:[k]}),B):(e.applyTransaction({remove:[m],add:[k]}),B)},allowAdding:()=>q.current.allowAdding??false,allowUpdating:(m,k)=>{let B=q.current.allowUpdating;return B===void 0?true:typeof B=="function"?B(m,k):B},allowDeleting:m=>{let k=q.current.allowDeleting;return k===void 0?false:typeof k=="function"?k(m):k},onInitNewRow:m=>q.current.onInitNewRow?.(m),get newRowPosition(){return q.current.newRowPosition},onRowInserted:(m,k)=>q.current.onRowInserted?.(m,k),onRowUpdated:(m,k,B)=>q.current.onRowUpdated?.(m,k,B),onRowRemoved:(m,k)=>q.current.onRowRemoved?.(m,k),crud:{get insert(){let m=q.current.crud?.insert;return m&&(k=>m(k))},get update(){let m=q.current.crud?.update;return m&&((k,B,Z)=>m(k,B,Z))},get remove(){let m=q.current.crud?.remove;return m&&((k,B)=>m(k,B))}},onSave:m=>q.current.onSave?.(m)})},[e,X]);react.useEffect(()=>{u?.setMessages(le);},[u,le]),react.useEffect(()=>{u?.setMode(t);},[u,t]),react.useEffect(()=>{u?.setCommitOn(y);},[u,y]),react.useEffect(()=>{Y!==void 0&&u?.setSavedDuration(Y);},[u,Y]);let Ie=react.useRef(null),Ve=react.useRef(null),Ee=react.useMemo(()=>datagridCore.createEditingApi({engine:()=>Ie.current,history:()=>q.current.historyEnabled!==false,addRow:(s,m)=>Ve.current?.(s,m)??null}),[]),De=react.useRef(false);react.useEffect(()=>{if(!(!e||!u))return Ie.current=u,e.setEditingApi(Ee),De.current||(De.current=true,q.current.onReady?.(Ee)),()=>{Ie.current=null,e.editing===Ee&&e.setEditingApi(null);}},[e,u,Ee]),react.useEffect(()=>(u?.resume(),()=>u?.dispose()),[u]),react.useEffect(()=>{if(!e||!u)return;let s=false,m=e.events.on("rowsChanged",B=>{s=B.removed===0;}),k=e.events.on("dataUpdated",()=>{let B=s;s=false,!B&&u.retainKeys(new Set(e.getDataRows().map(Z=>Z.key)));});return ()=>{m(),k();}},[e,u]),react.useEffect(()=>{if(e)return e.events.on("columnStateChanged",()=>Le.clear())},[e,Le]),react.useEffect(()=>{if(!(!e||!u))return e.setPendingValueReader({effectiveValue:(s,m,k)=>u.changes.effectiveValue(s,m,k),effectiveRow:(s,m)=>u.changes.applyPendingTo(s,m),hasPending:()=>u.changes.hasChanges()}),()=>e.setPendingValueReader(null)},[e,u]),react.useEffect(()=>{if(!(!e||!u||!C))return e.setHistoryDelegate({undo:()=>u.undo(),redo:()=>u.redo(),canUndo:()=>u.canUndo(),canRedo:()=>u.canRedo(),depth:()=>u.undoStack.getDepth()}),()=>e.setHistoryDelegate(null)},[e,u,C]);let ot=react.useMemo(()=>datagridCore.createDebouncedCommit(150),[]);react.useEffect(()=>()=>ot.cancelAll(),[ot]);let ee=react.useRef(me);react.useEffect(()=>{!e||!u||me===ee.current||(ee.current=me,ot.schedule("footer",()=>e.refreshSummaries()));},[e,u,me,ot]);let Ce=react.useCallback(s=>{let m=e?.getRows()[s];return m&&m.kind==="data"?m.key:null},[e]),fe=react.useCallback(s=>e?.getColumnIdAt(s)??null,[e]),et=react.useCallback((s,m)=>{e?.scrollToCell(s,m),u?.beginEdit(s,m);},[u,e]),Be=react.useCallback((s={},m,k={})=>{let B=u?.addRow(s,m,k.position)??null;if(B===null||!e)return B;if(datagridCore.isRowEditMode(t))return e.revealRow(B),B;let Z=e.getRowKeyField(),H=e.getColumnModel().runtime().find(U=>U.state.visible&&U.def.editable!==false&&(Z===null||(U.def.field??U.state.id)!==Z));return e.revealRow(B),H&&(e.focusCell(B,H.state.id),k.open!==false?u?.beginEdit(B,H.state.id):se()),B},[u,e]);Ve.current=Be;let oe=react.useCallback(s=>{if(!u)return false;let m=q.current.confirmDelete;if(m===false)return u.removeRow(s);let k=e?.getRowByKey(s);if(typeof m!="function")return He({rowKey:s,message:q.current.confirmDeleteMessage??le.editDeleteConfirm}),false;let B=m(s,k);return typeof B=="boolean"?B?u.removeRow(s):false:(B.then(Z=>{Z&&u.removeRow(s);}),false)},[u,e]),ke=react.useCallback((s,m)=>{if(!u||!e)return;if(u.isRemoved(s)){u.restoreRow(s);return}if(!u.canDelete(s))return;let k=q.current.confirmDelete;if(typeof k!="function")return;let B=()=>{let U=e.getRows(),ge=U.findIndex(we=>we.key===s);if(ge<0)return null;for(let we=ge+1;we<U.length;we++)if(U[we]?.kind==="data")return U[we].key;for(let we=ge-1;we>=0;we--)if(U[we]?.kind==="data")return U[we].key;return null},Z=()=>{let U=u.getMode()!=="batch"||u.changes.isInserted(s),ge=U?B():null;u.removeRow(s)&&U&&(ge!==null?e.focusCell(ge,m):e.clearFocus(),se());},H=k(s,e.getRowByKey(s));if(typeof H=="boolean"){H&&Z();return}H.then(U=>{U&&Z();});},[u,e]),se=react.useCallback(()=>{e&&document.querySelector(`[data-grid-id="${CSS.escape(e.gridId)}"] .kanuni-datagrid-scroller`)?.focus({preventScroll:true});},[e]),G=react.useCallback((s,m={})=>{if(!u||!e)return false;let k=u.getSession(),B=k?{rowKey:k.rowKey,columnId:k.columnId}:e.getFocus();if(!B)return false;let Z=k!==null;if(!u.commitEdit())return false;let H=()=>(Z&&se(),false),U=Xe=>e.getColumnModel().getDef(Xe)?.editable!==false&&(q.current.canEditColumn?.(Xe)??true),ge=e.getColumnModel().runtime().filter(Xe=>Xe.state.visible).map(Xe=>Xe.state.id);if(datagridCore.edgeEditableColumn(ge,U,1)===null)return false;let we=e.getRows(),xe=we.findIndex(Xe=>Xe.key===B.rowKey);if(xe<0)return false;let je=datagridCore.nextEditableColumn(ge,U,B.columnId,s);if(je===null){if(m.cycle===false)return H();let Xe=s;do xe+=Xe;while(xe>=0&&xe<we.length&&we[xe]?.kind!=="data");if(xe>=we.length&&s===1&&q.current.appendOnTab===true&&u.canAdd())return Be({},void 0,{position:"last",open:m.open===true})!==null;if(xe<0||xe>=we.length)return H();je=datagridCore.edgeEditableColumn(ge,U,s);}let qe=we[xe];return !qe||qe.kind!=="data"?H():(e.focusCell(qe.key,je),e.scrollToCell(qe.key,je),m.open===true?u.beginEdit(qe.key,je):(se(),true))},[u,e,Be]),O=react.useCallback((s,m,k)=>!u||!e||u.isEditingRow()||!u.canEditRow(s)||(e.scrollToCell(s,m),!u.beginRowEdit(s))?false:(k!==void 0&&u.getMode()==="row"&&(Yo.set(u,m),u.setRowEditValue(m,k)),true),[u,e]),J=react.useCallback(s=>{if(!u||!e||u.getSession())return false;let m=e.getFocus();if(!m)return false;let k=e.getColumnModel().getDef(m.columnId);if(k?.editable===false)return false;let B=e.getColumnModel().getEditorDataType(m.columnId);if(B==="boolean")return false;let Z=s,H,U=Nt(k);if(U){let{decimal:we}=datagridCore.numberSeparators(U.locale);if(!(/^\d$/.test(s)||s===we||s==="-"&&U.allowNegative!==false))return false}else if(B==="number")if(/^\d$/.test(s))Z=Number(s);else if(s==="-"||s===",")Z=void 0,H=s;else return false;else if(B==="date"){if(!/^\d$/.test(s))return false;Z=void 0,H=s;}if(datagridCore.isRowEditMode(u.getMode()))return O(m.rowKey,m.columnId,Z);if(e.scrollToCell(m.rowKey,m.columnId),!u.beginEdit(m.rowKey,m.columnId,Z))return false;let ge=u.getSession();return H!==void 0&&ge&&qo.set(ge,H),true},[u,e,O]),[ve,ne]=react.useState(null),[Me,He]=react.useState(null),Ue=react.useCallback(s=>{let m=Me;He(null),s&&m&&u&&u.removeRow(m.rowKey);},[Me,u]),be=react.useCallback(s=>{if(u?.getMode()==="cell"&&u.getCommitOn()==="row"){if(q.current.rowMessages)return;ne({message:s.error??le.editSaveFailed,rowKey:s.rowKey,columnId:s.columnId});return}ne({message:s.error??le.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,le,u]);Ge.current=be;let ue=react.useRef(false);react.useEffect(()=>{if(!e||!u)return;let s=()=>u.getMode()==="cell"&&u.getCommitOn()==="row",m=e.events.on("focusedRowChanged",U=>{s()&&u.commitRows(U.rowKey);});if(typeof document>"u")return m;let k=`[data-grid-id="${CSS.escape(e.gridId)}"]`,B=U=>!Uo(k,U),Z=null,H=U=>{if(!s()||ue.current)return;let ge=U.target instanceof Element?U.target:null;if(!ge||!ge.closest(k))return;let we=U.relatedTarget instanceof Element?U.relatedTarget:null;we&&!B(we)||!ge.isConnected&&!we||(Z!==null&&clearTimeout(Z),Z=setTimeout(()=>{if(Z=null,u.getSession()||ue.current)return;let xe=document.activeElement;xe&&xe!==document.body&&!B(xe)||u.commitRows(null);},0));};return document.addEventListener("focusout",H,true),()=>{m(),document.removeEventListener("focusout",H,true),Z!==null&&clearTimeout(Z);}},[e,u]);let Et=react.useCallback((s,m)=>{if(!u||!e||u.getMode()!=="cell"||u.getCommitOn()!=="row"||!u.isEmptyNewRow(s))return false;let k=e.getRows(),B=k.findIndex(U=>U.key===s),Z=null;for(let U=B+1;B>=0&&U<k.length&&Z===null;U++)k[U]?.kind==="data"&&(Z=k[U].key);for(let U=B-1;B>=0&&U>=0&&Z===null;U--)k[U]?.kind==="data"&&(Z=k[U].key);u.discardEmptyNewRow(s);let H=m??e.getFocus()?.columnId??null;return Z!==null&&H!==null?e.focusCell(Z,H):e.clearFocus(),true},[u,e]),l=react.useRef(null),rt=react.useCallback(()=>{if(!u)return;let s=u.getSession();u.cancelEdit(),s&&Et(s.rowKey,s.columnId),se();},[u,Et,se]),P=react.useCallback(s=>{!u||!u.commitEdit()||s!=="blur"&&(s==="down"&&q.current.editKeys?.enter!==true&&e?.moveFocus("down"),se());},[u,e,se]),Q=react.useCallback(s=>{if(!u||!e)return false;if(s==="next"||s==="previous"){if(q.current.focusCellOnTab===false)return u.commitEdit()?(se(),true):false;let m=u.getSession();return G(s==="next"?1:-1,{open:q.current.keepEditingOnTab===true,cycle:q.current.focusCellOnCycle!==false}),m===null||u.getSession()!==m}return u.commitEdit()?s==="blur"?(u.getMode()==="cell"&&u.getCommitOn()==="row"&&typeof document<"u"&&!Uo(`[data-grid-id="${CSS.escape(e.gridId)}"]`,document.activeElement)&&u.commitRows(null),true):(s==="down"&&e.moveFocus("down"),se(),true):false},[u,e,se,G]),We=react.useCallback((s,m)=>{ue.current=s,!(s||typeof document>"u")&&setTimeout(()=>{setTimeout(()=>{let k=document.activeElement;if(k&&k!==document.body&&k.isConnected)return;let B=u?.getSession()?m?.():null;B?.isConnected?B.focus({preventScroll:true}):se();},0);},0);},[u,se]);react.useEffect(()=>{u?.getSession()||(ue.current=false);},[u,me]);let $e=react.useCallback(()=>ue.current,[]),dt=react.useCallback(()=>{let s=u?.getSession()??null,m=u?.getRowSession()??null,k=e?.getFocus()??null,B=s?{rowKey:s.rowKey,columnId:s.columnId}:m?{rowKey:m.rowKey,columnId:k?.columnId??""}:k?{rowKey:k.rowKey,columnId:k.columnId}:null;return {editing:s!==null||m!==null,cell:B,isNewRow:!!u&&B!==null&&u.changes.isInserted(B.rowKey),commit:()=>u?u.getRowSession()?false:u.getSession()?u.commitEdit()?(se(),true):false:true:true,cancel:()=>{u&&(u.getRowSession()?l.current?.():u.getSession()&&rt());}}},[u,e,se,rt]),tt=react.useCallback(async()=>{if(!u)return;ne(null);let s=await u.saveChanges();s.saved||s.superseded||be(s);},[u,be]),Kn=react.useCallback(()=>ne(null),[]),Vt=react.useCallback(()=>{ne(null),u?.cancelChanges();},[u]);react.useEffect(()=>{(u?.getSession()||u?.isEditingRow())&&ne(null);},[me,u]);let it=react.useMemo(()=>{if(!e||!ye.getRange())return null;let s=ye.cellCount();if(s>Pu)return {cells:s,truncated:true,numeric:null};let m=e.getColumnModel(),k=e.getVisualColumnIds(),B=e.getRows(),Z=ye.getStats((H,U)=>{let ge=B[H],we=k[U];if(!ge||ge.kind!=="data"||!we)return;let xe=u?u.effectiveValue(ge.key,we):m.getCellValue(ge.data,we);return typeof xe=="string"&&xe.trim()!==""&&!Number.isNaN(Number(xe))?Number(xe):xe});return {cells:s,truncated:false,numeric:Z}},[e,ye,u,me]),It=react.useCallback((s,m)=>!!u&&!datagridCore.isChromeColumn(m)&&u.canUpdate(s,m),[u]),Jt=react.useCallback((s,m)=>{let k=Le.getRange();A.current=k??{startRow:s,startColumn:m,endRow:s,endColumn:m},ae(null);},[Le]),Tt=react.useCallback((s,m)=>{let k=A.current;if(!k)return;let B=datagridCore.computeFillTarget(k,s,m);ae(B?{startRow:B.bounds.minRow,startColumn:B.bounds.minColumn,endRow:B.bounds.maxRow,endColumn:B.bounds.maxColumn}:null);},[]),Ut=react.useCallback((s,m)=>{if(!u||!e)return 0;let B=datagridCore.computeFillValues(s,m,(Z,H)=>{let U=Ce(Z),ge=fe(H);return U!==null&&ge?u.effectiveValue(U,ge):void 0}).map(Z=>{let H=Ce(Z.row),U=fe(Z.column);if(H===null||!U||!It(H,U))return null;let ge=Z.from?e.shiftCellFormula(U,Z.value,Z.row-Z.from.row,Z.column-Z.from.column):Z.value;return {rowKey:H,columnId:U,value:ge}}).filter(Z=>Z!==null);return e.notifyClipboardGesture("fill",B.length,()=>B.length===0?false:(u.applyEdits(B,datagridCore.fillText(le.editFillUndo,{count:B.length}),"fill"),true)),B.length},[u,e,Ce,fe,It,le]),Kt=react.useCallback(()=>{let s=A.current,m=de;if(A.current=null,ae(null),!s||!m||!u||!e)return;let k=datagridCore.computeFillTarget(s,m.endRow,m.endColumn);k&&Ut(s,k);},[de,u,e,Ut]),bt=react.useCallback((s,m)=>{if(!e)return "";let k=e.getRows()[s],B=e.getColumnIdAt(m);if(!k||k.kind!=="data"||!B)return "";let Z=e.getColumnModel(),H=u?u.effectiveValue(k.key,B):Z.getCellValue(k.data,B),U=datagridCore.cellDisplayText(Z.getDef(B),H,k.data);return e.clipboardCellText(k,B,H,U).replace(/[\t\r\n]+/g," ")},[e,u]),Ft=react.useCallback((s="copy")=>{if(!e||!Le.getRange())return false;let m=Le.toTsv(bt);return e.notifyClipboardGesture("copy",m?m.split(`
|
|
2
|
+
`).length:0,()=>e.writeClipboard(m,s)),true},[e,Le,bt]),Je=react.useCallback(s=>{if(!e||!u)return false;let m=Le.getRange()!==null,k=s??e.getFocus();if(!m&&!k)return false;if(!Ft("cut")){let U=k?e.getVisualColumnIds().indexOf(k.columnId):-1,ge=k?e.getRows().findIndex(xe=>xe.key===k.rowKey):-1;if(ge<0||U<0)return false;let we=bt(ge,U);e.notifyClipboardGesture("copy",we?1:0,()=>e.writeClipboard(we,"cut"));}let B=[];if(m)ye.forEachCell((U,ge)=>B.push([U,ge]));else {let U=e.getRows().findIndex(we=>we.key===k.rowKey),ge=e.getVisualColumnIds().indexOf(k.columnId);if(U<0||ge<0)return false;B.push([U,ge]);}let Z=e.getRows(),H=[];for(let[U,ge]of B){let we=Z[U];if(!we||we.kind!=="data")continue;let xe=e.getColumnIdAt(ge);!xe||datagridCore.isChromeColumn(xe)||u.canUpdate(we.key,xe)&&H.push({rowKey:we.key,columnId:xe,value:null});}return e.notifyClipboardGesture("cut",H.length,()=>H.length===0?false:(u.applyEdits(H,datagridCore.fillText(le.editCutUndo,{count:H.length}),"cut"),true)),true},[e,u,Le,ye,Ft,bt,le]),Qe=react.useCallback((s,m)=>{if(!u||!e||!s)return;let k=q.current.rangePaste===false,B=e.processPastedTable(k?[[s.replace(/\r?\n$/,"")]]:datagridCore.parseClipboardTable(s));if(!B)return;let Z=k?null:Le.getBounds(),H,U;if(Z)H=Z.minRow,U=Z.minColumn;else {let je=m??e.getFocus();if(!je||(H=e.getRows().findIndex(qe=>qe.key===je.rowKey),U=e.getVisualColumnIds().indexOf(je.columnId),H<0||U<0))return}let ge=datagridCore.computePasteCells(B,H,U,{target:Z,maxRow:e.getRows().length-1,maxColumn:e.getVisualColumnCount()-1}),we=e.getColumnModel(),xe=ge.map(je=>{let qe=Ce(je.row),Xe=fe(je.column);return qe===null||!Xe||!It(qe,Xe)?null:{rowKey:qe,columnId:Xe,value:e.pastedCellValue(qe,Xe,je.text,datagridCore.coercePastedValue(je.text,we.getEditorDataType(Xe)))}}).filter(je=>je!==null);e.notifyClipboardGesture("paste",xe.length,()=>xe.length===0?false:(u.applyEdits(xe,datagridCore.fillText(le.editPasteUndo,{count:xe.length}),"paste"),true));},[u,e,Le,Ce,fe,It,le]),_e=react.useCallback(async s=>{let m="";try{m=await navigator.clipboard.readText();}catch{return}Qe(m,s);},[Qe]),ut=react.useCallback(()=>{if(!e||typeof document>"u")return false;let s=document.querySelector(`[data-grid-id="${CSS.escape(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 k=false,B=H=>{k||(k=true,m.removeEventListener("paste",Z),m.remove(),se(),Qe(H));},Z=H=>{H.preventDefault(),B(H.clipboardData?.getData("text/plain")??"");};return m.addEventListener("paste",Z),m.focus({preventScroll:true}),setTimeout(()=>B(m.value),300),true},[e,se,Qe]),[_,he]=react.useState(null),Te=react.useCallback((s,m)=>u?(he(null),u.beginRowEdit(s,m)):false,[u]),Re=react.useCallback(async()=>{if(!u||!u.getRowSession())return false;let m=e?.getVisualColumnIds()??[],k=await u.saveRowEdit(m);return he(k.saved?null:k.error??null),k.saved&&se(),k.saved},[u,e,se]),re=react.useCallback(()=>{u&&(he(null),u.cancelRowEdit(),se());},[u,se]);l.current=re,react.useEffect(()=>{if(!(!e||!u))return e.setEditingDelegate({startEditingCell:(s,m)=>(e.scrollToCell(s,m),u.beginEdit(s,m)),stopEditing:async s=>{if(u.isEditingRow())return s?(re(),true):Re();if(!u.getSession())return false;if(s)return u.cancelEdit(),se(),true;let m=u.commitEdit();return m&&se(),m},getEditingCells:()=>{let s=u.getRowSession();if(s)return e.getVisualColumnIds().filter(k=>!datagridCore.isChromeColumn(k)&&u.canUpdate(s.rowKey,k)).map(k=>({rowKey:s.rowKey,columnId:k}));let m=u.getSession();return m?[{rowKey:m.rowKey,columnId:m.columnId}]:[]}}),()=>e.setEditingDelegate(null)},[e,u,Re,re,se]);let Rt=react.useCallback(s=>{if(!u||!e)return false;let m=fo(s),k=(s.ctrlKey||s.metaKey)&&!m;if(C&&k&&(s.key==="z"||s.key==="Z"))return s.preventDefault(),s.shiftKey?u.redo():u.undo(),true;if(C&&k&&(s.key==="y"||s.key==="Y"))return s.preventDefault(),u.redo(),true;if(W&&k&&(s.key==="v"||s.key==="V"))return typeof window<"u"&&window.isSecureContext===false&&ut()||(s.preventDefault(),_e()),true;if(W&&k&&(s.key==="x"||s.key==="X"))return s.preventDefault(),Je(),true;if(k&&(s.key==="c"||s.key==="C"))return Ft()?(s.stopPropagation(),true):false;if(u.isEditingRow()){if(s.key==="Enter")return s.preventDefault(),Re(),true;if(s.key==="Escape")return s.preventDefault(),re(),true}if(s.key==="Escape"&&u.getSession())return s.preventDefault(),rt(),true;if(s.key==="Escape"&&!k&&!u.getSession()){let H=e.getFocus();if(H&&Et(H.rowKey,H.columnId))return s.preventDefault(),true}if(s.key==="Enter"&&q.current.editKeys?.enter===true&&!k&&!u.getSession()&&!u.isEditingRow()){let H=e.getFocus();if(H&&!datagridCore.isChromeColumn(H.columnId)&&u.canUpdate(H.rowKey,H.columnId)){let U;if(datagridCore.isRowEditMode(u.getMode())?U=O(H.rowKey,H.columnId):(e.scrollToCell(H.rowKey,H.columnId),U=u.beginEdit(H.rowKey,H.columnId)),U)return s.preventDefault(),s.stopPropagation(),true}}if(s.key==="Tab"&&q.current.focusCellOnTab!==false&&!u.getSession()&&e.getFocus()&&(G(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(W&&s.shiftKey&&!s.altKey&&!u.getSession()&&datagridCore.RANGE_KEY_DIRECTIONS[s.key]){let H=e.getFocus(),U=e.getVisualColumnIds(),ge=U.flatMap((je,qe)=>datagridCore.isChromeColumn(je)?[]:[qe]),we=H?e.getRowIndex(H.rowKey):-1,xe=H?U.indexOf(H.columnId):-1;if(we>=0&&xe>=0&&ge.length>0){s.preventDefault(),s.stopPropagation();let je=e.getRows(),qe=datagridCore.extendRangeByKey(Le.getRange(),{row:we,column:xe},datagridCore.RANGE_KEY_DIRECTIONS[s.key],k,{rows:je.length,firstColumn:ge[0],lastColumn:ge[ge.length-1]});Le.getRange()||Le.start(qe.startRow,qe.startColumn),Le.extend(qe.endRow,qe.endColumn),e.notifyViewStateChanged();let Xe=je[qe.endRow]?.key;return Xe!==void 0&&e.scrollToCell(Xe,U[qe.endColumn]),true}}if(W&&q.current.fillKeys!==false&&k&&!s.shiftKey&&!s.altKey&&!u.getSession()&&(s.key==="d"||s.key==="D"||s.key==="r"||s.key==="R")){let H=e.getFocus(),U=e.getVisualColumnIds(),ge=U.findIndex(Xe=>!datagridCore.isChromeColumn(Xe)),we=H?e.getRowIndex(H.rowKey):-1,xe=H?U.indexOf(H.columnId):-1,je=Le.getRange()??(we>=0&&xe>=0?{startRow:we,startColumn:xe,endRow:we,endColumn:xe}:null),qe=je?datagridCore.keyboardFill(je,s.key.toLowerCase()==="d"?"down":"right",Math.max(0,ge)):null;if(qe)return s.preventDefault(),s.stopPropagation(),Ut(qe.source,qe.target),true}!k&&!s.shiftKey&&!u.getSession()&&Lu.has(s.key)&&Le.clear();let B=q.current.insertKey;if(s.key==="Insert"&&(B===true||B==="above"||B==="below")&&!k&&!u.getSession()){let H=e.getFocus();if(H){if(s.preventDefault(),u.canAdd())if(B==="below"){let U=e.getRows(),ge=U.findIndex(xe=>xe.key===H.rowKey),we;for(let xe=ge+1;ge>=0&&xe<U.length&&we===void 0;xe++)U[xe]?.kind==="data"&&(we=U[xe].key);we!==void 0?Be({},we):Be({},void 0,{position:"last"});}else Be({},H.rowKey);return true}}if(s.key==="Delete"&&k&&!s.shiftKey&&q.current.deleteKey===true&&!u.getSession()){let H=e.getFocus();if(H)return s.preventDefault(),ke(H.rowKey,H.columnId),true}if(s.key==="ArrowDown"&&q.current.appendOnArrowDown===true&&!k&&!s.shiftKey&&!u.getSession()){let H=e.getFocus(),U=e.getRows(),ge=U.length>0?U[U.length-1]:void 0;if(H&&ge&&ge.key===H.rowKey&&u.canAdd())return s.preventDefault(),s.stopPropagation(),Be({}),true}if(s.key==="F2"&&q.current.editKeys?.f2!==false&&!k&&!s.shiftKey){let H=e.getFocus();if(H)return s.preventDefault(),datagridCore.isRowEditMode(u.getMode())?(O(H.rowKey,H.columnId),true):(e.scrollToCell(H.rowKey,H.columnId),u.beginEdit(H.rowKey,H.columnId),true)}if(s.key===" "&&q.current.editKeys?.space===true&&!k&&!s.altKey&&!s.shiftKey&&!u.getSession()){let H=e.getFocus();if(H&&e.getColumnModel().getDef(H.columnId)?.lookup){if(datagridCore.isRowEditMode(u.getMode()))return O(H.rowKey,H.columnId)&&s.preventDefault(),true;if(e.scrollToCell(H.rowKey,H.columnId),u.beginEdit(H.rowKey,H.columnId))return s.preventDefault(),true}}return (q.current.editKeys?.typing??q.current.editOnKeyPress)!==false&&!k&&(!s.altKey||m)&&s.key.length===1&&s.key!==" "&&!u.getSession()&&J(s.key)?(s.preventDefault(),true):false},[u,e,W,C,_e,Je,Ft,J,O,G,Be,Re,re,Ut,rt,Et,ke,ut]);return {engine:u,range:Le,version:me,api:Ee,beginEdit:et,beginRowEdit:Te,saveRowEdit:Re,cancelRowEdit:re,rowSaveError:_,addRow:Be,commitCellEditor:P,commitCustomEditor:Q,suspendBlurCommit:We,blurCommitSuspended:$e,keyContext:dt,doubleClickEdits:x?.doubleClick!==false,editAdjacentCell:G,editFocusedCellWith:J,cancelCellEdit:rt,focusScroller:se,deleteRow:oe,saveChanges:tt,cancelChanges:Vt,selectionStats:it,handleKeyDown:Rt,cut:Je,copySelection:Ft,paste:_e,saveError:ve,clearSaveError:Kn,pendingDelete:Me,resolveDelete:Ue,fillPreview:de,startFillDrag:Jt,moveFillDrag:Tt,endFillDrag:Kt,isDraggingFill:A.current!==null}}var Ll=react.createContext(""),Il=react.createContext(()=>document.body),Wu=typeof window<"u"?react.useLayoutEffect:react.useEffect;function sa({theme:e,density:t,palette:n,portalContainer:o,children:i}){let a=react.useMemo(()=>datagridCore.themeClassName(e,t,n),[e,t,n]),d=react.useRef(o);Wu(()=>{d.current=o;},[o]);let c=react.useMemo(()=>()=>datagridCore.portalTarget(d.current),[]);return jsxRuntime.jsx(Ll.Provider,{value:a,children:jsxRuntime.jsx(Il.Provider,{value:c,children:i})})}function Zt(){return react.useContext(Il)}function Bt(){return react.useContext(Ll)}var ua=8,Yu=26,Fl=44;function qu(){return typeof window<"u"&&!!window.matchMedia?.("(pointer: coarse)").matches}var Ol=4;function Jo(e,t,n,o,i="startsWith",a="case"){let d=datagridCore.foldMatchText(t.trim(),a);if(d==="")return null;let c=[],p=n==="contains",g=i==="contains";for(let h=0;h<e.length;h++){let b=e[h];if(p?b.includes(d):b.startsWith(d))c.push(h);else if(o){let I=o[h];(g?I.includes(d):I.startsWith(d))&&c.push(h);}}return c}function Xu(e,t,n){let o=e.map(a=>datagridCore.foldText(a.label)),i=Jo(o,t,n);return i===null?e:i.map(a=>e[a])}function bo(e){return e?{matchMode:datagridCore.lookupMatchMode(e,"name"),codeMatchMode:datagridCore.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}:{}}function ho(e,t,n){if(!e||!e.linkedColumns&&!e.map)return null;let o={[t]:n.value},i=e.linkedColumns;return i&&(o[i.code]=n.value,o[i.name]=n.label,i.id&&(o[i.id]=n.id)),e.map&&Object.assign(o,e.map(n)),o}function Dn({options:e,value:t,matchMode:n="startsWith",codeMatchMode:o="startsWith",matchFold:i="case",linked:a=false,allowCustom:d=false,openOnEdit:c=false,seeded:p=false,restrictInput:g=false,autoCompleteSingle:h=true,onNoMatch:b="keep-open",onPick:I,invalid:E,autoFocus:R=true,testId:v,columnId:K,ariaLabel:N,onChange:M,onCommit:S,commitOnPick:$=true,onCancel:X,onTab:Y,onBlurCommit:W}){let C=Pe(),L=Bt(),w=Zt(),y=react.useRef(null),D=react.useRef(null),x=c&&R,z=g&&!d,[te,F]=react.useState(()=>{if(!(x&&p))return null;let P=t==null?"":String(t);if(z&&P.trim()!==""){let Q=e.map($e=>datagridCore.foldMatchText($e.label,i)),We=a?e.map($e=>datagridCore.foldMatchText($e.value==null?"":String($e.value),i)):null;if(Jo(Q,P,n,We,o,i)?.length===0)return ""}return P}),[j,le]=react.useState(x),[me,Fe]=react.useState(()=>x&&!(h&&!d)&&!p?e.findIndex(P=>Object.is(P.value,t)):0),[Oe,ye]=react.useState(0),[Le,A]=react.useState(null),[de,ae]=react.useState(false),[q]=react.useState(()=>qu()?Fl:Yu),Ge=h&&!d,u=react.useMemo(()=>e.map(P=>datagridCore.foldMatchText(P.label,i)),[e,i]),Ie=react.useMemo(()=>a?e.map(P=>datagridCore.foldMatchText(P.value==null?"":String(P.value),i)):null,[e,a,i]),Ve=react.useMemo(()=>{if(a)return t==null?"":String(t);let P=e.find(Q=>Q.value===t);return P?P.label:t==null||t===""?"":String(t)},[e,t,a]),Ee=react.useMemo(()=>te===null?null:Jo(u,te,n,Ie,o,i),[u,Ie,te,n,o,i]),De=Ee===null?e.length:Ee.length,ot=P=>e[Ee===null?P:Ee[P]],ee=te??Ve,Ce=P=>{let Q=datagridCore.foldMatchText(P.trim(),i);if(Q==="")return -1;if(Ie){let We=Ie.indexOf(Q);if(We>=0)return We}return u.indexOf(Q)};react.useEffect(()=>{if(te===null){Fe(Q=>Q<De?Q:Ge?0:-1);return}if(Ge){Fe(0);return}let P=Ce(te);Fe(P<0||Ee===null?P:Ee.indexOf(P));},[Ee,De]),react.useLayoutEffect(()=>{if(R)if(y.current?.focus({preventScroll:true}),x&&p){let P=y.current?.value.length??0;y.current?.setSelectionRange(P,P);}else y.current?.select();},[]);let fe=()=>{let P=y.current;if(!P)return;let Q=P.getBoundingClientRect(),We=a?Math.max(Q.width,280):Q.width,$e=datagridCore.placeAnchoredLayer({anchor:{left:Q.left,top:Q.top,bottom:Q.bottom},width:We,height:Math.min(Math.max(De,1),ua)*q,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});A({left:$e.left,top:$e.top,width:We});};react.useLayoutEffect(()=>{j&&fe();},[j,De]),react.useEffect(()=>{if(!j)return;let P=()=>fe();return window.addEventListener("scroll",P,true),window.addEventListener("resize",P),()=>{window.removeEventListener("scroll",P,true),window.removeEventListener("resize",P);}},[j]),react.useLayoutEffect(()=>{let P=D.current;if(!P||!j||De===0||me<0)return;let Q=me*q,We=Q+q,$e=P.scrollTop;Q<$e?$e=Q:We>$e+P.clientHeight&&($e=We-P.clientHeight),$e!==P.scrollTop&&(P.scrollTop=$e,ye($e));},[me,j,De]);let et=Math.min(Math.max(De,1),ua)*q,Be=Math.max(0,Math.floor(Oe/q)-Ol),oe=Math.min(De,Math.ceil((Oe+et)/q)+Ol),ke=P=>{if(I){if(!I(P))return}else M(P.value);F(null),le(false),ae(false),$&&S();},se=()=>{j||(le(true),ye(0),D.current&&(D.current.scrollTop=0),!Ge&&te===null&&Fe(e.findIndex(P=>Object.is(P.value,t))));},G=()=>{se(),ae(true);},O=()=>{if(te===null)return true;let P=te.trim();if(P==="")return d&&M(""),true;if(d){let $e=Ce(P);return M($e>=0?e[$e].value:P),true}if(!h)return false;let Q=datagridCore.foldMatchText(P,i),We=u.indexOf(Q);return We>=0?(M(e[We].value),true):De===1?(M(ot(0).value),true):false},J=react.useRef(false),ve=react.useRef(""),[ne,Me]=react.useState(false),He=react.useRef(null);react.useEffect(()=>()=>{He.current&&clearTimeout(He.current);},[]);let Ue=()=>{Me(true),He.current&&clearTimeout(He.current),He.current=setTimeout(()=>Me(false),260);},be=P=>P.trim()===""?true:Jo(u,P,n,Ie,o,i)?.length!==0,ue=react.useRef(()=>{});ue.current=P=>{if(!z||J.current||P.isComposing||P.inputType.startsWith("delete")||P.inputType.startsWith("history"))return;let Q=y.current;if(!Q)return;let We=P.data??P.dataTransfer?.getData("text/plain")??"",$e=Q.selectionStart??Q.value.length,dt=Q.selectionEnd??$e,tt=Q.value.slice(0,$e)+We.replace(/[\r\n]+/g," ")+Q.value.slice(dt);be(tt)||(P.preventDefault(),Ue());},react.useEffect(()=>{let P=y.current;if(!P)return;let Q=We=>ue.current(We);return P.addEventListener("beforeinput",Q),()=>P.removeEventListener("beforeinput",Q)},[]);let Et=P=>{if(!(P.nativeEvent.isComposing||P.keyCode===229)&&!vn(P)){if(P.key==="ArrowDown"||P.key==="ArrowUp"){if(P.preventDefault(),P.stopPropagation(),!j){se();return}if(De===0)return;Fe(Q=>Q<0?P.key==="ArrowDown"?0:De-1:((P.key==="ArrowDown"?Q+1:Q-1)+De)%De);return}if(P.key==="PageDown"||P.key==="PageUp"){if(!j||De===0)return;P.preventDefault(),P.stopPropagation();let Q=ua*(P.key==="PageDown"?1:-1);Fe(We=>Math.min(De-1,Math.max(0,We+Q)));return}if(P.key==="Home"||P.key==="End"){if(!j||De===0)return;P.preventDefault(),P.stopPropagation(),Fe(P.key==="Home"?0:De-1);return}if(P.key==="Enter"){if(P.preventDefault(),P.stopPropagation(),j&&me>=0&&me<De){ke(ot(me));return}O()?(F(null),S()):G();return}if(P.key==="Escape"){if(P.preventDefault(),P.stopPropagation(),j){le(false);return}F(null),X();return}if(P.key==="Tab"){if(!O()){if(b!=="revert"){P.preventDefault(),P.stopPropagation(),G();return}F(null);}le(false),Y&&(P.preventDefault(),P.stopPropagation(),Y(P.shiftKey));return}xn(P)&&P.stopPropagation();}},l=[];for(let P=Be;P<oe;P++){let Q=ot(P);l.push(jsxRuntime.jsx("div",{role:"option","aria-selected":P===me,"aria-posinset":P+1,"aria-setsize":De,className:`kanuni-datagrid-lookup-item${P===me?" kanuni-datagrid-lookup-item--active":""}`,style:{position:"absolute",top:P*q,height:q,left:0,right:0},onMouseEnter:()=>Fe(P),onClick:()=>ke(Q),children:a?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-lookup-code",children:Q.value==null?"":String(Q.value)}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-lookup-name",children:Q.label})]}):Q.label},String(Q.value)));}let rt=j&&Le?reactDom.createPortal(jsxRuntime.jsx("div",{ref:D,className:`kanuni-datagrid-detached kanuni-datagrid-lookup-popup${q===Fl?" kanuni-datagrid-lookup-popup--touch":""}${L}`,"data-kanuni-portal":"popup",role:"listbox","aria-label":N,"data-testid":v?`${v}-list`:void 0,style:{left:Le.left,top:Le.top,width:Le.width,height:et},onScroll:P=>ye(P.currentTarget.scrollTop),onMouseDown:P=>P.preventDefault(),children:De===0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-lookup-empty",children:C.editNoMatch}):jsxRuntime.jsx("div",{style:{position:"relative",height:De*q},children:l})}),w()):null;return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("input",{ref:y,type:"text",role:"combobox","aria-expanded":j,"aria-autocomplete":"list","aria-label":N,"data-testid":v,"data-column-id":K,className:`kanuni-datagrid-editor${E?" kanuni-datagrid-editor--invalid":""}${ne?" kanuni-datagrid-editor--refused":""}`,value:ee,onCompositionStart:()=>{J.current=true,ve.current=ee;},onCompositionEnd:P=>{if(J.current=false,!z)return;let Q=P.currentTarget.value;be(Q)||(F(ve.current),Ue());},onChange:P=>{let Q=P.nativeEvent;if(z&&!J.current&&!Q.isComposing&&!(Q.inputType??"").startsWith("delete")&&!be(P.target.value)){Ue();return}F(P.target.value),ae(false),ye(0),D.current&&(D.current.scrollTop=0),le(true);},onFocus:se,onClick:se,onKeyDown:Et,onBlur:P=>{te!==null&&!O()&&F(null),le(false),ae(false);let Q=P.relatedTarget;Q instanceof Element&&Q.closest(`${Yt}, .kanuni-datagrid-detached`)||W?.();}}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite",children:!d&&(de||te!==null&&te.trim()!==""&&De===0)?C.editNoMatch:""}),rt]})}function tc(e){let t=[e.weekdaySu,e.weekdayMo,e.weekdayTu,e.weekdayWe,e.weekdayTh,e.weekdayFr,e.weekdaySa],n=ql(e);return [...t.slice(n),...t.slice(0,n)]}function ql(e){let t=Number(e.weekStartsOn);return Number.isInteger(t)&&t>=0&&t<=6?t:0}function nc(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 oc(e,t){return !e||!t?false:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Sn({value:e,format:t=datagridCore.DEFAULT_DATE_FORMAT,invalid:n,disabled:o,autoFocus:i=true,testId:a,columnId:d,ariaLabel:c,onChange:p,onCommit:g,onCancel:h,onTab:b,onBlurCommit:I,seedDigits:E}){let R=Pe(),v=Bt(),K=Zt(),N=react.useMemo(()=>nc(R),[R]),M=react.useMemo(()=>tc(R),[R]),S=react.useRef(null),[$,X]=react.useState(()=>E!==void 0?datagridCore.dateDigits(E,t):null),[Y,W]=react.useState(false),[C,L]=react.useState(null),w=react.useMemo(()=>datagridCore.toDate(e),[e]),y=$===null?datagridCore.formatDateValue(e,t):datagridCore.maskDate($,t),D=$===null?null:datagridCore.parseDateValue(y,t),x=$!==null&&$.length===datagridCore.dateDigitCount(t)&&D===null,[z,te]=react.useState(()=>w??new Date);react.useEffect(()=>{Y&&te(D??w??new Date);},[Y]),react.useLayoutEffect(()=>{if(i)if(S.current?.focus({preventScroll:true}),E!==void 0){let A=S.current?.value.length??0;S.current?.setSelectionRange(A,A);}else S.current?.select();},[]);let F=react.useRef(null),j=react.useCallback(()=>{let A=S.current;if(!A)return;let de=A.getBoundingClientRect(),ae=datagridCore.placeAnchoredLayer({anchor:{left:de.left,top:de.top,bottom:de.bottom},width:F.current?.offsetWidth??0,height:F.current?.offsetHeight??0,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});L({left:ae.left,top:ae.top});},[]),le=react.useCallback(A=>{F.current=A,A&&j();},[j]);react.useLayoutEffect(()=>{Y&&j();},[Y,j]),react.useEffect(()=>{if(!Y)return;let A=()=>j();return window.addEventListener("scroll",A,true),window.addEventListener("resize",A),()=>{window.removeEventListener("scroll",A,true),window.removeEventListener("resize",A);}},[Y,j]);let me=react.useCallback(A=>{if(A===null){p(null);return}p(e instanceof Date?A:datagridCore.toIsoDate(A));},[p,e]),Fe=A=>{X(null),W(false),me(A),S.current?.focus({preventScroll:true});},Oe=react.useCallback(()=>{if($!==null){if($.length===0){me(null),X(null);return}D&&me(D),X(null);}},[$,D,me]),ye=A=>{if(!vn(A)){if(A.key==="Escape"){if(A.preventDefault(),A.stopPropagation(),Y){W(false);return}X(null),h();return}if(Y){let de=A.key==="ArrowLeft"?-1:A.key==="ArrowRight"?1:A.key==="ArrowUp"?-7:A.key==="ArrowDown"?7:0;if(de!==0){A.preventDefault(),A.stopPropagation();let ae=D??w??new Date,q=new Date(ae.getFullYear(),ae.getMonth(),ae.getDate()+de);X(datagridCore.dateDigits(datagridCore.formatDateValue(q,t),t)),te(q);return}if(A.key==="Enter"){A.preventDefault(),A.stopPropagation(),W(false),D&&Fe(D);return}}if(A.key==="Enter"){A.preventDefault(),A.stopPropagation(),Oe(),g();return}if(A.key==="Tab"){Oe(),W(false),b&&(A.preventDefault(),A.stopPropagation(),b(A.shiftKey));return}if(A.key.length===1&&!A.ctrlKey&&!A.metaKey&&!/\d/.test(A.key)){A.preventDefault();return}xn(A)&&A.stopPropagation();}},Le=Y&&C?reactDom.createPortal(jsxRuntime.jsxs("div",{ref:le,className:`kanuni-datagrid-detached kanuni-datagrid-date-popup${v}`,"data-kanuni-portal":"popup",style:{left:C.left,top:C.top},"data-testid":"dg-date-calendar",role:"dialog","aria-label":c?`${c} ${R.dateCalendar}`:R.dateCalendar,onMouseDown:A=>A.preventDefault(),children:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-head",children:[jsxRuntime.jsx("button",{type:"button","aria-label":R.datePreviousMonth,"data-testid":"dg-date-prev",onClick:()=>te(new Date(z.getFullYear(),z.getMonth()-1,1)),children:"\u2039"}),jsxRuntime.jsxs("span",{"data-testid":"dg-date-title",children:[N[z.getMonth()]," ",z.getFullYear()]}),jsxRuntime.jsx("button",{type:"button","aria-label":R.dateNextMonth,"data-testid":"dg-date-next",onClick:()=>te(new Date(z.getFullYear(),z.getMonth()+1,1)),children:"\u203A"})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-date-popup-grid",role:"grid",children:[M.map(A=>jsxRuntime.jsx("span",{className:"kanuni-datagrid-date-weekday",role:"columnheader",children:A},A)),(()=>{let de=(new Date(z.getFullYear(),z.getMonth(),1).getDay()-ql(R)+7)%7,ae=datagridCore.daysInMonth(z.getFullYear(),z.getMonth()+1),q=[];for(let Ge=0;Ge<42;Ge++){let u=Ge-de+1,Ie=new Date(z.getFullYear(),z.getMonth(),u),Ve=u<1||u>ae,Ee=oc(Ie,D??w);q.push(jsxRuntime.jsx("button",{type:"button",role:"gridcell",className:`kanuni-datagrid-date-day${Ve?" kanuni-datagrid-date-day--outside":""}${Ee?" kanuni-datagrid-date-day--selected":""}`,"aria-selected":Ee,"data-testid":"dg-date-day","data-date":datagridCore.toIsoDate(Ie),onClick:()=>Fe(Ie),children:Ie.getDate()},Ge));}return q})()]})]}),K()):null;return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-date-editor",children:[jsxRuntime.jsx("input",{ref:S,type:"text",inputMode:"numeric",autoComplete:"off",placeholder:t,"aria-label":c,"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:y,onChange:A=>{let de=datagridCore.dateDigits(A.target.value,t);X(de);let ae=de.length===datagridCore.dateDigitCount(t)?datagridCore.parseDateValue(datagridCore.maskDate(de,t),t):null;ae&&me(ae);},onKeyDown:ye,onBlur:A=>{if(Y)return;Oe();let de=A.relatedTarget;de instanceof Element&&de.closest(`${Yt}, .kanuni-datagrid-detached`)||I?.();}}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-date-button","aria-label":c?`${c} \u2014 ${R.dateOpenCalendar}`:R.dateOpenCalendar,"aria-expanded":Y,"data-testid":"dg-date-open",disabled:o,tabIndex:-1,onMouseDown:A=>A.preventDefault(),onClick:()=>{W(A=>!A),S.current?.focus({preventScroll:true});},children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:"M3 4h10v9H3z M3 6.5h10 M5.5 2.5v2 M10.5 2.5v2",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})})}),Le]})}function pa(e){return {save:e.save,cancel:e.cancel,editTitle:e.formEditTitle,addTitle:e.formAddTitle,saving:e.editSaving,shortcut:e.formShortcut}}var dc=pa(datagridCore.getGridDictionary("en"));function uc(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 jl(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 cc(e,t){if(t==="number"){if(e==="")return null;let n=Number(e);return Number.isNaN(n)?e:n}return e}function fa({rowKey:e,fields:t,getValue:n,errors:o,lookups:i,customEditors:a=false,row:d,saving:c,saveError:p,isNew:g,dark:h=false,popup:b=false,inline:I=false,onNaturalHeight:E,labels:R,onChange:v,setRowValues:K,onSave:N,onCancel:M}){let S=Pe(),$=Bt(),X=react.useMemo(()=>({...pa(S),...R}),[S,R]),Y=react.useRef(null),W=Object.keys(o)[0]??null,C=react.useCallback(x=>{if(Y.current=x,!x)return;let z=x.querySelector("input:not([disabled]), select:not([disabled]), textarea:not([disabled])");if(z?.focus(),z instanceof HTMLInputElement&&z.type==="text"&&z.select(),E){let te=x.querySelector(".kanuni-datagrid-edit-form-fields");te&&E(x.clientHeight-te.clientHeight+te.scrollHeight);}},[E]);react.useEffect(()=>{if(!W||!Y.current)return;Y.current.querySelector(`[data-field-id="${CSS.escape(W)}"] input, [data-field-id="${CSS.escape(W)}"] select`)?.focus();},[W]);let L=typeof navigator<"u"&&/Mac|iP(hone|ad)/.test(navigator.platform),w=X.shortcut.replace("{key}",L?"\u2318":"Ctrl"),y=react.useCallback(x=>{if(x.key==="Escape"){x.preventDefault(),x.stopPropagation(),M();return}if(x.key==="Enter"&&(x.ctrlKey||x.metaKey)){x.preventDefault(),x.stopPropagation(),N();return}if(x.key==="Enter"&&!(x.target instanceof HTMLButtonElement)){x.preventDefault();return}if(x.key!=="Tab"||!b||!Y.current)return;let z=Array.from(Y.current.querySelectorAll("input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled])"));if(z.length===0)return;let te=z[0],F=z[z.length-1];!x.shiftKey&&document.activeElement===F?(x.preventDefault(),te.focus()):x.shiftKey&&document.activeElement===te&&(x.preventDefault(),F.focus());},[M,N,b]),D=jsxRuntime.jsxs("div",{ref:C,className:`kanuni-datagrid-edit-form${I?" kanuni-datagrid-edit-form--inline":""}`,"data-testid":"dg-edit-form","data-row-key":String(e),"data-popup":b?"":void 0,role:b?"dialog":"group","aria-modal":b?true:void 0,"aria-label":g?X.addTitle:X.editTitle,onKeyDown:y,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-header",children:jsxRuntime.jsx("strong",{children:g?X.addTitle:X.editTitle})}),p&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-form-error",children:p}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-fields",children:t.map(x=>{let z=n(x.columnId),te=o[x.columnId],F=i?.[x.columnId],j=c||!x.editable,le=`dg-field-${String(e)}-${x.columnId}`;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-edit-form-field","data-field-id":x.columnId,"data-invalid":te?"":void 0,htmlFor:le,children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-label",children:x.label}),a&&x.def?.renderEditor?x.def.renderEditor({value:z,row:d,columnId:x.columnId,rowKey:e,error:te??null,invalid:!!te,errorId:te?`${le}-error`:void 0,ariaLabel:x.label,setValue:me=>v(x.columnId,me),commit:()=>(N(),true),cancel:M,suspendBlurCommit:()=>{},commitOnBlur:()=>{},api:{setRowValues:me=>K?.(me)??false}}):F!==void 0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(Dn,{options:F??[],value:z,...bo(x.def?.lookup),onPick:x.def?.lookup?.linkedColumns||x.def?.lookup?.map?me=>K?.(ho(x.def.lookup,x.columnId,me))??false:void 0,invalid:!!te,testId:le,ariaLabel:x.label,onChange:me=>v(x.columnId,me),onCommit:()=>{},onCancel:M})}):x.def?.lookup?jsxRuntime.jsx("input",{id:le,className:"kanuni-datagrid-edit-form-input",type:"text",disabled:true,readOnly:true,value:datagridCore.lookupLabel(x.def,z)??jl(z,x.dataType)}):x.dataType==="date"?jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-form-lookup",children:jsxRuntime.jsx(Sn,{value:z,format:x.def?.dateFormat,invalid:!!te,disabled:j,autoFocus:false,testId:le,columnId:x.columnId,ariaLabel:x.label,onChange:me=>v(x.columnId,me),onCommit:()=>{},onCancel:M})}):Nt(x.def)?jsxRuntime.jsx("input",{id:le,className:"kanuni-datagrid-edit-form-input",type:"text",inputMode:Nt(x.def).decimals===0?"numeric":"decimal",disabled:j,"aria-invalid":te?true:void 0,value:z==null?"":String(z),onChange:me=>v(x.columnId,me.target.value)}):x.dataType==="boolean"?jsxRuntime.jsx("input",{id:le,className:"kanuni-datagrid-edit-form-input",type:"checkbox",disabled:j,checked:z===true,onChange:me=>v(x.columnId,me.target.checked)}):jsxRuntime.jsx("input",{id:le,className:"kanuni-datagrid-edit-form-input",type:uc(x.dataType,z),disabled:j,"aria-invalid":te?true:void 0,value:jl(z,x.dataType),onChange:me=>v(x.columnId,cc(me.target.value,x.dataType))}),te&&jsxRuntime.jsx("span",{id:`${le}-error`,className:"kanuni-datagrid-edit-form-message",role:"alert",children:te})]},x.columnId)})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-edit-form-footer",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-hint",children:w}),jsxRuntime.jsx("button",{type:"button",onClick:M,disabled:c,"data-testid":"dg-form-cancel",children:X.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-edit-form-save",onClick:N,disabled:c,"data-testid":"dg-form-save",children:c?X.saving:X.save})]})]});return b?jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-edit-popup${h?" kanuni-datagrid-dark":""}${$}`,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-edit-popup-overlay",onMouseDown:M}),D]}):D}function ga({controller:e,engine:t,columnId:n,message:o,saving:i,lookupOptions:a,onSave:d,onCancel:c}){let p=e.getColumnModel(),g=p.getDef(n);if(a!==void 0){let R=g?.lookup,v=t.getRowSession()?.rowKey;return jsxRuntime.jsx(Dn,{options:a??[],value:t.rowEditValue(n),...bo(R),onPick:R?.linkedColumns||R?.map?K=>v!==void 0&&t.setRowValues(v,ho(R,n,K)):void 0,invalid:!!o,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:g?.headerName??n,onChange:K=>t.setRowEditValue(n,K),commitOnPick:false,onCommit:d,onCancel:c})}let h=p.getDataType(n);if(h==="date")return jsxRuntime.jsx(Sn,{value:t.rowEditValue(n),format:g?.dateFormat,invalid:!!o,disabled:i,autoFocus:false,testId:"dg-row-editor",columnId:n,ariaLabel:g?.headerName??n,onChange:R=>t.setRowEditValue(n,R),onCommit:d,onCancel:c});let b=Nt(g),I=h==="number"&&!b,E=R=>{R.key==="Enter"?(R.preventDefault(),R.stopPropagation(),d()):R.key==="Escape"&&(R.preventDefault(),R.stopPropagation(),c());};return h==="boolean"?jsxRuntime.jsx("input",{className:"kanuni-datagrid-editor","data-testid":"dg-row-editor","data-column-id":n,"aria-label":g?.headerName??n,title:o??void 0,disabled:i,type:"checkbox",checked:t.rowEditValue(n)===true,onChange:R=>t.setRowEditValue(n,R.target.checked),onKeyDown:E}):jsxRuntime.jsx("input",{className:`kanuni-datagrid-editor${o?" kanuni-datagrid-editor--invalid":""}`,"data-testid":"dg-row-editor","data-column-id":n,"aria-label":g?.headerName??n,title:o??void 0,disabled:i,type:I?"number":"text",inputMode:b?b.decimals===0?"numeric":"decimal":void 0,value:String(t.rowEditValue(n)??""),onChange:R=>{let v=R.target.value;t.setRowEditValue(n,I?v===""?null:Number(v):v);},onKeyDown:E})}var pn=Symbol("lookupPending");function wa(e){return e instanceof Date?`d${e.getTime()}`:`${typeof e}:${String(e)}`}var nr=class{constructor(t){this.controller=t;}controller;lists=new WeakMap;shown=new Map;repaintQueued=false;effectiveRow=null;key(t,n,o){let i=wa(o);for(let a of t.dependsOn??[])i+=`${wa(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),c=a.get(d);if(c&&!i)return c.items??c.promise;let p={items:null,labels:null,promise:null},g=b=>{p.items=Array.isArray(b)?b:[],p.labels=null,p.promise=null;},h;try{h=t.items(n);}catch{h=[];}return a.set(d,p),Array.isArray(h)?(g(h),p.items):(p.promise=Promise.resolve(h).then(b=>(a.get(d)===p&&(g(b),this.repaint()),p.items??b),()=>(a.get(d)===p&&(g([]),this.repaint()),[])),p.promise)}label(t,n,o,i,a){let d=t?.lookup;if(!d||typeof d.items!="function"||d.linkedColumns||o==null||o==="")return null;let c=this.effectiveRow?.(a)??i,p=this.items(d,c,a),g=`${wa(a)}${n}`;if(!Array.isArray(p)){let I=this.shown.get(g);return I&&Object.is(I.value,o)?I.label:pn}let h=this.lists.get(d).get(this.key(d,c,a));if(!h.labels){h.labels=new Map;for(let I of p)h.labels.set(I.value,I.label);}let b=h.labels.get(o);return b===void 0?(this.shown.delete(g),null):(this.shown.set(g,{value:o,label:b}),b)}},Jl=new WeakMap;function Co(e){let t=Jl.get(e);return t||(t=new nr(e),Jl.set(e,t)),t}function Ql(e,t){if(!e)return [];let n=e.getColumnLayout();return [...n.left,...n.center,...n.right].map(o=>o.state.id).filter(o=>!datagridCore.isChromeColumn(o)&&(t?.(o)??true))}function Ra({controller:e,editing:t,mode:n,active:o,rootRef:i,rowHeight:a,formLabels:d,formHeight:c,dark:p,rowLookups:g,customEditors:h=false,isFormColumn:b,batchBar:I=true,cardPopup:E=false}){let R=Pe(),{engine:v,version:K,beginRowEdit:N,saveRowEdit:M,cancelRowEdit:S,rowSaveError:$,saveChanges:X,cancelChanges:Y}=t,W=o&&datagridCore.isRowEditMode(n),C=v?.getRowSession()??null,L=W||C?.standalone||E?C:null,w=!!L&&(n==="popup"||!!L.standalone||E&&!W),y=react.useRef(b);y.current=b;let D=react.useMemo(()=>{if(!e||!L)return [];let ee=e.getColumnModel();return Ql(e,y.current).map(Ce=>{let fe=ee.getDef(Ce);return {columnId:Ce,label:fe?.headerName??fe?.field??Ce,dataType:ee.getEditorDataType(Ce),def:fe,editable:v?.canUpdate(L.rowKey,Ce)??true}})},[e,v,L]),x=n==="row"&&!w?L?.rowKey??null:null;react.useEffect(()=>{if(x===null)return;let ee=i.current;if(!ee)return;let Ce=ee.querySelectorAll('[data-testid="dg-row-editor"]');if(Ce.length===0)return;let fe=e?.getFocus(),Be=(fe&&String(fe.rowKey)===String(x)?ee.querySelector(`[data-testid="dg-row-editor"][data-column-id="${CSS.escape(fe.columnId)}"]`):null)??Ce[0],oe=v?Yo.get(v):void 0;v&&Yo.delete(v),Be.focus({preventScroll:true}),Be instanceof HTMLInputElement&&(oe!==void 0&&Be.getAttribute("data-column-id")===oe?Be.setSelectionRange(Be.value.length,Be.value.length):Be.select());},[x]);let z=react.useCallback(ee=>W&&!w&&L?.rowKey===ee,[W,w,L]),te=react.useCallback((ee,Ce)=>{let fe=e?.getColumnModel().getDef(ee.columnId);if(fe?.renderCell&&ee.node.kind==="data")return fe.renderCell({value:Ce,row:ee.node.data,node:ee.node,column:fe});let et=fe?datagridCore.lookupLabel(fe,Ce):null;if(et!==null)return et;if(e&&fe?.lookup&&!fe.valueFormatter&&ee.node.kind==="data"){let oe=Co(e).label(fe,ee.columnId,Ce,ee.node.data,ee.node.key);if(oe===pn)return jsxRuntime.jsx("span",{className:"kanuni-datagrid-lookup-pending","aria-busy":"true"});if(oe!==null)return oe}if(fe?.valueFormatter&&ee.node.kind==="data")return fe.valueFormatter(Ce,ee.node.data);if(fe?.dateFormat&&fe.dataType==="date")return datagridCore.formatDateValue(Ce,fe.dateFormat);let Be=datagridCore.numberCellText(fe,Ce);return Be!==null?Be:Ce==null?"":String(Ce)},[e]),F=react.useCallback(ee=>{if(!(n!=="row"||!v||!e||ee.node.kind!=="data"||!z(ee.node.key)))return v.canUpdate(ee.node.key,ee.columnId)?jsxRuntime.jsx(ga,{controller:e,engine:v,columnId:ee.columnId,message:L?.errors[ee.columnId]??null,saving:L?.saving??false,lookupOptions:g?.[ee.columnId],onSave:()=>{M();},onCancel:S}):te(ee,v.rowEditValue(ee.columnId))},[n,v,e,K,z,L,g,te,M,S]),j=react.useCallback(ee=>{if(!v||ee.node.kind!=="data")return;let Ce=v.changes.get(ee.node.key,ee.columnId);return Ce?te(ee,Ce.newValue):void 0},[v,K,te]),[le,me]=react.useState(null),Fe=le??c??datagridCore.DEFAULT_EDIT_FORM_HEIGHT,Oe=react.useCallback(ee=>{ee>0&&me(Ce=>Ce!==null&&Math.abs(Ce-ee)<a?Ce:ee);},[a]);react.useEffect(()=>{L||me(null);},[L]);let ye=(ee,Ce)=>L?jsxRuntime.jsx(fa,{rowKey:ee,fields:D,getValue:fe=>v?.rowEditValue(fe),errors:L.errors,lookups:g,customEditors:h,row:v?.effectiveRow(L.rowKey),saving:L.saving,saveError:$,isNew:L.isNew,dark:p,popup:w,inline:Ce,onNaturalHeight:Ce?Oe:void 0,labels:d,onChange:(fe,et)=>v?.setRowEditValue(fe,et),setRowValues:fe=>v?.setRowValues(ee,fe)??false,onSave:()=>{M();},onCancel:S}):null,Le=L&&w?ye(L.rowKey,false):null,A=react.useRef(ye);A.current=ye;let de=react.useCallback(ee=>A.current(ee,true),[]),ae=n==="form"&&!w?L?.rowKey??null:null,q=L?.isNew??false,Ge=react.useRef(null);react.useEffect(()=>{if(e){if(ae===null){if(Ge.current!==e)return;Ge.current=null,e.setEditFormRow(null);return}Ge.current=e,e.setEditFormRow(ae,{height:Fe,atTop:q});}},[e,ae,q,Fe]),react.useEffect(()=>()=>{let ee=Ge.current;Ge.current=null,ee?.setEditFormRow(null);},[]);let u=W&&n==="row"&&!!L&&!w,Ie=I&&o&&n==="batch"&&(v?.hasChanges()??false),Ve=u||Ie?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[u&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-active","data-testid":"dg-row-editing",children:L?.isNew?R.formAddTitle:datagridCore.fillText(R.editEditingRow,{row:String(L?.rowKey)})}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-row",disabled:L?.saving,onClick:()=>{M();},children:L?.saving?R.editSaving:R.editSaveRow}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-row",onClick:S,children:R.cancel}),$&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-edit-form-error",role:"alert","data-testid":"dg-row-error",children:$})]}),Ie&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary","data-testid":"dg-save-changes",disabled:v?.isSaving(),onClick:()=>{X();},children:datagridCore.fillText(R.editSaveCount,{n:v?.getChanges().length??0})}),jsxRuntime.jsx("button",{type:"button","data-testid":"dg-cancel-changes",onClick:Y,children:R.cancel})]})]}):null,Ee=react.useCallback(ee=>!W||!v||v.isEditingRow()?null:{id:"dg-edit-row",label:R.editRowMenu,onSelect:()=>N(ee)},[W,v,N,R,K]),De=react.useCallback(ee=>W?(N(ee),true):false,[W,N]),ot=react.useCallback(ee=>{if(!v)return false;let Ce=v.getRowSession();return Ce?Ce.rowKey===ee:N(ee,{standalone:true})},[v,N]);return {rowModeActive:W,rowSession:L,isRowEditing:z,defaultContent:te,renderRowCell:F,renderPending:j,renderEditForm:n==="form"?de:void 0,popup:Le,bar:Ve,rowSessionAttr:w?"popup":L&&n==="form"?"form":void 0,editRowMenuItem:Ee,openRow:De,openCardEditor:ot}}function vc(e,t="en-US"){let n=datagridCore.parseLocaleNumber(e,t);return n.ok?n.value:void 0}function xc(e){return e instanceof Element&&!!e.closest(`${Yt}, .kanuni-datagrid-detached`)}function Zl(e,t){return e==null?"":t==="date"&&e instanceof Date?e.toISOString().slice(0,10):String(e)}function ka({value:e,dataType:t,error:n,seeded:o=false,seedText:i,options:a,allowCustom:d=false,matchMode:c,lookupSettings:p,onPick:g,ariaLabel:h,dateFormat:b,numberFormat:I,numberLocale:E,onChange:R,onCommit:v,onTab:K,onCancel:N}){let M=react.useRef(null),S=react.useRef(false),[$,X]=react.useState(t==="number"&&i!==void 0?i:null),Y=react.useRef(e);react.useEffect(()=>{let w=M.current;if(w&&(w.focus({preventScroll:true}),!(!(w instanceof HTMLInputElement)||w.type==="checkbox")))if(o||i!==void 0){if(w.type==="text"||w.type==="search"){let y=w.value.length;w.setSelectionRange(y,y);}}else w.select();},[]);let C={ref:M,onKeyDown:w=>{if(!(w.nativeEvent.isComposing||w.keyCode===229)&&!vn(w)){if(I?.step!==void 0&&(w.key==="ArrowUp"||w.key==="ArrowDown")&&!w.altKey&&!w.shiftKey){w.preventDefault(),w.stopPropagation();let y=w.target.value??"",D=datagridCore.stepNumberText(y,I,w.key==="ArrowUp"?1:-1,w.ctrlKey||w.metaKey?10:1);D!==void 0&&R(D);return}w.key==="Enter"?(w.preventDefault(),w.stopPropagation(),v(w.shiftKey?"none":"down")):w.key==="Tab"?(w.preventDefault(),w.stopPropagation(),S.current=true,K(w.shiftKey?-1:1)):w.key==="Escape"?(w.preventDefault(),w.stopPropagation(),N()):xn(w)&&w.stopPropagation();}},onBlur:w=>{S.current||xc(w.relatedTarget)||v("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"},L;return a===null?L=jsxRuntime.jsx("input",{...C,type:"text",value:"\u2026",readOnly:true,disabled:true}):a?L=jsxRuntime.jsx(Dn,{options:a,value:e,matchMode:c,allowCustom:d,seeded:o,...p,onPick:g,invalid:!!n,testId:C["data-testid"],ariaLabel:h,onChange:R,onCommit:()=>v("none"),onBlurCommit:()=>{S.current||v("blur");},onCancel:N,onTab:w=>{S.current=true,K(w?-1:1);}}):I?L=jsxRuntime.jsx("input",{...C,type:"text",inputMode:I.decimals===0?"numeric":"decimal",autoComplete:"off",value:String(zo(e,I)??""),onChange:w=>R(w.target.value)}):t==="boolean"?L=jsxRuntime.jsx("input",{...C,type:"checkbox",checked:e===true,onChange:w=>R(w.target.checked)}):t==="number"&&$!==null?L=jsxRuntime.jsx("input",{...C,type:"text",inputMode:"decimal",value:$,onChange:w=>{let y=w.target.value;X(y);let D=vc(y,E);R(D===void 0?Y.current:D);}}):t==="number"?L=jsxRuntime.jsx("input",{...C,type:Number.isNaN(Number(e))&&e!==null&&e!==void 0&&e!==""?"text":"number",value:Zl(e,t),onChange:w=>R(w.target.value===""?null:Number(w.target.value))}):t==="date"?L=jsxRuntime.jsx(Sn,{value:e,format:b,invalid:!!n,testId:C["data-testid"],ariaLabel:h,seedDigits:i,onChange:R,onCommit:()=>v("none"),onBlurCommit:()=>{S.current||v("blur");},onCancel:N,onTab:w=>{S.current=true,K(w?-1:1);}}):L=jsxRuntime.jsx("input",{...C,type:"text",value:Zl(e,t),onChange:w=>R(w.target.value)}),jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[L,n&&jsxRuntime.jsx("span",{id:"kanuni-datagrid-editor-error",role:"alert",className:"kanuni-datagrid-editor-error",children:n})]})}function es(e,t,n,o,i,a){let d=!n&&t!==void 0&&t.enabled!==false,c=d&&!i,p=t?.mode??"cell",g=react.useCallback(F=>{let j=e?.getColumnModel().getDef(F);return !j?.lookup&&!j?.renderEditor&&j?.allowFormulas!==true},[e]),h=ra({controller:e,enabled:d,mode:p,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:g,savedDuration:a.savedDuration}),{engine:b,version:I,handleKeyDown:E,editAdjacentCell:R,focusScroller:v,saveError:K,clearSaveError:N,commitCellEditor:M,keyContext:S,doubleClickEdits:$}=h,X=Ra({controller:e,editing:h,mode:p,active:c,rootRef:a.rootRef,rowHeight:a.rowHeight,formLabels:t?.formLabels,formHeight:t?.formHeight,dark:a.dark,cardPopup:a.cardPopup}),{renderRowCell:Y,renderPending:W,openRow:C}=X,{renderCellContent:L,getCellClassName:w,onCellDoubleClick:y}=o,D=react.useCallback(F=>{if(!d||!b||F.node.kind!=="data")return L?.(F);let j=Y(F);if(j!==void 0)return j;if(!b.isEditing(F.node.key,F.columnId))return W(F)??L?.(F);let le=b.getSession(),me=e.getColumnModel(),Fe=me.getDef(F.columnId);return jsxRuntime.jsx(ka,{value:le.value,dataType:me.getEditorDataType(F.columnId),ariaLabel:Fe?.headerName??F.columnId,dateFormat:Fe?.dateFormat,numberFormat:Nt(Fe),numberLocale:me.getNumberLocale(),error:le.validation.message,seeded:le.seeded,seedText:qo.get(le),onChange:Oe=>b.setEditValue(Oe),onCommit:M,onTab:Oe=>{if(t?.focusCellOnTab===false){b.commitEdit();return}R(Oe,{open:false,cycle:t?.focusCellOnCycle!==false}),v();},onCancel:()=>{b.cancelEdit(),v();}})},[d,b,e,I,L,Y,W,R,v,M,t?.focusCellOnTab,t?.focusCellOnCycle]),x=react.useCallback(F=>{let j=w?.(F);if(!d||!b||F.node.kind!=="data")return j;let le=j?[j]:[];return b.isEditing(F.node.key,F.columnId)&&le.push("kanuni-datagrid-cell--editing"),b.changes.isDirty(F.node.key,F.columnId)&&le.push("kanuni-datagrid-cell--dirty"),le.length>0?le.join(" "):void 0},[d,b,I,w]),z=react.useCallback(F=>{y?.(F),!(!d||!b||F.node.kind!=="data"||!$)&&(C(F.node.key)||b.beginEdit(F.node.key,F.columnId));},[d,b,y,C,$]),te=react.useCallback(F=>c?E(F):false,[c,E]);return {active:d,renderCellContent:c?D:L,getCellClassName:c?x:w,onCellDoubleClick:c?z:y,handleKeyDown:te,keyContext:S,saveError:d?K:null,clearSaveError:N,renderEditForm:c?X.renderEditForm:void 0,bar:c?X.bar:null,popup:d?X.popup:null,rowSessionAttr:d?X.rowSessionAttr:void 0,editRowMenuItem:X.editRowMenuItem,rowStatusSource:d?b:null,openCardEditor:d?X.openCardEditor:void 0}}function va({open:e,title:t,message:n,cancelLabel:o,confirmLabel:i,danger:a,dark:d,onConfirm:c,onCancel:p}){let g=react.useRef(null),h=react.useRef(null),b=react.useId(),I=react.useId(),E=Bt(),R=Zt();return react.useEffect(()=>{if(!e)return;let v=document.activeElement;g.current?.focus();let K=h.current;return ()=>{let N=document.activeElement;K&&(K.contains(N)||N===document.body||N===null)&&v?.isConnected&&v.focus({preventScroll:true});}},[e]),react.useEffect(()=>{if(!e)return;let v=K=>{if(K.key==="Escape"){K.stopPropagation(),p();return}if(K.key==="Tab"&&h.current){let N=Array.from(h.current.querySelectorAll("button:not([disabled])"));if(N.length===0)return;let M=N.indexOf(document.activeElement),S=K.shiftKey?M<=0?N.length-1:M-1:M===N.length-1?0:M+1;K.preventDefault(),K.stopPropagation(),N[S].focus();}};return document.addEventListener("keydown",v,true),()=>document.removeEventListener("keydown",v,true)},[e,p]),!e||typeof document>"u"?null:reactDom.createPortal(jsxRuntime.jsxs("div",{className:`kanuni-datagrid-detached kanuni-datagrid-dialog-root${d?" kanuni-datagrid-dark":""}${E}`,"data-kanuni-portal":"popup",role:"presentation",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-overlay",onMouseDown:p}),jsxRuntime.jsxs("div",{ref:h,className:"kanuni-datagrid-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":b,"aria-describedby":I,"data-testid":"dg-dialog",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-title",id:b,children:t}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-dialog-message",id:I,children:n}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-dialog-actions",children:[o!==void 0&&jsxRuntime.jsx("button",{type:"button","data-testid":"dg-dialog-cancel",onClick:p,children:o}),jsxRuntime.jsx("button",{ref:g,type:"button",className:`kanuni-datagrid-dialog-primary${a?" kanuni-datagrid-dialog-primary--danger":""}`,"data-testid":"dg-dialog-confirm",onClick:c,children:i})]})]})]}),R())}var Mc=["kanuni-datagrid-band-row","kanuni-datagrid-header","kanuni-datagrid-filter-row"],rs="kanuni-datagrid-print-table";function Nc(e){let t=e.cloneNode(true);return t.removeAttribute("id"),t.querySelectorAll("[id]").forEach(n=>n.removeAttribute("id")),t}function Pc(e){return Mc.some(t=>e.classList.contains(t))}function as(e){let t=e?.querySelector(".kanuni-datagrid-canvas");if(!e||!t||t.hasAttribute("data-print-clone"))return;let n=document.createElement("table");n.className=rs,n.setAttribute("aria-hidden","true");let o=n.createTHead(),i=null,a=(c,p)=>{p.insertRow().insertCell().appendChild(Nc(c));},d=true;for(let c of Array.from(t.children)){if(d&&Pc(c)){a(c,o);continue}if(d=false,i??=n.createTBody(),c.classList.contains("kanuni-datagrid-rows")){let p=c.querySelector(".kanuni-datagrid-viewport")??c;for(let g of Array.from(p.children))a(g,i);}else a(c,i);}t.setAttribute("data-print-clone",""),t.after(n);}function xa(e){e&&(e.querySelectorAll(`.${rs}`).forEach(t=>t.remove()),e.querySelectorAll("[data-print-clone]").forEach(t=>t.removeAttribute("data-print-clone")));}var rr=0,Da=5e3;function Kc(e){if(e===void 0||e===false)return null;let t=e===true?{}:e;return {always:t.always??false,maxRows:t.maxRows??Da,repeatHeader:t.repeatHeader??true,onLimit:t.onLimit}}function Fc(e,t){return e<=t}function Sa(e,t,n){let o=Kc(t),i=o!==null,a=o?.always??false,d=o?.maxRows??Da,c=o?.repeatHeader??true,p=o?.onLimit,g=react.useRef(p);react.useEffect(()=>{g.current=p;},[p]);let[h,b]=react.useState(false),I=react.useCallback(()=>b(true),[]),E=react.useCallback(()=>b(false),[]);react.useEffect(()=>{if(!i||typeof window>"u"||typeof window.addEventListener!="function")return;let v=()=>{if(!a){let N=e.getRows().length;if(!Fc(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.`),g.current?.({rows:N,maxRows:d});return}reactDom.flushSync(()=>b(true));}c&&as(n?.current??null);},K=()=>{xa(n?.current??null),a||reactDom.flushSync(()=>b(false));};return window.addEventListener("beforeprint",v),window.addEventListener("afterprint",K),()=>{window.removeEventListener("beforeprint",v),window.removeEventListener("afterprint",K),xa(n?.current??null);}},[i,a,d,c,e,n]);let R=a||h;return react.useEffect(()=>{if(!R||typeof document>"u")return;let v=document.documentElement;return rr++,v.classList.add("kanuni-datagrid-printing"),()=>{rr--,rr<=0&&(rr=0,v.classList.remove("kanuni-datagrid-printing"));}},[R]),{active:R,begin:I,end:E}}var ar=new Map,Ga=new Set;function ss(e,t){let n=ar.get(e);return n?[...n].filter(o=>o!==t):[]}function Ma(e,t,n){let o=react.useRef(null);return react.useEffect(()=>{if(!t)return;let a={controller:e,scroller:()=>n.current};o.current=a;let d=ar.get(t)??new Set;d.add(a),ar.set(t,d);let c=e.events.on("columnStateChanged",()=>{if(Ga.has(t))return;let p=ss(t,a);if(p.length===0)return;let g=e.getColumnStates();Ga.add(t);try{for(let h of p)h.controller.applyColumnStates(g);}finally{Ga.delete(t);}});return ()=>{c(),d.delete(a),d.size===0&&ar.delete(t),o.current=null;}},[e,t,n]),{syncScroll:react.useCallback(a=>{let d=o.current;if(!t||!d)return;let c=ss(t,d);if(c.length!==0)for(let p of c){let g=p.scroller();g&&g.scrollLeft!==a&&(g.scrollLeft=a);}},[t])}}function ir(e,t,n){return e==="left"?t:e==="center"?n.left+t:n.left+n.center+t}function ds(e,t){let{start:n,end:o}=t.columns,i=e.centerOffsets,a=i[n]??0,d=(i[o]??0)-a,c=Math.max(0,e.centerWidth-a-d),p=a,g=e.center.slice(n,o),h=Array.from({length:g.length},(E,R)=>n+R),b=e.stickyIndices.filter(E=>E<n);if(b.length>0){let E=b.map(R=>e.center[R]);p-=E.reduce((R,v)=>R+v.state.width,0),g=[...E,...g],h=[...b,...h];}let I=new Map;for(let E of e.stickyIndices){let R=e.centerStickyOffsets[E];R!==null&&I.set(e.center[E].state.id,R);}return {centerColumns:g,centerIndices:h,leadingSpacer:Math.max(0,p),trailingSpacer:c,rowStart:t.rows.start,rowEnd:t.rows.end,stickyInsets:I}}function us(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 cs(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 La=null,lr=null,Jc=400,Qc=24;function ps(e,t,n){return `${e}\0${String(t)}\0${n}`}function Zc(e,t,n,o,i){let a=ps(e,t,n),d=Date.now(),c=La;return c&&c.cell===a&&d-c.time<=Jc&&Math.hypot(o-c.x,i-c.y)<=Qc?(La=null,lr={cell:a,time:d},true):(La={cell:a,time:d,x:o,y:i},false)}function em(e,t,n){return !!lr&&lr.cell===ps(e,t,n)&&Date.now()-lr.time<800}var sr=36,dr=28,Qn=60,Zn=24,tm=[["statusColumn",Zn],["rowNumberColumn",Qn],["detailColumn",dr],["checkboxColumn",sr]];function Ha(e,t,n=false,o=false){return qt({checkboxColumn:e,detailColumn:t,rowNumberColumn:n,statusColumn:o}).total}function qt(e){let t=new Map,n=new Map,o=0,i=0;for(let[a,d]of tm)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 Ia(e){return e?e.kind==="draw"?" kanuni-datagrid-cell--span":" kanuni-datagrid-cell--span-covered":""}function Ka(e,t,n){return e?e.kind==="covered"?t?n():null:jsxRuntime.jsx("div",{className:"kanuni-datagrid-span-box",style:{height:e.height},children:n()}):n()}function Fa(e,t){let n=e??(t==="number"||t==="bigint"?"right":"left");return n==="right"?"kanuni-datagrid-cell kanuni-datagrid-cell--number":n==="center"?"kanuni-datagrid-cell kanuni-datagrid-cell--center":"kanuni-datagrid-cell"}function Jn(e,t){if(t===""||e==="")return e;let n=datagridCore.foldText(e),o=n.indexOf(t);if(o===-1)return e;let i=[],a=0,d=0;for(;o!==-1;)o>a&&i.push(e.slice(a,o)),i.push(jsxRuntime.jsx("mark",{className:"kanuni-datagrid-highlight",children:e.slice(o,o+t.length)},d++)),a=o+t.length,o=n.indexOf(t,a);return a<e.length&&i.push(e.slice(a)),jsxRuntime.jsx("span",{className:"kanuni-datagrid-cell-text",children:i})}function nm(e,t,n,o="",i,a){if(e.renderCell)return e.renderCell({value:t,row:n.data,node:n,column:e});let d=datagridCore.lookupLabel(e,t);if(d!==null)return Jn(d,o);if(i&&a!==void 0&&!e.valueFormatter){let p=i.label(e,a,t,n.data,n.key);if(p===pn)return jsxRuntime.jsx("span",{className:"kanuni-datagrid-lookup-pending","aria-busy":"true"});if(p!==null)return Jn(p,o)}if(e.valueFormatter){let p=e.valueFormatter(t,n.data);return typeof p=="string"?Jn(p,o):p}if(e.dateFormat&&e.dataType==="date")return Jn(datagridCore.formatDateValue(t,e.dateFormat),o);let c=datagridCore.numberCellText(e,t);return c!==null?Jn(c,o):t==null?"":Jn(String(t),o)}function om({gridId:e,node:t,index:n,layout:o,columnModel:i,centerColumns:a,centerIndices:d,stickyInsets:c,leadingSpacer:p,trailingSpacer:g,striped:h,selected:b,ariaSelectable:I=true,selectable:E=true,groupSelection:R,onToggleGroupSelect:v,groupDisplay:K="fullWidth",focusedColumnId:N,rowFocused:M=false,renderRow:S,checkboxColumn:$,statusColumn:X=false,rowNumberColumn:Y=false,rowNumber:W=null,getNote:C,getSpan:L,resolveColSpans:w,findKind:y,headerRowCount:D,onRowClick:x,onRowMouseDown:z,onRowDoubleClick:te,onToggleSelect:F,onCellMouseDown:j,onRowContextMenu:le,searchNeedle:me="",lookupLabels:Fe,onToggleGroup:Oe,summaryDefs:ye,detailColumn:Le=false,detailExpanded:A=false,onToggleDetail:de,onToggleTreeRow:ae,renderDetail:q,renderEditForm:Ge,renderRowMessage:u,renderCellContent:Ie,getCellClassName:Ve,onCellPointerDown:Ee,onCellPointerEnter:De,onCellDoubleClick:ot,rowDrag:ee,dropSide:Ce=null,rowStatus:fe,rowStatusText:et,rowStatusTint:Be=false,rowStatusStrike:oe=false,rowClass:ke,height:se}){let G=Pe();if(datagridCore.isDetailRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-detail-row",role:"row","aria-rowindex":n+1+D,"data-row-key":String(t.key),"data-detail-for":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-detail-cell",role:"gridcell","aria-colindex":1,children:q?.(t.data)})});if(datagridCore.isEditFormRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-editform-row",role:"row","aria-rowindex":n+1+D,"data-row-key":String(t.key),"data-editform-for":t.parentKey===null?"":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-editform-cell",role:"gridcell","aria-colindex":1,children:t.parentKey===null?null:Ge?.(t.parentKey,t.data)})});if(datagridCore.isMessageRow(t))return jsxRuntime.jsx("div",{className:"kanuni-datagrid-row kanuni-datagrid-message-row",role:"row","aria-rowindex":n+1+D,"data-row-key":String(t.key),"data-message-for":String(t.parentKey),style:{height:t.height},children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-message-cell",role:"gridcell","aria-colindex":1,children:u?.(t.parentKey,t.data)})});if(datagridCore.isFillerRow(t))return null;if(datagridCore.isGroupRow(t)&&K==="fullWidth"){let _=i.getDef(t.columnId),he=_?.headerName??t.columnId,Te=datagridCore.lookupLabel(_,t.value)??t.display??(t.label===""?G.filterBlank:t.label),Re=t.aggregates??null;return jsxRuntime.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+D,"aria-expanded":t.expanded,"aria-level":t.level+1,"data-row-key":String(t.key),"data-group-key":String(t.key),"data-group-level":t.level,onClick:()=>Oe?.(String(t.key)),children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-group-cell",role:"gridcell","aria-colindex":1,id:`${e}-cell-${String(t.key)}-__group`,style:t.level>0?{paddingLeft:8+t.level*18}:void 0,children:[R&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:R==="all",ref:re=>{re&&(re.indeterminate=R==="some");},"aria-label":datagridCore.fillText(G.selectGroupAria,{count:String(t.count),group:Te}),onChange:()=>v?.(String(t.key)),onClick:re=>re.stopPropagation(),onMouseDown:re=>re.stopPropagation()}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:t.expanded?"\u25BE":"\u25B8"}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[he,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:Te}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",t.count,")"]}),Re&&ye?.map(re=>jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-aggregate-label",children:[datagridCore.summaryLabel(re)," ",i.getDef(re.columnId)?.headerName??re.columnId,":"]})," ",datagridCore.formatSummaryValue(re,Re[datagridCore.summaryKey(re.columnId,re.type)],i.getDef(re.columnId))]},datagridCore.summaryKey(re.columnId,re.type)))]})})}let O=[],J=qt({statusColumn:X,rowNumberColumn:Y,detailColumn:Le,checkboxColumn:$}),ve=J.count,ne=(_,he)=>({node:t,columnId:_,rowIndex:n,columnIndex:he,value:be?void 0:i.getCellValue(t.data,_)}),Me=(_,he)=>{let Te=()=>ne(_,he);return {role:"gridcell",id:`${e}-cell-${String(t.key)}-${_}`,"aria-colindex":ve+he+1,"data-column-id":_,onMouseDown:Re=>{St(Re)&&(j?.(t,_),Ee?.(Te(),Re));},onMouseEnter:De?Re=>{St(Re)&&De(Te(),Re);}:void 0,onDoubleClick:ot?Re=>{St(Re)&&(em(e,t.key,_)||ot(Te()));}:void 0,onPointerUp:ot?Re=>{Re.pointerType!=="touch"||!St(Re)||Zc(e,t.key,_,Re.clientX,Re.clientY)&&ot(Te());}:void 0}},He=t.kind==="data"||t.kind==="treePath"?t.tree:void 0,Ue=t.kind==="treePath",be=datagridCore.isGroupRow(t)?t:null,ue=Ue||be!==null,Et=be?K==="column"?datagridCore.GROUP_COLUMN_ID:(o.left[0]??o.center[0]??o.right[0])?.state.id??null:null,l=()=>{let _=be,he=i.getDef(_.columnId),Te=datagridCore.lookupLabel(he,_.value)??_.display??(_.label===""?G.filterBlank:_.label);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-inline",style:{paddingInlineStart:_.level*16},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-twisty","aria-hidden":"true",children:_.expanded?"\u25BE":"\u25B8"}),K!=="column"&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-caption",children:[he?.headerName??_.columnId,":"]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-label",children:Te}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-count",children:["(",_.count,")"]})]})},rt=(_,he)=>{let Te=be.aggregates?ye?.find(Re=>Re.columnId===he):void 0;return Te?jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-aggregate-value",children:datagridCore.formatSummaryValue(Te,be.aggregates[datagridCore.summaryKey(he,Te.type)],_)}):null},P=He?(o.left[0]??o.center[0]??o.right[0])?.state.id??null:null,Q=(_,he,Te)=>{if(be){if(he===Et)return l();if(Ie){let re=Ie(ne(he,Te));if(re!==void 0)return re}return rt(_,he)}if(Ie&&!Ue){let re=Ie(ne(he,Te));if(re!==void 0)return re}let Re=Ue?he===P?jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-path-label",children:t.label}):null:nm(_,i.getCellValue(t.data,he),t,me,Fe,he);return He&&he===P?jsxRuntime.jsxs("span",{className:He.ancestorOnly?"kanuni-datagrid-tree-cell kanuni-datagrid-tree-cell--ancestor":"kanuni-datagrid-tree-cell",style:{paddingInlineStart:He.depth*16},children:[He.hasChildren?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-tree-toggle","data-tree-toggle":"","aria-expanded":He.expanded,"aria-label":He.expanded?G.collapseTreeRow:G.expandTreeRow,onClick:re=>{re.stopPropagation(),ae?.(t.key);},children:He.expanded?"\u25BE":"\u25B8"}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-tree-toggle kanuni-datagrid-tree-toggle--leaf"}),Re]}):Re},We=(_,he)=>{if(!Ve||be)return "";let Te=Ve(ne(_,he));return Te?` ${Te}`:""},$e=_=>!C||t.kind!=="data"?"":C(t.key,_,t.data)?" kanuni-datagrid-cell--noted":"",dt=_=>L&&t.kind==="data"?L(n,_):null,tt=(_,he)=>{let Te=_.autoHeight?" kanuni-datagrid-cell--wrap":"";return !_.cellClassName||ue?Te:Te+Kn(_,he)},Kn=(_,he)=>{let Te=_.cellClassName;if(!Te)return "";if(typeof Te=="string")return ` ${Te}`;let Re=t.data,re=Te({value:i.getCellValue(Re,he),row:Re,node:t,column:_});return re?` ${re}`:""};if(X&&O.push(jsxRuntime.jsx("div",{role:"presentation","aria-hidden":"true",className:"kanuni-datagrid-cell kanuni-datagrid-cell--pinned kanuni-datagrid-status-cell",style:{width:Zn,insetInlineStart:J.inset("statusColumn")},children:jsxRuntime.jsx("span",{className:"kanuni-datagrid-status-icon"})},"__status")),Y){let _=t.kind==="data"&&W!==null;O.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":J.colIndex("rowNumberColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--number kanuni-datagrid-cell--pinned kanuni-datagrid-rownum-cell",style:{width:Qn,insetInlineStart:J.inset("rowNumberColumn")},children:_?W:""},"__rownum"));}Le&&O.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":J.colIndex("detailColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-detail-toggle-cell",style:{width:dr,insetInlineStart:J.inset("detailColumn")},children:ue?null:jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-detail-toggle",tabIndex:-1,"aria-expanded":A,"aria-label":A?G.collapseDetails:G.expandDetails,onMouseDown:_=>_.stopPropagation(),onClick:_=>{_.stopPropagation(),de?.(t.key);},children:A?"\u25BE":"\u25B8"})},"__detail")),$&&O.push(jsxRuntime.jsx("div",{role:"gridcell","aria-colindex":J.colIndex("checkboxColumn"),className:"kanuni-datagrid-cell kanuni-datagrid-cell--center kanuni-datagrid-cell--pinned kanuni-datagrid-select-cell",style:{width:sr,insetInlineStart:J.inset("checkboxColumn")},onMouseDown:_=>_.stopPropagation(),onClick:_=>{_.target.tagName!=="INPUT"&&(_.stopPropagation(),F?.(t));},children:be?R&&jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-group-checkbox",tabIndex:-1,checked:R==="all",ref:_=>{_&&(_.indeterminate=R==="some");},"aria-label":datagridCore.fillText(G.selectGroupAria,{count:String(be.count),group:be.display??be.label}),onChange:()=>v?.(String(be.key)),onClick:_=>_.stopPropagation(),onMouseDown:_=>_.stopPropagation()}):Ue?null:jsxRuntime.jsx("input",{type:"checkbox",checked:b,disabled:!E,tabIndex:-1,"aria-label":datagridCore.fillText(G.selectRowAria,{row:String(t.key)}),onChange:()=>F?.(t),onClick:_=>_.stopPropagation(),onMouseDown:_=>_.stopPropagation()})},"__select"));let Vt=J.total,it=_=>N===_?" kanuni-datagrid-cell--focused":"",It=_=>{let he=y&&t.kind==="data"?y(t.key,_):null;return he==="active"?" kanuni-datagrid-cell--find-match kanuni-datagrid-cell--find-active":he==="match"?" kanuni-datagrid-cell--find-match":""},Jt={left:o.left.length,center:o.center.length},Tt=t.kind==="data"&&w?w(t):null,Ut=_=>Tt?.widths.get(_.state.id)??_.state.width,Kt=_=>{let he=Tt?.spans.get(_);return he?{"aria-colspan":he}:null};o.left.forEach((_,he)=>{let Te=_.def,Re=he===o.left.length-1,re=_.state.id;if(Tt?.covered.has(re))return;let Rt=ir("left",he,Jt);O.push(jsxRuntime.jsx("div",{...Me(re,Rt),className:`${Fa(Te.align,Te.dataType)} kanuni-datagrid-cell--pinned${Re?" kanuni-datagrid-pin-edge-left":""}${it(re)}${It(re)}${tt(Te,re)}${We(re,Rt)}${$e(re)}${Ia(dt(re))}`,...Kt(re),style:{width:Ut(_),insetInlineStart:o.leftOffsets[he]+Vt},children:Ka(dt(re),N===re,()=>Q(Te,re,Rt))},re));});let bt=Tt?.lead??null,Ft=p-(Tt?.leadingDelta??0),Je=g-(Tt?.trailingDelta??0);Ft>0&&O.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Ft}},"__lead"));let Qe=(_,he)=>{let Te=_.def,Re=_.state.id,re=ir("center",he,Jt),Rt=c?.get(Re),s=Rt===void 0?"":" kanuni-datagrid-cell--pinned kanuni-datagrid-cell--sticky",m=bt&&bt.column.state.id===Re?bt.width:Ut(_);return jsxRuntime.jsx("div",{...Me(Re,re),...Kt(Re),className:`${Fa(Te.align,Te.dataType)}${s}${it(Re)}${It(Re)}${tt(Te,Re)}${We(Re,re)}${$e(Re)}${Ia(dt(Re))}`,style:Rt===void 0?{width:m}:{width:m,insetInlineStart:Rt+Vt},children:Ka(dt(Re),N===Re,()=>Q(Te,Re,re))},Re)},_e=bt?o.center.indexOf(bt.column):-1,ut=bt===null;return a.forEach((_,he)=>{let Te=d?.[he]??he;!ut&&Te>_e&&(O.push(Qe(bt.column,_e)),ut=true),!Tt?.covered.has(_.state.id)&&O.push(Qe(_,Te));}),ut||O.push(Qe(bt.column,_e)),Je>0&&O.push(jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:Je}},"__trail")),o.right.forEach((_,he)=>{let Te=_.def,Re=he===0,re=_.state.id;if(Tt?.covered.has(re))return;let Rt=ir("right",he,Jt);O.push(jsxRuntime.jsx("div",{...Me(re,Rt),className:`${Fa(Te.align,Te.dataType)} kanuni-datagrid-cell--pinned${Re?" kanuni-datagrid-pin-edge-right":""}${it(re)}${It(re)}${tt(Te,re)}${We(re,Rt)}${$e(re)}${Ia(dt(re))}`,...Kt(re),style:{width:Ut(_),insetInlineEnd:o.rightOffsets[he]},children:Ka(dt(re),N===re,()=>Q(Te,re,Rt))},re));}),jsxRuntime.jsxs("div",{className:`kanuni-datagrid-row${h&&n%2===1?" kanuni-datagrid-row--odd":""}${b?" kanuni-datagrid-row--selected":""}${M?" kanuni-datagrid-row--focused":""}${Ue?" kanuni-datagrid-row--tree-path":""}${be?` kanuni-datagrid-group-row kanuni-datagrid-group-row--aligned kanuni-datagrid-group-row--level-${be.level}`:""}${Ce?` kanuni-datagrid-row--drop-${Ce}`:""}${fe?` ${datagridCore.rowStatusClassName(fe,Be,oe)}`:""}${ke?` ${ke}`:""}`,role:"row","aria-rowindex":n+1+D,"aria-selected":be||!I?void 0:b,"aria-expanded":be?be.expanded:void 0,"aria-level":be?be.level+1:void 0,"data-row-key":String(t.key),"data-row-status":fe,"aria-description":fe?et:void 0,"aria-busy":fe==="saving"?true:void 0,"aria-invalid":fe==="error"?true:void 0,"data-group-key":be?String(be.key):void 0,"data-group-level":be?be.level:void 0,style:se===void 0?void 0:{height:se},draggable:ee?.draggable&&!be?true:void 0,onDragStart:ee&&!be?_=>ee.onDragStart(t,_):void 0,onDragEnd:ee&&!be?()=>ee.onDragEnd():void 0,onDragOver:ee&&!be?_=>ee.onDragOver(t,_):void 0,onDrop:ee&&!be?_=>ee.onDrop(t,_):void 0,onMouseDown:z&&!be?_=>St(_)&&z(t,_):void 0,onClick:be?()=>Oe?.(String(be.key)):x?_=>St(_)&&x(t,n,_):void 0,onDoubleClick:te?_=>St(_)&&te(t,n,_):void 0,onContextMenu:le?_=>St(_)&&le(t,n,_):void 0,children:[ee&&!be&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-grip","data-testid":"dg-row-grip","aria-hidden":"true",title:G.dragToReorder,onMouseEnter:()=>ee.setDraggable(true),onMouseLeave:()=>ee.setDraggable(false),children:jsxRuntime.jsx("svg",{width:"10",height:"14",viewBox:"0 0 10 14",focusable:"false",children:jsxRuntime.jsxs("g",{fill:"currentColor",children:[jsxRuntime.jsx("circle",{cx:"3",cy:"3",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"3",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"3",cy:"7",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"3",cy:"11",r:"1.2"}),jsxRuntime.jsx("circle",{cx:"7",cy:"11",r:"1.2"})]})})}),S&&t.kind==="data"?S({row:t.data,node:t,rowIndex:n,selected:b,focused:M}):O]})}var eo=react.memo(om);var to=26;function Aa(e,t){return datagridCore.computeHeaderBands(e,t)}function Ba(e,t=""){return `kanuni-datagrid-band-cell${e.spacer?" kanuni-datagrid-band-cell--spacer":""}${t}`}function _a(e,t){let n=jsxRuntime.jsx("span",{className:"kanuni-datagrid-band-label",children:e.label});if(!t||e.spacer||e.columnIds.length===0)return n;let 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 jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.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:jsxRuntime.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:[jsxRuntime.jsx("rect",{x:"2",y:"2",width:"12",height:"12",rx:"2",fill:"none",stroke:"currentColor",strokeWidth:"1.3"}),jsxRuntime.jsx("path",{d:"M5 8h6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),i&&jsxRuntime.jsx("path",{d:"M8 5v6",fill:"none",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"})]})}),n]})}function im({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:o,depth:i,checkboxColumn:a=false,detailColumn:d=false,statusColumn:c=false,rowNumberColumn:p=false,rowHeight:g=to,bandFold:h}){if(i<=0)return null;let b=qt({statusColumn:c,rowNumberColumn:p,detailColumn:d,checkboxColumn:a}).total,I=Aa(e.left,i),E=Aa(t,i),R=Aa(e.right,i),v=(K,N,M)=>{let S=M;for(let $=0;$<N;$++)S+=K[$].width;return S};return jsxRuntime.jsx(jsxRuntime.Fragment,{children:Array.from({length:i},(K,N)=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-band-row",role:"row","aria-rowindex":N+1,style:{width:e.totalWidth+b,height:g,top:N*g},children:[b>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-band-cell kanuni-datagrid-band-cell--spacer kanuni-datagrid-band-cell--pinned",style:{width:b,insetInlineStart:0},"aria-hidden":"true"}),(I[N]??[]).map((M,S)=>jsxRuntime.jsx("div",{className:Ba(M,` kanuni-datagrid-band-cell--pinned${S===(I[N]?.length??0)-1?" kanuni-datagrid-pin-edge-left":""}`),role:M.spacer?"presentation":"columnheader","aria-colspan":M.spacer?void 0:M.columnIds.length,style:{width:M.width,insetInlineStart:v(I[N]??[],S,b)},title:M.spacer?void 0:M.label,children:_a(M,h)},M.columnIds[0])),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),(E[N]??[]).map(M=>jsxRuntime.jsx("div",{className:Ba(M),role:M.spacer?"presentation":"columnheader","aria-colspan":M.spacer?void 0:M.columnIds.length,style:{width:M.width},title:M.spacer?void 0:M.label,children:_a(M,h)},M.columnIds[0])),o>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:o}}),(R[N]??[]).map((M,S)=>{let $=R[N]??[],X=0;for(let Y=S+1;Y<$.length;Y++)X+=$[Y].width;return jsxRuntime.jsx("div",{className:Ba(M,` kanuni-datagrid-band-cell--pinned${S===0?" kanuni-datagrid-pin-edge-right":""}`),role:M.spacer?"presentation":"columnheader","aria-colspan":M.spacer?void 0:M.columnIds.length,style:{width:M.width,insetInlineEnd:X},title:M.spacer?void 0:M.label,children:_a(M,h)},M.columnIds[0])})]},N))})}var Wa=react.memo(im);var cm=()=>jsxRuntime.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:"M1.5 2.5h13L9.5 8.6v4.3l-3 1.6V8.6L1.5 2.5Z",fill:"currentColor",stroke:"currentColor",strokeWidth:"0.6",strokeLinejoin:"round"})});function mm(e,t){return e.renderHeader?e.renderHeader({column:e}):e.headerName??e.field??t}function pm({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:o,leadingSpacer:i,trailingSpacer:a,sort:d,sortable:c,onSort:p,headerFilter:g=false,filteredColumns:h,onOpenFilter:b,filterIconMode:I="hover",checkboxColumn:E=false,detailColumn:R=false,statusColumn:v=false,rowNumberColumn:K=false,rowNumberHeader:N="#",selectAllState:M="none",selectAllDisabled:S=false,onToggleSelectAll:$,draggable:X=false,reorderable:Y=false,onReorder:W,resizable:C=false,onResize:L,onAutoFit:w,onHeaderContextMenu:y,groupLevels:D,onHeaderClick:x,getHeaderClassName:z,renderHeaderLabel:te}){let F=Pe(),j=qt({statusColumn:v,rowNumberColumn:K,detailColumn:R,checkboxColumn:E}),le=new Map(d.map((oe,ke)=>[oe.columnId,{direction:oe.direction,order:ke}])),me=new Set(h??[]),Fe=[...n.left.map(oe=>oe.state.id),...o.map(oe=>oe.state.id),...n.right.map(oe=>oe.state.id)],[Oe,ye]=react.useState(null),Le=react.useId(),A=Oe&&Fe.includes(Oe)?Oe:Fe[0],de=oe=>{ye(oe),document.querySelector(`[data-column-id="${oe}"].kanuni-datagrid-header-cell`)?.focus();},ae=oe=>{let ke=Fe.indexOf(A),se=Math.min(Fe.length-1,Math.max(0,ke+oe));se!==ke&&de(Fe[se]);},q=react.useRef(null),Ge=react.useRef(false),[u,Ie]=react.useState(null),Ve=Fe,Ee=oe=>[...n.left,...n.center,...n.right].find(ke=>ke.state.id===oe)?.state.pinned??null,De=(oe,ke)=>(Ge.current?oe>ke.left+ke.width/2:oe<ke.left+ke.width/2)?"before":"after",ot=(oe,ke)=>{let se=q.current;if(!Y||!se||se===oe||Ee(se)!==Ee(oe))return;ke.preventDefault(),ke.dataTransfer.dropEffect="move";let G=De(ke.clientX,ke.currentTarget.getBoundingClientRect());Ie(O=>O?.id===oe&&O.side===G?O:{id:oe,side:G});},ee=(oe,ke)=>{let se=q.current;if(Ie(null),!Y||!se||se===oe||Ee(se)!==Ee(oe))return;if(ke.preventDefault(),ke.stopPropagation(),De(ke.clientX,ke.currentTarget.getBoundingClientRect())==="before")W?.(se,oe);else {let O=Ve[Ve.indexOf(oe)+1];W?.(se,O===se?Ve[Ve.indexOf(oe)+2]:O);}q.current=null;},[Ce,fe]=react.useState(null),et=(oe,ke)=>{if(!C)return;ke.preventDefault(),ke.stopPropagation();let se=ke.currentTarget,G=ke.clientX,O=oe.state.width,J=Ge.current?-1:1,ve=oe.state.id;fe(ve),se.setPointerCapture(ke.pointerId);let ne=O,Me=false,He=be=>{Me=true,ne=O+(be.clientX-G)*J,L?.(ve,ne,false);},Ue=()=>{se.releasePointerCapture?.(ke.pointerId),se.removeEventListener("pointermove",He),se.removeEventListener("pointerup",Ue),se.removeEventListener("pointercancel",Ue),Me&&L?.(ve,ne,true),fe(null);};se.addEventListener("pointermove",He),se.addEventListener("pointerup",Ue),se.addEventListener("pointercancel",Ue);},Be=(oe,ke,se)=>{let G=oe.def,O=oe.state.id,J=c&&G.sortable!==false,ve=g&&G.filterable!==false,ne=O===datagridCore.GROUP_COLUMN_ID,Me=le.get(ne?D?.[0]??O:O),He=X&&G.groupable!==false||Y&&G.reorderable!==false,Ue=u?.id===O?u.side:null,be=z?.(O);return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-header-cell${ke}${be?` ${be}`:""}${J?" kanuni-datagrid-header-cell--sortable":""}${Ue?` kanuni-datagrid-header-cell--drop-${Ue}`:""}${Ce===O?" kanuni-datagrid-header-cell--resizing":""}${G.wrapHeaderText?" kanuni-datagrid-header-cell--wrap":""}`,style:se,role:"columnheader","aria-labelledby":`${Le}-${encodeURIComponent(O)}`,"aria-sort":Me?Me.direction==="asc"?"ascending":"descending":"none","data-column-id":O,tabIndex:O===A?0:-1,onFocus:()=>ye(O),draggable:He&&Ce===null,onDragStart:ue=>{ue.dataTransfer.setData("text/x-kanuni-column",O),ue.dataTransfer.effectAllowed="move",q.current=O,Ge.current=getComputedStyle(ue.currentTarget).direction==="rtl";},onDragEnd:()=>{q.current=null,Ie(null);},onDragOver:Y?ue=>ot(O,ue):void 0,onDragLeave:Y?()=>Ie(ue=>ue?.id===O?null:ue):void 0,onDrop:Y?ue=>ee(O,ue):void 0,onContextMenu:y&&!datagridCore.isChromeColumn(O)?ue=>y(O,ue):void 0,onClick:J||x?ue=>{x?.(O,ue)||J&&p(O,ue.shiftKey);}:void 0,onKeyDown:ue=>{ue.key==="ArrowRight"?(ue.preventDefault(),ae(1)):ue.key==="ArrowLeft"?(ue.preventDefault(),ae(-1)):ue.key==="Home"?(ue.preventDefault(),de(Fe[0])):ue.key==="End"?(ue.preventDefault(),de(Fe[Fe.length-1])):ve&&ue.altKey&&ue.key==="ArrowDown"?(ue.preventDefault(),b?.(O,ue.currentTarget)):J&&(ue.key==="Enter"||ue.key===" ")&&(ue.preventDefault(),p(O,ue.shiftKey));},children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-header-label",id:`${Le}-${encodeURIComponent(O)}`,children:te?.(O)??mm(G,O)}),Me&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-indicator","aria-hidden":"true",children:Me.direction==="asc"?"\u25B2":"\u25BC"}),Me&&d.length>1&&!ne&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-sort-order","aria-hidden":"true",children:Me.order+1}),g&&G.filterable!==false&&jsxRuntime.jsx("button",{type:"button",className:`kanuni-datagrid-filter-button${me.has(O)?" kanuni-datagrid-filter-button--active":""}${I==="always"?" kanuni-datagrid-filter-button--pinned":""}`,"aria-label":datagridCore.fillText(F.filterColumnAria,{column:G.headerName??O}),"aria-haspopup":"dialog","data-filter-button":O,tabIndex:-1,onClick:ue=>{ue.stopPropagation(),b?.(O,ue.currentTarget);},children:jsxRuntime.jsx(cm,{})}),C&&G.resizable!==false&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-resize-handle","data-resize-handle":O,role:"presentation",onPointerDown:ue=>et(oe,ue),onDoubleClick:ue=>{ue.stopPropagation(),w?.(O);},onClick:ue=>ue.stopPropagation()})]},O)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-header",role:"row","aria-rowindex":Math.round(e/to)+1,style:{width:n.totalWidth+j.total,top:e||void 0},children:[v&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-status-cell",role:"presentation","aria-hidden":"true",style:{width:Zn,insetInlineStart:j.inset("statusColumn")}}),K&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-rownum-cell",role:"columnheader","aria-colindex":j.colIndex("rowNumberColumn"),"aria-label":F.rowNumberAria,style:{width:Qn,insetInlineStart:j.inset("rowNumberColumn")},children:N??""}),R&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-detail-toggle-cell",role:"columnheader","aria-colindex":j.colIndex("detailColumn"),"aria-label":F.detailsAria,style:{width:dr,insetInlineStart:j.inset("detailColumn")}}),E&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-header-cell kanuni-datagrid-header-cell--pinned kanuni-datagrid-select-cell",role:"columnheader","aria-colindex":j.colIndex("checkboxColumn"),style:{width:sr,insetInlineStart:j.inset("checkboxColumn")},children:jsxRuntime.jsx("input",{type:"checkbox",checked:M==="all",ref:oe=>{oe&&(oe.indeterminate=M==="some");},"aria-label":F.selectAllRows,disabled:S,onChange:()=>$?.()})}),n.left.map((oe,ke)=>Be(oe,` kanuni-datagrid-header-cell--pinned${ke===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:oe.state.width,insetInlineStart:n.leftOffsets[ke]+j.total})),i>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:i}}),o.map(oe=>{let ke=t?.get(oe.state.id);return ke===void 0?Be(oe,"",{width:oe.state.width}):Be(oe," kanuni-datagrid-header-cell--pinned kanuni-datagrid-cell--sticky",{width:oe.state.width,insetInlineStart:ke+j.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((oe,ke)=>Be(oe,` kanuni-datagrid-header-cell--pinned${ke===0?" kanuni-datagrid-pin-edge-right":""}`,{width:oe.state.width,insetInlineEnd:n.rightOffsets[ke]}))]})}var Ua=react.memo(pm);function Ya(e,t,n=[]){let o=null,i=new Set,a=d=>{if(i.has(d)||(i.add(d),t.isPending(d)))return;let c=t.textFor(d);if(c===null)return;let p=e[d]??"";p!==c&&(p===""&&c===""||(o??={...e},o[d]=c));};for(let d of Object.keys(e))a(d);for(let d of n)a(d);return o??e}function wm({bandOffset:e=0,stickyInsets:t,layout:n,centerColumns:o,leadingSpacer:i,trailingSpacer:a,values:d,checkboxColumn:c=false,detailColumn:p=false,statusColumn:g=false,rowNumberColumn:h=false,placeholder:b,onChange:I,onCommit:E,periodSuggestions:R,periodListId:v,operators:K,onOperatorChange:N,renderCustom:M}){let S=Pe(),$=qt({statusColumn:g,rowNumberColumn:h,detailColumn:p,checkboxColumn:c}),X=b??S.filterPlaceholder,Y=(W,C,L)=>{let w=W.state.id,y=W.def.filterable!==false,D=y?M?.(w):void 0,x=y&&D===void 0?datagridCore.customFilterOperators(W.def):[],z=x.some(F=>F.id===K?.[w])?K[w]:"",te=x.find(F=>F.id===z)?.operandType==="none";return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-cell${C}`,role:"gridcell",style:L,"data-column-id":w,children:[y&&D!==void 0&&D,y&&D===void 0&&x.length>0&&jsxRuntime.jsxs("select",{className:"kanuni-datagrid-filter-operator",value:z,"aria-label":datagridCore.fillText(S.filterOperatorAria,{column:W.def.headerName??w}),"data-filter-operator-for":w,onChange:F=>N?.(w,F.target.value),children:[jsxRuntime.jsx("option",{value:"",children:S.filterOperatorDefault}),x.map(F=>jsxRuntime.jsx("option",{value:F.id,children:F.label},F.id))]}),y&&D===void 0&&jsxRuntime.jsx("input",{className:"kanuni-datagrid-filter-input",type:"text",value:d[w]??"",placeholder:X,"aria-label":datagridCore.fillText(S.filterColumnAria,{column:W.def.headerName??w}),"data-filter-for":w,disabled:te||void 0,list:W.def.dataType==="date"&&v&&z===""?v:void 0,onChange:F=>I(w,F.target.value),onKeyDown:F=>{F.key==="Enter"&&E?.(w,F.target.value);},onBlur:F=>E?.(w,F.target.value)})]},w)};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-row",role:"row","aria-rowindex":2,style:{width:n.totalWidth+$.total,"--dg-band-offset":`${e}px`},children:[v&&R&&R.length>0&&jsxRuntime.jsx("datalist",{id:v,children:R.map(W=>jsxRuntime.jsx("option",{value:W},W))}),$.total>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-cell kanuni-datagrid-filter-cell--pinned",role:"gridcell",style:{width:$.total,insetInlineStart:0}}),n.left.map((W,C)=>Y(W,` kanuni-datagrid-filter-cell--pinned${C===n.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:W.state.width,insetInlineStart:n.leftOffsets[C]+$.total})),i>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:i}}),o.map(W=>{let C=t?.get(W.state.id);return C===void 0?Y(W,"",{width:W.state.width}):Y(W," kanuni-datagrid-filter-cell--pinned kanuni-datagrid-cell--sticky",{width:W.state.width,insetInlineStart:C+$.total})}),a>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:a}}),n.right.map((W,C)=>Y(W,` kanuni-datagrid-filter-cell--pinned${C===0?" kanuni-datagrid-pin-edge-right":""}`,{width:W.state.width,insetInlineEnd:n.rightOffsets[C]}))]})}var qa=react.memo(wm);function xt({children:e,dark:t=false,kind:n="popup"}){let[o,i]=react.useState(null),a=Bt(),d=Zt();return react.useEffect(()=>{let c=document.createElement("div");return c.className=`kanuni-datagrid-root kanuni-datagrid-portal${t?" kanuni-datagrid-dark":""}${a}`,c.setAttribute(datagridCore.PORTAL_ATTRIBUTE,n),c.style.pointerEvents="auto",d().appendChild(c),i(c),()=>{c.remove();}},[t,a,d,n]),o?reactDom.createPortal(e,o):null}function Nn({anchor:e,onClose:t,margin:n=8,autoFocus:o=false}){let i=react.useRef(null),[a,d]=react.useState(e),c=react.useCallback(p=>{if(i.current=p,!p)return;let g=p.getBoundingClientRect(),h=e.top+g.height+n>window.innerHeight,b=e.top-g.height-n*2,I=h&&b>n?b:e.top;d({left:Math.max(n,Math.min(e.left,window.innerWidth-g.width-n)),top:Math.max(n,Math.min(I,window.innerHeight-g.height-n))}),o&&p.focus();},[e.left,e.top,n,o]);return react.useEffect(()=>{let p=b=>{let I=i.current;I&&!I.contains(b.target)&&t();},g=b=>{b.key==="Escape"&&t();},h=b=>{let I=i.current,E=b.target;I&&E instanceof Node&&I.contains(E)||t();};return document.addEventListener("mousedown",p),document.addEventListener("keydown",g),window.addEventListener("scroll",h,true),()=>{document.removeEventListener("mousedown",p),document.removeEventListener("keydown",g),window.removeEventListener("scroll",h,true);}},[t]),{position:a,ref:c,elementRef:i}}var rn=25,vo=new Map,ys=200,Gm=200,bs=8;function Mm(e){let t=Pe();return react.useMemo(()=>({search:t.search,selectAll:t.filterSelectAll,clear:t.clear,apply:t.apply,cancel:t.cancel,blank:t.filterBlank,custom:t.filterCustom,popupAria:t.filterPopupAria,nonBlank:t.filterNonBlank,emptyText:t.filterEmptyText,space:t.filterSpace,spaces:t.filterSpaces,noMatch:t.filterNoMatch,loading:t.filterLoading,truncated:t.filterTruncated,...e}),[t,e])}var Nm=react.memo(function({itemKey:t,label:n,display:o,index:i,active:a,checked:d,onToggle:c,onFocus:p}){return jsxRuntime.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:()=>p(i),onClick:()=>c(t),children:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:d,tabIndex:-1}),jsxRuntime.jsx("span",{children:o})]})});function Pm(e,t){return e.nonBlank?t.nonBlank:hs({value:e.blank?null:e.value,label:e.label},t)}function hs(e,t){return datagridCore.distinctDisplayText(e,{filterBlank:t.blank,filterEmptyText:t.emptyText,filterSpace:t.space,filterSpaces:t.spaces})}var ei={value:void 0,label:""},mr=e=>e.value===null||e.value===void 0;function Lm({index:e,row:t,active:n,checked:o,text:i,onToggle:a,onFocus:d}){return t?jsxRuntime.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:[jsxRuntime.jsx("input",{type:"checkbox",readOnly:true,checked:o,tabIndex:-1}),jsxRuntime.jsx("span",{children:Pm(t,i)})]}):jsxRuntime.jsx("div",{role:"option","aria-selected":false,"aria-busy":"true",className:"kanuni-datagrid-filter-item kanuni-datagrid-filter-item--pending","data-index":e,children:jsxRuntime.jsx("span",{"aria-hidden":"true",children:"\u2026"})})}function ti({gridId:e,columnId:t,headerLabel:n,entries:o,initialSelected:i,anchor:a,loading:d=false,dark:c,onApply:p,onClose:g,onCustom:h,truncated:b=false,onSearch:I,pager:E,labels:R}){let v=Mm(R),[,K]=react.useReducer(G=>G+1,0);react.useEffect(()=>E?E.subscribe(K):void 0,[E]);let[N,M]=react.useState(""),[S,$]=react.useState(0),[X,Y]=react.useState(()=>new Set(i??o.map(datagridCore.distinctEntryKey))),[W,C]=react.useState(false),L=react.useRef(null),w=react.useRef(null),[y,D]=react.useState(0),[x,z]=react.useState(240),te=`${e??""}:${t}`,F=vo.get(te),j=react.useRef(F?.scrollTop??null),[le,me]=react.useState(F&&F.width&&F.height?{width:F.width,height:F.height}:null),Fe=react.useCallback(G=>{L.current=G,G?.focus();},[]),Oe=react.useRef(null),ye=react.useMemo(()=>{let G=datagridCore.foldText(N.trim());if(!G||b)return o;let O=Oe.current;(!O||O.entries!==o)&&(O={entries:o,lowered:o.map(ve=>datagridCore.foldText(ve.label)),needle:"",result:[]},Oe.current=O);let J=O.needle!==""&&G.includes(O.needle)?O.result.filter(ve=>datagridCore.foldText(ve.label).includes(G)):o.filter((ve,ne)=>O.lowered[ne].includes(G));return O.needle=G,O.result=J,J},[o,N,b]);react.useEffect(()=>{if(!I)return;let G=setTimeout(()=>I(N),150);return ()=>clearTimeout(G)},[N,I]),react.useEffect(()=>{if(!E)return;let G=setTimeout(()=>{if(E.getSearch()===N.trim())return;E.setSearch(N);let O=w.current;O&&(O.scrollTop=0),D(0),$(0);},150);return ()=>clearTimeout(G)},[E,N]),react.useEffect(()=>{W||!i||Y(new Set(i));},[i,W]),react.useEffect(()=>{W||i||Y(new Set(o.map(datagridCore.distinctEntryKey)));},[o,W,i]);let Le=react.useCallback(G=>{w.current=G,G&&z(G.clientHeight||240);},[]);react.useEffect(()=>{let G=w.current;!G||j.current===null||d||G.scrollHeight<=G.clientHeight||(G.scrollTop=j.current,j.current=null,D(G.scrollTop));});let A=react.useMemo(()=>{if(N.trim()!=="")return ye;let G=ye.findIndex(mr);return G<0?ye:[...ye.slice(0,G+1),ei,...ye.slice(G+1)]},[ye,N]),de=react.useMemo(()=>{let G=A.length,O=Math.max(0,Math.floor(y/rn)-bs),J=Math.ceil(x/rn)+bs*2,ve=Math.min(O,Math.max(0,G-1)),ne=Math.min(G,ve+J);return {start:ve,end:ne,count:G,rows:A.slice(ve,ne)}},[A,y,x]);react.useEffect(()=>{let G=w.current;E&&G&&z(G.clientHeight||240);},[E,d,E?.isLoading(),E?.getRowCount()]);let ae=E?E.getWindow(y,Math.max(x,150)):null,q=ae?.start??0,Ge=ae?.end??0;react.useEffect(()=>{E&&E.ensure(q,Ge);},[E,q,Ge,y]);let u=E?E.getRowCount():A.length,Ie=E?!!ae&&S>=ae.start&&S<ae.end&&!!E.getRow(S):S>=de.start&&S<de.end,Ve=d||(E?E.isLoading():false),Ee=Nn({anchor:a,onClose:g}),[De,ot]=react.useState(null),ee=(De??Ee.position.left)+(le?.width??260)+48<window.innerWidth?"right":"left",Ce=G=>{G.preventDefault(),G.stopPropagation();let O=Ee.elementRef.current;if(!O)return;let J=O.getBoundingClientRect(),ve=ee,ne={x:G.clientX,y:G.clientY,w:J.width,h:J.height,left:J.left},Me=null,He=be=>{let ue=be.clientX-ne.x,Et=be.clientY-ne.y,l=window.innerHeight-J.top-12,rt=Math.min(l,Math.max(Gm,ne.h+Et));if(ve==="right"){let P=window.innerWidth-ne.left-12;Me={width:Math.min(P,Math.max(ys,ne.w+ue)),height:rt},me(Me);}else {let P=ne.left+ne.w,Q=P-12,We=Math.min(Q,Math.max(ys,ne.w-ue));Me={width:We,height:rt},me(Me),ot(P-We);}w.current&&z(w.current.clientHeight);},Ue=()=>{if(window.removeEventListener("pointermove",He),window.removeEventListener("pointerup",Ue),Me){let be=vo.get(te);vo.set(te,{scrollTop:be?.scrollTop??w.current?.scrollTop??0,width:Math.round(Me.width),height:Math.round(Me.height)});}};window.addEventListener("pointermove",He),window.addEventListener("pointerup",Ue);},fe=react.useCallback(G=>{C(true),Y(O=>{let J=new Set(O);if(G===datagridCore.NONBLANK_KEY){let ve=datagridCore.distinctNonBlankTicked(o,O);for(let ne of o)mr(ne)&&!ve?J.delete(datagridCore.BLANK_KEY):J.add(datagridCore.distinctEntryKey(ne));return J}return J.has(G)?J.delete(G):J.add(G),J});},[o]),et=react.useCallback(G=>$(G),[]),Be=()=>{if(Ve)return;if(E){p(E.buildFilter(t));return}if(X.size===o.length){p(null);return}let G=o.filter(ne=>X.has(datagridCore.distinctEntryKey(ne))),O=G.some(mr),J=G.filter(ne=>!mr(ne)),ve;datagridCore.distinctNonBlankTicked(o,X)?ve={columnId:t,operator:"isnotnull"}:J.length===0?ve={columnId:t,operator:"isnull"}:O?ve={logic:"or",nodes:[{columnId:t,operator:"in",value:J.map(ne=>ne.value)},{columnId:t,operator:"isnull"}]}:ve={columnId:t,operator:"in",value:J.map(ne=>ne.value)},p(ve);},oe=G=>{let O=Math.max(0,Math.min(u-1,G));if($(O),E){let Me=w.current;Me&&(G<=0||G>=u-1)&&(Me.scrollTop=G<=0?0:Me.scrollHeight),requestAnimationFrame(()=>{let He=Ee.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${O}"]`);He?.focus(),He?.scrollIntoView?.({block:"nearest"});});return}let J=w.current;if(J){let Me=O*rn,He=J.clientHeight||240,Ue=J.scrollTop;Me<Ue?Ue=Me:Me+rn>Ue+He&&(Ue=Me+rn-He),Ue!==J.scrollTop&&(J.scrollTop=Ue),D(Ue);}let ve=()=>Ee.elementRef.current?.querySelector(`.kanuni-datagrid-filter-item[data-index="${O}"]`),ne=ve();ne?(ne.focus(),ne.scrollIntoView?.({block:"nearest"})):requestAnimationFrame(()=>ve()?.focus());},ke=G=>G.key.length===1&&!G.ctrlKey&&!G.metaKey&&!G.altKey,se=G=>{let O=G.target===L.current;if(!((G.key==="Enter"||G.key===" ")&&G.target instanceof HTMLButtonElement)){if(G.key==="Tab"){let J=Ee.elementRef.current,ve=J?Array.from(J.querySelectorAll('input:not([disabled]), button:not([disabled]), [tabindex="0"]')):[],ne=ve[0],Me=ve[ve.length-1],He=document.activeElement;ne&&Me&&(!G.shiftKey&&(He===Me||He===J)?(G.preventDefault(),ne.focus()):G.shiftKey&&(He===ne||He===J)&&(G.preventDefault(),Me.focus()));return}if(G.key==="Backspace"&&!O){G.preventDefault(),L.current?.focus(),M(J=>J.slice(0,-1)),$(0);return}if(G.key==="ArrowDown"){G.preventDefault(),oe(O?0:S+1);return}if(G.key==="ArrowUp"){G.preventDefault(),oe(O?E?0:A.length-1:S-1);return}if(!O&&(G.key==="Home"||G.key==="End")){G.preventDefault(),oe(G.key==="Home"?0:u-1);return}if(G.key===" "&&!O){if(G.preventDefault(),E){let ve=E.getRow(S);ve&&E.toggle(ve);return}let J=A[S];J&&fe(J===ei?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(J));return}if(G.key==="Enter"){G.preventDefault(),Be();return}!O&&ke(G)&&G.key!==" "&&(G.preventDefault(),L.current?.focus(),M(J=>J+G.key),$(0));}};return jsxRuntime.jsx(xt,{dark:c,children:jsxRuntime.jsxs("div",{ref:Ee.ref,className:"kanuni-datagrid-filter-popup",style:{left:De??Ee.position.left,top:Ee.position.top,...le?{width:le.width,height:le.height,maxHeight:"none"}:null},role:"dialog","aria-label":v.popupAria.replace("{column}",n),tabIndex:-1,onKeyDown:se,children:[jsxRuntime.jsx("div",{className:`kanuni-datagrid-popup-resize kanuni-datagrid-popup-resize--${ee}`,"data-testid":"dg-filter-resize",onPointerDown:Ce}),jsxRuntime.jsx("input",{ref:Fe,className:"kanuni-datagrid-filter-search",type:"search",placeholder:v.search,value:N,onChange:G=>{M(G.target.value),$(0);},"data-testid":"dg-filter-search"}),!E&&b&&jsxRuntime.jsx("p",{className:"kanuni-datagrid-filter-truncated","data-testid":"dg-filter-truncated",children:v.truncated}),h&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-custom","data-testid":"dg-filter-custom",onClick:h,children:v.custom}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-actions",children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(E)return E.selectAll();C(true),N.trim()===""?Y(new Set(o.map(datagridCore.distinctEntryKey))):Y(G=>{let O=new Set(G);for(let J of ye)O.add(datagridCore.distinctEntryKey(J));return O});},children:v.selectAll}),jsxRuntime.jsx("button",{type:"button",onClick:()=>{if(E)return E.clear();C(true),N.trim()===""?Y(new Set):Y(G=>{let O=new Set(G);for(let J of ye)O.delete(datagridCore.distinctEntryKey(J));return O});},children:v.clear})]}),jsxRuntime.jsxs("div",{ref:Le,className:"kanuni-datagrid-filter-list",role:"listbox","aria-multiselectable":"true",tabIndex:Ie||u===0?-1:0,"aria-busy":Ve||void 0,"aria-setsize":u,onScroll:G=>{let O=G.target.scrollTop;D(O),j.current=null;let J=vo.get(te);vo.set(te,{...J,scrollTop:O});},children:[Ve&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:v.loading}),!Ve&&u===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-empty",children:v.noMatch}),E&&ae&&u>0&&jsxRuntime.jsx("div",{style:{height:ae.totalHeight,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${ae.offsetY}px)`},children:Array.from({length:ae.end-ae.start},(G,O)=>{let J=ae.start+O,ve=E.getRow(J);return jsxRuntime.jsx(Lm,{index:J,row:ve,active:J===S,checked:ve?E.isChecked(ve):false,text:v,onToggle:ne=>E.toggle(ne),onFocus:et},J)})})}),!E&&de.count>0&&jsxRuntime.jsx("div",{style:{height:A.length*rn,position:"relative"},children:jsxRuntime.jsx("div",{style:{transform:`translateY(${de.start*rn}px)`},children:de.rows.map((G,O)=>{let J=de.start+O,ve=G===ei,ne=ve?datagridCore.NONBLANK_KEY:datagridCore.distinctEntryKey(G);return jsxRuntime.jsx(Nm,{itemKey:ne,label:G.label,display:ve?v.nonBlank:hs(G,v),index:J,active:J===S,checked:ve?datagridCore.distinctNonBlankTicked(o,X):X.has(ne),onToggle:fe,onFocus:et},ne)})})})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",onClick:g,children:v.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:Be,disabled:Ve,"data-testid":"dg-filter-apply",children:v.apply})]})]})})}function ni(e,t,n){return n==="row"?e.getColumnFilter(t,datagridCore.FILTER_PART_ROW):e.getColumnFilter(t,datagridCore.FILTER_PART_SET)??e.getColumnFilter(t,datagridCore.FILTER_PART_DEFAULT)}function ri({controller:e,columnId:t,surface:n,close:o}){let[i,a]=react.useState(()=>ni(e,t,n));react.useEffect(()=>(a(ni(e,t,n)),e.events.on("filterChanged",()=>{a(ni(e,t,n));})),[e,t,n]);let d=react.useCallback(g=>{e.setColumnFilter(t,g,n==="row"?datagridCore.FILTER_PART_ROW:datagridCore.FILTER_PART_SET);},[e,t,n]),c=react.useCallback(()=>{},[]),p=e.getColumnModel().getDef(t);return p?.renderFilter?jsxRuntime.jsx(jsxRuntime.Fragment,{children:p.renderFilter({columnId:t,column:p,surface:n,value:i,setValue:d,close:o??c})}):null}var Hm='input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), a[href], [tabindex]:not([tabindex="-1"])';function ks({controller:e,columnId:t,headerLabel:n,anchor:o,dark:i,onClose:a}){let d=Pe(),c=Nn({anchor:o,onClose:a}),p=react.useRef(false),g=c.ref,h=react.useCallback(b=>{g(b),!(!b||p.current)&&(p.current=true,(b.querySelector(Hm)??b).focus({preventScroll:true}));},[g]);return jsxRuntime.jsx(xt,{dark:i,children:jsxRuntime.jsx("div",{ref:h,tabIndex:-1,className:"kanuni-datagrid-filter-popup kanuni-datagrid-filter-popup--custom",style:{left:c.position.left,top:c.position.top},role:"dialog","aria-label":d.filterPopupAria.replace("{column}",n),"data-column-id":t,children:jsxRuntime.jsx(ri,{controller:e,columnId:t,surface:"popup",close:a})})})}var ai="text/x-kanuni-column";function $m({columns:e,levels:t,onSetLevels:n,maxLevels:o=1,onExpandAll:i,onCollapseAll:a,emptyText:d}){let c=Pe(),p=d??c.groupPanelHint,[g,h]=react.useState(false),b=react.useRef(null),[I,E]=react.useState(null),R=C=>e.find(w=>w.state.id===C)?.def.headerName??C,v=C=>{if(!C||t.includes(C))return;let L=t.length>=o?t.slice(0,o-1):[...t];n([...L,C]);},K=C=>n(t.filter(L=>L!==C)),N=(C,L)=>{let w=t.filter(D=>D!==C),y=Math.max(0,Math.min(w.length,L));n([...w.slice(0,y),C,...w.slice(y)]);},M=(C,L,w)=>{if(C===L)return;let D=t.filter(x=>x!==C).indexOf(L);D<0||N(C,w==="before"?D:D+1);},S=(C,L)=>{let w=C+L;w<0||w>=t.length||M(t[C],t[w],L<0?"before":"after");},$=(C,L)=>C<L.top+L.height/2?"before":"after",X=(C,L)=>{L.preventDefault(),L.stopPropagation();let w=$(L.clientY,L.currentTarget.getBoundingClientRect());E(null),h(false);let y=b.current;if(b.current=null,y){M(y,t[C],w);return}let D=L.dataTransfer.getData(ai);if(!D||t.includes(D))return;if(t.length>=o){v(D);return}let x=w==="before"?C:C+1;n([...t.slice(0,x),D,...t.slice(x)]);},Y=(C,L,w)=>{let y=w.ctrlKey||w.metaKey;y&&(w.key==="ArrowUp"||w.key==="ArrowLeft")?(w.preventDefault(),S(C,-1)):y&&(w.key==="ArrowDown"||w.key==="ArrowRight")?(w.preventDefault(),S(C,1)):(w.key==="Delete"||w.key==="Backspace")&&(w.preventDefault(),K(L));},W=e.filter(C=>!t.includes(C.state.id));return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-group-panel${g?" kanuni-datagrid-group-panel--over":""}`,onDragOver:C=>{C.preventDefault(),h(true);},onDragLeave:()=>h(false),onDrop:C=>{if(C.preventDefault(),h(false),E(null),b.current){b.current=null;return}v(C.dataTransfer.getData(ai));},children:[t.length>0?jsxRuntime.jsx("div",{className:"kanuni-datagrid-group-levels",children:t.map((C,L)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-group-level${I?.index===L?` kanuni-datagrid-group-level--drop-${I.side}`:""}`,style:{"--dg-group-level":L},"data-group-level":L,onDragOver:w=>{w.preventDefault(),w.stopPropagation();let y=$(w.clientY,w.currentTarget.getBoundingClientRect());E(D=>D?.index===L&&D.side===y?D:{index:L,side:y});},onDragLeave:()=>E(w=>w?.index===L?null:w),onDrop:w=>X(L,w),children:jsxRuntime.jsxs("span",{className:"kanuni-datagrid-group-chip",draggable:o>1&&t.length>1,tabIndex:0,role:"button","aria-label":`${datagridCore.fillText(c.groupLevelAria,{n:L+1})}: ${R(C)}`,onDragStart:w=>{b.current=C,w.dataTransfer.effectAllowed="move",w.dataTransfer.setData(ai,C);},onDragEnd:()=>{b.current=null,E(null);},onKeyDown:w=>Y(L,C,w),children:[o>1&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-chip-level",children:L+1}),R(C),jsxRuntime.jsx("button",{type:"button","aria-label":datagridCore.fillText(c.groupRemoveAria,{column:R(C)}),onClick:()=>K(C),children:"\xD7"})]})},C))}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-group-panel-hint",children:p}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-group-panel-actions",children:[t.length>0&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:i,children:c.groupExpandAll}),jsxRuntime.jsx("button",{type:"button",onClick:a,children:c.groupCollapseAll})]}),jsxRuntime.jsxs("label",{className:"kanuni-datagrid-group-select",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-sr-only",children:o>1?c.groupAddLevel:c.groupByColumn}),o>1?jsxRuntime.jsxs("select",{value:"",disabled:W.length===0,onChange:C=>v(C.target.value),children:[jsxRuntime.jsx("option",{value:"",children:c.groupAddLevelButton}),W.map(C=>jsxRuntime.jsx("option",{value:C.state.id,children:C.def.headerName??C.state.id},C.state.id))]}):jsxRuntime.jsxs("select",{value:t[0]??"",onChange:C=>n(C.target.value?[C.target.value]:[]),children:[jsxRuntime.jsx("option",{value:"",children:c.groupNoGrouping}),e.map(C=>jsxRuntime.jsx("option",{value:C.state.id,children:C.def.headerName??C.state.id},C.state.id))]})]})]})]})}var ii=react.memo($m);function Ym({layout:e,centerColumns:t,leadingSpacer:n,trailingSpacer:o,defs:i,values:a,checkboxColumn:d=false,detailColumn:c=false,statusColumn:p=false,rowNumberColumn:g=false,onPickSummary:h,emptyHint:b="",position:I="bottom",bandOffset:E=0,headerRowsBetween:R=0}){let v=Pe(),K=datagridCore.summaryTypeLabels(v),N=new Map(i.map($=>[$.columnId,$])),M=qt({statusColumn:p,rowNumberColumn:g,detailColumn:c,checkboxColumn:d}).total,S=($,X,Y)=>{let W=$.state.id,C=N.get(W),L=C?a[datagridCore.summaryKey(C.columnId,C.type)]:void 0,w=$.def.dataType==="number"||$.def.dataType==="bigint",y=datagridCore.isChromeColumn(W)?void 0:h;return jsxRuntime.jsx("div",{className:`kanuni-datagrid-footer-cell${X}${w?" kanuni-datagrid-footer-cell--number":""}${C?" kanuni-datagrid-footer-cell--active":""}`,style:Y,role:"gridcell","data-column-id":W,"data-summary-type":C?.type??"",title:C?`${datagridCore.summaryLabel(C,K)} \u2014 ${$.def.headerName??W}`:void 0,onContextMenu:y?D=>y(W,D):void 0,onClick:y?D=>y(W,D):void 0,children:C?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-value",children:datagridCore.formatSummaryValue(C,L,$.def)}):y?jsxRuntime.jsx("span",{className:"kanuni-datagrid-footer-hint",children:b}):null},W)};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-footer-row kanuni-datagrid-footer-row--${I}`,role:"row","aria-label":v.columnTotalsAria,style:{width:e.totalWidth+M,"--dg-band-offset":`${E}px`,"--dg-pinned-gap":String(R)},children:[M>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-footer-cell kanuni-datagrid-footer-cell--pinned",style:{width:M,insetInlineStart:0}}),e.left.map(($,X)=>S($,` kanuni-datagrid-footer-cell--pinned${X===e.left.length-1?" kanuni-datagrid-pin-edge-left":""}`,{width:$.state.width,insetInlineStart:e.leftOffsets[X]+M})),n>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:n}}),t.map($=>S($,"",{width:$.state.width})),o>0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-spacer",style:{width:o}}),e.right.map(($,X)=>S($,` kanuni-datagrid-footer-cell--pinned${X===0?" kanuni-datagrid-pin-edge-right":""}`,{width:$.state.width,insetInlineEnd:e.rightOffsets[X]}))]})}var gr=react.memo(Ym);function jm(e,t){return `__dg_pinned_${e}_${t}`}function Jm({gridId:e,side:t,rows:n,rowKeys:o,onUserRowContextMenu:i,layout:a,columnModel:d,centerColumns:c,centerIndices:p,stickyInsets:g,leadingSpacer:h,trailingSpacer:b,checkboxColumn:I=false,detailColumn:E=false,statusColumn:R=false,rowNumberColumn:v=false,rowHeight:K,bandOffset:N=0,headerRowsBetween:M,ariaRowBase:S,rowClassFor:$}){return n.length===0?null:jsxRuntime.jsx("div",{className:`kanuni-datagrid-pinned-rows kanuni-datagrid-pinned-rows--${t}`,role:"rowgroup",style:{width:a.totalWidth||"100%","--dg-band-offset":`${N}px`,"--dg-pinned-gap":String(M)},children:n.map((X,Y)=>{let W=o?.[Y]??null,C={kind:"data",key:jm(t,Y),sourceIndex:-1,data:X};return jsxRuntime.jsx(eo,{gridId:e,node:C,index:Y,layout:a,columnModel:d,centerColumns:c,centerIndices:p,stickyInsets:g,leadingSpacer:h,trailingSpacer:b,striped:false,selected:false,ariaSelectable:false,focusedColumnId:null,checkboxColumn:I,detailColumn:E,statusColumn:R,rowNumberColumn:v,rowNumber:null,headerRowCount:S,height:K,rowClass:$?.(C,Y,W),onRowContextMenu:W!==null&&i?(L,w,y)=>i(W,X,y):void 0},C.key)})})}var wr=react.memo(Jm);function Es({controller:e,renderRow:t,width:n,bandOffset:o,headerRowsBetween:i,belowPinned:a}){let[,d]=react.useReducer(g=>g+1,0);react.useEffect(()=>{let g=[e.events.on("bodyScroll",d),e.events.on("contentReady",d),e.events.on("viewportChanged",d)];return ()=>g.forEach(h=>h())},[e]);let c=react.useRef(null);react.useLayoutEffect(()=>{c.current?.querySelectorAll("button, input, select, textarea, a[href], [tabindex]").forEach(g=>g.setAttribute("tabindex","-1"));});let p=e.getStickyGroupRows();return p.length===0?null:jsxRuntime.jsx("div",{ref:c,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:p.map((g,h)=>jsxRuntime.jsx("div",{className:`kanuni-datagrid-sticky-group${h===p.length-1?" kanuni-datagrid-sticky-group--last":""}`,style:{top:g.offset,height:g.height,zIndex:p.length-h},children:t(g.node,g.index,g.height)},String(g.node.key)))})}function li({name:e,size:t=14}){return jsxRuntime.jsx("svg",{width:t,height:t,viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",className:"kanuni-datagrid-icon",children:jsxRuntime.jsx("path",{d:datagridCore.TOOLBAR_ICON_PATHS[e],fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}async function xo(e,t){try{let n=t==="csv"?await e.exportToCsv():t==="excel"?await e.exportToExcel():t==="excel-selected"?await e.exportToExcel({selectedOnly:!0}):await e.exportToPdf();return datagridCore.downloadBlob(n.blob,n.fileName),{completed:!0}}catch(n){return n instanceof datagridCore.ExportAbortedError?{completed:false}:{completed:false,error:n instanceof Error?n.message:String(n)}}}function Ln({anchor:e,onClose:t,children:n,dark:o,className:i="",label:a,role:d="dialog"}){let c=Nn({anchor:e,onClose:t});return jsxRuntime.jsx(xt,{dark:o,children:jsxRuntime.jsx("div",{ref:c.ref,className:`kanuni-datagrid-filter-popup ${i}`.trim(),style:{left:c.position.left,top:c.position.top},role:d,"aria-label":a,children:n})})}function dp(e){let t=Pe();return react.useMemo(()=>({search:t.toolbarSearch,csv:t.exportCsv,excel:t.exportExcel,excelSelected:t.exportExcelSelected,pdf:t.exportPdf,columns:t.columns,exporting:t.exporting,exportMenu:t.exportMenu,...e}),[t,e])}var up=()=>jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16","aria-hidden":"true",focusable:"false",children:jsxRuntime.jsx("path",{d:"M8 1v8m0 0L5 6m3 3 3-3M2 11v2a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})});function cp({controller:e,search:t=true,exportCsv:n=true,exportExcel:o=false,exportPdf:i=false,columnChooser:a=true,dark:d,onOpenColumnChooser:c,itemsBefore:p,itemsAfter:g,searchDebounce:h=200,searchOptions:b,exportMenu:I=true,labels:E}){let R=dp(E),[v,K]=react.useState(()=>e.getSearchText()),N=react.useRef(false),[M,S]=react.useState(null),[$,X]=react.useState(null),[Y,W]=react.useState(null),C=react.useId(),L=b?.debounce??h,w=b?.validate?.(v)??null,y=F=>{N.current=false;let j=F.trim();e.getSearchText()!==j&&e.setSearchText(j);},D=()=>{w===null&&y(v);};react.useEffect(()=>{if(w!==null||!N.current)return;let F=setTimeout(()=>y(v),L);return ()=>clearTimeout(F)},[e,v,L,w]),react.useEffect(()=>{let F=j=>{N.current||K(le=>le.trim()===j?le:j);};return F(e.getSearchText()),e.events.on("filterChanged",({searchText:j})=>F(j))},[e]);let[x,z]=react.useState(()=>e.getSelectedCount());react.useEffect(()=>(z(e.getSelectedCount()),e.events.on("selectionChanged",()=>z(e.getSelectedCount()))),[e]);let te=async F=>{S(F),W(null);let j=await xo(e,F);j.error?W(j.error):X(null),S(null);};return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-toolbar",children:[p,t&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-toolbar-search",placeholder:b?.placeholder??R.search,value:v,maxLength:b?.maxLength,"aria-label":b?.ariaLabel??R.search,"aria-invalid":w!==null||void 0,"aria-describedby":w!==null?C:void 0,"data-testid":"dg-toolbar-search",onChange:F=>{N.current=true,K(F.target.value);},onBlur:()=>{b?.applyOnBlur!==false&&D();},onKeyDown:F=>{F.key==="Enter"&&b?.applyOnBlur!==false&&D();}}),t&&w!==null&&jsxRuntime.jsx("span",{id:C,className:"kanuni-datagrid-toolbar-search-error",role:"alert","data-testid":"dg-toolbar-search-error",children:w}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-toolbar-spacer"}),a&&jsxRuntime.jsxs("button",{type:"button","aria-haspopup":"dialog","data-testid":"dg-column-chooser",onClick:F=>{let j=F.currentTarget.getBoundingClientRect();c?.({left:j.left,top:j.bottom+2});},children:[jsxRuntime.jsx(li,{name:"columns"}),jsxRuntime.jsx("span",{children:R.columns})]}),I&&(n&&e.canExportAll()||o||i)&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-toolbar-icon-button","aria-haspopup":"menu","aria-label":R.exportMenu,title:R.exportMenu,disabled:M!==null,"data-testid":"dg-export-menu",onClick:F=>{let j=F.currentTarget.getBoundingClientRect();X($?null:{left:j.right-190,top:j.bottom+2});},children:M?jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-busy"}):jsxRuntime.jsx(up,{})}),$&&jsxRuntime.jsxs(Ln,{anchor:$,onClose:()=>X(null),dark:d,role:"menu",label:R.exportMenu,className:"kanuni-datagrid-export-menu",children:[n&&e.canExportAll()&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null,"data-testid":"dg-export-csv",onClick:()=>te("csv"),children:M==="csv"?R.exporting:R.csv}),o&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null,"data-testid":"dg-export-excel",onClick:()=>te("excel"),children:M==="excel"?R.exporting:R.excel}),o&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null||x===0,"data-testid":"dg-export-excel-selected",onClick:()=>te("excel-selected"),children:M==="excel-selected"?R.exporting:R.excelSelected}),i&&jsxRuntime.jsx("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:M!==null,"data-testid":"dg-export-pdf",onClick:()=>te("pdf"),children:M==="pdf"?R.exporting:R.pdf})]}),g,Y&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-toolbar-error",role:"alert",children:Y})]})}var ui=react.memo(cp);var gp=8;function wp(e){let t=Pe();return react.useMemo(()=>({title:t.columns,empty:t.noData,search:t.search,showAll:t.showAll,ok:t.ok,...e}),[t,e])}function ci({controller:e,columns:t,anchor:n,onClose:o,dark:i,labels:a}){let d=wp(a),[c,p]=react.useState(""),g=e.getColumnModel(),h=K=>g.getDef(K.id)?.headerName??K.id,b=t.filter(K=>!datagridCore.isChromeColumn(K.id)),I=b.filter(K=>!g.getDef(K.id)?.hideInChooser),E=b.filter(K=>K.visible).length,R=c.trim().toLocaleLowerCase(),v=R?I.filter(K=>h(K).toLocaleLowerCase().includes(R)):I;return jsxRuntime.jsxs(Ln,{anchor:n,onClose:o,dark:i,label:d.title,className:"kanuni-datagrid-column-chooser",children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-title",children:d.title}),I.length>gp&&jsxRuntime.jsx("input",{type:"search",className:"kanuni-datagrid-filter-search",placeholder:d.search,"aria-label":d.search,value:c,onChange:K=>p(K.target.value)}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-list",children:[v.length===0&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-chooser-empty",children:d.empty}),v.map(K=>{let N=K.visible&&E===1;return jsxRuntime.jsxs("label",{className:"kanuni-datagrid-filter-item",children:[jsxRuntime.jsx("input",{type:"checkbox",checked:K.visible,disabled:N,"data-column-toggle":K.id,onChange:()=>e.setColumnVisible(K.id,!K.visible)}),jsxRuntime.jsx("span",{children:h(K)})]},K.id)})]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-filter-footer",children:[jsxRuntime.jsx("button",{type:"button",disabled:E===I.length,onClick:()=>I.forEach(K=>!K.visible&&e.setColumnVisible(K.id,true)),children:d.showAll}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-primary",onClick:o,children:d.ok})]})]})}function Cp(e){let t=Pe();return react.useMemo(()=>({first:t.pagerFirst,previous:t.pagerPrevious,next:t.pagerNext,last:t.pagerLast,page:t.pagerPage,of:t.pagerOf,rowsPerPage:t.pagerRowsPerPage,pageButton:t.pagerPageButton,navigation:t.pagerAria,...e}),[t,e])}function kp({page:e,pageCount:t,pageSize:n,pageSizes:o=[25,50,100,250],totalRows:i,onPage:a,onNext:d,onPrevious:c,onPageSize:p,pageButtons:g=false,maxPageButtons:h,labels:b}){let I=Cp(b),E=e<=0,R=e>=t-1,v=i===0?0:e*n+1,K=Math.min(i,(e+1)*n),N=react.useRef(null),M=react.useRef(null);return react.useEffect(()=>{let S=M.current,$=N.current;if(!$||!(S instanceof HTMLButtonElement)||!S.disabled)return;let X=document.activeElement;if(X&&X!==document.body&&X!==S)return;let Y=$.querySelector('[aria-current="page"]')??$.querySelector("button:not(:disabled)");Y?.focus(),M.current=Y;},[e,t]),jsxRuntime.jsxs("div",{ref:N,className:"kanuni-datagrid-pager",role:"navigation","aria-label":I.navigation,onFocus:S=>{M.current=S.target;},onBlur:S=>{let $=S.relatedTarget;$&&!N.current?.contains($)&&(M.current=null);},children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-pager-size",children:[jsxRuntime.jsx("span",{children:I.rowsPerPage}),jsxRuntime.jsx("select",{value:n,"data-testid":"dg-page-size",onChange:S=>p(Number(S.target.value)),children:o.map(S=>jsxRuntime.jsx("option",{value:S,children:S},S))})]}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-range","data-testid":"dg-page-range",children:[v.toLocaleString(),"\u2013",K.toLocaleString()," ",I.of," ",i.toLocaleString()]}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-pager-buttons",children:[jsxRuntime.jsx("button",{type:"button","aria-label":I.first,disabled:E,onClick:()=>a(0),children:"\xAB"}),jsxRuntime.jsx("button",{type:"button","aria-label":I.previous,disabled:E,"data-testid":"dg-page-prev",onClick:c,children:"\u2039"}),g?datagridCore.pageButtonItems(e,t,h).map(S=>typeof S=="number"?jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-pager-page","aria-label":datagridCore.fillText(I.pageButton,{n:String(S+1)}),"aria-current":S===e?"page":void 0,onClick:()=>a(S),children:S+1},S):jsxRuntime.jsx("span",{className:"kanuni-datagrid-pager-gap","aria-hidden":"true",children:"\u2026"},S)):jsxRuntime.jsxs("span",{className:"kanuni-datagrid-pager-current","data-testid":"dg-page-current",children:[I.page," ",e+1," ",I.of," ",t]}),jsxRuntime.jsx("button",{type:"button","aria-label":I.next,disabled:R,"data-testid":"dg-page-next",onClick:d,children:"\u203A"}),jsxRuntime.jsx("button",{type:"button","aria-label":I.last,disabled:R,onClick:()=>a(t-1),children:"\xBB"})]})]})}var mi=react.memo(kp);function Gp(e){let t=Pe();return react.useMemo(()=>({clear:t.filterRemove,toggle:t.filterToggle,builder:t.filterEditBuilder,empty:t.filterNone,...e}),[t,e])}function Mp({controller:e,onOpenBuilder:t,alwaysVisible:n=false,describeOptions:o,labels:i}){let a=Gp(i),d=Pe(),[,c]=react.useState(0);react.useEffect(()=>e.events.on("filterChanged",()=>c(b=>b+1)),[e]);let p=e.getEffectiveFilter(),g=e.isFilterEnabled(),h=datagridCore.describeFilter(p,e.getColumnModel(),{...o,labels:{...datagridCore.filterLabels(d),...o?.labels}});return !p&&!n?null:jsxRuntime.jsxs("div",{className:`kanuni-datagrid-filter-panel${g?"":" kanuni-datagrid-filter-panel--suspended"}`,"data-testid":"dg-filter-panel",role:"group","aria-label":a.toggle,children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-clear",title:a.clear,"aria-label":a.clear,disabled:!p,"data-testid":"dg-filter-panel-clear",onClick:()=>{e.setFilter(null),e.clearColumnFilters(),e.setFilterEnabled(true);},children:"\xD7"}),jsxRuntime.jsx("input",{type:"checkbox",className:"kanuni-datagrid-filter-panel-toggle",checked:g,disabled:!p,title:a.toggle,"aria-label":a.toggle,"data-testid":"dg-filter-panel-toggle",onChange:b=>e.setFilterEnabled(b.target.checked)}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-filter-panel-text",title:h??void 0,"data-testid":"dg-filter-panel-text",children:h??a.empty}),t&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-filter-panel-builder",title:a.builder,"aria-label":a.builder,"data-testid":"dg-filter-panel-builder",onClick:()=>t(),children:"\u25BE"})]})}var pi=react.memo(Mp);var hr=e=>!e.separator&&!e.disabled;function Rr({x:e,y:t,items:n,context:o,onClose:i,dark:a=false,label:d}){let c=Pe(),p=react.useRef(null),[g,h]=react.useState({left:e,top:t}),[b,I]=react.useState(()=>n.findIndex(hr)),[E,R]=react.useState(null),[v,K]=react.useState(null),N=react.useRef(null),[M,S]=react.useState(null);react.useEffect(()=>K(null),[E]);let $=react.useCallback((y,D)=>{if(R(y),y===null||!D)return;let x=D.getBoundingClientRect();S({left:x.left,right:x.right,top:x.top});},[]),X=y=>p.current?.querySelector(`[data-item-index="${y}"]`)??null,Y=react.useCallback(y=>{if(N.current=y,!y||!M)return;let D=8,x=y.getBoundingClientRect(),z=Math.max(D,Math.min(M.top-4,window.innerHeight-x.height-D)),F=M.right+x.width+D<=window.innerWidth?M.right:Math.max(D,M.left-x.width);K({left:F,top:z});},[M]),W=react.useCallback(y=>{if(p.current=y,!y)return;let D=y.getBoundingClientRect(),x=8;h({left:Math.max(x,Math.min(e,window.innerWidth-D.width-x)),top:Math.max(x,Math.min(t,window.innerHeight-D.height-x))}),y.focus();},[e,t]);react.useEffect(()=>{let y=x=>{let z=x.target;N.current?.contains(z)||p.current&&!p.current.contains(z)&&i();},D=()=>i();return document.addEventListener("mousedown",y),window.addEventListener("scroll",D,true),()=>{document.removeEventListener("mousedown",y),window.removeEventListener("scroll",D,true);}},[i]);let C=(y,D)=>{let x=n.length;for(let z=1;z<=x;z++){let te=(y+D*z+x*x)%x;if(hr(n[te]))return te}return y},L=y=>{let D=n[y];if(!(!D||!hr(D))){if(D.items?.length){$(y,X(y));return}D.onSelect?.(o),i();}},w=y=>{switch(y.key){case "ArrowDown":I(D=>C(D,1));break;case "ArrowUp":I(D=>C(D,-1));break;case "Home":I(n.findIndex(hr));break;case "End":I(C(0,-1));break;case "ArrowRight":if(n[b]?.items?.length)$(b,X(b));else return;break;case "ArrowLeft":if(E!==null)$(null);else return;break;case "Enter":case " ":L(b);break;case "Escape":i();break;case "Tab":i();return;default:return}y.preventDefault(),y.stopPropagation();};return jsxRuntime.jsxs(xt,{dark:a,children:[jsxRuntime.jsx("div",{ref:W,className:"kanuni-datagrid-context-menu",role:"menu","aria-label":d??c.rowActions,tabIndex:-1,style:{left:g.left,top:g.top},onKeyDown:w,children:n.map((y,D)=>y.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},y.id??`sep-${D}`):jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-row",children:jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:`kanuni-datagrid-menu-item${D===b?" kanuni-datagrid-menu-item--active":""}`,disabled:y.disabled,"data-item-index":D,"aria-haspopup":y.items?.length?"menu":void 0,"aria-expanded":y.items?.length?E===D:void 0,onMouseEnter:x=>{I(D),$(y.items?.length?D:null,x.currentTarget);},onClick:()=>L(D),children:[y.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:y.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:y.label}),y.shortcut&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-shortcut",children:y.shortcut}),y.items?.length?jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-caret",children:"\u203A"}):null]})},y.id??D))}),E!==null&&n[E]?.items?.length?jsxRuntime.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[E].items.map((y,D)=>y.separator?jsxRuntime.jsx("div",{className:"kanuni-datagrid-menu-separator",role:"separator"},y.id??`sub-sep-${D}`):jsxRuntime.jsxs("button",{type:"button",role:"menuitem",className:"kanuni-datagrid-menu-item",disabled:y.disabled,onClick:()=>{y.onSelect?.(o),i();},children:[y.icon&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-icon",children:y.icon}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-menu-label",children:y.label})]},y.id??D))}):null]})}var Pp=typeof navigator<"u"&&/Mac|iPhone|iPad|iPod/.test(navigator.platform??""),wi=Pp?"\u2318":"Ctrl+",Ps=`${wi}C`,Lp=`${wi}X`,Ip=`${wi}V`;function ro(e,t={}){let n=e.getClipboardText(t);e.notifyClipboardGesture("copy",n?n.split(`
|
|
3
|
+
`).length:0,()=>e.writeClipboard(n,"copy"));}function Kp(e){navigator.clipboard?.writeText(e).catch(()=>{});}function Fp(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 Op(e){return e===false?[]:Array.isArray(e)?e:["csv","excel","excel-selected","pdf"]}var Hp={csv:"exportCsv",excel:"exportExcel","excel-selected":"exportExcelSelected",pdf:"exportPdf"};function yi(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:Ps,onSelect:()=>ro(e)}),a.copyWithHeaders!==false&&d.push({id:"__dg-copy-headers",label:t.menuCopyWithHeaders,onSelect:()=>ro(e,{includeHeaders:true})}),a.copyWithGroupHeaders!==false&&Fp(e)&&d.push({id:"__dg-copy-group-headers",label:t.menuCopyWithGroupHeaders,onSelect:()=>ro(e,{includeGroupHeaders:true})});let c=Op(a.export).filter(p=>p!=="csv"||e.canExportAll());if(c.length>0){let p=e.getSelectedCount()===0;d.push({id:"__dg-export",label:t.menuExport,items:c.map(g=>({id:`__dg-export-${g}`,label:t[Hp[g]],disabled:g==="excel-selected"&&p,onSelect:()=>{xo(e,g).then(h=>{h.error&&i?.(h.error);});}}))});}return d.length>0&&o&&d.unshift({id:"__dg-sep-builtin",separator:true}),d}function bi(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 Ri({anchor:e,value:t,dark:n,onCommit:o,onCancel:i}){let a=Pe(),[d,c]=react.useState(t),p=react.useRef(null);react.useEffect(()=>{let h=p.current;h&&(h.focus(),h.select());},[]);let g=()=>{let h=d.trim();o(h===""?null:h);};return jsxRuntime.jsxs(Ln,{anchor:e,onClose:i,dark:n,label:a.noteEditorAria,className:"kanuni-datagrid-note-editor",children:[jsxRuntime.jsx("textarea",{ref:p,className:"kanuni-datagrid-note-input",value:d,rows:4,"aria-label":a.noteEditorAria,placeholder:a.notePlaceholder,onChange:h=>c(h.target.value),onKeyDown:h=>{h.key==="Enter"&&(h.ctrlKey||h.metaKey)&&(h.preventDefault(),g()),h.key==="Escape"&&(h.preventDefault(),i());}}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-note-actions",children:[jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-note-cancel",onClick:i,children:a.cancel}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-note-save",onClick:g,children:a.save})]})]})}function Wp(e){let t=Pe();return react.useMemo(()=>({busy:t.busy,loading:t.busyLoading,encoding:t.busyEncoding,filtering:t.busyFiltering,sorting:t.busySorting,computing:t.busyComputing,grouping:t.busyGrouping,aggregating:t.busyAggregating,projecting:t.busyProjecting,exporting:t.busyExporting,cancel:t.cancel,...e}),[t,e])}var Vp=new Set(["filtering","sorting","computing","encoding","exporting"]);function ki({controller:e,delay:t=300,labels:n,cancellable:o=true,forced:i=false}){let[a,d]=react.useState(()=>e.getBusy()),[c,p]=react.useState(false);react.useEffect(()=>(d(e.getBusy()),e.events.on("busyChanged",R=>d(R))),[e]);let g=a.busy&&a.background!==true;react.useEffect(()=>{if(!g){p(false);return}let R=setTimeout(()=>p(true),t);return ()=>clearTimeout(R)},[g,t]);let h=Wp(n);if(!i&&(!c||!g))return null;let b=a.phase?h[a.phase]:h.busy,I=a.progress===null?null:Math.max(0,Math.min(100,a.progress)),E=o&&a.phase!==null&&Vp.has(a.phase)&&a.cancellable!==false;return jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-overlay",role:"status","aria-live":"polite","data-testid":"dg-loading-overlay","data-phase":a.phase??"busy","data-blocking":a.phase==="exporting"?"true":void 0,"aria-busy":"true",children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-card",children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-spinner","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-label",children:b}),I!==null&&jsxRuntime.jsxs("div",{className:"kanuni-datagrid-loading-progress",role:"progressbar","aria-valuenow":Math.round(I),"aria-valuemin":0,"aria-valuemax":100,children:[jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-track",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-loading-fill",style:{width:`${I}%`}})}),jsxRuntime.jsxs("span",{className:"kanuni-datagrid-loading-percent",children:[Math.round(I),"%"]})]}),E&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-loading-cancel",onClick:()=>e.cancel(),"data-testid":"dg-loading-cancel",children:h.cancel})]})})}var Os=10;function Hs({fields:e,content:t,statusIcon:n=false,onPress:o}){let i=react.useRef(null),a=p=>p.closest(".kanuni-datagrid-scroller"),[d,...c]=e;return jsxRuntime.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?p=>{i.current={x:p.clientX,y:p.clientY,scrollTop:a(p.currentTarget)?.scrollTop??0,moved:false};}:void 0,onPointerMove:o?p=>{let g=i.current;g&&Math.hypot(p.clientX-g.x,p.clientY-g.y)>Os&&(g.moved=true);}:void 0,onClick:o?p=>{let g=i.current;if(i.current=null,g){let h=(a(p.currentTarget)?.scrollTop??0)!==g.scrollTop,b=Math.hypot(p.clientX-g.x,p.clientY-g.y)>Os;if(g.moved||h||b)return}o(p);}:void 0,children:t!==void 0?t:jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"kanuni-datagrid-card-title",children:[n&&jsxRuntime.jsx("span",{className:"kanuni-datagrid-status-icon","aria-hidden":"true"}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-card-title-text","aria-busy":d?.pending?true:void 0,children:d?.text})]}),c.length>0&&jsxRuntime.jsx("dl",{className:"kanuni-datagrid-card-fields",children:c.map(p=>jsxRuntime.jsxs("div",{className:"kanuni-datagrid-card-field",children:[jsxRuntime.jsx("dt",{children:p.label}),jsxRuntime.jsx("dd",{"aria-busy":p.pending?true:void 0,children:p.text})]},p.columnId))})]})})}function As({controller:e,sort:t,columns:n,text:o}){if(n.length===0)return null;let i=t[0],a=i?.direction==="desc";return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-cardbar",children:[jsxRuntime.jsxs("label",{className:"kanuni-datagrid-cardbar-label",children:[jsxRuntime.jsx("span",{children:o.cardSortBy}),jsxRuntime.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:[jsxRuntime.jsx("option",{value:"",children:o.none}),n.map(d=>jsxRuntime.jsx("option",{value:d.id,children:d.label},d.id))]})]}),i&&jsxRuntime.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:jsxRuntime.jsx("span",{"aria-hidden":"true",children:a?"\u2193":"\u2191"})})]})}var Bs=null;function Yp(){return typeof document>"u"?null:(Bs??=document.createElement("canvas"),Bs.getContext("2d"))}function _s(e){let t=getComputedStyle(e);return `${t.fontStyle} ${t.fontWeight} ${t.fontSize} ${t.fontFamily}`}function qp(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(t.tagName!=="MARK")return true;return false}function Xp(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 Cr(e,t){let n=Yp();if(!n)return null;let o=typeof CSS<"u"&&CSS.escape?CSS.escape(t):t.replace(/"/g,'\\"'),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 c=i.querySelector(".kanuni-datagrid-header-label")??i;n.font=_s(c),d=n.measureText(c.textContent??"").width+44;}if(a.length>0){n.font=_s(a[0]);let c=[];for(let p=0;p<a.length;p++){if(qp(a[p])){c.push(a[p]);continue}let g=a[p].textContent??"";if(g==="")continue;let h=n.measureText(g).width+20;h>d&&(d=h);}c.length>0&&(d=Math.max(d,Xp(c)));}return d===0?null:Math.round(Math.min(640,Math.max(48,d)))}function Ti(e,t){let n=react.useRef(t);n.current=t;let o=!!t?.enabled,i=t?.storageKey,a=t?.type;react.useEffect(()=>{if(o)return datagridCore.attachStateStoring(e,{...n.current,enabled:true})},[e,o,i,a]);}var kr="application/x-kanuni-row";function xi(e,t){let n=!!t?.enabled,o=t?.group??null,i=t?.allowReordering??true,a=t?.allowDropInsert??o!==null,[d,c]=react.useState(false),[p,g]=react.useState(null),h=react.useRef(null),b=react.useRef(false),I=react.useRef(null),E=react.useRef(null),R=react.useRef(t);R.current=t;let v=react.useCallback(y=>e.getRowByKey(y),[e]),K=(y,D)=>{let x=D.getBoundingClientRect();return y.clientY<x.top+x.height/2?"before":"after"},N=react.useCallback((y,D)=>{if(!datagridCore.isDataRow(y))return;E.current=y.key,I.current=y.key,b.current=false,h.current=null;let x={gridId:e.gridId,group:o,rowKey:y.key,row:y.data};D.dataTransfer.setData(kr,JSON.stringify(x)),D.dataTransfer.setData("text/plain",String(y.key)),D.dataTransfer.effectAllowed="move",e.notifyRowDrag("enter",{rowKey:y.key}),D.stopPropagation();},[e,o]),M=react.useCallback(()=>{let y=I.current;y!==null&&e.notifyRowDragEnd({rowKey:y,dropped:b.current,overKey:h.current?.key??null,position:h.current?.side??null}),b.current=false,h.current=null,I.current=null,E.current=null,g(null),c(false);},[e]),S=react.useCallback(y=>y.dataTransfer.types.includes(kr)?E.current!==null?i:a&&o!==null:false,[i,a,o]),$=react.useCallback((y,D)=>{if(!datagridCore.isDataRow(y)||!S(D))return;if(D.preventDefault(),D.dataTransfer.dropEffect="move",E.current===y.key){h.current=null,g(null);return}let x=K(D,D.currentTarget),z=h.current?.key!==y.key||h.current.side!==x;h.current={key:y.key,side:x},g(te=>te?.key===y.key&&te.side===x?te:{key:y.key,side:x}),z&&E.current!==null&&e.notifyRowDrag("move",{rowKey:E.current,overKey:y.key,position:x});},[S,e]),X=react.useCallback((y,D,x)=>{let z=null;try{let F=y.dataTransfer.getData(kr);z=F?JSON.parse(F):null;}catch{z=null;}if(!z)return;if(z.gridId===e.gridId){if(!i)return;let F=R.current?.onReorder;if(F){F({dragKey:z.rowKey,targetKey:D,position:x,row:v(z.rowKey)});return}e.moveRow(z.rowKey,D,x);return}!a||o===null||z.group!==o||R.current?.onAdd?.({row:z.row,rowKey:z.rowKey,otherGridId:z.gridId,targetKey:D,position:x});},[e,i,a,o,v]),Y=react.useCallback((y,D)=>{if(g(null),!datagridCore.isDataRow(y)||!S(D))return;D.preventDefault(),D.stopPropagation();let x=K(D,D.currentTarget);b.current=true,h.current={key:y.key,side:x},X(D,y.key,x),E.current=null;},[S,X]),W=react.useCallback(y=>{S(y)&&(y.preventDefault(),y.dataTransfer.dropEffect="move");},[S]),C=react.useCallback(y=>{g(null),S(y)&&(y.preventDefault(),b.current=true,h.current=null,X(y,null,"after"),E.current=null);},[S,X]),L=react.useCallback(y=>{let D=y.relatedTarget;D&&y.currentTarget.contains(D)||E.current!==null&&(h.current=null,g(null),e.notifyRowDrag("leave",{rowKey:E.current}));},[e]);return {handlers:n?{draggable:d,setDraggable:c,onDragStart:N,onDragEnd:M,onDragOver:$,onDrop:Y}:void 0,dropAt:n?p:null,bodyHandlers:n?{onDragOver:W,onDrop:C,onDragLeave:L}:void 0}}var nf=400;function Ws(e){return e.scrollWidth>e.clientWidth+1||e.scrollHeight>e.clientHeight+1}function Vs(e){return (e.textContent??"").trim()}function of(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 Ei({rootRef:e,columnModel:t,getRowNode:n,getNote:o,config:i,controller:a,gridId:d}){let c=i?.enabled!==false,p=i?.delay??nf,g=i?.showOnTruncation!==false,h=i?.trigger??"hover",b=h!=="focus",I=h!=="hover"&&!!a&&!!d,E=i?.interactive===true,[R,v]=react.useState(null),K=react.useRef({columnModel:t,getRowNode:n,getNote:o,showOnTruncation:g,delay:p});return K.current={columnModel:t,getRowNode:n,getNote:o,showOnTruncation:g,delay:p},react.useEffect(()=>{if(!c){v(null);return}let N=e.current;if(!N)return;let M=null,S=null,$=null,X=null,Y=d?`${d}-tooltip`:void 0,W=()=>{X?.removeAttribute("aria-describedby"),X=null;},C=()=>{M!==null&&(clearTimeout(M),M=null),S!==null&&(clearTimeout(S),S=null),$=null,W(),v(null);},L=()=>{S!==null&&(clearTimeout(S),S=null);},w=()=>{S=null,W(),v(null);},y=()=>{L(),M!==null&&(clearTimeout(M),M=null);},D=()=>{if(!E){C();return}S!==null&&clearTimeout(S),S=setTimeout(w,150);},x=(A,de)=>{let{columnModel:ae,getRowNode:q,getNote:Ge}=K.current,u=ae.getDef(de);if(!u?.renderTooltip)return;let Ie=A.closest("[data-row-key]")?.dataset.rowKey,Ve=Ie===void 0?void 0:q(Ie);if(!Ve||Ge&&Ge(Ve.key,de,Ve.data))return;let Ee=u.renderTooltip({value:ae.getCellValue(Ve.data,de),row:Ve.data,node:Ve,column:u});return Ee==null||Ee===false?null:{content:Ee}},z=(A,de,ae,q)=>{let Ge=ae?void 0:x(A,de);if(Ge===null)return;let u=Ge?"":ae?F(de,A):te(A,de);if(!Ge&&!u)return;let Ie=A.getBoundingClientRect();L(),W(),q&&Y&&(A.setAttribute("aria-describedby",Y),X=A),v({text:u??"",...Ge?{content:Ge.content}:{},anchor:{top:Ie.top,left:Ie.left,width:Ie.width,height:Ie.height},...E?{interactive:true,hold:y,release:C}:{},...Y?{id:Y}:{}});},te=(A,de)=>{let{columnModel:ae,getRowNode:q,getNote:Ge,showOnTruncation:u}=K.current,Ie=ae.getDef(de),Ve=A.closest("[data-row-key]")?.dataset.rowKey,Ee=Ve===void 0?void 0:q(Ve);return of({def:Ie,node:Ee,value:Ee?ae.getCellValue(Ee.data,de):void 0,clipped:u&&Ws(A)?Vs(A):null,note:Ee&&Ge?Ge(Ee.key,de,Ee.data):null})},F=(A,de)=>{let ae=K.current.columnModel.getDef(A);if(ae?.headerTooltip)return ae.headerTooltip;if(!K.current.showOnTruncation)return null;let q=de.querySelector(".kanuni-datagrid-header-label")??de;if(!Ws(q))return null;let Ge=Vs(q);return Ge.length>0?Ge:null},j=A=>{if(!b)return;let ae=A.target?.closest("[data-column-id]")??null;if(ae===$){L();return}if(E&&S!==null?(M!==null&&(clearTimeout(M),M=null),$=null):C(),!ae||!N.contains(ae))return;let q=ae.dataset.columnId;if(!q)return;let Ge=ae.classList.contains("kanuni-datagrid-header-cell");!Ge&&!ae.closest("[data-row-key]")||($=ae,M=setTimeout(()=>{M=null,!($!==ae||!ae.isConnected)&&z(ae,q,Ge,false);},K.current.delay));},le=A=>{if(!b)return;let de=A.relatedTarget;$&&de&&$.contains(de)||D();},me=-1/0,Fe=()=>{me=Date.now();},Oe=()=>{C();let A=a?.getFocus();!A||!d||(M=setTimeout(()=>{if(M=null,!N.contains(document.activeElement)&&Date.now()-me>1500)return;let de=document.getElementById(`${d}-cell-${String(A.rowKey)}-${A.columnId}`);!de||!N.contains(de)||($=de,z(de,A.columnId,false,true));},K.current.delay));},ye=I?a.events.on("focusChanged",Oe):null,Le=A=>{(!I||A.key==="Escape")&&C();};return N.addEventListener("mouseover",j),N.addEventListener("mouseout",le),N.addEventListener("mousedown",C),N.addEventListener("pointerdown",Fe),N.addEventListener("keydown",Le),N.addEventListener("scroll",C,true),window.addEventListener("blur",C),()=>{C(),ye?.(),N.removeEventListener("mouseover",j),N.removeEventListener("mouseout",le),N.removeEventListener("mousedown",C),N.removeEventListener("pointerdown",Fe),N.removeEventListener("keydown",Le),N.removeEventListener("scroll",C,true),window.removeEventListener("blur",C);}},[c,e,b,I,E,a,d]),c?R:null}var zs=6,lo=8;function Di({state:e,dark:t}){let[n,o]=react.useState(null),[i,a]=react.useState(null),{text:d,anchor:c,content:p,interactive:g,hold:h,release:b,id:I}=e;return react.useLayoutEffect(()=>{if(!n)return;let{width:E,height:R}=n.getBoundingClientRect(),v=document.documentElement.clientWidth,K=document.documentElement.clientHeight,N=c.top+c.height+zs,M=c.top-R-zs,$=N+R+lo<=K||M<lo?N:M,X=Math.min(Math.max(lo,c.left),Math.max(lo,v-E-lo));a({top:Math.min($,K-R-lo),left:X});},[n,d,p,c]),jsxRuntime.jsx(xt,{dark:t,kind:"tooltip",children:jsxRuntime.jsx("div",{ref:o,id:I,className:g?"kanuni-datagrid-tooltip kanuni-datagrid-tooltip--interactive":"kanuni-datagrid-tooltip",role:"tooltip",onMouseEnter:g?h:void 0,onMouseLeave:g?b:void 0,style:i?{top:i.top,left:i.left}:{top:0,left:0,visibility:"hidden"},children:p??d})})}function Tr(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 qs=Tr(datagridCore.getGridDictionary("en"));function Si(e,t){let n={...qs,...t.labels},{controller:o,maxGroupLevels:i}=t,a=e.columnId,d=o.getColumnModel().getDef(a),c=o.getSort(),p=c.find(S=>S.columnId===a),g=o.getGroupLevels(),h=g.includes(a),b=d?.sortable!==false,I=o.getColumnStates().find(S=>S.id===a)?.pinned??null,E=d?.groupable!==false,R=o.canGroup(),v=[{id:"sort-asc",label:n.sortAsc,disabled:!b||p?.direction==="asc",onSelect:()=>o.setSort([{columnId:a,direction:"asc"}])},{id:"sort-desc",label:n.sortDesc,disabled:!b||p?.direction==="desc",onSelect:()=>o.setSort([{columnId:a,direction:"desc"}])},{id:"sort-clear",label:n.clearSort,disabled:!p,onSelect:()=>o.setSort(c.filter(S=>S.columnId!==a))},{id:"sep-1",separator:true}];R&&v.push({id:"group",label:h?n.ungroup:n.groupBy,disabled:!E,onSelect:()=>{h?o.groupBy(g.filter(S=>S!==a)):o.groupBy([...g,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(S=>S.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 K=o.getColumnStates().filter(S=>S.visible&&S.pinned===I).map(S=>S.id),N=K.indexOf(a),M=d?.reorderable!==false&&N>=0;return v.push({id:"sep-4",separator:true},{id:"move-left",label:n.moveLeft,disabled:!M||N<=0,onSelect:()=>o.moveColumn(a,K[N-1])},{id:"move-right",label:n.moveRight,disabled:!M||N<0||N>=K.length-1,onSelect:()=>o.moveColumn(a,K[N+2])},{id:"fixed-position",label:n.fixedPosition,items:[{id:"pin-left",label:n.pinLeft,disabled:I==="left",onSelect:()=>o.setColumnPinned(a,"left")},{id:"pin-right",label:n.pinRight,disabled:I==="right",onSelect:()=>o.setColumnPinned(a,"right")},{id:"pin-sticky",label:n.pinSticky,disabled:I==="sticky",onSelect:()=>o.setColumnPinned(a,"sticky")}]},{id:"unpin",label:n.unpin,disabled:I===null,onSelect:()=>o.setColumnPinned(a,null)}),v}var bn=typeof window<"u"?react.useLayoutEffect:react.useEffect,ed=1e8,vr=null;function nd(){if(vr!==null)return vr;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=`${ed}px`,e.appendChild(t),document.body.appendChild(e),e.scrollTop=ed;let n=e.scrollTop;return Ki=t.offsetHeight>0?t.offsetHeight:null,e.remove(),n>0&&(vr=n),vr}var Ki=null;function Kf(){return Ki===null&&nd(),Ki}function Li(e){return Math.abs(e)}function td(e,t){return getComputedStyle(t).direction==="rtl"?-e:e}function xr(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,xr(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(c=>c.spanRows?{...c,spanRows:void 0}:c)};return xr(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,xr(d,t)}if(!e.grouping)return e.masterDetail?Ii(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?Ii(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?Ii(a):a}function Ii(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 Ff(e){return jsxRuntime.jsx(ea,{locale:e.locale,messages:e.messages,children:jsxRuntime.jsx(sa,{theme:e.theme,density:e.density,palette:e.palette,portalContainer:e.portalContainer,children:jsxRuntime.jsx(Of,{...e})})})}function Of(e){let t=Pe(),{className:n,style:o,dark:i=false,theme:a,palette:d,striped:c=true,emptyText:p,sortable:g=true,autoHeaderHeight:h=false,filterRow:b=false,headerFilter:I=false,filterIconMode:E="hover",columnReorder:R=true,columnResize:v=true,loadingOverlay:K=true,announcements:N=true,groupPanel:M=false,showRowCount:S=false,toolbar:$=false,toolbarExcel:X=false,toolbarPdf:Y=false,filterPanel:W=false,filterPanelLabels:C,onOpenFilterBuilder:L,toolbarItemsBefore:w,toolbarItemsAfter:y,renderRow:D,stateStoring:x,headerMenu:z=true,focusedRow:te=false,focusedRowKey:F,onFocusedRowChanged:j,footer:le,footerMenu:me=true,onRowClick:Fe,onRowActivate:Oe,onReady:ye,onKeyDown:Le,renderCellContent:A,getCellClassName:de,renderOverlay:ae,onCellPointerDown:q,onCellPointerEnter:Ge,onCellDoubleClick:u,onHeaderClick:Ie,getHeaderClassName:Ve,renderHeaderLabel:Ee,enterpriseEdition:De=false,renderDetail:ot,renderEditForm:ee,density:Ce,rowMenu:fe,cellMenu:et,autoColumns:Be,rowDrag:oe,tooltip:ke,pinnedTopRows:se,pinnedBottomRows:G,footerPosition:O="bottom",autoSizeStrategy:J="none",highlightSearch:ve=true,...ne}=e,Me=react.useMemo(()=>{let r=ne.columns;if(r&&r.length>0)return r;let f=ne.dataSource;if(!Array.isArray(f)||f.length===0)return r??[];let T=typeof Be=="object"?Be:void 0;return Be===false?r??[]:datagridCore.inferColumns(f,T)},[ne.columns,ne.dataSource,Be]),He={...ne,columns:Me},Ue=datagridCore.isPackagedTheme(a)?datagridCore.THEME_ROW_HEIGHT[a][Ce??"normal"]:Ce?datagridCore.DENSITY_ROW_HEIGHT[Ce]:datagridCore.DEFAULT_ROW_HEIGHT,be=He.rowHeight===void 0?{...He,rowHeight:Ue}:He,ue=De?Number.POSITIVE_INFINITY:1,Et=xr(be,De),{controller:l,rows:rt,window:P,layout:Q,sort:We,rowHeight:$e,visibleCount:dt}=Zr(Et),tt=e.cardView,Kn=tt?tt===true?"on":`${tt.breakpoint??""}|${tt.height??""}|${(tt.columns??[]).join("|")}`:"",Vt=react.useMemo(()=>datagridCore.resolveCardView(tt),[Kn]),[it,It]=react.useState(false),Jt=react.useRef(Vt);bn(()=>{Jt.current=Vt;let r=Ot.current;It(r?datagridCore.showsCards(datagridCore.cardViewWidth(r),Vt):false);},[Vt]);let Tt=it?datagridCore.cardColumnIds(l.getColumnModel(),Vt):null,Ut=Tt?JSON.stringify(Tt):"",Kt=react.useMemo(()=>Tt,[Ut]);react.useEffect(()=>{let r=tt&&tt!==true?tt.height:void 0;l.setDataRowHeight(Kt?typeof r=="number"&&r>0?Math.max(44,r):datagridCore.cardHeight(Kt.length):null);},[l,Kt,Kn]);let bt=e.onCardViewChange,Ft=react.useRef(false);react.useEffect(()=>{it!==Ft.current&&(Ft.current=it,bt?.(it));},[it,bt]);let Je=react.useRef(null),Qe=datagridCore.normalizeRowStatus(e.rowStatus),_e=es(l,e.editing,De,{renderCellContent:A,getCellClassName:de,onCellDoubleClick:u},it,{rootRef:Je,rowHeight:$e,dark:i,savedDuration:Qe?.savedDuration??0,cardPopup:it&&!!tt&&tt!==true&&tt.edit==="popup"}),ut=_e.rowStatusSource??e.rowStatusSource??null,_=Co(l);_.effectiveRow=ut?.effectiveRow?r=>ut.effectiveRow(r):null;let he=r=>{if(!Qe||r.kind!=="data")return {};let f=datagridCore.resolveRowStatus(Qe,r.data,r.key,ut);return f?{rowStatus:f.status,rowStatusText:datagridCore.rowStatusDescription(f,t),rowStatusTint:Qe.tint,rowStatusStrike:Qe.strike}:{}},Te=e.rowClassName,Re=(r,f,T=r.key)=>{if(!Te||r.kind!=="data")return;let V=r,ie=ut?.effectiveRow?.(T)??V.data,ce=Qe?datagridCore.resolveRowStatus(Qe,ie,T,ut)?.status??null:ut?.getRowStatus(T)??null,pe=Te({row:ie,node:V,rowKey:T,status:ce,index:f});return typeof pe=="string"&&pe.trim()!==""?pe.trim():void 0},re=tt&&tt!==true?tt:null,Rt=e.openCardEditor??_e.openCardEditor,s=it,m=(r,f)=>{let T=Kt?.[0];T!==void 0&&l.focusCell(r.key,T),re?.onCardPress?.(r.key,r,f),!f.defaultPrevented&&re?.edit==="popup"&&Rt?.(r.key);},k=r=>{let f=l.getColumnModel(),T=ut?.effectiveRow?.(r.key)??r.data,V=datagridCore.cardFields(f,Kt??[],T).map(ie=>{let ce=f.getDef(ie.columnId);if(!ce?.lookup||ce.valueFormatter)return ie;let pe=_.label(ce,ie.columnId,f.getCellValue(T,ie.columnId),r.data,r.key);return pe===pn?{...ie,text:"",pending:true}:pe===null?ie:{...ie,text:pe}});return {row:T,fields:V}},B=!!Qe?.icons,Z=re?.renderCard,H=r=>{let f=r.node,{row:T,fields:V}=k(f),ie;if(Z){let ce=Qe?datagridCore.resolveRowStatus(Qe,T,f.key,ut)?.status??null:ut?.getRowStatus(f.key)??null;ie=Z({row:T,node:f,fields:V,selected:r.selected,status:ce})??null;}return jsxRuntime.jsx(Hs,{fields:V,content:ie,statusIcon:B,onPress:s?ce=>m(f,ce):void 0})};react.useEffect(()=>{if(it||!Qe?.messages){l.setMessageRows([],$e);return}let r=Qe.get,f=datagridCore.rowMessageKeys(Qe,ut).filter(T=>{if(!r)return true;let V=l.getDataRowNode(T)?.data;if(V===void 0)return true;let ie=r({row:V,rowKey:T});return ie===void 0||ie==="error"});l.setMessageRows(f,$e);});let U=(r,f)=>{if(!Qe)return null;let T=datagridCore.rowMessageModel(Qe,r,f,ut,t);return jsxRuntime.jsxs("div",{className:"kanuni-datagrid-row-message","data-testid":"dg-row-message",children:[jsxRuntime.jsxs("svg",{className:"kanuni-datagrid-row-message-icon",viewBox:"0 0 16 16",width:"14",height:"14","aria-hidden":"true",children:[jsxRuntime.jsx("path",{d:"M8 1.5 15 14H1z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),jsxRuntime.jsx("path",{d:"M8 6v3.5M8 11.6v.4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("span",{className:"kanuni-datagrid-row-message-text",title:T.text,children:T.text}),T.retry&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-retry",onClick:T.retry,children:t.rowStatusRetry}),T.remove&&jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-row-message-button","data-testid":"dg-row-delete",onClick:T.remove,children:t.rowStatusDelete})]})},ge=datagridCore.resolveToolbar($),we=_e.renderCellContent,xe=_e.getCellClassName,je=_e.onCellDoubleClick,qe=Sa(l,e.printLayout,Je),Xe=qe.active?{...P,rows:{...P.rows,start:0,end:rt.length,offsetY:0,totalHeight:0}}:P,uo=react.useMemo(()=>Me.some(r=>r.autoHeight===true),[Me]),Oi=I&&l.canListDistinctValues();I&&!Oi&&ne.debugMode&&console.warn("[datagrid] headerFilter needs a column's distinct values. This grid is remote and its DataSource does not implement `loadDistinctValues` \u2014 implement it, or use `filterRow`.");let Ot=react.useRef(null);bn(()=>{l.setEnterpriseEdition(De);},[l,De]),react.useEffect(()=>{ye?.(l);},[l,ye]),bn(()=>{let r=nd();r!==null&&r<datagridCore.DEFAULT_MAX_SCROLL_OFFSET&&l.setMaxScrollOffset(r);let f=Kf();f!==null&&l.setMaxCanvasHeight(f);},[l]),bn(()=>{let r=Ot.current;if(!r)return;let f=()=>{l.setViewportSize(r.clientWidth,r.clientHeight),Jt.current&&It(datagridCore.showsCards(datagridCore.cardViewWidth(r),Jt.current)),r.style.setProperty("--dg-viewport-width",`${r.clientWidth}px`);let ie=r.querySelector(".kanuni-datagrid-rows"),ce=r.querySelector(".kanuni-datagrid-canvas");if(ie&&ce){let pe=ie.getBoundingClientRect(),Ye=ce.getBoundingClientRect();l.setChromeOffsets(pe.top-Ye.top,Ye.bottom-pe.bottom);}datagridCore.calibrateMaxScrollOffset(r,l);};if(f(),typeof ResizeObserver>"u")return;let T=new ResizeObserver(f);T.observe(r);let V=r.querySelector(".kanuni-datagrid-canvas");return V&&T.observe(V),()=>T.disconnect()},[l]),bn(()=>{if(!h)return;let r=Ot.current?.querySelector(".kanuni-datagrid-canvas"),f=r?.querySelector(".kanuni-datagrid-header");if(!r||!f)return;let T=null,V=()=>{let ce=f.offsetHeight,pe=ce>0?`${ce}px`:null;pe!==T&&(T=pe,pe?r.style.setProperty("--dg-header-actual",pe):r.style.removeProperty("--dg-header-actual"));};V();let ie=typeof ResizeObserver>"u"?null:new ResizeObserver(V);return ie?.observe(f),()=>{ie?.disconnect(),r.style.removeProperty("--dg-header-actual");}},[l,h]),bn(()=>{if(!uo)return;let r=Ot.current?.querySelector(".kanuni-datagrid-viewport");if(!r)return;let f=l.getVirtualWindow(),T=l.getRows(),V=new Map(l.getMeasuredRowHeights()),ie=false;for(let ce=f.rows.start;ce<f.rows.end;ce++){let pe=T[ce];if(!pe||pe.kind!=="data")continue;let Ye=r.querySelector(`[data-row-key="${CSS.escape(String(pe.key))}"]`);if(!Ye)continue;let ze=Ye.getBoundingClientRect().height;ze>0&&V.get(pe.key)!==ze&&(V.set(pe.key,ze),ie=true);}ie&&l.setMeasuredRowHeights(V);}),react.useEffect(()=>{if(uo)return l.events.on("columnStateChanged",()=>{l.clearMeasuredRowHeights();})},[l,uo]),react.useEffect(()=>l.events.on("scrollRequested",r=>{let f=Ot.current;if(!f)return;r.scrollTop!==void 0&&(f.scrollTop=r.scrollTop),r.scrollLeft!==void 0&&(f.scrollLeft=td(r.scrollLeft,f)),l.setScroll(f.scrollTop,Li(f.scrollLeft));let T=r.scrollTop;T===void 0||Math.abs(f.scrollTop-T)<=1||setTimeout(()=>{let V=Ot.current;!V||Math.abs(V.scrollTop-T)<=1||(V.scrollTop=T,l.setScroll(V.scrollTop,Li(V.scrollLeft)));},0);}),[l]);let Hi=Ma(l,e.alignedGrids,Ot),ad=react.useCallback(r=>{let f=r.currentTarget;l.setScroll(f.scrollTop,Li(f.scrollLeft)),Hi.syncScroll(f.scrollLeft);},[l,Hi]),id=react.useCallback((r,f)=>l.toggleSort(r,f),[l]);Ti(l,x);let Fn=xi(l,oe);react.useEffect(()=>{F!=null&&l.getFocusedRowKey()!==F&&l.focusRow(F);},[l,F]),react.useEffect(()=>{if(j)return l.events.on("focusedRowChanged",r=>j({rowKey:r.rowKey,row:r.row}))},[l,j]);let[Dr,ld]=react.useState(null);react.useEffect(()=>l.events.on("overlayChanged",r=>{ld(r.manual?r.overlay:null);}),[l]);let sd=react.useCallback(r=>{let f=l.getDataRowNode(r);if(f)return f;if(r==="")return;let T=Number(r);return Number.isNaN(T)?void 0:l.getDataRowNode(T)},[l]),vt=De?e.notes:void 0;!De&&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 Mo=!!vt?.onChange&&vt.menu!==false,No=react.useCallback((r,f,T)=>vt?vt.get({rowKey:r,columnId:f,row:T})??null:null,[vt]),Ai=Ei({rootRef:Je,columnModel:l.getColumnModel(),getRowNode:sd,getNote:vt?No:void 0,config:ke,controller:l,gridId:ne.gridId}),[Bi,dd]=react.useState(0);react.useEffect(()=>{let r=new Set,f=[l.events.on("cellsFlashed",({rowKeys:T,columnIds:V,duration:ie})=>{let ce=Je.current;if(!ce)return;let pe=T.length?T.map(Ze=>`[data-row-key="${CSS.escape(String(Ze))}"]`).join(","):".kanuni-datagrid-row",Ye=V.length?V.map(Ze=>`[data-column-id="${CSS.escape(Ze)}"]`).join(","):"[data-column-id]",ze=[];ce.querySelectorAll(pe).forEach(Ze=>{Ze.querySelectorAll(Ye).forEach(wt=>ze.push(wt));});for(let Ze of ze)Ze.classList.remove("kanuni-datagrid-cell--flash");ce.offsetWidth;for(let Ze of ze)Ze.classList.add("kanuni-datagrid-cell--flash");let lt=setTimeout(()=>{for(let Ze of ze)Ze.classList.remove("kanuni-datagrid-cell--flash");r.delete(lt);},ie);r.add(lt);}),l.events.on("cellsRefreshed",({revision:T})=>dd(T))];return ()=>{f.forEach(T=>T()),r.forEach(clearTimeout);}},[l]);let ud=react.useCallback((r,f)=>l.moveColumn(r,f),[l]),cd=react.useCallback((r,f,T)=>l.setColumnWidth(r,f,T??true),[l]),Sr=react.useCallback(r=>{if(!Je.current)return;let f=Cr(Je.current,r);f!==null&&l.setColumnWidth(r,f);},[l]),Gr=react.useCallback(()=>{let r=Je.current;if(r)for(let f of l.getColumnStates()){if(!f.visible||f.flex)continue;let T=Cr(r,f.id);T!==null&&l.setColumnWidth(f.id,T);}},[l]),Mr=react.useRef(null),[Po]=react.useState(()=>new datagridCore.RowMotion),_i=e.animateRows===true;react.useEffect(()=>{l.setAnimateRows(_i);},[l,_i]),react.useEffect(()=>{let r=()=>{l.getAnimateRows()&&Po.capture(Mr.current);},f=["sortChanged","filterChanged","groupChanged","dataUpdated"].map(T=>l.events.on(T,r));return ()=>{f.forEach(T=>T()),Po.dispose();}},[l,Po]),bn(()=>{l.getAnimateRows()&&Po.play(Mr.current);}),react.useEffect(()=>{if(J!=="fitGrid")return;let r=()=>l.sizeColumnsToFit();return r(),l.events.on("gridSizeChanged",r)},[l,J]);let Nr=react.useRef(null);bn(()=>{if(J!=="fitCells"){Nr.current=null;return}Nr.current!==l&&Je.current?.querySelector(".kanuni-datagrid-row .kanuni-datagrid-cell[data-column-id]")&&(Nr.current=l,Gr());});let[Pr,$i]=react.useState({}),[Lr,Wi]=react.useState({}),On=react.useRef(Lr);On.current=Lr;let Vi=react.useRef(Pr);Vi.current=Pr;let Ui=e.filterDebounce??(l.isRemote()?200:0),Ir=react.useRef(false),Lo=react.useMemo(()=>datagridCore.datePeriodLabels(t),[t]),Kr=react.useRef(Lo);Kr.current=Lo;let md=react.useMemo(()=>datagridCore.periodSuggestionList(Lo),[Lo]),Hn=react.useCallback((r,f)=>{let T=l.getColumnModel(),V=T.getDataType(r),ie=datagridCore.findCustomFilterOperator(T.getDef(r),On.current[r]??"");Ir.current=true;try{l.setColumnFilter(r,ie?datagridCore.parseCustomFilterInput(r,f,ie):datagridCore.parseFilterInput(r,f,V,Kr.current),datagridCore.FILTER_PART_ROW);}finally{Ir.current=false;}},[l]),Ht=react.useMemo(()=>datagridCore.createDebouncedCommit(Ui),[Ui]);react.useEffect(()=>()=>Ht.cancelAll(),[Ht]);let pd=react.useCallback((r,f)=>{$i(T=>({...T,[r]:f})),Ht.schedule(r,()=>Hn(r,f));},[Hn,Ht]),fd=react.useCallback((r,f)=>{On.current={...On.current,[r]:f},Wi(On.current),Ht.cancel(r),Hn(r,Vi.current[r]??"");},[Hn,Ht]),gd=react.useCallback(r=>{if(l.getColumnModel().getDef(r)?.renderFilter)return jsxRuntime.jsx(ri,{controller:l,columnId:r,surface:"row"})},[l]),wd=react.useCallback((r,f)=>{Ht.cancel(r),Hn(r,f);},[Hn,Ht]);react.useEffect(()=>l.events.on("filterChanged",()=>{if(Ir.current)return;let r=l.getColumnModel();Wi(f=>{let T=null;for(let V of r.getOrder()){let ie=r.getDef(V);if(!ie?.filterOperators?.length||Ht.isPending(V))continue;let ce=l.getColumnFilter(V,datagridCore.FILTER_PART_ROW),pe=f[V]??"",Ye=pe;ce?Ye=datagridCore.customFilterInputFromNode(ce,ie)?.operatorId??"":datagridCore.findCustomFilterOperator(ie,pe)?.operandType==="none"&&(Ye=""),Ye!==pe&&(T??={...f},T[V]=Ye);}return T&&(On.current=T),T??f}),$i(f=>Ya(f,{isPending:T=>Ht.isPending(T),textFor:T=>{let V=l.getColumnFilter(T,datagridCore.FILTER_PART_ROW);if(!V)return "";let ie=datagridCore.customFilterInputFromNode(V,r.getDef(T));return ie?ie.text:!datagridCore.isFilterGroup(V)&&!datagridCore.isBuiltInFilterOperator(V.operator)?null:datagridCore.filterInputFromNode(T,V,r.getDataType(T),Kr.current)}},r.getOrder()));}),[l,Ht]);let[at,Gt]=react.useState(null),hn=react.useRef(null);react.useEffect(()=>{!at&&hn.current&&(hn.current.dispose(),hn.current=null);},[at]);let An=react.useRef(0),[Bn,Fr]=react.useState(null),Or=react.useRef(null),zt=react.useCallback(r=>{let f=document.activeElement instanceof HTMLElement?document.activeElement:null;if(f?.closest(".kanuni-datagrid-portal"))return;let T=f&&Je.current&&f!==Je.current&&f.contains(Je.current)?null:f;Or.current={el:T,columnId:T?.closest(".kanuni-datagrid-header-cell")?.getAttribute("data-column-id")??r??null};},[]),yd=react.useCallback((r,f)=>{zt(r);let T=f.getBoundingClientRect(),V=l.getColumnModel().getDef(r),ie={left:T.left,top:T.bottom+2},ce=V?.headerName??r;if(V?.renderFilter){++An.current,Gt(null),Fr({columnId:r,label:ce,anchor:ie});return}Fr(null);let pe=l.getColumnFilter(r,datagridCore.FILTER_PART_SET)??l.getColumnFilter(r,datagridCore.FILTER_PART_DEFAULT);if(!l.isRemote()){let lt=++An.current;Gt({columnId:r,label:ce,entries:[],selected:null,anchor:ie,loading:true}),l.getDistinctValueSetAsync(r).then(({entries:Ze,truncated:wt})=>{An.current===lt&&Gt(Wo=>Wo&&Wo.columnId===r?{...Wo,entries:Ze,truncated:wt,capped:wt,selected:datagridCore.selectedLabelsFromFilter(pe,Ze,{text:l.getColumnModel().getDataType(r)==="string"}),loading:false}:Wo);});return}let Ye=++An.current,ze=l.openRemoteDistinct(r,rn);if(ze){hn.current?.dispose(),hn.current=ze,Gt({columnId:r,label:ce,entries:[],selected:null,anchor:ie,loading:true,pager:ze}),ze.start().then(lt=>{if(An.current!==Ye){ze.dispose();return}if(lt.kind==="paged"){Gt(wt=>wt&&wt.columnId===r?{...wt,loading:false}:wt);return}ze.dispose(),hn.current===ze&&(hn.current=null);let Ze=l.sortDistinctEntries(lt.values);Gt(wt=>wt&&wt.columnId===r?{...wt,pager:void 0,entries:Ze,selected:datagridCore.selectedLabelsFromFilter(pe,Ze,{text:l.getColumnModel().getDataType(r)==="string"}),loading:false}:wt);});return}Gt({columnId:r,label:ce,entries:[],selected:null,anchor:ie,loading:true}),l.getDistinctValuesAsync(r).then(lt=>{An.current===Ye&&Gt(Ze=>Ze&&Ze.columnId===r?{...Ze,entries:lt,selected:datagridCore.selectedLabelsFromFilter(pe,lt,{text:l.getColumnModel().getDataType(r)==="string"}),loading:false}:Ze);});},[l,zt]),bd=react.useCallback(r=>{at&&(l.setColumnFilter(at.columnId,r,datagridCore.FILTER_PART_SET),Gt(null));},[l,at]),hd=Object.keys(l.getColumnStates().reduce((r,f)=>(l.getColumnFilter(f.id)&&(r[f.id]=true),r),{})),_n=l.getSelectionMode(),ft=_n!=="none"&&(ne.selection?.checkboxColumn??false),zi=(ne.selection?.rowClick??(ft?"toggle":"replace"))==="toggle",Rd=react.useCallback((r,f)=>{l.handleRowClick(r.key,{ctrlKey:f.ctrlKey||zi&&!f.shiftKey,metaKey:f.metaKey,shiftKey:f.shiftKey});},[l,zi]),Cd=react.useCallback((r,f)=>l.focusCell(r.key,f),[l]),kd=react.useCallback(r=>l.toggleRow(r.key),[l]),[$n,Hr]=react.useState(null),Td=react.useCallback(()=>Hr(null),[]),[co,Ar]=react.useState(null),Yi=react.useCallback((r,f)=>{let V=(Je.current?.querySelector(`[data-row-key="${CSS.escape(String(r))}"] [data-column-id="${CSS.escape(f)}"]`)??Je.current)?.getBoundingClientRect();return {left:V?.left??0,top:(V?.bottom??0)+2}},[]),vd=react.useCallback(r=>{let f=co;Ar(null),!(!f||!vt?.onChange)&&vt.onChange({rowKey:f.rowKey,columnId:f.columnId,row:f.row,text:r});},[co,vt]),qi=react.useCallback((r,f)=>{if(!vt?.onChange||vt.menu===false)return [];let T=r.columnId;if(!T)return [];let V=l.getRowKey(r.row),ie=No(V,T,r.row),ce=()=>Ar({rowKey:V,columnId:T,row:r.row,text:ie??"",anchor:Yi(V,T)}),pe=[];return f&&pe.push({separator:true,id:"__note-sep"}),pe.push({id:"__note-edit",label:ie?t.editNote:t.addNote,onSelect:ce}),ie&&pe.push({id:"__note-delete",label:t.deleteNote,onSelect:()=>vt.onChange?.({rowKey:V,columnId:T,row:r.row,text:null})}),pe},[vt,l,No,Yi,t]),[Io,Ko]=react.useState(null),Br=react.useRef({x:0,y:0}),Xi=react.useCallback(r=>yi(l,t,et,r,f=>{Ko({message:f,...Br.current}),console.error("[datagrid] export failed:",f);}),[l,t,et]),Fo=react.useCallback((r,f,T,V,ie)=>{if(T.kind!=="data")return;zt();let ce={row:T.data,node:T,rowIndex:V,columnId:ie,selectedKeys:l.getSelectedKeys()},pe=(typeof fe=="function"?fe(ce):fe)??[],Ye=_e.editRowMenuItem(T.key),ze=Ye?[...pe,...pe.length>0?[{id:"dg-sep-edit",separator:true}]:[],Ye]:pe,lt=qi(ce,ze.length>0),Ze=bi(l,t,T.key,ze.length+lt.length>0),wt=[...ze,...lt,...Ze,...Xi(ze.length+lt.length+Ze.length>0)];wt.length!==0&&(Br.current={x:r,y:f},Ko(null),Hr({x:r,y:f,items:wt,context:ce}));},[fe,l,t,qi,Xi,zt,_e.editRowMenuItem]),ji=react.useCallback((r,f,T)=>{let V=bi(l,t,r,false);if(V.length===0)return;T.preventDefault(),zt();let ie={row:f,node:{kind:"data",key:r,sourceIndex:-1,data:f},rowIndex:-1,columnId:T.target.closest("[data-column-id]")?.dataset.columnId??null,selectedKeys:l.getSelectedKeys()};Br.current={x:T.clientX,y:T.clientY},Ko(null),Hr({x:T.clientX,y:T.clientY,items:V,context:ie});},[l,t,zt]),Ji=react.useCallback(r=>r?.target?.closest("[data-column-id]")?.dataset.columnId??null,[]),Wn=react.useCallback((r,f,T,V,ie)=>{let ce=V??-1;r&&l.notifyRow(r,T,ce);let pe=Ji(ie);pe!==null&&l.notifyCell(f,T,ce,pe);},[l,Ji]),xd=react.useCallback((r,f,T)=>{Fe?.(r),Wn("rowClicked","cellClicked",r,f,T);},[Fe,Wn]),Ed=react.useCallback((r,f,T)=>{Oe?.(r),Wn("rowDoubleClicked","cellDoubleClicked",r,f,T);},[Oe,Wn]),Dd=react.useCallback((r,f,T)=>{if(Wn(null,"cellContextMenu",r,f,T),r.kind!=="data"||!fe&&!Mo&&et===false&&!l.isRowPinningEnabled()&&_e.editRowMenuItem(r.key)===null)return;T.preventDefault(),l.isRowSelected(r.key)||l.handleRowClick(r.key,{});let V=T.target.closest("[data-column-id]")?.dataset.columnId??null;Fo(T.clientX,T.clientY,r,f,V);},[fe,Mo,et,l,Fo,Wn,_e.editRowMenuItem]),[Sd,Gd]=react.useState(null),[Md,Nd]=react.useState(null),[_r,Pd]=react.useState(()=>ne.grouping?.groupSummaries??false),[Rn,$r]=react.useState(null),[Qi,Wr]=react.useState(null),Vr=$n!==null||Rn!==null||at!==null||Bn!==null,Zi=react.useRef(false);react.useEffect(()=>{if(Zi.current&&!Vr){let r=Or.current;Or.current=null;let f=r?.columnId?Je.current?.querySelector(`.kanuni-datagrid-header-cell[data-column-id="${CSS.escape(r.columnId)}"]`):null,T=r?.el?.isConnected?r.el:f,V=document.activeElement,ie=!V||V===document.body||!!Je.current&&V!==Je.current&&V.contains(Je.current);T&&ie&&(T.focus({preventScroll:true}),document.activeElement!==T&&f&&f.focus({preventScroll:true}));}Zi.current=Vr;},[Vr]);let Ld=react.useCallback(()=>{l.getSelectedCount()>0?l.clearSelection():l.selectAll();},[l]),Ur=ft?l.getSelectableCount():dt,zr=l.getSelectedCount(),Id=Ur>0&&zr>=Ur?"all":zr>0?"some":"none",el=react.useRef(Le);el.current=Le;let Kd=react.useCallback(r=>{let f=el.current;f&&St(r,true)&&f(r.nativeEvent,_e.keyContext())==="handled"&&ta(r);},[_e.keyContext]),Fd=react.useCallback(r=>{if(na(r)||!St(r))return;let f=r.target;if(f.closest?.(Yt)||f.closest?.('[data-testid="dg-edit-form"], [data-testid="dg-row-message"]'))return;let T=f.tagName;if(T==="INPUT"||T==="TEXTAREA"||T==="SELECT"||f.isContentEditable||_e.handleKeyDown(r))return;if((fe||Mo||et!==false||l.isRowPinningEnabled())&&(r.key==="ContextMenu"||r.key==="F10"&&r.shiftKey)){let ce=l.getFocus(),pe=ce?rt.findIndex(ze=>ze.key===ce.rowKey):-1,Ye=pe>=0?rt[pe]:void 0;if(Ye){let lt=Ot.current?.querySelector(`[data-row-key="${CSS.escape(String(Ye.key))}"]`)?.getBoundingClientRect();Fo(lt?lt.left+16:0,lt?lt.bottom:0,Ye,pe,ce?.columnId??null),r.preventDefault();}return}let V=datagridCore.resolveGridCommand({key:r.key,ctrlKey:r.ctrlKey,metaKey:r.metaKey,shiftKey:r.shiftKey,altKey:r.altKey});if(!V)return;if(V.type==="copy"){ro(l);return}if(V.type==="activate"){let ce=l.getFocus(),pe=ce?rt.find(Ye=>Ye.key===ce.rowKey):void 0;pe&&Oe?.(pe),V.preventDefault&&r.preventDefault();return}l.executeCommand(V),V.preventDefault&&r.preventDefault();let ie=l.getFocusIndices();if(ie&&Ot.current){let pe=l.getColumnLayout().center.findIndex(ze=>ze.state.id===l.getFocus()?.columnId),Ye=l.ensureVisible(ie.rowIndex,pe===-1?void 0:pe);if(Ye){let ze=Ot.current;Ye.scrollTop!==void 0&&(ze.scrollTop=Ye.scrollTop),Ye.scrollLeft!==void 0&&(ze.scrollLeft=td(Ye.scrollLeft,ze)),l.setScroll(ze.scrollTop,ze.scrollLeft);}}},[l,rt,Oe,fe,Mo,et,Fo,_e.handleKeyDown]),Cn=react.useMemo(()=>datagridCore.bandDepth([...Q.left,...Q.center,...Q.right]),[Q]),Vn=to,Yr=(b?2:1)+Cn,tl=l.getPinnedRows("top"),nl=l.getPinnedRows("bottom"),qr=[...se??[],...tl.map(r=>r.row)],Xr=[...G??[],...nl.map(r=>r.row)],Od=[...(se??[]).map(()=>null),...tl.map(r=>r.key)],Hd=[...(G??[]).map(()=>null),...nl.map(r=>r.key)],Oo=qr.length,Ad=Xr.length,Ho=Yr+Oo,Ao=Sd??ne.grouping?.panel??M,ol=l.getGroupLevels(),Bd=react.useCallback(r=>l.groupBy(r.slice(0,ue)),[l,ue]),_d=react.useCallback(r=>l.toggleGroup(r),[l]),rl=react.useCallback(r=>l.toggleGroupSelection(r),[l]),$d=l.getColumnModel().runtime().filter(r=>r.state.visible&&r.def.groupable!==false),Dt=l.hasMasterDetail()&&!!ot,gt=e.rowNumbers??false,Mt=!!Qe?.icons&&!it,Wd=gt&&l.isPaginated()?l.getPage()*l.getPageSize():0;react.useEffect(()=>{l.setLeadWidth(Ha(ft,Dt,gt,Mt));},[l,ft,Dt,gt,Mt]);let Vd=react.useCallback(r=>l.toggleDetail(r),[l]),Ud=react.useCallback(r=>l.toggleTreeRow(r),[l]),al=l.getSummaryDefs(),zd=l.getSummaries(),Un=Md??le??al.length>0,mo=Un&&O==="top",jr=b?2:1,il=Et.grouping?.groupSummaries&&_r?ne.summaries:void 0,ll=l.getGroupDisplay(),sl=react.useCallback(()=>{Pd(r=>(l.setGroupSummaries(!r),!r));},[l]),Yd=react.useCallback((r,f)=>{if(!me)return;f.preventDefault();let T=l.getColumnModel().getDef(r),V=l.getColumnSummary(r),ie={columnId:r,headerName:T?.headerName??T?.field??r},ce=[{id:"none",label:t.noTotal,disabled:V===null,onSelect:()=>l.setColumnSummary(r,null)},{id:"sep",separator:true},...datagridCore.allowedSummaryTypes(T?.dataType).map(pe=>({id:pe,label:datagridCore.summaryTypeLabels(t)[pe],disabled:V?.type===pe,onSelect:()=>l.setColumnSummary(r,pe)}))];zt(),$r({x:f.clientX,y:f.clientY,items:ce,context:ie});},[l,me,zt]),qd=react.useCallback((r,f)=>{if(z===false)return;f.preventDefault();let T=l.getColumnModel().getDef(r),V={columnId:r,headerName:T?.headerName??T?.field??r},ie=Si(V,{controller:l,groupPanelVisible:Ao,footerVisible:Un,groupFootersAvailable:De&&l.getGroupLevels().length>0,groupFootersVisible:_r,onToggleGroupPanel:()=>Gd(!Ao),onToggleFooter:()=>Nd(!Un),onToggleGroupFooters:sl,onOpenFieldChooser:()=>Wr({left:f.clientX,top:f.clientY}),onBestFit:Sr,onBestFitAll:Gr,maxGroupLevels:ue,labels:Tr(t)}),ce=typeof z=="function"?z(V,ie):ie;!ce||ce.length===0||(zt(),$r({x:f.clientX,y:f.clientY,items:ce,context:V}));},[z,l,Ao,Un,De,_r,sl,Sr,Gr,ue,t,zt]),zn=l.getFocus(),Xd=zn?`${e.gridId}-cell-${String(zn.rowKey)}-${zn.columnId}`:void 0,Jr=l.getSelectedCount(),jd=react.useMemo(()=>{let r=[datagridCore.fillText(t.announceRows,{n:dt})];if(We.length>0){let f=We.map(T=>{let V=l.getColumnModel().getDef(T.columnId),ie=String(V?.headerName??V?.field??T.columnId),ce=T.direction==="desc"?t.announceDescending:t.announceAscending;return `${ie} ${ce}`}).join(", ");r.push(datagridCore.fillText(t.announceSortedBy,{columns:f}));}return Jr>0&&r.push(datagridCore.fillText(t.announceSelected,{n:Jr})),r.join(", ")},[l,dt,We,Jr,t]),{centerColumns:ln,centerIndices:Bo,stickyInsets:Yn,leadingSpacer:sn,trailingSpacer:dn,rowStart:Jd,rowEnd:dl}=ds(Q,Xe),_o=l.getColumnModel(),kn=Jd,Qd=r=>{if(uo)return;let f=l.getRowHeightAt(r);return f===$e?void 0:f},Zd=Array.from(rt.slice(kn,dl)),eu=react.useMemo(()=>!gt||l.getGroupLevels().length===0&&!l.hasMasterDetail()&&!l.hasTreePathRows()?null:us(rt),[gt,l,rt]),tu=l.hasCellSpans(),ul=react.useRef({start:0,end:0});ul.current={start:kn,end:dl-1};let cl=react.useRef(Xe.columns);cl.current=Xe.columns;let nu=react.useCallback(r=>l.planRowColSpans(r,cl.current),[l]),ou=datagridCore.hasColSpans(Q),ru=react.useCallback((r,f)=>{let T=l.getCellSpans(f);if(T.length===0)return null;let{start:V,end:ie}=ul.current,ce=datagridCore.spanRoleAt(T,r,V,ie);if(!ce)return null;if(ce.role==="covered")return {kind:"covered"};let pe=l.getRowOffset(ce.drawStart);return {kind:"draw",height:l.getRowOffset(ce.drawEnd)+l.getRowHeightAt(ce.drawEnd)-pe,offset:0}},[l]),ml=l.getFindNeedle()||(ve?datagridCore.normalizeSearch(l.getSearchText()):""),pl=l.getFindState(),$o=pl.count>0?`${l.getFindNeedle()}\0${pl.activeIndex}`:"",fl=react.useCallback((r,f)=>l.getFindMatchKind(r,f),[l]),au={pathOf:r=>datagridCore.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}},gl={layout:Q,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,defs:al,values:zd,checkboxColumn:ft,detailColumn:Dt,statusColumn:Mt,rowNumberColumn:gt,onPickSummary:me?Yd:void 0,emptyHint:me?"\xB7":""};return jsxRuntime.jsxs("div",{className:`kanuni-datagrid-root${i?" kanuni-datagrid-dark":""}${qe.active?" kanuni-datagrid-print":""}${it?" kanuni-datagrid-cards":""}${datagridCore.themeClassName(a,Ce,d)}${n?` ${n}`:""}`,style:{"--dg-row-height":`${$e}px`,"--dg-grip-inset":`${(gt?Qn:0)+(Mt?Zn:0)}px`,...o},dir:datagridCore.isRtlLocale(e.locale)?"rtl":void 0,"data-grid-id":e.gridId,"data-theme":a,"data-palette":d,"data-auto-height":uo?"":void 0,"data-auto-header-height":h?"":void 0,"data-row-session":_e.rowSessionAttr,onKeyDownCapture:Le?Kd:void 0,ref:Je,children:[_e.bar&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-filter-bar kanuni-datagrid-edit-bar","data-testid":"dg-edit-bar",children:_e.bar}),ge.show&&jsxRuntime.jsx(ui,{controller:l,dark:i,search:ge.search!==null,searchOptions:ge.search??void 0,exportMenu:ge.export,columnChooser:ge.columns??e.toolbarColumnChooser??true,exportExcel:De&&X,exportPdf:De&&Y,itemsBefore:w,itemsAfter:y,onOpenColumnChooser:r=>Wr(f=>f?null:r)}),Ao&&jsxRuntime.jsx(ii,{columns:$d,levels:ol,onSetLevels:Bd,maxLevels:ue,onExpandAll:()=>l.expandAllGroups(),onCollapseAll:()=>l.collapseAllGroups()}),it&&jsxRuntime.jsx(As,{controller:l,sort:We,text:t,columns:g?l.getColumnModel().getOrder().filter(r=>{let f=l.getColumnModel();return f.getState(r)?.visible!==false&&f.getDef(r)?.sortable!==false}).map(r=>({id:r,label:l.getColumnModel().getDef(r)?.headerName??r})):[]}),jsxRuntime.jsx("div",{className:"kanuni-datagrid-scroller",ref:Ot,onScroll:ad,onKeyDown:Fd,tabIndex:0,role:"grid","aria-rowcount":dt+Yr+Oo+Ad,"aria-colcount":Q.left.length+Q.center.length+Q.right.length+(ft?1:0)+(Dt?1:0)+(gt?1:0),"aria-multiselectable":_n==="multiple"||void 0,"aria-activedescendant":Xd,"aria-label":e.ariaLabel??e.gridId,children:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-canvas",style:{width:(Q.totalWidth||0)+Ha(ft,Dt,gt,Mt)||"100%"},role:"rowgroup",children:[jsxRuntime.jsx(Wa,{layout:Q,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,depth:Cn,checkboxColumn:ft,detailColumn:Dt,statusColumn:Mt,rowNumberColumn:gt,rowHeight:Vn,bandFold:au}),jsxRuntime.jsx(Ua,{bandOffset:Cn*Vn,stickyInsets:Yn,layout:Q,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,sort:We,sortable:g,onSort:id,groupLevels:ol,headerFilter:Oi,filteredColumns:hd,onOpenFilter:yd,filterIconMode:E,checkboxColumn:ft,detailColumn:Dt,statusColumn:Mt,rowNumberColumn:gt,selectAllState:Id,selectAllDisabled:Ur===0&&zr===0,onToggleSelectAll:Ld,draggable:M,reorderable:R,onReorder:ud,resizable:v,onResize:cd,onAutoFit:Sr,onHeaderContextMenu:z===false?void 0:qd,onHeaderClick:Ie,getHeaderClassName:Ve,renderHeaderLabel:Ee}),b&&jsxRuntime.jsx(qa,{bandOffset:Cn*Vn,stickyInsets:Yn,layout:Q,centerColumns:ln,leadingSpacer:sn,trailingSpacer:dn,values:Pr,checkboxColumn:ft,detailColumn:Dt,statusColumn:Mt,rowNumberColumn:gt,onChange:pd,onCommit:wd,periodSuggestions:md,periodListId:`${e.gridId}-filter-periods`,operators:Lr,onOperatorChange:fd,renderCustom:gd}),mo&&jsxRuntime.jsx(gr,{...gl,position:"top",bandOffset:Cn*Vn,headerRowsBetween:jr}),qr.length>0&&jsxRuntime.jsx(wr,{gridId:e.gridId,side:"top",rows:qr,rowClassFor:Te?(r,f,T)=>Re(r,f,T??r.key):void 0,rowKeys:Od,onUserRowContextMenu:ji,layout:Q,columnModel:_o,centerColumns:ln,centerIndices:Bo,stickyInsets:Yn,leadingSpacer:sn,trailingSpacer:dn,checkboxColumn:ft,detailColumn:Dt,statusColumn:Mt,rowNumberColumn:gt,rowHeight:$e,bandOffset:Cn*Vn,headerRowsBetween:jr+(mo?1:0),ariaRowBase:Yr}),l.hasStickyGroupHeaders()&&jsxRuntime.jsx(Es,{controller:l,width:Q.totalWidth,bandOffset:Cn*Vn,headerRowsBetween:jr+(mo?1:0),belowPinned:Oo>0?Oo*$e+1:0,renderRow:(r,f,T)=>jsxRuntime.jsx(eo,{gridId:e.gridId,node:r,index:f,layout:Q,columnModel:_o,centerColumns:ln,centerIndices:Bo,stickyInsets:Yn,leadingSpacer:sn,trailingSpacer:dn,striped:false,selected:false,groupSelection:ft&&_n==="multiple"?l.getGroupSelectionState(String(r.key)):void 0,onToggleGroupSelect:rl,groupDisplay:ll,focusedColumnId:null,checkboxColumn:ft,statusColumn:Mt,rowNumberColumn:gt,rowNumber:null,headerRowCount:Ho,onToggleGroup:V=>{l.toggleGroup(V),l.scrollToRow(V);},revision:Bi,searchNeedle:ml,lookupLabels:_,findStamp:$o,findKind:$o?fl:void 0,summaryDefs:il,detailColumn:Dt,height:T,renderCellContent:we,getCellClassName:xe})}),jsxRuntime.jsxs("div",{className:"kanuni-datagrid-rows",style:{position:"relative",height:Xe.rows.totalHeight},onDragOver:Fn.bodyHandlers?.onDragOver,onDrop:Fn.bodyHandlers?.onDrop,onDragLeave:Fn.bodyHandlers?.onDragLeave,children:[jsxRuntime.jsx("div",{ref:Mr,className:"kanuni-datagrid-viewport",style:{transform:`translateY(${Xe.rows.offsetY}px)`},children:Zd.map((r,f)=>r?jsxRuntime.jsx(eo,{gridId:e.gridId,node:r,index:kn+f,layout:Q,columnModel:_o,centerColumns:ln,centerIndices:Bo,stickyInsets:Yn,leadingSpacer:sn,trailingSpacer:dn,striped:c,selected:l.isRowSelected(r.key),ariaSelectable:_n!=="none",selectable:ft&&r.kind==="data"?l.isRowSelectable(r.key):true,groupSelection:r.kind==="group"&&ft&&_n==="multiple"?l.getGroupSelectionState(String(r.key)):void 0,onToggleGroupSelect:rl,groupDisplay:ll,focusedColumnId:zn?.rowKey===r.key?zn.columnId:null,rowFocused:te&&zn?.rowKey===r.key,rowDrag:Fn.handlers,dropSide:Fn.dropAt?.key===r.key?Fn.dropAt.side:null,...he(r),rowClass:Re(r,kn+f),renderRow:it?H:D,checkboxColumn:ft,statusColumn:Mt,rowNumberColumn:gt,getSpan:tu?ru:void 0,resolveColSpans:ou?nu:void 0,getNote:vt?No:void 0,rowNumber:gt?cs(kn+f,eu,Wd):null,headerRowCount:Ho,onRowClick:xd,onRowMouseDown:_n==="none"?void 0:Rd,onRowDoubleClick:Ed,onToggleSelect:kd,onCellMouseDown:Cd,onRowContextMenu:Dd,onToggleGroup:_d,onToggleTreeRow:Ud,revision:Bi,searchNeedle:ml,lookupLabels:_,findStamp:$o,findKind:$o?fl:void 0,summaryDefs:il,detailColumn:Dt,detailExpanded:Dt&&l.isDetailExpanded(r.key),onToggleDetail:Vd,renderDetail:ot,renderEditForm:ee??_e.renderEditForm,renderRowMessage:r.kind==="message"?U:void 0,height:Qd(kn+f),renderCellContent:we,getCellClassName:xe,onCellPointerDown:q,onCellPointerEnter:Ge,onCellDoubleClick:je},String(r.key)):(()=>{let T=kn+f,V=l.isRowLoadFailed(T);return jsxRuntime.jsx("div",{className:`kanuni-datagrid-row kanuni-datagrid-row--loading${V?" kanuni-datagrid-row--load-failed":""}`,role:"row","aria-rowindex":T+1+Ho,"aria-busy":V?void 0:"true",children:jsxRuntime.jsx("div",{className:"kanuni-datagrid-cell kanuni-datagrid-loading-cell",role:"gridcell","aria-colindex":1,children:V?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"kanuni-datagrid-load-failed-text",children:t.rowsLoadFailed}),jsxRuntime.jsx("button",{type:"button",className:"kanuni-datagrid-retry-button","data-retry-load":"",onClick:()=>l.retryFailedLoads(),children:t.retryLoad})]}):jsxRuntime.jsx("span",{className:"kanuni-datagrid-loading-bar"})})},`__loading-${T}`)})())}),ae?.()]}),Xr.length>0&&jsxRuntime.jsx(wr,{gridId:e.gridId,side:"bottom",rows:Xr,rowClassFor:Te?(r,f,T)=>Re(r,f,T??r.key):void 0,rowKeys:Hd,onUserRowContextMenu:ji,layout:Q,columnModel:_o,centerColumns:ln,centerIndices:Bo,stickyInsets:Yn,leadingSpacer:sn,trailingSpacer:dn,checkboxColumn:ft,detailColumn:Dt,statusColumn:Mt,rowNumberColumn:gt,rowHeight:$e,headerRowsBetween:Un&&!mo?1:0,ariaRowBase:Ho+dt}),Un&&!mo&&jsxRuntime.jsx(gr,{...gl,position:"bottom"})]})}),(Dr==="noRows"||Dr===null&&dt===0)&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-empty",children:p??t.noData}),_e.active&&jsxRuntime.jsx(va,{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&&jsxRuntime.jsx(xt,{dark:i,children:_e.popup}),W&&jsxRuntime.jsx(pi,{controller:l,alwaysVisible:W==="always",onOpenBuilder:L,describeOptions:C}),K!==false&&jsxRuntime.jsx(ki,{controller:l,delay:typeof K=="number"?K:void 0,forced:Dr==="loading"}),l.isPaginated()&&jsxRuntime.jsx(mi,{page:l.getPage(),pageCount:l.getPageCount(),pageSize:l.getPageSize(),pageSizes:ne.pagination?.pageSizes,pageButtons:ne.pagination?.pageButtons,maxPageButtons:ne.pagination?.maxPageButtons,totalRows:dt,onPage:r=>l.setPage(r),onNext:()=>l.nextPage(),onPrevious:()=>l.previousPage(),onPageSize:r=>l.setPageSize(r)}),N&&jsxRuntime.jsx("div",{className:"kanuni-datagrid-sr-only",role:"status","aria-live":"polite","aria-atomic":"true",children:jd}),co&&jsxRuntime.jsx(Ri,{anchor:co.anchor,value:co.text,dark:i,onCommit:vd,onCancel:()=>Ar(null)}),$n&&jsxRuntime.jsx(Rr,{x:$n.x,y:$n.y,items:$n.items,context:$n.context,dark:i,onClose:Td}),Io&&jsxRuntime.jsx(xt,{dark:i,kind:"toast",children:jsxRuntime.jsx("button",{type:"button",role:"alert",className:"kanuni-datagrid-toolbar-error kanuni-datagrid-menu-error",style:{left:Io.x,top:Io.y},onClick:()=>Ko(null),children:Io.message})}),Rn&&jsxRuntime.jsx(Rr,{x:Rn.x,y:Rn.y,items:Rn.items,context:Rn.context,dark:i,label:`${Rn.context.headerName} column`,onClose:()=>$r(null)}),Ai&&jsxRuntime.jsx(Di,{state:Ai,dark:i}),Qi&&jsxRuntime.jsx(ci,{controller:l,columns:l.getColumnStates(),anchor:Qi,dark:i,onClose:()=>Wr(null)}),Bn&&jsxRuntime.jsx(ks,{controller:l,columnId:Bn.columnId,headerLabel:Bn.label,anchor:Bn.anchor,dark:i,onClose:()=>Fr(null)},Bn.columnId),at&&jsxRuntime.jsx(ti,{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&&!l.isRemote()?r=>{let{entries:f,truncated:T}=l.searchDistinctValues(at.columnId,r);Gt(V=>V&&V.columnId===at.columnId?{...V,entries:f,truncated:T}:V);}:void 0,dark:i,onApply:bd,onClose:()=>Gt(null),onCustom:L?()=>{let r=at.columnId;Gt(null),L({columnId:r});}:void 0},at.columnId)]})}function Bf({defs:e,values:t,columnModel:n,rowCount:o,rowCountLabel:i}){let a=Pe(),d=datagridCore.summaryTypeLabels(a);return e.length===0&&o===void 0?null:jsxRuntime.jsxs("div",{className:"kanuni-datagrid-summary-bar",role:"status","aria-label":a.summaryAria,children:[o!==void 0&&jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsx("strong",{children:o.toLocaleString()})," ",i??a.summaryRows]}),e.map(c=>{let p=t[datagridCore.summaryKey(c.columnId,c.type)],g=n.getDef(c.columnId),h=datagridCore.formatSummaryValue(c,p,g);return jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-item",children:[jsxRuntime.jsxs("span",{className:"kanuni-datagrid-summary-label",children:[datagridCore.summaryLabel(c,d)," ",g?.headerName??c.columnId,":"]}),jsxRuntime.jsx("strong",{children:h})]},datagridCore.summaryKey(c.columnId,c.type))})]})}var _f=react.memo(Bf);function $f({icon:e,label:t,shortcut:n,disabledReason:o,showLabel:i=false,onClick:a,testId:d}){let c=o!==void 0,p=n?`${t} (${n})`:t;return jsxRuntime.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":c||void 0,"aria-description":c?o:void 0,title:c?`${p} \u2014 ${o}`:p,"data-testid":d,onClick:g=>{if(c){g.preventDefault();return}a?.();},children:[e,i&&jsxRuntime.jsx("span",{children:t})]})}function qf(e,t){return Fi(e,t,t?.source,(n,o)=>n.computeChartData(o))}function Xf(e,t){return Fi(e,t,t?.source,(n,o)=>n.computeChartXYData(o))}function jf(e,t){return Fi(e,t,t?.source,(n,o)=>n.computeChartBoxData(o))}function Fi(e,t,n,o){let[i,a]=react.useState(null);return react.useEffect(()=>{if(!e||!t){a(null);return}let d=n??"view",c=datagridCore.chartNeedsOrder(t),p=false,g=0,h=false,b=false,I=null,E=()=>{let K=++g;o(e,t).then(N=>{!p&&K===g&&a(N);},()=>{});},R=(K=false)=>{b||=K,!h&&(h=true,queueMicrotask(()=>{if(h=false,p)return;let N=e.chartBasis(d,c);!b&&N===I||(b=false,I=N,E());}));};I=e.chartBasis(d,c),E();let v=[e.events.on("contentReady",()=>R()),e.events.on("rowsChanged",()=>R()),e.events.on("dataUpdated",()=>R()),...d==="selection"?[e.events.on("selectionChanged",()=>R(true))]:[]];return ()=>{p=true,g++,v.forEach(K=>K());}},[e,t]),i}Object.defineProperty(exports,"ClientRowModel",{enumerable:true,get:function(){return datagridCore.ClientRowModel}});Object.defineProperty(exports,"ColumnModel",{enumerable:true,get:function(){return datagridCore.ColumnModel}});Object.defineProperty(exports,"DEFAULT_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DEFAULT_ROW_HEIGHT}});Object.defineProperty(exports,"DENSITY_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.DENSITY_ROW_HEIGHT}});Object.defineProperty(exports,"DataGridController",{enumerable:true,get:function(){return datagridCore.DataGridController}});Object.defineProperty(exports,"GRID_COLOR_SCHEMES",{enumerable:true,get:function(){return datagridCore.GRID_COLOR_SCHEMES}});Object.defineProperty(exports,"GRID_PALETTES",{enumerable:true,get:function(){return datagridCore.GRID_PALETTES}});Object.defineProperty(exports,"GRID_THEMES",{enumerable:true,get:function(){return datagridCore.GRID_THEMES}});Object.defineProperty(exports,"GridStateStore",{enumerable:true,get:function(){return datagridCore.GridStateStore}});Object.defineProperty(exports,"SUMMARY_TYPE_LABEL",{enumerable:true,get:function(){return datagridCore.SUMMARY_TYPE_LABEL}});Object.defineProperty(exports,"SaveRejected",{enumerable:true,get:function(){return datagridCore.SaveRejected}});Object.defineProperty(exports,"THEME_ROW_HEIGHT",{enumerable:true,get:function(){return datagridCore.THEME_ROW_HEIGHT}});Object.defineProperty(exports,"VirtualWindowEngine",{enumerable:true,get:function(){return datagridCore.VirtualWindowEngine}});Object.defineProperty(exports,"allowedSummaryTypes",{enumerable:true,get:function(){return datagridCore.allowedSummaryTypes}});Object.defineProperty(exports,"andFilters",{enumerable:true,get:function(){return datagridCore.andFilters}});Object.defineProperty(exports,"attachStateStoring",{enumerable:true,get:function(){return datagridCore.attachStateStoring}});Object.defineProperty(exports,"bandDepth",{enumerable:true,get:function(){return datagridCore.bandDepth}});Object.defineProperty(exports,"bandPath",{enumerable:true,get:function(){return datagridCore.bandPath}});Object.defineProperty(exports,"computeColumnLayout",{enumerable:true,get:function(){return datagridCore.computeColumnLayout}});Object.defineProperty(exports,"computeHeaderBands",{enumerable:true,get:function(){return datagridCore.computeHeaderBands}});Object.defineProperty(exports,"createRestDataSource",{enumerable:true,get:function(){return datagridCore.createRestDataSource}});Object.defineProperty(exports,"describeFilter",{enumerable:true,get:function(){return datagridCore.describeFilter}});Object.defineProperty(exports,"downloadBlob",{enumerable:true,get:function(){return datagridCore.downloadBlob}});Object.defineProperty(exports,"fillText",{enumerable:true,get:function(){return datagridCore.fillText}});Object.defineProperty(exports,"filterInputFromNode",{enumerable:true,get:function(){return datagridCore.filterInputFromNode}});Object.defineProperty(exports,"formatSummaryValue",{enumerable:true,get:function(){return datagridCore.formatSummaryValue}});Object.defineProperty(exports,"humanizeField",{enumerable:true,get:function(){return datagridCore.humanizeField}});Object.defineProperty(exports,"importCsv",{enumerable:true,get:function(){return datagridCore.importCsv}});Object.defineProperty(exports,"inferColumns",{enumerable:true,get:function(){return datagridCore.inferColumns}});Object.defineProperty(exports,"isDataRow",{enumerable:true,get:function(){return datagridCore.isDataRow}});Object.defineProperty(exports,"isDataSource",{enumerable:true,get:function(){return datagridCore.isDataSource}});Object.defineProperty(exports,"isFilterGroup",{enumerable:true,get:function(){return datagridCore.isFilterGroup}});Object.defineProperty(exports,"isGroupRow",{enumerable:true,get:function(){return datagridCore.isGroupRow}});Object.defineProperty(exports,"isPackagedTheme",{enumerable:true,get:function(){return datagridCore.isPackagedTheme}});Object.defineProperty(exports,"isSaveRejected",{enumerable:true,get:function(){return datagridCore.isSaveRejected}});Object.defineProperty(exports,"lookupLabel",{enumerable:true,get:function(){return datagridCore.lookupLabel}});Object.defineProperty(exports,"moveRowInArray",{enumerable:true,get:function(){return datagridCore.moveRowInArray}});Object.defineProperty(exports,"parseCsv",{enumerable:true,get:function(){return datagridCore.parseCsv}});Object.defineProperty(exports,"parseFilterInput",{enumerable:true,get:function(){return datagridCore.parseFilterInput}});Object.defineProperty(exports,"sniffDelimiter",{enumerable:true,get:function(){return datagridCore.sniffDelimiter}});Object.defineProperty(exports,"summaryKey",{enumerable:true,get:function(){return datagridCore.summaryKey}});Object.defineProperty(exports,"summaryLabel",{enumerable:true,get:function(){return datagridCore.summaryLabel}});Object.defineProperty(exports,"summaryTypeLabels",{enumerable:true,get:function(){return datagridCore.summaryTypeLabels}});Object.defineProperty(exports,"themeClassName",{enumerable:true,get:function(){return datagridCore.themeClassName}});exports.BAND_ROW_HEIGHT=to;exports.DEFAULT_EDIT_FORM_LABELS=dc;exports.DEFAULT_HEADER_MENU_LABELS=qs;exports.DataGrid=Ff;exports.EDITOR_OWNED_SELECTOR=Yt;exports.GRID_PORTAL_SELECTOR=Cl;exports.GridCellEditor=ka;exports.GridColumnChooser=ci;exports.GridContextMenu=Rr;exports.GridDateEditor=Sn;exports.GridDialog=va;exports.GridEditForm=fa;exports.GridFilterPanel=pi;exports.GridFilterRow=qa;exports.GridFooterRow=gr;exports.GridGroupPanel=ii;exports.GridHeader=Ua;exports.GridHeaderBands=Wa;exports.GridHeaderFilterPopup=ti;exports.GridLoadingOverlay=ki;exports.GridLookupEditor=Dn;exports.GridNoteEditor=Ri;exports.GridPager=mi;exports.GridPinnedRows=wr;exports.GridPopupPanel=Ln;exports.GridPortal=xt;exports.GridRow=eo;exports.GridRowEditor=ga;exports.GridSummaryBar=_f;exports.GridSurfaceProvider=sa;exports.GridTextProvider=ea;exports.GridToolbar=ui;exports.GridToolbarButton=$f;exports.GridTooltip=Di;exports.LOOKUP_PENDING=pn;exports.LookupLabels=nr;exports.PRINT_MAX_ROWS=Da;exports.ROW_DRAG_MIME=kr;exports.SHORTCUT_COPY=Ps;exports.SHORTCUT_CUT=Lp;exports.SHORTCUT_PASTE=Ip;exports.ToolbarIcon=li;exports.buildCellMenuItems=yi;exports.buildHeaderMenu=Si;exports.copyToClipboard=ro;exports.editFormColumnIds=Ql;exports.editFormLabels=pa;exports.editorOwnsKey=xn;exports.editorSeedText=qo;exports.eventFromOwnDom=St;exports.focusStaysWithGrid=Uo;exports.gridIgnoresKey=na;exports.headerMenuLabels=Tr;exports.isAltGraphChar=fo;exports.keyClaimed=vn;exports.lookupEditorSettings=bo;exports.lookupLabelsFor=Co;exports.lookupPickValues=ho;exports.markKeyHandledByApp=ta;exports.matchOptions=Xu;exports.measureBestFitWidth=Cr;exports.numberTextFormat=Nt;exports.reconcileFilterInputs=Ya;exports.runGridExport=xo;exports.useAlignedGrids=Ma;exports.useAnchoredPopup=Nn;exports.useCellTooltip=Ei;exports.useDataGrid=Zr;exports.useEditModes=Ra;exports.useGridChartBoxData=jf;exports.useGridChartData=qf;exports.useGridChartXYData=Xf;exports.useGridEditing=ra;exports.useGridPortalTarget=Zt;exports.useGridSurfaceClass=Bt;exports.useGridText=Pe;exports.usePrintLayout=Sa;exports.useRowDrag=xi;exports.useStateStoring=Ti;exports.writeClipboardText=Kp;
|